基于Web服务的统一代理适配方法、装置以及适配系统的制作方法

文档序号:7713711阅读:120来源:国知局
专利名称:基于Web服务的统一代理适配方法、装置以及适配系统的制作方法
技术领域
本发明涉及计算机互联网领域,尤其涉及一种基于Web服务(WebService)的统一 代理适配方法,还涉及一种基于Web服务的统一代理适配装置,以及一种包括该装置的统 一代理适配系统。
背景技术
Web Service是一种应用程序,它向外界暴露出一个能够通过Web进行调用的 API (A卯lication Programming Interface应用程序编程接口 ),能够用编程的方法通过 Web来调用这个应用程序。 随着互联网的不断发展,软件提供商越来越多的希望能够将软件以WebService 的方式提供,这样的优势是,用户的计算机成为了一个完全的服务使用者,而服务可以是跨 平台的,用户无需关心,用户使用软件更加方便,而企业的维护也更加方便,不用为每个客 户的电脑上的软件提供维护。 很多大的企业也采用了 Web的方式(如企业门户)为用户提供各种业务的服务 (如移动的网上营业厅),这些业务通常由各软件提供商帮其定制,而且以Web Service的 方式暴露给企业的运营系统(这些大企业都有一套自己的运营系统),这就导致企业的运 营系统需要与这多个业务系统进行对接,才能对外提供服务,并且由于各业务的开发可能 是多家企业,服务接口各不相同,很多时候企业不得不开发多套小系统与各个业务系统对 接,这样就不能提供一个统一对外服务的接口 ,导致用户不能在一个地方看到企业的所有 服务,这是企业所不愿意看到的。 由于上述的原因,如果能够提供一种将企业提供的所有各种WebService服务 进行集中的管理和适配装置,让企业看到的只是一种服务,一个URL(Uniform Resource Locator统一资源定位符),并且能否对用户的权限进行统一的控制,将会大大减少企业与 各种业务系统的对接以及接口维护的工作量,并且使企业很方便的对用户提供统一的服 务。

