用于对网络服务通信进行适配的方法、适配器和适配器系统的制作方法

文档序号:7707487阅读:155来源:国知局
专利名称:用于对网络服务通信进行适配的方法、适配器和适配器系统的制作方法
技术领域
本发明总体上涉及对网络服务通信进行适配的领域,更具体地,涉及对不同实体 之间的网络服务通信进行适配的方法、适配器和适配器系统。
背景技术
过去,针对各种业务开发的各种软件都是根据不同原理或功能单独设计出来的, 这些软件之间通常不能通信。需要与多种业务相关的应用的用户(诸如公司或企业等)通 常需要购买多种软件,而由于这些软件之间不能通信,因此对于拥有多个这种软件的用户 而言,不得不在维护“信息孤岛”方面花费大量的人力物力。不仅如此,这些信息之间还可 能存在数据一致性和完整性问题,而且还可能存在大量冗余。为此,近些年引入了面向服务架构(S0A)并广泛应用,其被认为是信息系统架构 的一种样式,能够通过将独立于平台和编程语言的松耦合互操作服务进行组合来创建应用。网络服务是设计用来支持互操作机器通过网络(例如,互联网)与其他机器进行 交互的软件系统。市场上两种流行的网络服务是基于简单对象访问协议(SOAP)的网络服 务和基于表述性状态转移(REST)方式的网络服务。只要在每个软件上实现了经过良好定 义的SOAP网络服务,并且实现以XML格式共享数据的相关组件,诸如企业服务总线(ESB)、 中间件、复合应用等,就为解决现有软件之间的一致性问题提供了可能。尽管软件之间以普遍能够理解的XML格式的“对话”比传统的API编程更加高效, 但是不同软件的网络服务(无论基于SOAP协议的还是REST方式的)通常依据软件设计而 用不同的方法实现。现在将参考图1来描述这种情形。如图所示,客户端应用系统101例 如基于REST方式,而与其通信的第三方系统105例如基于SOAP协议。如果客户端应用系 统101想要与第三方系统105通信,则必须从第三方系统105取回对接口进行描述的、基于 XML的语言(称为网络服务描述语言(Web Services Definition Language, WSDL)),然后 由开发人员根据取回的WSDL编写第三方系统能够理解的网络服务请求110。这种方式增加 了对客户端应用系统101的编程负担。另一方面,图1中从第三方系统105返回给客户端应用系统101的网络服务响应 112的格式是第三方系统能够理解的格式,客户端应用系统101通常不能理解该网络服务 响应112,因此客户端应用系统101就不能享受第三方系统105所提供的网络服务。此外,除了客户端应用系统101与第三方系统105基于不同协议的情况之外,即使 二者基于同样的方法(例如,基于REST方式,或基于S0AP协议),只要通信的规定中存在差 异,它们之间便无法进行通信。

发明内容
因此,需要针对上述情况提供能够在客户端应用系统和第三方系统之间对网络服
5务通信进行适配的方法,以使得在双方都以自己能够理解的格式发送网络服务请求或网络 服务响应时,另一方也能够理解,从而实现有效通信。根据本发明的一个方面,提供了一种在第一实体与第二实体之间对网络服务通信 进行适配的方法,包括将接收自第一实体的网络服务请求转换成第二实体能够理解的网 络服务请求;以及将转换后的网络服务请求发送至第二实体;接收第二实体响应于所述网 络服务请求而返回的网络服务响应;以及将所接收的网络服务响应变换成第一实体能够理 解的网络服务响应;以及将变换后的网络服务响应返回至第一实体。根据本发明的另一方面,提供了一种在第一实体与第二实体之间对网络服务通信 进行适配的适配器,包括请求转换装置,用于将接收自第一实体的网络服务请求转换成第 二实体能够理解的网络服务请求;以及收发装置,用于将转换后的网络服务请求发送至第 二实体,以及接收第二实体响应于所述网络服务请求而返回的网络服务响应;响应变换装 置,用于将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及所述收 发装置还用于将变换后的网络服务响应返回至第一实体。根据本发明的又一方面,提供了一种在第一实体与第二实体之间对网络服务通信 进行适配的适配器系统,包括根据本发明的一个或多个适配器;以及重定向装置,用于根 据来自第一实体的网络服务请求所需的服务,将该网络服务请求分配给所述一个或多个适 配器中相应的一个或多个。利用根据本发明实施方式的适配方法,客户端应用系统能够以自己的格式发送网 络服务请求。利用该适配方法,该客户端应用系统发送的网络服务请求被转换成第三方系 统能够理解的网络服务请求,从而避免了客户端应用系统需要针对不同第三方系统编写符 合其格式要求的网络服务请求的代码负担。而且,利用该适配方法,将第三方系统返回的网 络服务响应变换成客户端应用系统能够理解的网络服务响应,使得客户端应用系统能够理 解第三方系统返回的网络服务响应,从而能够接受第三方系统提供的网络服务,进而实现 有效通信。此外,利用该适配方法,还能够在第三方系统以自己能够理解的格式对数据应 用对象发送网络服务请求,数据应用对象以自己能够理解的格式返回网络服务响应的情况 下,双方也能实现通信。这样,便能够实现从REST方式到另外的REST方式、从REST方式到 SOAP协议、从SOAP协议到REST方式、从SOAP协议到另外的SOAP协议的转换。并且,本发 明并不限于所列举的示例性转换,而是可以应用于任何正在开发的和将来开发的任何通信 协议或方式之间的转换。同样,利用本发明实施方式的适配器,避免了客户端应用系统需要针对不同第三 方系统编写符合其格式要求的网络服务请求的代码负担,并使客户端应用系统能够接受第 三方系统提供的网络服务,进而实现有效通信。此外,利用该适配器,还能够在第三方系统 以自己能够理解的格式对数据应用对象发送网络服务请求,数据应用对象以自己能够理解 的格式返回网络服务响应的情况下,双方也能实现通信。这样,就使得第三方能够与客户端 应用系统和/或数据应用对象通信。在用户已经拥有了一些业务系统的情况下,通过网络 服务适配器可以将已有的这些业务系统与本发明的网络应用系统整合起来,从而节约了用 户公司的资源,避免了重复投资造成的浪费。另外,本发明实施方式的适配器系统为不同客户端应用系统访问各种不同的第三 方系统提供了统一的接口,使得不同客户端应用系统都能够通过向适配器系统的统一地址发送统一格式的网络服务请求来享受各种不同第三方系统所提供的网络服务,而无需考虑 各个适配器和各种第三方系统的具体操作。