发明内容
本发明要解决的技术问题是提供一种Web Service的统一代理适配方法,能够对 外提供统一的对接接口,并与代理的各种Web Service服务器进行适配后,进行请求转发, 并且能对代理的各种业务的服务进行开启和关闭,并且进行业务的权限进行鉴权。
为了解决上述问题,本发明提供了一种基于Web服务的统一代理适配方法,应用 于包括企业运营系统和若干业务系统的架构,包括 在所述企业运营系统和若干业务系统之间设置统一代理适配装置,所述统一代理 适配装置接收所述企业运营系统发来的封装为所述统一代理适配装置适用格式的服务请 求,将所述服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式并发送 到所述对应的业务系统。
进一步地,上述统一代理适配方法还可包括,在所述统一代理适配装置中保存各 业务系统的服务描述语言WSDL及其服务名与Web服务调用地址的对应关系,并提供一 Web 服务调用接口; 所述统一代理适配装置接收所述企业运营系统发出的经所述Web服务调用接口 封装为所述统一代理适配装置适用的格式的服务请求,所述服务请求包含用户所选服务名 及所输入服务数据; 所述统一代理适配装置根据所述各业务系统的WSDL进行接口适配,将所述Web服 务调用接口封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格 式; 所述统一代理适配装置根据服务名与Web服务调用地址的对应关系,将适配后的 服务请求发送到与该服务请求所携带服务名对应的业务系统,由所述业务系统进行业务处理。 进一步地,上述统一代理适配方法还可包括,所述统一代理适配装置接收所述企 业运营系统发出的经所述Web服务调用接口封装为所述统一代理适配装置适用的格式的 服务请求的步骤,与所述统一代理适配装置根据所述各业务系统的WSDL将所述Web服务调 用接口封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式的 步骤之间,还包括 所述统一代理适配装置首先根据所述服务请求中携带的服务名对所述服务名对
应的业务系统进行状态判断,如果所述业务系统处于停用状态,则流程结束;如果所述业务
系统处于启用状态,则所述统一代理适配装置根据所述各业务系统的WSDL将所述Web服务
调用接口封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式。 进一步地,上述统一代理适配方法还可包括,所述统一代理适配装置根据各业务
系统上报的状态信息,来判断各业务系统处于启用还是停用状态;或者,所述统一代理适配
装置打开自动探测开关,定时远程调用所述各业务系统提供的服务,生成远程实例,如果所
生成的远程实例失败,则自动将所述远程实例对应的业务系统的状态设为停用,如果所生
成的远程实例成功,则自动将所述远程实例对应的业务系统的状态设为启用。 进一步地,上述统一代理适配方法还可包括,所述服务请求中还包括用户标识; 如果所述业务系统处于启用状态,还包括所述统一代理适配装置根据服务请求
中携带的用户标识及服务名在权限数据库中进行查询,如果所述用户标识没有所述服务名
对应服务的权限,则流程结束;如果所述用户标识有所述服务名对应服务的权限,则所述统
一代理适配装置根据所述各业务系统的WSDL将所述Web服务调用接口封装的服务请求适
配为与该服务请求所携带服务名对应的业务系统适用的格式。 本发明的目的还在于提供一种基于Web服务的统一代理适配装置,所述统一代理 适配装置,设置于企业运营系统和若干业务系统之间,包括接收模块,适配匹配模块和发 送模块; 所述接收模块,用于接收所述企业运营系统封装的所述统一代理适配装置适用格 式的服务请求,并交由所述适配匹配模块处理; 所述适配匹配模块,用于根据所述封装后的服务请求所携带服务名匹配与该服务 名对应的业务系统,通知所述发送模块;并将所述封装后的服务请求适配为所述对应的业
6务系统适用的格式,交由所述发送模块处理; 所述发送模块,用于将所述适配得到的服务请求发送到所述对应的业务系统。
进一步地,上述统一代理适配装置还可包括存储模块,用于保存各业务系统的服 务描述语言WSDL,以及服务名与Web服务调用地址的对应关系; 所述适配匹配模块,用于根据所保存的各业务系统的WSDL将所述Web服务调用接 口封装的服务请求适配为与该服务请求所携带的服务名对应的业务系统适用的格式;根据 所保存的服务名与Web服务调用地址的对应关系,匹配与该服务请求所携带服务名对应的 业务系统,并通知所述发送模块。 进一步地,上述统一代理适配装置还可包括状态检测模块; 所述适配匹配模块,根据所述封装后的服务请求所携带服务名匹配与该服务名对 应的业务系统后,还通知所述状态检测模块并触发其开始工作; 所述状态检测模块,用于对所述匹配的对应的业务系统进行状态判断,如果所述 业务系统处于停用状态,向所述企业运营系统返回所述业务系统的停用信息,并通知所述 适配匹配模块停止处理;如果所述业务系统处于启用状态,则通知所述适配匹配模块状态 检测完成。 进一步地,上述统一代理适配装置还可包括,所述状态检测模块,根据各业务系统 上报的状态信息,来判断各业务系统处于启用还是停用状态;或者打开自动探测开关,定时 远程调用所述各业务系统提供的服务,生成远程实例,如果所生成的远程实例失败,则自动 将所述远程实例对应的业务系统的状态设为停用,如果所生成的远程实例成功,则自动将 所述远程实例对应的业务系统的状态设为为启用。 进一步地,上述统一代理适配装置还可包括,所述适配匹配模块,收到所述状态检 测模块返回的状态检测完成的通知后,将所述封装后的服务请求适配为所述对应的业务系 统适用的格式。 进一步地,上述统一代理适配装置还可包括权限数据库及鉴权模块; 所述适配匹配模块,收到所述状态检测模块返回的状态检测完成的通知后,触发
所述鉴权模块启动,并将所述服务请求中携带的用户标识及服务名通知所述鉴权模块;在
收到所述鉴权模块返回的鉴权成功的通知后,将所述封装后的服务请求适配为所述对应的
业务系统适用的格式; 所述鉴权模块,用于连接所述权限数据库,根据服务请求中携带的用户标识及服
务名在所述权限数据库中进行查询,如果所述用户标识没有所述服务名对应服务的权限,
向所述企业运营系统返回鉴权失败信息,并通知所述适配匹配模块停止处理;如果所述用
户标识有所述服务名对应服务的权限,通知所述适配匹配模块鉴权成功; 所述权限数据库,用于存储用户标识及该用户标识有权操作的服务名,供所述鉴
权模块进行查询。 本发明的目的还在于提供一种基于Web服务的统一代理适配系统,包括企业运 营系统,统一代理适配装置和若干业务系统;其中, 所述企业运营系统,用于将用户提交的包含用户所选服务名的服务请求封装为所 述统一代理适配装置适用格式并发送给所述统一代理适配装置; 所述统一代理适配装置,接收所述企业运营系统发来的服务请求,将所述服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式,并将所述适配得到的服 务请求发送到所述对应的业务系统。 进一步地,上述统一代理适配系统还可包括,所述统一代理适配装置,用于提供一 Web服务调用接口 ,用于根据所保存的各业务系统的服务描述语言WSDL将所述Web服务调 用接口封装的服务请求适配为与该服务请求所携带的服务名对应的业务系统适用的格式; 根据所保存的服务名与Web服务调用地址的对应关系,将所述适配后得到的服务请求发送 到与该服务请求所携带的服务名对应的业务系统; 所述业务系统,用于根据所述统一代理适配装置发来的服务请求中用户所输入的
服务数据进行业务处理,还用于向所述统一代理适配装置发送WSDL。 本发明的有益技术效果 当使用统一代理适配装置后,对于企业运营系统来说,所有的实际业务系统,都由 统一代理适配装置集成为了一个恥b服务,企业运营系统不用再担心与各业务系统对接, 实现复杂的的对接逻辑。从而便于企业运营系统整体结构的整合,统一对用户提供各种Web Service月艮务; 同时对于各种业务系统升级维护,不能提供服务的时候,企业运营系统本身不用 做任何调整,由统一代理适配装置做启用和停用的设置。统一代理适配装置也可自动探测 后端各服务是否正常运行,然后自动设定其状态为启用或停用; 同时如果企业提供用户权限数据,还可以对用户服务进行鉴权。这些都大大方便 了企业应用整合。


图1为本发明实施例中基于Web
图2为本发明实施例中基于Web
图3为本发明实施例中基于Web
Service的统一代理适配方法的处理流程图。 Service的统一代理适配系统的结构图。 Service的统一代理适配装置的结构图。
具体实施例方式
本发明的核心在于在统一代理适配系统中设置统一代理适配装置,企业运营系 统与统一代理适配装置之间定制统一的Web Service调用接口,各实际业务系统提供自己 的WSDL,给统一代理适配装置,作为统一代理适配装置的适配基础。通过统一代理适配装 置,将用户不同的业务请求发送到相应的业务系统;各业务系统完成业务处理后,将处理结 果返回给统一代理适配装置,再由统一代理适配装置返回给企业运营系统,最后反应在恥b 门户上给用户。 其具体的连接关系与配置 企业运营系统与统一代理适配装置之间 企业运营系统与统一代理适配装置之间定制统一的Web Service调用接口 ,该调 用接口中定义了两个必要参数,包括服务名和参数列表,其中,服务名是用来为统一代理适 配装置做服务路由使用,参数列表用来描述具体业务。这两个参数的值均是通过用户在企 业运营系统的恥b门户提交所得到。注意,除去上述两个必要参数外,如果需要统一代理服 务装置进行用户服务鉴权的话,还需要带上用户ID这个可选参数。
8
该调用接口中还定制了参数的格式,采用JS0N的统一数据格式,其中参数列表的
格式可以为{paraml: valuel, par咖value2, par咖3:value3.......} 。 JSON (JavaScript
Object Notation)是一种轻量级、基于文本、语言无关的数据交换格式,它是从ECMAScript 语言标准衍生而成,其使用字符串将数据在web客户机与服务端进行传递,并且方便在 Javascript中使用,由于JS0N对象本身并不是本发明介绍的内容,所以在此只做简单介 绍。 以上调用接口的定义详见后面的"附接口描述"一节"。
各业务系统与统一代理适配装置之间 各业务系统提供自己的WSDL(Web Services Description Language Web服务描 述语言)给统一代理适配装置,作为统一代理适配装置的适配基础。同时各业务系统提供 自己的web服务调用地址,在统一代理适配装置中配置各业务系统提供的服务对应的服务 名与其对应的web服务调用地址的键值对并保存,作为统一代理适配装置服务路由的基 础。 同时统一代理适配装置上还要配置各业务系统处于启用还是停用状态,以便进行 状态判断 统一代理适配装置可以根据各业务系统定时上报的状态信息,来判断各业务系统 处于启用还是停用状态,完成配置;例如业务系统升级、维护的时候,该业务系统需通知统 一代理适配装置,统一代理适配装置将其状态设为停用,待升级维护结束后,该业务系统再 通知统一代理适配装置,统一代理适配装置恢复状态为启用; 统一代理适配装置也可以打开自动探测开关,自动探测开关打开时,统一代理适 配装置定时去远程调用各业务系统提供的服务,生成远程实例,如果生成实例失败就自动 将其状态设为停用,生成实例成功就自动将其状态恢复为启用。
权限数据库与统一代理适配装置之间(可选) 如果企业运营系统能够提供用户权限数据(如可选参数用户ID),统一代理适配 装置还可以连接权限数据库,进行用户的服务请求的鉴权;如果企业运营系统不提供用户 权限数据或者由企业运营系统自己进行服务鉴权,则统一代理适配装置可以不连接权限数 据库。 完成上述的连接、配置后,即可以通过统一代理适配装置完成业务:
用户在企业运营系统的web门户上登录后,选择相应的服务(比如预定酒店或查 询天气),提交服务请求,企业运营系统接收到用户请求后,将用户请求按照统一代理适配 装置提供的调用接口,以soap请求(其中包含了JSON格式封装的参数)的方式提交到统一 代理适配装置(统一代理适配装置本身暴露为一个Web Service),统一代理适配装置查询 相应业务系统的状态,如为启用状态再进行用户的鉴权(可选),鉴权成功后,根据各种业 务系统提供的WSDL描述,对所述soap请求的参数进行适配(主要将其中JS0N格式封装的 参数适配成相应业务系统适用的格式),转化为各业务系统能够识别的so即请求,将转换 后的soap请求发送到对应业务系统,对应业务系统完成业务处理后,将结果返回给统一代 理适配装置,再由统一代理适配装置返回给企业运营系统,最后反应在恥b门户上给用户。
下面通过一个具体实施例对本发明的方法流程进行说明。 图1本发明实施例中基于Web Service的统一代理适配方法的处理流程图,包括如下步骤 步骤101 :用户登录到企业运营系统的web门户上,选择自己需要的服务,根据其 所选服务的要求输入数据,点击提交服务请求; 该请求中携带有用户所选服务的服务名及用户所填写的服务数据参数;也可以携 带有用户ID ; 步骤102 :企业运营系统得到用户提交的服务请求后,将该服务请求按照统一代 理适配装置定义的调用接口进行封装,得到符合统一代理适配装置的格式的服务请求,将 所得到的服务请求提交到统一代理适配装置,以WebService方式调用统一代理适配装置 提供的服务名; 步骤103 :统一代理适配装置接收到企业运营系统的调用后,首先根据服务请求 中携带的服务名对该服务名对应的业务系统是否启用进行状态判断,如果处于停用状态, 则流程结束,返回企业运营系统,显示在恥b门户上告知用户"该服务已停用";如果对应的 业务系统处于启用状态,则进行步骤104,执行鉴权判断; 对于各业务系统处于启用还是停用状态的判断,其实现方式前面已有描述统一 代理适配装置可以根据各业务系统定时上报的状态信息,来判断各业务系统处于启用还是 停用状态,完成配置;统一代理适配装置也可以打开自动探测开关,自动探测开关打开时, 统一代理适配装置定时去远程调用各业务系统提供的服务,生成远程实例,如果生成实例 失败就自动将其状态设为停用,生成实例成功就自动将其状态恢复为启用;
步骤104 :统一代理适配装置连接权限数据库,对该用户进行鉴权判断;
统一代理适配装置根据服务请求中携带的用户ID及服务名在权限数据库中进行 查询,如果该用户ID没有所述服务名对应服务的权限,则流程结束,返回企业运营系统,显 示在web门户上告知用户"操作失败,没有权限";如果有,则执行步骤105,进行接口适配与 服务请求转发; 步骤105 :统一代理适配装置按照服务请求中携带的服务名所对应的提供该服务 的业务系统的WSDL,进行接口适配,将统一代理适配装置的调用接口传递过来以JSON格式 封装的服务请求,适配为该业务系统实际使用的soap服务请求,然后执行步骤106 ;
上述接口适配的过程,主要是对参数进行封装的过程。在各业务系统提供的Web Service服务中,接口定义差别很大,通常有两种类型, 一种是每个参数由一个字符串,而另 一种是复杂类型的参数,比如可以是J肌a程序中一个或多个类。这里我们为了忽略各业务 系统中不同编程语言存在差异的影响,统一封装成soap (simple object access protocol 简单对象访问协议)格式;soap是一种轻量的、简单的、基于XML的协议,它被设计成在WEB 上交换结构化的和固化的信息,由于xml是跨平台的,所以so即可以跨平台,因此使用so即 封装请求从而避免了跨平台对接的问题。 步骤106 :统一代理适配装置根据服务请求中携带的服务名,按照配置保存的服 务调用地址与服务名的对应关系进行服务路由,从而将soap服务请求以Web Service方 式,通过soap接口发送到相应的业务系统; 步骤107 :所述业务系统收到soap服务请求,根据该服务请求获取其中携带的参
数(如用户在web门户上输入的数据参数),进行业务处理; 步骤108 :所述业务系统将处理结果返回给统一代理适配装置;
10
步骤109 :统一代理适配装置将处理结果返回给企业运营系统,最后显示在web门 户上,告知用户。
以下通过一组应用实例,对上述流程进行说明 下面以某大型旅行网为例,其可以提供在线的机票预定,酒店预定,目的地指南等 在线服务。 步骤a :用户登录该大型旅行网web门户,进行了查询航班的操作,填写了包括出 发城市,目的城市,出发时间,乘客类型,乘客人数,航空公司(可选)等信息,点击查询航 班,发出服务请求; 步骤b :查询航班的服务请求被提交到该网站的后台服务器,后台服务器按照定 义好的请求格式(其中包含了 JSON格式封装的参数),通过so即接口调用统一代理适配装 置提供的web服务名; 步骤C :统一代理适配装置在收到企业运营系统的请求后,首先判断查询航班的 服务是否处于启用状态,如果停用,就结束流程,返回企业运营系统,在恥b门户上显示告 知用户"查询航班服务已停用"; 如果处于启用状态,判断该用户是否有权限进行航班的查询,如果没有权限,返回 企业运营系统,显示在恥b门户上告知用户"操作失败,没有航班查询权限";
如果有权限,则进行接口适配,根据航班查询的业务系统提供的WSDL描述文件, 进行soap请求的封装(主要将其中JSON格式封装的参数适配成适用于相应业务系统的格 式),并按照航班查询的业务系统的服务调用地址进行服务路由,将查询航班的soap服务 请求(包含适用于此业务系统的格式的参数)转发给航班查询业务系统,待航班查询业务 系统处理业务完毕后,将查询到的结果返回给统一代理适配装置,统一代理适配装置将结 果再返回给企业运营系统; 步骤d :企业运营系统将查询结果返回在web门户上,给用户查看。 在另一应用实例中,用户选择选定的航班,进行预定操作输入航班号,票的数量,
信用卡号,选择送票方式等信息,然后点击订票,发出服务请求; 订票的服务请求被提交到该网站的后台服务器,后台服务器按照定义好的请求格 式(其中包含了 JSON格式封装的参数),通过so即接口调用统一代理适配装置提供的web 服务名; 重复上面的步骤c、d过程,这里不再重复。 在另一应用实例中,用户完成机票预定后,开始酒店的预定,在界面上选择酒店预 定,同样先查询酒店,输入城市,到达时间,离开时间,房间数,入住人数,价格范围,星级要 求,进行酒店的查询,然后再进行预定; 与上面订机票的过程相似,酒店查询的服务请求被提交到该网站的后台服务器, 后台服务器按照定义好的请求格式,通过soap接口调用统一代理适配装置提供的web服务 名; 重复上面的步骤c、 d过程,这里就不再赘述了。
附接口描述 这里定义了统一代理适配装置对外的调用接口
接口定义(用java实现)
11
public String integrate WsServer (String serviceName, String params,String id) ^0093] 参数说明
0094] serviceName :月艮务名(唯一木示i只);
0095] params :各个服务需要的参数,参数的组织规范应符合JSON的规范,如下面的例子(paraml:V valuel\〃 ,param2:\〃 value2\〃 ,param3:\〃 value3\〃 };00%] id:用户标识(可选),用于服务鉴权。0097] 这是我们对企业运营系统统一发布的WSDL描述0098] 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8〃 ?〉
0099] -〈wsdl: definitions targetNamespace =〃 http://ws. integration, zte.
com 〃
0100] xmlns:apachesoap = 〃 http://xml. apache. org/xml_soap 〃 xmlns:impl=〃 http://ws. integration, zte. com〃
0101] xmlns:intf =〃 http://ws. integration.zte.com=〃 http://schemas. xmlso即.org/soap/encoding/〃0102] xmlns:wsdl =〃 http://schemas. xmlsoap. org/wsdl/=〃 http://schemas. xmlsoap. org/wsdl/soap/〃0103] xmlns:xsd=〃 http://www. w3. org/2001/XMLSchema〃 〉
xmlns:soapencxmlns:wsdlsoap
0104]0105]0106]0107]0108]0109]0110]
WSDL created by Apache Axis version: 1.2. 1Built on Aug 08,2005(11:49:10 PDT)
0112]0113]0114]
xsd:
一〈wsdl:message name〈wsdl:part name〈wsdl:part name〈wsdl:part name〈/wsdl:message〉-〈wsdl :message name =〃〈wsdl:part name =string〃 /〉
〈/wsdl:message〉-〈wsdl :portType name ='—〈wsdl:operation name=〃 serviceName params id〃 〉0118] 〈wsdl:input message
=〃 integrateWsServerRequest〃 /〉0119] 〈wsdl:output message
=〃 integrateWsServerResponse 〃 /〉0120] 〈/wsdl:operation〉
=〃 integrateWsSerwerRequest 〃 〉serviceName 〃 type =〃 xsd: string'params 〃 type =〃 xsd: string〃 /〉id〃 type =〃 xsd:string〃 /〉
integrateWsServerResponse 〃 〉〃 integrateWsServerReturn
type
0115]0116]0117]
IntegrationWS〃 〉=〃 integrateWsServer
par膽eterOrder
impl:integrateWsServerRequest 〃 name
impl:integrateWsServerResponse 〃 nameIntegrationWSSoapBinding
type
rpc transport
http://schemas.
0121] 〈/wsdl:portType〉
0122] -〈wsdl: binding name =
=〃 impl:IntegrationWS〃 〉0123] 〈wsdlsoap:binding style =
xmlso即.org/so即/http〃 /〉
0124] -〈wsdl: operation name =〃 integrateWsServer 〃 〉
0125] 〈wsdlsoap:operation soapAction =〃 〃 /〉
0126] -〈wsdl: input name =〃 integrateWsServerRequest 〃 〉
0127] 〈wsdlso即body encodingStyle = 〃 http: //
schemas. xmlso即.org/soap/encoding/〃
0128] namespace =〃 http://ws. integration, zte. com〃 use =〃 encoded〃 /〉0129] 〈/wsdl:input〉
0130] -〈wsdl: output name =〃 integrateWsServerResponse 〃 〉
0131 ] 〈wsdlso即body encodingStyle = 〃 http: //
schemas. xmlso即.org/soap/encoding/〃
0132] namespace =〃 http://ws. integration, zte. com〃 use =〃 encoded〃 /〉0133] 〈/wsdl:output〉0134] 〈/wsdl:operation〉
0135] 〈/wsdl:binding〉
0136] -〈wsdl: service name =〃 IntegrationWSService 〃 〉
0137] -〈wsdl:port binding = 〃 impl:IntegrationWSSoapBinding 〃 name
=〃 IntegrationWS〃 〉
0138] 〈wsdlsoap:address location =〃 http://1ocalhost:8080/WebModulel/
services/IntegrationWS〃 /〉0139] 〈/wsdl:port〉0140] 〈/wsdl:service〉
0141] 〈/wsdl:definitions〉
0142] 统一代理适配装置接收到Web Service调用后,使用
0143] JS0N0bjectjson0bject = JS0N0bject. from0bject (jsonStr);
0144] 进行JSON对象的实例化,然后适配后台的各种业务系统,根据各服务系统提供的
WSDL,包装适用于相应业务系统的soap服务请求,向各业务系统进行Web Service调用,完
成服务处理。
0145] 下面通过一个具体实施例对本发明统一代理适配系统的构成进行说明。
0146] 图2为本发明实施例中基于Web Service的统一代理适配系统的结构图,该系统
包括企业运营系统100,统一代理适配装置200,若干业务系统300,权限数据库400和管
理终端500。 其中,所述企业运营系统100,用于为用户提供可登录的web门户,供其选择所需要的服务,并输入其所选服务要求的数据,将所得到的用户提交的服务请求按照所述统一代理适配装置定义的调用接口进行封装,得到符合统一代理适配装置的JS0N格式的服务
13请求,将所得到的服务请求提交到统一代理适配装置,以Web Service方式调用统一代理适配装置提供的服务名;所述服务请求中携带有用户所选服务的服务名及用户所填写的数据参数;也可以携带有用户ID; 所述企业运营系统IOO,还用于接收所述统一代理适配装置200返回的业务系统停用信息,显示在恥b门户上告知用户"该服务已停用";接收所述统一代理适配装置200返回的鉴权失败信息,显示在恥b门户上告知用户"操作失败,没有权限";
所述企业运营系统IOO,还用于将所述统一代理适配装置200返回的处理结果显示在web门户上告知用户。 所述统一代理适配装置200,接收到所述企业运营系统100的调用后,首先根据服务请求中携带的服务名对该服务名对应的业务系统是否启用进行状态判断,如果处于停用状态,则返回停用信息给所述企业运营系统100 ;如果对应的业务系统300处于启用状态,则连接到所述权限数据库400,根据服务请求中携带的用户ID及服务名在所述权限数据库400中进行查询,如果在所述权限数据库400中查询到该用户ID没有所述服务名对应服务的权限,则返回鉴权失败信息给所述企业运营系统100 ;如果在所述权限数据库400中查询到该用户ID有所述服务名对应服务的权限,则按照所述服务请求中携带的服务名所对应的提供该服务的业务系统300的WSDL进行接口适配,将所述所述企业运营系统100传递过来的JSON格式的服务请求,适配为所述业务系统300实际使用的格式的服务请求;根据服务请求中携带的服务名,按照配置保存的服务调用地址与服务名的对应关系进行服务路由,将所述的服务请求以Web Service方式,通过将soap服务请求发送到所述服务名对应的业务系统300 ; 所述统一代理适配装置200,还用于将所述服务名对应的业务系统300返回的处理结果返回给企业运营系统100 ; 所述统一代理适配装置200,还用于根据各业务系统300定时上报的状态信息,来判断各业务系统300处于启用还是停用状态,完成各业务系统300的状态配置;还可以用于接受管理终端500控制打开自动探测开关,定时去远程调用各业务系统300提供的服务,生成远程实例,如果生成实例失败就自动将其状态设为停用,生成实例成功就自动将其状态恢复为启用。 所述业务系统300,接收所述soap服务请求,并根据该服务请求获取其中携带的参数(如用户在恥b门户上输入的服务数据),进行业务处理,并将所述处理结果返回给所述统一代理适配装置200。 所述管理终端500,用于控制所述统一代理适配装置200打开自动探测开关,还用与控制所述统一代理适配装置200是否连接到所述权限数据库400完成鉴权,如果设置所述统一代理适配装置200与所述权限数据库400断开,则跳过鉴权操作。
所述权限数据库400,用于存储用户ID及该用户ID有权操作的服务名,供所述统一代理适配装置200进行鉴权操作时查询。 可见,在企业运营系统100不提供用户权限数据或者由企业运营系统100自己进行服务鉴权时,可以通过管理终端500的操作,关闭所述统一代理适配装置200的鉴权服务,断开所述权限数据库400与所述统一代理适配装置200的连接。 另外,在另一实施例中,本发明中提供用户权限数据的权限数据库400也可以存
14在于所述统一代理适配装置200内部。即权限数据库独立于统一代理适配装置之外或依存于统一代理适配装置内部都可以实现,本发明不限于此。 下面通过一个具体实施例对本发明统一代理适配装置的构成进行说明。 图3为本发明实施例中基于Web Service的统一代理适配装置的结构图,统一代
理适配装置200,设置于企业运营系统100和若干业务系统300之间,包括接收模块201,
适配匹配模块202、发送模块203、存储模块204、状态检测模块205、鉴权模块206及权限数
据库400。 所述接收模块201,用于接收所述企业运营系统100封装的所述统一代理适配装置200适用格式的服务请求,并交由所述适配匹配模块202处理; 所述适配匹配模块202,用于根据所述封装后的服务请求所携带服务名匹配与该服务名对应的业务系统300,通知所述发送模块203 ;并将所述封装后的服务请求适配为所述对应的业务系统300适用的格式,交由所述发送模块203处理; 所述发送模块203,用于将所述适配得到的服务请求发送到所述对应的业务系统300。 具体来说,所述适配匹配模块202,用于根据所保存的各业务系统300的WSDL将所述Web服务调用接口封装的服务请求适配为与该服务请求所携带的服务名对应的业务系统300适用的格式;根据所保存的服务名与Web服务调用地址的对应关系,匹配与该服务请求所携带服务名对应的业务系统300,并通知所述发送模块203 ; 存储模块204,用于保存各业务系统300的服务描述语言WSDL,以及服务名与Web服务调用地址的对应关系。 另外,在所述适配匹配模块202对服务请求进行适配之前,还可以连接所述状态检测模块205,对对应的业务系统300进行状态检测 所述适配匹配模块202,根据所述封装后的服务请求所携带服务名匹配与该服务名对应的业务系统300后,还通知所述状态检测模块205并触发其开始工作;收到所述状态检测模块205返回的状态检测完成的通知后,将所述封装后的服务请求适配为所述对应的业务系统300适用的格式;收到所述状态检测模块205返回的停用通知后,停止工作;
所述状态检测模块205,用于对所述匹配的对应的业务系统300进行状态判断,如果所述业务系统300处于停用状态,向所述企业运营系统100返回所述业务系统300的停用信息,并通知所述适配匹配模块202停止处理;如果所述业务系统300处于启用状态,则通知所述适配匹配模块202状态检测完成。 其中,所述状态检测模块205可以根据各业务系统300上报的状态信息,来判断各业务系统300处于启用还是停用状态;或者打开自动探测开关,定时远程调用所述各业务系统300提供的服务,生成远程实例,如果所生成的远程实例失败,则自动将所述远程实例对应的业务系统300的状态设为停用,如果所生成的远程实例成功,则自动将所述远程实例对应的业务系统300的状态设为为启用。 另外,在所述状态检测模块205检测完成之后,在所述适配匹配模块202对服务请
求进行适配之前,还可以连接权限数据库400及鉴权模块206对用户进行鉴权 所述适配匹配模块202,收到所述状态检测模块205返回的状态检测完成的通知
后,触发所述鉴权模块206启动,并将所述服务请求中携带的用户标识及服务名通知所述鉴权模块206 ;在收到所述鉴权模块206返回的鉴权成功的通知后,将所述封装后的服务请求适配为所述对应的业务系统300适用的格式;收到所述鉴权模块206返回的鉴权失败的通知后,停止工作; 所述鉴权模块206,用于连接所述权限数据库400,根据服务请求中携带的用户标识及服务名在所述权限数据库400中进行查询,如果所述用户标识没有所述服务名对应服务的权限,向所述企业运营系统100返回鉴权失败信息,并通知所述适配匹配模块202停止处理;如果所述用户标识有所述服务名对应服务的权限,通知所述适配匹配模块202鉴权成功; 所述权限数据库400,用于存储用户标识及该用户标识有权操作的服务名,供所述鉴权模块206进行查询。 另外,如前所述,权限数据库400独立于统一代理适配装置200之外或依存于统一
代理适配装置200内部都可以实现,本发明不限于此。因此,在另一实施例中,上述存在于
统一代理适配装置200内部的权限数据库400,也可以独立于统一代理适配装置200之外,
其他操作不变,依然由鉴权模块206对权限数据库400进行连接,完成鉴权。 上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明
并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、
修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权力要求的保护范围内。
权利要求
一种基于Web服务的统一代理适配方法,应用于包括企业运营系统和若干业务系统的架构,其特征在于,包括在所述企业运营系统和若干业务系统之间设置统一代理适配装置,所述统一代理适配装置接收所述企业运营系统发来的封装为所述统一代理适配装置适用格式的服务请求,将所述服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式并发送到所述对应的业务系统。
2. 如权利要求2所述的方法,其特征在于,进一步包括在所述统一代理适配装置中保存各业务系统的服务描述语言WSDL及其服务名与Web 服务调用地址的对应关系,并提供一 Web服务调用接口 ;所述统一代理适配装置接收所述企业运营系统发出的经所述Web服务调用接口封装 为所述统一代理适配装置适用的格式的服务请求,所述服务请求包含用户所选服务名及所 输入服务数据;所述统一代理适配装置根据所述各业务系统的WSDL进行接口适配,将所述Web服务调 用接口封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式;所述统一代理适配装置根据服务名与Web服务调用地址的对应关系,将适配后的服务 请求发送到与该服务请求所携带服务名对应的业务系统,由所述业务系统进行业务处理。
3. 如权利要求2所述的方法,其特征在于,所述统一代理适配装置接收所述企业运营 系统发出的经所述Web服务调用接口封装为所述统一代理适配装置适用的格式的服务请 求的步骤,与所述统一代理适配装置根据所述各业务系统的WSDL将所述Web服务调用接口 封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式的步骤之 间,还包括所述统一代理适配装置首先根据所述服务请求中携带的服务名对所述服务名对应的 业务系统进行状态判断,如果所述业务系统处于停用状态,则流程结束;如果所述业务系统 处于启用状态,则所述统一代理适配装置根据所述各业务系统的WSDL将所述Web服务调用 接口封装的服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式。
4. 如权利要求3所述的方法,其特征在于,所述统一代理适配装置根据各业务系统上 报的状态信息,来判断各业务系统处于启用还是停用状态;或者,所述统一代理适配装置打 开自动探测开关,定时远程调用所述各业务系统提供的服务,生成远程实例,如果所生成的 远程实例失败,则自动将所述远程实例对应的业务系统的状态设为停用,如果所生成的远 程实例成功,则自动将所述远程实例对应的业务系统的状态设为启用。
5. 如权利要求4所述的方法,其特征在于,所述服务请求中还包括用户标识; 如果所述业务系统处于启用状态,还包括所述统一代理适配装置根据服务请求中携带的用户标识及服务名在权限数据库中进行查询,如果所述用户标识没有所述服务名对应 服务的权限,则流程结束;如果所述用户标识有所述服务名对应服务的权限,则所述统一代 理适配装置根据所述各业务系统的WSDL将所述Web服务调用接口封装的服务请求适配为 与该服务请求所携带服务名对应的业务系统适用的格式。
6. —种基于Web服务的统一代理适配装置,其特征在于,所述统一代理适配装置,设置 于企业运营系统和若干业务系统之间,包括接收模块,适配匹配模块和发送模块;所述接收模块,用于接收所述企业运营系统封装的所述统一代理适配装置适用格式的服务请求,并交由所述适配匹配模块处理;所述适配匹配模块,用于根据所述封装后的服务请求所携带服务名匹配与该服务名对 应的业务系统,通知所述发送模块;并将所述封装后的服务请求适配为所述对应的业务系 统适用的格式,交由所述发送模块处理;所述发送模块,用于将所述适配得到的服务请求发送到所述对应的业务系统。
7. 如权利要求6所述的统一代理适配装置,其特征在于,还包括存储模块,用于保存 各业务系统的服务描述语言WSDL,以及服务名与Web服务调用地址的对应关系;所述适配匹配模块,用于根据所保存的各业务系统的WSDL将所述Web服务调用接口封 装的服务请求适配为与该服务请求所携带的服务名对应的业务系统适用的格式;根据所保 存的服务名与Web服务调用地址的对应关系,匹配与该服务请求所携带服务名对应的业务 系统,并通知所述发送模块。
8. 如权利要求7所述的统一代理适配装置,其特征在于,还包括状态检测模块; 所述适配匹配模块,根据所述封装后的服务请求所携带服务名匹配与该服务名对应的业务系统后,还通知所述状态检测模块并触发其开始工作;所述状态检测模块,用于对所述匹配的对应的业务系统进行状态判断,如果所述业务 系统处于停用状态,向所述企业运营系统返回所述业务系统的停用信息,并通知所述适配 匹配模块停止处理;如果所述业务系统处于启用状态,则通知所述适配匹配模块状态检测 完成。
9. 如权利要求8所述的统一代理适配装置,其特征在于,所述状态检测模块,根据各 业务系统上报的状态信息,来判断各业务系统处于启用还是停用状态;或者打开自动探测 开关,定时远程调用所述各业务系统提供的服务,生成远程实例,如果所生成的远程实例失 败,则自动将所述远程实例对应的业务系统的状态设为停用,如果所生成的远程实例成功, 则自动将所述远程实例对应的业务系统的状态设为为启用。
10. 如权利要求8所述的统一代理适配装置,其特征在于,所述适配匹配模块,收到所 述状态检测模块返回的状态检测完成的通知后,将所述封装后的服务请求适配为所述对应 的业务系统适用的格式。
11. 如权利要求8所述的统一代理适配装置,其特征在于,还包括权限数据库及鉴权 模块;所述适配匹配模块,收到所述状态检测模块返回的状态检测完成的通知后,触发所述 鉴权模块启动,并将所述服务请求中携带的用户标识及服务名通知所述鉴权模块;在收到 所述鉴权模块返回的鉴权成功的通知后,将所述封装后的服务请求适配为所述对应的业务 系统适用的格式;所述鉴权模块,用于连接所述权限数据库,根据服务请求中携带的用户标识及服务名 在所述权限数据库中进行查询,如果所述用户标识没有所述服务名对应服务的权限,向所 述企业运营系统返回鉴权失败信息,并通知所述适配匹配模块停止处理;如果所述用户标 识有所述服务名对应服务的权限,通知所述适配匹配模块鉴权成功;所述权限数据库,用于存储用户标识及该用户标识有权操作的服务名,供所述鉴权模 块进行查询。
12. —种基于Web服务的统一代理适配系统,其特征在于,包括企业运营系统,统一代理适配装置和若干业务系统;其中,所述企业运营系统,用于将用户提交的包含用户所选服务名的服务请求封装为所述统 一代理适配装置适用格式并发送给所述统一代理适配装置;所述统一代理适配装置,接收所述企业运营系统发来的服务请求,将所述服务请求适 配为与该服务请求所携带服务名对应的业务系统适用的格式,并将所述适配得到的服务请 求发送到所述对应的业务系统。
13.如权利要求12所述的系统,其特征在于,所述统一代理适配装置,用于提供一 Web服务调用接口 ,用于根据所保存的各业务系 统的服务描述语言WSDL将所述Web服务调用接口封装的服务请求适配为与该服务请求所 携带的服务名对应的业务系统适用的格式;根据所保存的服务名与Web服务调用地址的对 应关系,将所述适配后得到的服务请求发送到与该服务请求所携带的服务名对应的业务系 统;所述业务系统,用于根据所述统一代理适配装置发来的服务请求中用户所输入的服务 数据进行业务处理,还用于向所述统一代理适配装置发送WSDL。
全文摘要
本发明公开了一种基于Web服务的统一代理适配方法、装置以及适配系统,应用于包括企业运营系统和若干业务系统的架构,包括在企业运营系统和若干业务系统之间设置统一代理适配装置,统一代理适配装置接收所述企业运营系统发来的封装为所述统一代理适配装置适用格式的服务请求,将所述服务请求适配为与该服务请求所携带服务名对应的业务系统适用的格式并发送到所述对应的业务系统。应用本发明,能够对外提供统一的对接接口,并与代理的各种Web Service服务器进行适配后,进行请求转发,并且能对代理的各种业务的服务进行开启和关闭,并且对业务的权限进行鉴权。
文档编号H04L29/08GK101695076SQ20091017567
公开日2010年4月14日 申请日期2009年9月21日 优先权日2009年9月21日
发明者杨永明, 祝文军 申请人:中兴通讯股份有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1