图1是现有技术中客户端应用系统与第三方系统交互的示意图;图2是客户端应用系统利用本发明实施方式的适配器与第三方系统交互的示意 图;图3是根据本发明实施方式的总流程图;图4是根据本发明实施方式的转换网络服务请求的流程图;图5a是根据本发明实施方式的应用对象的框图;图5b是示出了根据本发明实施方式的平面结构数据应用对象之间如何链接的图 示;图6是根据本发明实施方式的变换内容的流程图;图7是根据本发明实施方式的适配器的框图;图8是根据本发明实施方式的适配器系统的示意图;以及图9示意性示出了可以实现根据本发明的实施方式的计算设备的结构方框图。
具体实施例方式现在,将首先结合图2参考图3来描述本发明。其中图2示出了客户端应用系统 利用根据本发明实施方式的适配器与第三方系统交互的示意图,图3示出了根据本发明实 施方式的总流程图。参考图3,在步骤301中,将接收自第一实体的网络服务请求转换成第二实体能够 理解的网络服务请求。具体地,在图2中,适配器203将接收自诸如客户端应用系统201的第一实体的网 络服务请求210转换成诸如第三方系统205的第二实体能够理解的网络服务请求210’,其 中网络服务请求210可以是基于简单对象访问协议(SOAP)或表述性状态转移(REST)方式 的网络服务请求。关于转换网络服务请求的具体步骤,将参照图4在下文中详述。适配器203可以运行在支持系统上,并可以根据实现支持系统的技术,利用诸 如.NET、JAVA、PHP、C、C++、Ruby, Python等的适当技术来开发。该支持系统是指以下特征 的组合允许适配器在其上运行的任何平台,例如,操作系统;允许与适配器相关任何信息 和数据驻留在其上的任何数据库管理系统,例如RDBMS,Oracle, DB2, MySQL, MS SQL等;允 许利用诸如 JavaScript、VBScript、· NET、Java、PHP、C、C++、Rub y、Python 等各种编程技 术开发的适配器在其上运行的应用框架;以及允许任何平台、数据库管理系统以及应用框 架运行的设备或者系统。客户端应用系统201可以是能够操控直接或间接运行在任何操作系统上的内容 和布局的任何网络客户端应用。该网络客户端应用201可以是利用或者不利用网络浏览 器来运行的富互联网应用(RIA),例如Flash应用、Java应用、JavaFX应用、Adobe Flex/ AIR应用、Microsoft Silvernight应用等,其中富互联网应用可以运行专用的网络浏览 器插件上,或者经由保证程序安全运行的砂盒(sandbox)来独立运行;或者,可以是例如Javascript应用、VBScript应用等在网络浏览器上运行的脚本应用;或者,可以是以例 如.NET、Java, C、C++、Rub y、Python等各种编程技术开发的直接在操作系统上运行的其 他应用。并且该网络客户端应用可以任何基于网络的应用,其基于Windows操作系统,基于 Linux系统,或者基于其他任何适当的操作系统。该客户端应用系统201甚至可以链接到任 何适当站点(例如公司网站、博客或者是阿里巴巴或易趣等大商业网站等)中的小应用,以 方便使用。例如,用户可以将其产品目录以及在线查询和支付“挂”到它们的合作方网站上 以方便使用。第三方系统205例如是与客户端应用系统201的用户属于共同体的其他方(诸如 该公司的客户、供应商、合作方等)的系统,或者该公司中的其他部门的系统等。第三方系 统205通常是与客户端应用系统201不同的应用,因此它们所采用的网络服务请求和响应 很可能与客户端应用系统201不同。关于本发明的适配器203的具体描述,请参阅此具体实施方式
部分的后续部分。另外,客户端应用系统201可以运行在任何设备或者系统上,只要该设备或系统 能够实现与诸如第三方系统的第二实体之间的通信即可。该设备或者系统可以是个人计算 机,例如台式计算机;手持计算设备,诸如像是iPhone、黑莓、安装了 Window Mobile系统的 手机、智能手机等的移动电话;便携式计算设备,诸如笔记本电脑、上网本电脑;以及工作 站、计算设备网络等。在步骤303中,将转换后的网络服务请求发送至第二实体。具体地,在图2中,取决于第三方系统205所基于的协议,例如SOAP协议或REST 方式,适配器203可以将转换后的网络服务请求制作成符合SOAP协议或REST方式的格式 的网络服务请求210’,随后将其发送至第三方系统205。制作符合SOAP协议或REST方式 的格式的网络服务请求例如包括将转换后的网络服务请求填入符合该格式的网络服务请 求的相应字段中,以及用提供网络服务的第三方系统的地址替换网络服务请求中的适配器 203的地址。这些属于现有技术,并非本发明的关键,所以在此省略其具体描述。在步骤305中,接收第二实体响应于所述网络服务请求而返回的网络服务响应。具体地,在图2中,适配器203接收第三方系统205响应于所述网络服务请求210’ 而返回的网络服务响应212。在步骤307中,将所接收的网络服务响应变换成第一实体能够理解的网络服务响应。具体地,在图2中,适配器203将网络服务响应212变换成第一实体能够理解的网 络服务响应212’。此步骤与转换网络服务请求中可选的变换内容步骤类似,所以请参阅下 面对该变换内容步骤的详细描述。在步骤309中,将变换后的网络服务响应返回至第一实体。具体地,在图2中,适配器203将变换后的网络服务响应212'返回至客户端应用 系统201。接下来,将结合图2参照图4通过具体例子描述转换网络服务请求的过程。参考图4,在步骤401中,识别网络服务请求涉及的操作。如本领域技术人员所知,HTTP方法是方法的有限集合,包括GET、PUT、POST、 DELETE、HEAD、OPTIONS、TRACE 和 CONNECT。在这些方法中,仅 GET、PUT、DELETE 和 POST 涉
8及对服务器上的资源进行操作。基于REST方式的网络服务利用这四种操作,而基于SOAP 协议的网络服务仅利用POST。具体地,假设在图2中基于REST方式的客户端应用系统201发送至适配器 203的网络服务请求210是HTTP网络服务请求,其包括头部,且该头部包括请求行GET HTTP://myhost. com/contactsHTTP 1. 1,其中,GET 是 HTTP 方法字段,HTTP://myhost. com/ contacts是统一资源标识符(URI)(其中myhost. com是适配器203的地址,HTTP 1. 1是 HTTP协议的版本);以及可选地包括诸如登录信息的其他信息。适配器203根据请求行中的HTTP方法字段识别出网络服务请求210是取回请求 (GET),并且其想要从适配器203取回联系人记录的列表(事实上,适配器203将从第三方 系统205取回该列表)。在步骤403中,基于第二实体所使用的操作与所识别的操作之间的对应关系,将 所识别的操作映射为所述第二实体使用的操作。具体地,在图2中,适配器203基于第三方系统205所使用操作与从网络服务请求 210识别出的操作之间的对应关系,将从网络服务请求210识别出的操作映射为第三方系 统205所使用的操作。例如,假设第三方系统205基于SOAP协议、具有成员资源,并且具有以下操作makeMember 用于创建成员;changeMemberlnformation 用于更新成员信息;removeMember 用于删除成员;getMember 用于取回成员;getMemberList 用于取回成员列表。适配器203基于表示取回联系人记录列表的网络服务请求210与第三方系统205 中用于此目的的getMemberList之间的对应关系,将网络服务请求210中的GET操作映射 为在第三方系统205中使用的getMemberList操作。其中,操作之间的对应关系可以由了解第三方系统操作的适配器管理员事先利用 本发明提供的配置器来配置,并可将其存储在适配器可访问的任何存储中,诸如,数据库、 闪存、硬盘、软盘、⑶、DVD等,以供适配器在需要时读取进而使用;或者,可以在进行映射操 作之前的任何时间,从第三方系统取回操作的名称及功能,并基于功能和名称建立对应关 系。而且,适配器的管理员或者第三方系统可以随时利用配置器更新第三方系统使用的操 作名称及功能。其中,本发明的配置器可以是一个配置适配器的工具,用于在适配器中配置通信 双方所使用操作之间的对应关系。它可以与适配器共同打包发布和运行,或作为单独的工 具位于任何可以与适配器通信连接的设备上。在本发明的一个实施例中,配置器可以是一 个图形化的用户工具,以方便管理员对适配器进行配置。配置器可以同时显示客户端应用 系统的操作与第三方系统的操作。适配器的管理员可以例如通过简单地“点击”来选择客 户端应用系统的其中一个操作,再将其“连线”或“拖动”到第三方系统的另一个操作来定 义两个操作之间的对应关系,从而实现该适配器在转换网络服务请求时将要使用的信息配 置。在另一个可选的实施例中,配置器也可以是一个简单的文本编辑器,用来编辑配置文件 以描述适配器中通信双方所使用操作之间的对应关系。应当理解,配置器可以是能够编辑配置信息的任何工具。然而,需要说明的是,对操作之间的对应关系进行配置的方式仅仅是用于说明目 的的示例性实例,本发明并不仅限于此,而是还可以在应用开发过程中由开发人员通过编 写代码的方式来配置这些对应关系,或者以其他任何能够实现对应关系配置的适当方式来配置。另外,还需要说明的是,在上文中描述的图形化用户工具形式的配置器以及文本 编辑器形式的配置器也仅仅是用于说明目的的示例性实例,本发明并不仅限于此,配置器 可以是能够实现对这些对应关系进行配置的任何装置。在步骤405中,从该网络服务请求提取登录信息,以根据认证信息对该网络服务 请求进行认证。具体地,在图2中,适配器203从网络服务请求210中提取登录信息(例如,用户 名、密码等),并将其与认证信息进行匹配,以在匹配的情况下,允许客户端应用系统201通 过适配器203对第三方系统205提供的网络服务进行访问;而在不匹配的情况下,不允许客 户端应用系统201通过适配器203对第三方系统205提供的网络服务进行访问。其中,认证信息可以由了解第三方系统登录权限规定的适配器管理员依然使用本 发明的配置器来事先配置,并可以将其存储在适配器可访问的任何存储中,诸如,数据库、 闪存、硬盘、软盘、CD、DVD等,以供适配器在需要时读取进而使用;或者,可以在认证之前的 任何时间,从第三方系统取回认证信息。而且,适配器的管理员或者第三方系统可以随时更 新第三方系统的登录权限规定。其中,本发明的配置器用来配置第三方系统针对要登录其的其他系统的认证信 肩、ο需要注意的是,在无需考虑安全性的情况下,第三方系统205并非必须要对客户 端应用系统的登录信息进行认证,也就是说,步骤405是可选步骤。由于表示取回联系人记录列表的HTTP网络服务请求210并不包括实体部,因此, 至此已完成了对网络服务请求210 (GET)的转换。类似地,利用上述步骤,可以完成对其他 HTTP网络服务请求的转换,这些网络服务请求包括表示取回一条联系人记录的HTTP网络 服务请求(GET)和删除资源的HTTP网络服务请求(DELETE)。进一步地,对于包括实体部的HTTP网络服务请求PUT (用于将实体部中的数据存 储在服务器端或利用其修改服务器端的已有资源)和POST(用户利用实体部中的数据创建 新资源),还需要执行步骤407。在步骤407,基于第二实体能够理解的内容格式与该网络服 务请求携带的内容格式之间的对应关系,将该网络服务请求携带的内容格式变换为所述第 二实体能够理解的内容格式。下面,将通过具体示例并参照图6描述用于进行内容格式转换的步骤407。在下面 给出的示例中,将参照一种基于平面结构存储方式的应用对象的应用环境进行描述。首先,参照图5a和图5b来简要描述这种应用对象。图5a和图5b分别是根据本 发明实施方式的基于平面结构存储方式的应用对象的框图以及应用对象之间如何链接的 图示。在图5a中,示出了应用对象500,其包括平面结构数据单元501,专用于存储特定 类型数据,诸如联系人信息、订单信息、项目信息、与应用相关的配置信息等中的一种。在应用对象用于存储普通业务数据时,其充当为客户端应用系统提供数据服务的功能,因此也 可以将其称为“数据应用对象”,而在其存储用于客户端应用系统的配置信息时,可以将其 称作“平台”。应用对象500还包括关系存储单元502,用于存储各个应用对象中平面结构数据 单元的数据之间关系;和应用代码模块503,用于响应于网络服务请求,针对平面结构数据 单元和关系存储单元内的信息执行操作。如图5a所示,应用对象500运行在支持系统590上,该支持系统590是指以下特征 的组合允许应用对象500在其上运行的任何平台,例如,操作系统;允许平面结构数据单 元501和关系存储单元502驻留在其上的任何数据库管理系统,例如RDBMS,Oracle, DB2, MySQL, MS SQL 等;允许利用诸如 JavaScript、VBScript、· NET、Java、PHP、C、C++、Ruby、 Python等各种编程技术开发的应用代码模块503在其上运行的应用框架;以及允许任何平 台、数据库管理系统以及应用框架运行的设备或者系统。在图5b中,示出了数据应用对象510、520,其中数据应用对象510包括平面结构 数据单元511、链接表512和应用代码模块513,数据应用对象520包括平面结构数据单元 521、链接表522和应用代码模块523 ;还示出了可选的中心链接表530,其例如可以存储在 “平台”中。其中,平面结构数据单元511和521用于存储特定类型的信息,并且可以是诸如简 单的XML文件,或者可以是诸如MySQL、MSSQL、Oracle, DB2等关系型数据库中的单个逻辑 表结构(尽管在物理上该平面结构数据单元可以通过在不同的位置储存的表来实现)。根 据本发明,每个应用对象中的平面结构数据单元511和521专用于存储一种特定类型的数 据,即,不同类型的数据存储在不同应用对象的平面结构数据单元中,且不同应用对象的平 面结构数据单元中存储的数据类型互不相同。但与传统的关系型数据库不同,平面结构数 据单元中存储的数据与其他应用对象的平面结构数据单元中存储的数据之间的关系并不 是通过诸如在表中加入诸如外键来表示,而是通过平面结构数据应用对象中包括的链接表 来表示。这样,一个平面结构数据单元便可仅存储相同类别的信息,而不同类别信息之间的 链接可以单独存储在链接表中。例如,平面结构数据单元511用于存储账户信息,而平面结 构数据单元521用于存储联系人信息。应用代码模块513和523分别用于接收客户端应用系统针对平面结构数据单元 511和521和链接表512、522内的信息进行操作的网络服务请求,并针对这些网络服务请求 执行基本操作,例如,创建、取回、更新和删除。链接表512和522分别用于存储平面结构数据应用对象510、520的平面结构数据 单元中的数据与其它这种数据应用对象的平面结构数据单元中的数据之间的链接信息。中心链接表530优选地也存储与上述链接表512和522相应的链接信息,以用于 功能性目的或者维护目的,例如当链接表512或522中的链接信息丢失时,用于恢复丢失的 链接信息。例如,如果平面结构数据单元521内存储的第一条记录Joe Ma隶属于平面结构数 据单元511内存储的第一条记录company A(公司A),S卩,二者具有链接关系,则链接表512 中便有表示二者链接关系的一条记录,该记录包括记录company A的标识、数据应用对象 520的标识和记录Joe Ma的标识。同样地,在链接表522中也会有表示二者链接关系的一
11条记录,只不过该记录包括记录Joe Ma的标识、数据应用对象510的标识和记录Company A 的标识。可选地,中心链接表530中包括数据应用对象510的标识、记录Company A的标识、 数据应用对象520的标识和记录Joe Ma的标识。需要说明的是,链接表只是用于存储各个平面结构数据单元的数据之间关系的关 系存储单元的一个实例。本发明并不局限于此,也可以采用其他任何适当的技术来存储这 些链接记录,诸如可以采用像是XML文件等文件形式,只要能够保存下这些链接信息即可。 关于实现链接记录存储的其他技术相关的细节,对于本领域技术人员是已知的,此处不再 赘述。利用这种平面结构的数据应用对象,能够保证数据库的良好扩展性,用户可以为 任意类型的信息创建单个逻辑表;在需要将两条记录链接起来时,可以通过分别在与这两 个平面结构数据单元对应的两个链接表中存储这样的两条记录、以及优选地还在中心链接 表中加入如上所述的链接记录,来建立两个记录的链接关系,从而将两条记录链接起来;以 及在两条记录之间不再存在联系的时候,简单地通过删除链接表中的记录便能实现链接关 系的解除。若平面结构数据单元与关系存储单元都是XML文件,则每一个这种文件都仅存储 一种特定类型的数据或者存储具有链接关系的不同类型信息之间的链接关系,因而可将这 种XML文件称为平面结构格式的单层XML结构。这种将每一种类型的信息存储在单独的 XML结构中的优势与在数据库中利用单个逻辑表结构的优势类似,例如,单独的XML结构具 有良好的扩展性、在XML结构中存储的信息之间松耦合、可以通过简单地在表示链接关系 的XML结构中添加记录或者删除记录而实现信息之间的链接或去链接。关于平面结构数据应用对象的具体信息,可参照与本发明同时提交的、申请人为 “谭家辉”的、申请号为“ ”的、发明名称为“面向服务的应用系统及其通信方法、创建器和 创建方法”的专利申请。在利用基于REST方式或SOAP协议的HTTP网络服务请求对这种数据应用对象中 的数据进行操作时,客户端应用系统优选地利用上述平面结构格式的单层XML结构。如果 数据应用对象采用的是平面结构格式的单层XML结构,则更适于使用这种平面结构格式的 单层XML结构。在这样的应用环境中,客户端应用系统为了方便,通常会统一利用这样的XML结 构来向数据应用对象和第三方系统请求网络服务。由于第三方系统不一定会采用这种XML 结构,所以利用本发明提供的适配器,可以将第三方系统发送的HTTP网络服务请求或者返 回的HTTP网络服务响应变换成采用这种XML结构的客户端应用系统或平面结构数据应用 对象能够理解的平面结构格式的单层XML结构,以对它们之间的网络服务通信进行适配。需要说明的是,根据本发明,第一实体可以是客户端应用系统或数据应用对象,也 可以是第三方系统;相应地,第二实体可以是第三方系统,也可以是客户端应用系统或数据 应用对象。本发明提供的适配器可以是位于服务器端的单独的实体,或者可以与客户端应用 系统、第三方系统或者数据应用对象集成在一起。在上文中,已经参照图5a和图5b描述了基于平面结构存储方式的应用对象的应用环境。接下来,将以上面描述的应用环境为例继续对用于变换内容的步骤407进行详细 地说明。如本领域技术人员所知,HTTP网络服务请求的实体部可以携带任何格式的数据, 而在下文中将仅以所携带的是XML结构的内容(以下简称XML内容)为例,来描述如何对 网络服务请求的内容进行变换。示例 1 例如,网络服务请求210中携带的、符合平面结构格式的单层XML结构的XML内容 如下<our_flat_structure_record><name>Johnny Tong</name><age>39</age></our_flat_structure_record>。其中our_flat_structure_record是表示一条记录的标签,其命名仅出于示例性 目的,而非限制。利用此平面结构格式的单层XML结构的客户端应用系统可以任意定义所 使用的标签。优选地,所有的适配器都使用相同的标签,以便为客户端应用系统提供统一的 便捷接口。其中,标签name和age分别表示联系人的姓名与年龄。第三方系统205理解的内容格式为<Member><FullName>(a)</Fu11Name)<Age>ibl</Age></Member>。其中,第三方系统205使用的标签Member、FulIName和Age分别表示成员、联系人 的姓名与年龄。需要注意,这些标签的命名仅用于示例,而非限制;相反,第三方系统可以使 用任何自己定义的标签。在步骤601中,从内容中解析出数据。具体地,适配器203从网络服务请求210中携带的XML内容解析出平面结构格式 的数据name Johnny Tongage :39。在步骤603中,基于解析出的数据和第二实体能够理解的内容格式与该网络服务 请求携带的内容格式之间的对应关系,生成第二实体能够理解的内容格式的内容。具体地,基于网络服务请求210中的标签name、age分别与第三方系统205能够理 解的标签FullName、Age之间的对应关系,适配器203得知网络服务请求210中的Johrmy Tong应当填入第三方系统205内容格式的(a)字段内,39应当填入(b)字段内,随后基于 此对应关系和数据,生成第三方系统205能够理解的XML内容〈Member〉<FullName>Johnny Tong</FulIName><Age>39</Age>〈/Member〉。
与上文中描述的配置操作对应关系类似,客户端应用系统所使用的内容格式与 第三方系统能够理解的内容格式之间的对应关系可以由了解第三方内容格式的适配器管 理员使用本发明的配置器事先配置并存储在适配器可访问的任何存储中,诸如,数据库、闪 存、硬盘、软盘、CD、DVD等,以供适配器在需要时读取进而使用;或者,可以在变换内容之前 的任何时间,从第三方系统取回第三方系统能够理解的内容格式,并将其与客户端应用系 统所使用的内容格式建立对应关系。而且,适配器的管理员或者第三方系统可以随时更新 第三方系统能够理解的内容格式。
其中,本发明的配置器用于在适配器中配置通信双方所使用的内容格式之间的对 应关系。它可以与适配器共同打包发布和运行,或作为单独的工具位于任何与适配器通信 连接的设备上。在本发明的一个实施例中,配置器可以是一个图形化的用户工具,以方便管 理员对适配器进行配置。配置器可以同时显示客户端应用系统的所使用的内容格式与第三 方系统所使用的内容格式。适配器的管理员可以例如通过简单地“点击”来选择客户端应 用系统一个内容格式,再将其“连线”或“拖动”到第三方系统的另一个内容格式来定义内 容格式之间的对应关系,实现该适配器在转换内容时将要使用的信息配置。在另一个可选 的实施例中,配置器也可以是一个简单的文本编辑器,用来编辑配置文件以用于描述适配 器中通信双方所使用内容格式之间的对应关系。应当理解,配置器可以是能够编辑配置信 息的任何工具。然而,需要说明的是,上述对内容格式之间的对应关系进行配置的方式仅仅是用 于说明目的的示例性实例,本发明并不仅限于此,而是还可以在应用开发过程中由开发人 员通过编写代码的方式来配置这些对应关系,或者以其他任何能够实现对应关系配置的适 当方式来配置。另外,还需要说明的是,在上文中描述的图形化用户工具形式的配置器以及文本 编辑器形式的配置器也仅仅是用于说明目的的示例性实例,本发明并不仅限于此,配置器 可以是能够实现对这些对应关系进行配置的任何装置。可以理解,如果在示例1中的客户端应用系统201采用了第三方系统205的内容 格式,而第三方系统205使用了平面结构格式的单层XML结构,则上述转换依然能够实现, 只是将源格式和目标格式颠倒而已。示例2:例如,网络服务请求210中携带有符合平面结构格式的单层XML结构的如下三段 XML内容<our_flat_structure records)<our_flat_structure_record><ID>1</ID><CompanyName>CompanyA</CompanyName></our_flat_structure_record><our_flat_structure_record><ID>2</ID><CompanyName>CompanyB</CompanyName></our_flat_structure_record>
</our—flat—structure—records〉〈our—flat—structure—records〉〈our—flat—structure—record><ID>1</ID>
〈Name〉Joe Ma〈/Name><Phone>91234567<Phone></our—flat—structure—record>〈our—flat—structure—record><ID>2</ID><Name>Mary To</Name><Phone>31234567<Phone></our—flat—structure—record></our—flat—structure—records〉〈our—flat—structure—1inks><our_flat_structure_link><ID>1</ID><FirstID>l</FirstID><first_flat_structure_type>Account</first_flat_structure_type><SecondID>l</SecondID>〈second—flat—structure—type>Contact〈/second—flat—structure—type></our—flat—structure—1ink><our_flat_structure_link><ID>2</ID><FirstID>2</FirstID><first_flat_structure_type>Account</first_flat_structure_type><SecondID>2</SecondID>〈second—flat—structure—type>Contact〈/second—flat—structure—type></our—flat—structure—1ink></our—flat—structure—1inks>其中,第一段XML内容存储的是关于账户Account的信息;第二段XML内容存储的 是关于联系人Contact的信息;第三段XML内容存储的是账户和联系人之间链接关系的信
肩、O需要注意,标签 our_f lat_structure_records>our_f lat_structure_links>our_ flat_structure_link> FirstID、first_flat_structure_type> SecondID、second_flat_ structure—type、CompanyName、Name、Phone分别表示数据记录集合、链接关系集合、一个链 接关系、链接关系涉及的一种数据的标识、链接关系涉及的一种数据的类型、链接关系涉及 的另一种数据的标识、链接关系涉及的另一种数据的类型、公司名称、联系人名称和电话, 这些标签仅出于示例性目的,而非限制。使用此平面结构格式的单层XML结构的客户端应 用系统可以任意定义所使用的标签。优选地,所有的适配器都使用相同的标签,以便为客户端应用系统提供统一的便捷接口。第三方系统205能够理解的格式为<Accounts><Account><ID>1</ID><CompName>(a)</CompName><Contacts>〈Contact〉<ID>1</ID><Name> (b) </Name><Phone> (c) </Phone>〈/Contact〉</Contacts>〈/Account〉〈/Accounts〉其中第三方系统 205 能够理解的标签 Accounts、Account、CompName、Contacts、 C0ntact、Name、Ph0ne分别表示账户集合、一个账户、公司名称、联系人集合、一个联系人、联 系人姓名和电话。对于该示例,在步骤601中从内容中解析出数据包括步骤基于内容中携带的、描 述数据之间链接关系的信息,解析出数据。具体地,基于表示账户和联系人之间链接关系的第三段XML内容解析数据。解析 出的平面结构格式的数据为CompanyName Company A-Name Joe Ma-Phone =91234567CompanyName Company B| -Name :Mary To-Phone 31234567随后,在步骤603中,具体地,适配器203基于解析出的数据和网络服务请求210 中的标签CompanyName、Name、Phone分别与第三方系统205能够理解的标签CompName、 Name、Phone之间的对应关系,生成第三方系统205能够理解的XML内容<Accounts><Account><ID>1</ID><CompName>Company A</CompName><Contacts><Contact><ID>1</ID><Name>Joe Ma</Name>
16<Phone>91234567</Phone> </Contact> <Contacts> </Account> <Account> <ID>1</ID>
<CompName>Company B</CompName> <Contacts> <Contact> <ID>1</ID>
<Name>Mary To</Name> <Phone>31234567</Phone> </Contact> <Contacts> </Account> </Accounts> 示例3
例如,网络服务请求210中携带的、符合平面结构格式的单层XML结构的XML内容
<Accounts> <Account> <ID>1</ID>
<CompName>Company A</CompName> <Contacts> <Contact> <ID>1</ID> <Name>Joe Ma</Name> <Phone>91234567</Phone> </Contact> <Contacts> </Account> <Account> <ID>1</ID> <CompName>Company B</CompName> <Contacts> <Contact> <ID>1</ID>
<Name>Mary To</Name> <Phone>31234567</Phone>
10
CN
2 3〈/Contact〉<Contacts>〈/Account〉〈/Accounts〉对于该示例,在步骤601中从内容中解析出数据还包括步骤识别数据之间的层 次关系。并且,在步骤603生成第二实体能够理解的内容格式的内容包括基于解析出的数 据和第二实体能够理解的内容格式与该网络服务请求携带的内容的格式之间的对应关系 和数据之间的层次关系,为每一层数据创建第一实体能够理解的内容格式的、包含数据的 内容,以及为具有层次关系的不同层数据之间的层次关系创建第一实体能够理解的内容格 式的、包含链接关系的内容。具体地,从网络服务请求210中识别关键标签,即,能够表示出数据之间层次关系 的标签,在此示例中这些关键标签包括用于一组账户的Accounts、用于一条账户记录的 Account、用于一组联系人的Contacts和用于一条联系人记录的Contact。基于识别的结果,得知关键标签之间的层次关系,即Accounts包含Account、 Account 包含 Contacts,而 Contacts 包含 Contact。基于关键标签之间的层次关系,识别出树状结构的数据
Accounts -Account -ID 1
-CompName Company A -Contacts -Contact "ID:1
|-Name Joe Ma -Phone 91234567
-Account -ID 2
-CompName Company B -Contact "ID:1
| -Name :Mary To -Phone 31234567 之后,按如下顺序读取该树状结构的数据
找至丨J Accounts ;
在Accounts中,找至丨J Account的位置;
为每个Account,创建平面结构格式的单层XML结构,其具有标识和CompName ; 在 Account 中,找至丨J Contacts ; 在Contacts中,找到Contact的位置;
为每个Contact,创建平面结构格式的单层XML结构,其具有标识、Name和Phone ;7.为Contact与Account的链接关系创建平面结构格式的单层XML结构。基于上述过程,得到的符合平面结构格式的单层XML结构的三段XML内容如下〈our—flat structure records)〈our—flat structure record)<ID>1</ID><CompanyName>CompanyA</CompanyName>〈/our—flat—structure—record>〈our—flat—structure—record><ID>2</ID><CompanyName>CompanyB</CompanyName>〈/our—flat—structure—record>〈/our—flat—structure—records〉〈our—flat—structure—records〉〈our—flat—structure—record><ID>1</ID><Name>Joe Ma〈/Name><Phone>91234567<Phone>〈/our—flat—structure—record>〈our—flat—structure—record><ID>2</ID><Name>Mary To</Name><Phone>31234567<Phone></our—flat—structure—record>〈/our—flat—structure—records〉<our_flat_structure 1inks><our_flat_structure_link><ID>1</ID><FirstID>l</FirstID><first_flat_structure_type>Account</first_flat_structure_type><SecondID>l</SecondID>〈second—flat—structure—type>Contact〈/second—flat—structure—type></our_flat_structure_link>
<our_flat_structure_link><ID>2</ID><FirstID>2</FirstID><first_flat_structure_type>Account</first_flat_structure_type><SecondID>2</SecondID>〈second—flat—structure—type>Contact〈/second—flat—structure—t
19
ype></our_flat_structure_link></our_flat_structure_links>其中,第一段XML内容存储的是关于账户Account的信息;第二段XML内容存储的 是关于联系人Contact的信息;第三段XML内容存储的是账户和联系人之间链接关系的信 肩、o之后,第三方系统205便能够将第一段XML内容存储的信息、第二段XML内容存储 的信息分别存入关于账户的数据应用对象和关于联系人的数据应用对象。例如,如果平面 结构数据单元采用的是数据库中单个逻辑表结构,则可以将XML内容中的信息解析出来; 如果数据库中已存在针对这种信息的单个逻辑表,则将解析出的信息写入该单个逻辑表 中,如果数据库中不存在针对这种信息的单个逻辑表,则为其创建单个逻辑表,并将解析出 的信息写入该单个逻辑表中。如果数据应用对象采用的是平面结构格式的单层XML结构, 则在已存在针对这种信息的XML结构的情况下,从XML内容中解析出数据,并将解析出的数 据写入该XML结构,否则,直接将该XML内容作为数据应用对象中的数据单元。并且,第三方系统205基于第三段XML内容中存储的链接信息,将相应的链接关系 存入关于账户的数据应用对象的链接表与关于联系人的数据应用对象的链接表中。备选地,第三方系统205可以将相应的链接关系存储于中心链接表,而后利用中 心链接表将各个链接关系填入各个相关数据应用对象的链接表中。至此,仅以XML作为示例说明了内容转换的几种情况,但是,本领域技术人员应当 理解,可以对任何经过良好定义的、没有多义性的任何格式(其可以被提取为列表记录或 单个记录),即,逗号分隔型取值格式(CSV)文件进行上述转换。这可以通过利用更多的解 析器得以实现。并且,利用上述文件之间转换的原理,可以轻易地实现多层XML结构到多层XML结 构的变换。例如,可以从一种多层XML结构解析数据,并基于所使用标签之间的映射关系和 解析出的数据,生成另一种XML结构。需要说明的是,由于网络服务响应中通常包含的是内容,因此图3中的步骤307中 对网络服务相应的变换,即,将接收自第二实体的网络服务响应变换成第一实体能够理解 的网络服务响应,同样涉及对内容格式进行变换。因此,参照上述结合示例1-3所述示例性 过程便可实现类似的内容格式变换,因此不再赘述。接下来,参照图7来描述本发明适配器的结构。在图7中,适配器700包括请求转 换装置710,用于将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务 请求;收发装置730,用于将转换后的网络服务请求发送至第二实体,以及接收第二实体响 应于所述网络服务请求而返回的网络服务响应;响应变换装置720,用于将所接收的网络 服务响应变换成第一实体能够理解的网络服务响应;其中收发装置730还用于将变换后的 网络服务响应返回至第一实体。可选地,适配器700还可以包括配置器740,用于配置第二实体所使用的操作与 第一实体所使用的操作之间的对应关系;配置第一实体能够理解的响应格式与第二实体能 够理解的响应格式之间的对应关系;配置第二实体能够理解的内容格式与第一实体能够理 解的内容格式之间的对应关系。
20
其中,第一实体能够理解的响应格式与第二实体能够理解的响应格式之间的对应 关系与第二实体能够理解的内容格式与第一实体能够理解的内容格式之间的对应关系为 同一对应关系,只不过将源方与目的方互换而已。请求转换装置710可以进一步包括操作映射装置711,用于识别该网络服务请求 涉及的操作;基于第二实体所使用的操作与所识别的操作之间的对应关系,将所识别的操 作映射为所述第二实体使用的操作。可选地,请求转换装置710还可以包括以下之一内容变换装置715,用于基于第 二实体能够理解的内容格式与该网络服务请求携带的内容格式之间的对应关系,将该网络 服务请求携带的内容格式变换为所述第二实体能够理解的内容格式;认证装置713,用于 从该网络服务请求提取登录信息,以根据认证信息对该网络服务请求进行认证。内容变换装置715包括解析数据装置7151,用于从所述内容中解析出数据;和生 成内容装置7153,用于基于解析出的数据和第二实体能够理解的内容格式与该网络服务请 求携带的内容格式之间的对应关系,生成第二实体能够理解的内容格式的内容。响应变换装置720包括数据解析装置721,用于从所述网络服务响应中解析出数 据;和响应生成装置723,用于基于解析出的数据和第一实体能够理解的响应格式与所接 收的响应格式之间的对应关系,生成第一实体能够理解的响应格式的网络服务响应。需要注意,虽然在图7中将内容变换装置715与响应变换装置720示出为单独的 组件,但是,二者可以为单个组件,即,解析数据装置7151可以与数据解析装置721是同一 组件,生成内容装置7153可以与响应生成装置723是同一组件。同样地,适配器700中的任何组件都可以进行任意组合,只要能够完成适配器700 的各种功能即可。关于适配器700及其组成部件的具体操作可以参考上面结合图2至图6 对本发明提供的方法的详细描述。另外,本发明还提供了一种适配器系统,接下来将参考图8来描述根据本发明实 施方式的适配器系统800。在图8中,适配器系统800包括根据本发明实施方式的适配器Slla-Slln ;和重定 向装置810,用于根据来自客户端应用系统801a-801n的网络服务请求所需的网络服务,将 这些网络服务请求分配给一个或多个适配器Slla-Slln中相应的一个或多个,以进行相应处理。而后,从第三方系统803a-803n响应于这些网络服务请求返回的网络服务响应同 样可以经由相应的适配器进行变换,随后经由重定向装置810或者不经由重定向装置810 返回发出网络服务请求的客户端应用系统。通过本发明提供的适配器系统,可以为访问各种不同的第三方系统的不同客户端 应用系统提供统一的接口,使得不同客户端应用系统都能够通过向统一地址发送统一格式 的网络服务请求来享受各种不同第三方系统所提供的网络服务,而无需考虑各个适配器和 各种第三方系统的具体操作。下面,将参考图9来描述可以实现本发明的计算机设备。图9示意性示出了可以 实现根据本发明的实施例的计算设备的结构方框图。图9中所示的计算机系统包括CPU(中央处理单元)901、RAM(随机存取存储 器)902、R0M(只读存储器)903、系统总线904、硬盘控制器905、键盘控制器906、串行接口控制器907、并行接口控制器908、显示器控制器909、硬盘910、键盘911、串行外部设备 912、并行外部设备913、显示器914以及网络适配器915。在这些部件中,与系统总线904相 连的有CPU 90URAM 902,ROM 903、硬盘控制器905、键盘控制器906、串行接口控制器907、 并行接口控制器908、显示器控制器909以及网络适配器915。硬盘910与硬盘控制器905 相连,键盘911与键盘控制器906相连,串行外部设备912与串行接口控制器907相连,并 行外部设备913与并行接口控制器908相连,以及显示器914与显示器控制器909相连,而 网络接口控制器915允许该计算机系统访问诸如互联网的计算机网络。图9所述的结构方框图仅仅为了示例的目的而示出的,并非是对本发明的限制。 在一些情况下,可以根据需要添加或者减少其中的一些设备,例如用于实现本发明的计算 机设备可以并不具有显示器、键盘等输入/输出设备。此外,本发明的实施例可以以软件、硬件或者软件和硬件的结合来实现。硬件部分 可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微 处理器或者专用设计硬件来执行。尽管此说明书包含很多细节,但是这些细节并不应解释为对所公开内容或者权利 要求的范围的限制,而只是对特定于本公开的具体实现的特征的描述。在此说明书中以单 独实现的上下文描述的某些特征还可以组合起来在单个实现中实现。相反地,在单个实现 的上下文中描述的各种特征还可以在分离的多个实现或者任何合适的子组合中实现。而 且,尽管特征可以如上所述描述为在某些组合进行动作并且甚至最初这样要求保护,但是 来自所要求组合中的一个或多个特征可以在某些情况中从组合中删除,并且所要求的组合 可以指向子组合或者子组合的变体。类似地,尽管附图中以具体顺序描绘了操作,但是这不应该理解为为了达到预期 的效果而要求这种操作以所示的具体顺序或者以顺序方式执行,或者要求执行所示出的所 有操作。在某些情况中,多任务和并行处理具有优势。而且,在上述描述的实现中的各种系 统组件的分离不应当理解为在所有实现中要求这种分离,并且应当理解,所描述的程序组 件和系统通常可以集成在单个软件产品中或者打包成为多个软件产品。虽然已经参考目前考虑到的实施例描述了本发明,但是应该理解本发明不限于所 公开的实施例。相反,本发明旨在涵盖所附权利要求的精神和范围之内所包括的各种修改 和等同布置。以下权利要求的范围符合最广泛解释,以便包含所有这样的修改及等同结构 和功能。
2权利要求
一种在第一实体与第二实体之间对网络服务通信进行适配的方法,包括将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及将转换后的网络服务请求发送至第二实体;接收第二实体响应于所述网络服务请求而返回的网络服务响应;将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及将变换后的网络服务响应返回至第一实体。
2.根据权利要求1所述的方法,其中,所述转换网络服务请求包括 识别该网络服务请求涉及的操作;基于第二实体所使用的操作与所识别的操作之间的对应关系,将所识别的操作映射为 所述第二实体使用的操作。
3.根据权利要求2所述的方法,还包括基于第二实体能够理解的内容格式与该网络服务请求携带的内容格式之间的对应关系,将该网络服务请求携带的内容格式变换为所述第二实体能够理解的内容格式。
4.根据权利要求2所述的方法,还包括从该网络服务请求提取登录信息,以根据认证信息对该网络服务请求进行认证。
5.根据权利要求1或3所述的方法,其中所述变换网络服务响应包括从所述网络服务响应中解析出数据;并基于解析出的数 据和第一实体能够理解的响应格式与所接收的响应格式之间的对应关系,生成第一实体能 够理解的响应格式的网络服务响应;所述变换内容包括从所述内容中解析出数据;并基于解析出的数据和第二实体能够 理解的内容格式与该网络服务请求携带的内容格式之间的对应关系,生成第二实体能够理 解的内容格式的内容。
6.根据权利要求5所述的方法,其中从所述网络服务响应中解析出数据包括基于所述网络服务响应中携带的、描述数据 之间链接关系的信息,解析出数据;从所述内容中解析出数据包括基于所述内容中携带的、描述数据之间链接关系的信 息,解析出数据。
7.根据权利要求5所述的方法,其中,从所述网络服务响应中解析出数据还包括识别 数据之间的层次关系;生成第一实体能够理解的响应格式的网络服务响应包括还基于数 据之间的层次关系,为每一层数据创建第一实体能够理解的响应格式的、包含数据的网络 服务响应,以及为具有层次关系的不同层数据之间的层次关系创建第一实体能够理解的响 应格式的、包含链接关系的网络服务响应;从所述内容中解析出数据还包括识别数据之间的层次关系;生成第二实体能够理解的 内容格式的内容包括还基于数据之间的层次关系,为每一层数据创建第二实体能够理解 的内容格式的、包含数据的内容,以及为具有层次关系的不同层数据之间的层次关系创建 第二实体能够理解的内容格式的、包含链接关系的内容。
8.根据权利要求6或7所述的方法,其中所述具有数据之间链接关系的网络服务响应 或内容基于平面结构格式的单层XML结构。
9.根据权利要求2、4或5所述的方法,还包括以下其中至少之配置第二实体所使用的操作与第一实体所使用的操作之间的对应关系; 配置认证信息;配置第一实体能够理解的响应格式与第二实体能够理解的响应格式之间的对应关系;和配置第二实体能够理解的内容格式与第一实体能够理解的内容格式之间的对应关系。
10.根据权利要求1所述的方法,其中,第一实体是客户端应用系统或数据应用对象,第二实体是第三方系统;或 第一实体是第三方系统,第二实体是客户端应用系统或数据应用对象。
11.一种在第一实体与第二实体之间对网络服务通信进行适配的适配器,包括请求转换装置,用于将接收自第一实体的网络服务请求转换成第二实体能够理解的网 络服务请求;以及收发装置,用于将转换后的网络服务请求发送至第二实体,以及接收第二实体响应于 所述网络服务请求而返回的网络服务响应;响应变换装置,用于将所接收的网络服务响应变换成第一实体能够理解的网络服务响 应;以及所述收发装置还用于将变换后的网络服务响应返回至第一实体。
12.根据权利要求11所述的适配器,其中,所述请求转换装置包括操作映射装置,用于识别该网络服务请求涉及的操作;基于第二实体所使用的操作与所识别的操作之间的对应关系,将所识别的操作映射为 所述第二实体使用的操作。
13.根据权利要求12所述的适配器,其中,所述请求转换装置还包括内容变换装置,用于基于第二实体能够理解的内容格式与该网络服务请求携带的内容格式之间的对应关 系,将该网络服务请求携带的内容格式变换为所述第二实体能够理解的内容格式。
14.根据权利要求12所述的适配器,其中,所述请求转换装置还包括认证装置,用于 从该网络服务请求提取登录信息,以根据认证信息对该网络服务请求进行认证。
15.根据权利要求11或13所述的适配器,其中所述响应变换装置包括数据解析装置,用于从所述网络服务响应中解析出数据;和响 应生成装置,用于基于解析出的数据和第一实体能够理解的响应格式与所接收的响应格式 之间的对应关系,生成第一实体能够理解的响应格式的网络服务响应;所述内容变换装置包括解析数据装置,用于从所述内容中解析出数据;和生成内容装 置,用于基于解析出的数据和第二实体能够理解的内容格式与该网络服务请求携带的内容 格式之间的对应关系,生成第二实体能够理解的内容格式的内容。
16.根据权利要求15所述的适配器,其中所述数据解析装置还用于基于所述网络服务响应中携带的、描述数据之间链接关系的 信息,解析出数据;所述解析数据装置还用于基于所述内容中携带的、描述数据之间链接关系的信息,解 析出数据。
17.根据权利要求15所述的适配器,其中,所述数据解析装置还用于识别数据之间的 层次关系,所述响应生成装置还用于还基于数据之间的层次关系,为每一层数据创建第一 实体能够理解的响应格式的、包含数据的网络服务响应,以及为具有层次关系的不同层数 据之间的层次关系创建第一实体能够理解的响应格式的、包含链接关系的网络服务响应;所述解析数据装置还用于识别数据之间的层次关系,所述生成内容装置还用于还基 于数据之间的层次关系,为每一层数据创建第二实体能够理解的内容格式的、包含数据的 内容,以及为具有层次关系的不同层数据之间的层次关系创建第二实体能够理解的内容格 式的、包含链接关系的内容。
18.根据权利要求16或17所述的适配器,其中所述具有数据之间链接关系的网络服务 响应或内容基于平面结构格式的单层XML结构。
19.根据权利要求12、14或15所述的适配器,还包括配置器,用于以下其中至少之一 配置第二实体所使用的操作与第一实体所使用的操作之间的对应关系;配置认证信息;配置第一实体能够理解的响应格式与第二实体能够理解的响应格式之间的对应关系;和配置第二实体能够理解的内容格式与第一实体能够理解的内容格式之间的对应关系。
20.根据权利要求11所述的适配器,其中,第一实体是客户端应用系统或数据应用对象,第二实体是第三方系统;或 第一实体是第三方系统,第二实体是客户端应用系统或数据应用对象。
21.根据权利要求20所述的适配器,其中所述适配器可以与客户端应用系统、第三方 系统或者数据应用对象集成在一起。
22.—种在第一实体与第二实体之间对网络服务通信进行适配的适配器系统,包括 根据权利要求11所述的一个或多个适配器;以及重定向装置,用于根据来自第一实体的网络服务请求所需的服务,将该网络服务请求 分配给所述一个或多个适配器中相应的一个或多个。
全文摘要
本发明提供了用于对网络服务通信进行适配的方法、适配器和适配器系统。所述用于适配的方法包括将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及将转换后的网络服务请求发送至第二实体;接收第二实体响应于所述网络服务请求而返回的网络服务响应;将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及将变换后的网络服务响应返回至第一实体。利用本发明的适配方法,客户端应用系统能够以自己的格式发送网络服务请求,无需针对第三方系统编写网络服务请求,避免了重复编写代码的负担。通过利用适配方法将该网络服务请求转换成第三方系统能够理解的格式,同样能够实现与第三方系统的通信。
文档编号H04L29/08GK101883084SQ200910137108
公开日2010年11月10日 申请日期2009年5月4日 优先权日2009年5月4日
发明者李新宇 申请人:李新宇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1