CN101883084A - 用于对网络服务通信进行适配的方法、适配器和适配器系统 - Google Patents
用于对网络服务通信进行适配的方法、适配器和适配器系统 Download PDFInfo
- Publication number
- CN101883084A CN101883084A CN2009101371084A CN200910137108A CN101883084A CN 101883084 A CN101883084 A CN 101883084A CN 2009101371084 A CN2009101371084 A CN 2009101371084A CN 200910137108 A CN200910137108 A CN 200910137108A CN 101883084 A CN101883084 A CN 101883084A
- Authority
- CN
- China
- Prior art keywords
- entity
- data
- network service
- response
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了用于对网络服务通信进行适配的方法、适配器和适配器系统。所述用于适配的方法包括:将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及将转换后的网络服务请求发送至第二实体;接收第二实体响应于所述网络服务请求而返回的网络服务响应;将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及将变换后的网络服务响应返回至第一实体。利用本发明的适配方法,客户端应用系统能够以自己的格式发送网络服务请求,无需针对第三方系统编写网络服务请求,避免了重复编写代码的负担。通过利用适配方法将该网络服务请求转换成第三方系统能够理解的格式,同样能够实现与第三方系统的通信。
Description
技术领域
本发明总体上涉及对网络服务通信进行适配的领域,更具体地,涉及对不同实体之间的网络服务通信进行适配的方法、适配器和适配器系统。
背景技术
过去,针对各种业务开发的各种软件都是根据不同原理或功能单独设计出来的,这些软件之间通常不能通信。需要与多种业务相关的应用的用户(诸如公司或企业等)通常需要购买多种软件,而由于这些软件之间不能通信,因此对于拥有多个这种软件的用户而言,不得不在维护“信息孤岛”方面花费大量的人力物力。不仅如此,这些信息之间还可能存在数据一致性和完整性问题,而且还可能存在大量冗余。
为此,近些年引入了面向服务架构(SOA)并广泛应用,其被认为是信息系统架构的一种样式,能够通过将独立于平台和编程语言的松耦合互操作服务进行组合来创建应用。
网络服务是设计用来支持互操作机器通过网络(例如,互联网)与其他机器进行交互的软件系统。市场上两种流行的网络服务是基于简单对象访问协议(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方式,或基于SOAP协议),只要通信的规定中存在差异,它们之间便无法进行通信。
发明内容
因此,需要针对上述情况提供能够在客户端应用系统和第三方系统之间对网络服务通信进行适配的方法,以使得在双方都以自己能够理解的格式发送网络服务请求或网络服务响应时,另一方也能够理解,从而实现有效通信。
根据本发明的一个方面,提供了一种在第一实体与第二实体之间对网络服务通信进行适配的方法,包括:将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及将转换后的网络服务请求发送至第二实体;接收第二实体响应于所述网络服务请求而返回的网络服务响应;以及将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及将变换后的网络服务响应返回至第一实体。
根据本发明的另一方面,提供了一种在第一实体与第二实体之间对网络服务通信进行适配的适配器,包括:请求转换装置,用于将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及收发装置,用于将转换后的网络服务请求发送至第二实体,以及接收第二实体响应于所述网络服务请求而返回的网络服务响应;响应变换装置,用于将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及所述收发装置还用于将变换后的网络服务响应返回至第一实体。
根据本发明的又一方面,提供了一种在第一实体与第二实体之间对网络服务通信进行适配的适配器系统,包括:根据本发明的一个或多个适配器;以及重定向装置,用于根据来自第一实体的网络服务请求所需的服务,将该网络服务请求分配给所述一个或多个适配器中相应的一个或多个。
利用根据本发明实施方式的适配方法,客户端应用系统能够以自己的格式发送网络服务请求。利用该适配方法,该客户端应用系统发送的网络服务请求被转换成第三方系统能够理解的网络服务请求,从而避免了客户端应用系统需要针对不同第三方系统编写符合其格式要求的网络服务请求的代码负担。而且,利用该适配方法,将第三方系统返回的网络服务响应变换成客户端应用系统能够理解的网络服务响应,使得客户端应用系统能够理解第三方系统返回的网络服务响应,从而能够接受第三方系统提供的网络服务,进而实现有效通信。此外,利用该适配方法,还能够在第三方系统以自己能够理解的格式对数据应用对象发送网络服务请求,数据应用对象以自己能够理解的格式返回网络服务响应的情况下,双方也能实现通信。这样,便能够实现从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涉及对服务器上的资源进行操作。基于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:用于创建成员;
changeMemberInformation:用于更新成员信息;
removeMember:用于删除成员;
getMember:用于取回成员;
getMemberList:用于取回成员列表。
适配器203基于表示取回联系人记录列表的网络服务请求210与第三方系统205中用于此目的的getMemberList之间的对应关系,将网络服务请求210中的GET操作映射为在第三方系统205中使用的getMemberList操作。
其中,操作之间的对应关系可以由了解第三方系统操作的适配器管理员事先利用本发明提供的配置器来配置,并可将其存储在适配器可访问的任何存储中,诸如,数据库、闪存、硬盘、软盘、CD、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),即,二者具有链接关系,则链接表512中便有表示二者链接关系的一条记录,该记录包括记录company A的标识、数据应用对象520的标识和记录Joe Ma的标识。同样地,在链接表522中也会有表示二者链接关系的一条记录,只不过该记录包括记录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)</FullName>
<Age>(b)</Age>
</Member>。
其中,第三方系统205使用的标签Member、FullName和Age分别表示成员、联系人的姓名与年龄。需要注意,这些标签的命名仅用于示例,而非限制;相反,第三方系统可以使用任何自己定义的标签。
在步骤601中,从内容中解析出数据。
具体地,适配器203从网络服务请求210中携带的XML内容解析出平面结构格式的数据:
name:Johnny Tong
age:39。
在步骤603中,基于解析出的数据和第二实体能够理解的内容格式与该网络服务请求携带的内容格式之间的对应关系,生成第二实体能够理解的内容格式的内容。
具体地,基于网络服务请求210中的标签name、age分别与第三方系统205能够理解的标签FullName、Age之间的对应关系,适配器203得知网络服务请求210中的Johnny Tong应当填入第三方系统205内容格式的(a)字段内,39应当填入(b)字段内,随后基于此对应关系和数据,生成第三方系统205能够理解的XML内容:
<Member>
<FullName>Johnny Tong</FullName>
<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_links>
<our_flat_structure_link>
<ID>1</ID>
<FirstID>1</FirstID>
<first_flat_structure_type>Account</first_flat_structure_type>
<SecondID>1</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_type>
</our_flat_structure_link>
</our_flat_structure_links>
其中,第一段XML内容存储的是关于账户Account的信息;第二段XML内容存储的是关于联系人Contact的信息;第三段XML内容存储的是账户和联系人之间链接关系的信息。
需要注意,标签our_flat_structure_records、our_flat_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、Contact、Name、Phone分别表示账户集合、一个账户、公司名称、联系人集合、一个联系人、联系人姓名和电话。
对于该示例,在步骤601中从内容中解析出数据包括步骤:基于内容中携带的、描述数据之间链接关系的信息,解析出数据。
具体地,基于表示账户和联系人之间链接关系的第三段XML内容解析数据。解析出的平面结构格式的数据为:
CompanyName:Company A
|-Name:Joe Ma
|-Phone:91234567
CompanyName: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>
<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>
</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
之后,按如下顺序读取该树状结构的数据:
1.找到Accounts;
2.在Accounts中,找到Account的位置;
3.为每个Account,创建平面结构格式的单层XML结构,其具有标识和CompName;
4.在Account中,找到Contacts;
5.在Contacts中,找到Contact的位置;
6.为每个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 links>
<our_flat_structure_link>
<ID>1</ID>
<FirstID>1</FirstID>
<first_flat_structure_type>Account</first_flat_structure_type>
<SecondID>1</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
ype>
</our_flat_structure_link>
</our_flat_structure_links>
其中,第一段XML内容存储的是关于账户Account的信息;第二段XML内容存储的是关于联系人Contact的信息;第三段XML内容存储的是账户和联系人之间链接关系的信息。
之后,第三方系统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,用于:配置第二实体所使用的操作与第一实体所使用的操作之间的对应关系;配置第一实体能够理解的响应格式与第二实体能够理解的响应格式之间的对应关系;配置第二实体能够理解的内容格式与第一实体能够理解的内容格式之间的对应关系。
其中,第一实体能够理解的响应格式与第二实体能够理解的响应格式之间的对应关系与第二实体能够理解的内容格式与第一实体能够理解的内容格式之间的对应关系为同一对应关系,只不过将源方与目的方互换而已。
请求转换装置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包括根据本发明实施方式的适配器811a-811n;和重定向装置810,用于根据来自客户端应用系统801a-801n的网络服务请求所需的网络服务,将这些网络服务请求分配给一个或多个适配器811a-811n中相应的一个或多个,以进行相应处理。
而后,从第三方系统803a-803n响应于这些网络服务请求返回的网络服务响应同样可以经由相应的适配器进行变换,随后经由重定向装置810或者不经由重定向装置810返回发出网络服务请求的客户端应用系统。
通过本发明提供的适配器系统,可以为访问各种不同的第三方系统的不同客户端应用系统提供统一的接口,使得不同客户端应用系统都能够通过向统一地址发送统一格式的网络服务请求来享受各种不同第三方系统所提供的网络服务,而无需考虑各个适配器和各种第三方系统的具体操作。
下面,将参考图9来描述可以实现本发明的计算机设备。图9示意性示出了可以实现根据本发明的实施例的计算设备的结构方框图。
图9中所示的计算机系统包括CPU(中央处理单元)901、RAM(随机存取存储器)902、ROM(只读存储器)903、系统总线904、硬盘控制器905、键盘控制器906、串行接口控制器907、并行接口控制器908、显示器控制器909、硬盘910、键盘911、串行外部设备912、并行外部设备913、显示器914以及网络适配器915。在这些部件中,与系统总线904相连的有CPU 901、RAM 902、ROM 903、硬盘控制器905、键盘控制器906、串行接口控制器907、并行接口控制器908、显示器控制器909以及网络适配器915。硬盘910与硬盘控制器905相连,键盘911与键盘控制器906相连,串行外部设备912与串行接口控制器907相连,并行外部设备913与并行接口控制器908相连,以及显示器914与显示器控制器909相连,而网络接口控制器915允许该计算机系统访问诸如互联网的计算机网络。
图9所述的结构方框图仅仅为了示例的目的而示出的,并非是对本发明的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备,例如用于实现本发明的计算机设备可以并不具有显示器、键盘等输入/输出设备。
此外,本发明的实施例可以以软件、硬件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。
尽管此说明书包含很多细节,但是这些细节并不应解释为对所公开内容或者权利要求的范围的限制,而只是对特定于本公开的具体实现的特征的描述。在此说明书中以单独实现的上下文描述的某些特征还可以组合起来在单个实现中实现。相反地,在单个实现的上下文中描述的各种特征还可以在分离的多个实现或者任何合适的子组合中实现。而且,尽管特征可以如上所述描述为在某些组合进行动作并且甚至最初这样要求保护,但是来自所要求组合中的一个或多个特征可以在某些情况中从组合中删除,并且所要求的组合可以指向子组合或者子组合的变体。
类似地,尽管附图中以具体顺序描绘了操作,但是这不应该理解为为了达到预期的效果而要求这种操作以所示的具体顺序或者以顺序方式执行,或者要求执行所示出的所有操作。在某些情况中,多任务和并行处理具有优势。而且,在上述描述的实现中的各种系统组件的分离不应当理解为在所有实现中要求这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者打包成为多个软件产品。
虽然已经参考目前考虑到的实施例描述了本发明,但是应该理解本发明不限于所公开的实施例。相反,本发明旨在涵盖所附权利要求的精神和范围之内所包括的各种修改和等同布置。以下权利要求的范围符合最广泛解释,以便包含所有这样的修改及等同结构和功能。
Claims (22)
1.一种在第一实体与第二实体之间对网络服务通信进行适配的方法,包括:
将接收自第一实体的网络服务请求转换成第二实体能够理解的网络服务请求;以及
将转换后的网络服务请求发送至第二实体;
接收第二实体响应于所述网络服务请求而返回的网络服务响应;
将所接收的网络服务响应变换成第一实体能够理解的网络服务响应;以及
将变换后的网络服务响应返回至第一实体。
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所述的一个或多个适配器;以及
重定向装置,用于根据来自第一实体的网络服务请求所需的服务,将该网络服务请求分配给所述一个或多个适配器中相应的一个或多个。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101371084A CN101883084A (zh) | 2009-05-04 | 2009-05-04 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
US13/318,479 US20120173679A1 (en) | 2009-05-04 | 2010-04-30 | Adaptation method, adapter and adapter system for network service communication |
PCT/CN2010/000598 WO2010127551A1 (zh) | 2009-05-04 | 2010-04-30 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101371084A CN101883084A (zh) | 2009-05-04 | 2009-05-04 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101883084A true CN101883084A (zh) | 2010-11-10 |
Family
ID=43049948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101371084A Pending CN101883084A (zh) | 2009-05-04 | 2009-05-04 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120173679A1 (zh) |
CN (1) | CN101883084A (zh) |
WO (1) | WO2010127551A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571701A (zh) * | 2010-12-16 | 2012-07-11 | 中国移动通信集团安徽有限公司 | 安全认证站点的访问方法、装置及系统 |
CN104980511A (zh) * | 2015-06-17 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 一种游戏数据访问方法、系统以及游戏网页服务器 |
CN105051763A (zh) * | 2012-06-12 | 2015-11-11 | 实耐宝公司 | 使存货控制系统和远程系统之间能够通过网络进行通信 |
CN105187391A (zh) * | 2015-08-10 | 2015-12-23 | 上海迈外迪网络科技有限公司 | App及其登录网络接入点方法、服务器及系统 |
CN102801544B (zh) * | 2011-05-25 | 2017-10-17 | 中兴通讯股份有限公司 | 一种物联网架构下统一终端管理的方法和系统 |
CN107809362A (zh) * | 2017-11-15 | 2018-03-16 | 深圳四方精创资讯股份有限公司 | 企业服务总线的配置方法及其系统 |
CN109510865A (zh) * | 2013-03-05 | 2019-03-22 | 富士施乐株式会社 | 中继装置及系统 |
CN111142910A (zh) * | 2019-12-27 | 2020-05-12 | 郑州信大捷安信息技术股份有限公司 | 一种面向多界面的资源调配处理方法及系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143200B (zh) * | 2010-10-20 | 2013-09-11 | 华为技术有限公司 | 一种soap api转换为rest api的公共消息头承载方法及装置 |
US10412166B2 (en) * | 2015-07-27 | 2019-09-10 | Presidio Llc | Hybrid cloud information management system |
US10819784B1 (en) * | 2016-03-30 | 2020-10-27 | The Bank Of New York Mellon | API mediation for online services |
US10645085B2 (en) * | 2017-03-01 | 2020-05-05 | Cisco Technology, Inc. | Device management across multiple operator networks |
US10402552B2 (en) * | 2017-09-15 | 2019-09-03 | Glicq, Inc. | Platform agnostic object processing |
US11159498B1 (en) * | 2018-03-21 | 2021-10-26 | Amazon Technologies, Inc. | Information security proxy service |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074401A1 (en) * | 2001-05-23 | 2003-04-17 | Brian Connell | Method and system for communication between computer systems |
CN1606311A (zh) * | 2003-10-09 | 2005-04-13 | 冲电气工业株式会社 | 用于在相互协作的不同协议环境之间提供信息的系统及其方法 |
CN101001153A (zh) * | 2006-12-30 | 2007-07-18 | 华为技术有限公司 | 接口设备、服务器、运营服务系统及方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020681B1 (en) * | 1999-06-14 | 2006-03-28 | Sun Microsystems, Inc. | Method for caching XML documents viewable on devices with different displays |
US7152094B1 (en) * | 2001-07-31 | 2006-12-19 | Sprint Communications Company L.P. | Middleware brokering system adapter |
US7178163B2 (en) * | 2002-11-12 | 2007-02-13 | Microsoft Corporation | Cross platform network authentication and authorization model |
US20050235274A1 (en) * | 2003-08-27 | 2005-10-20 | Ascential Software Corporation | Real time data integration for inventory management |
US7483994B1 (en) * | 2004-11-01 | 2009-01-27 | Ameriprise Financial, Inc. | System and method for creating a standard envelope structure |
EP1898553A1 (en) * | 2006-08-31 | 2008-03-12 | Nokia Siemens Networks Gmbh & Co. Kg | Generic network configuration management with XML |
US7685304B2 (en) * | 2006-12-06 | 2010-03-23 | Yahoo! Inc. | Web services multi-protocol support |
US20080137654A1 (en) * | 2006-12-06 | 2008-06-12 | Electronics And Telecommunication Research Institute | Method of managing signaling message in path-based signaled paths to mpls-enabled core network |
-
2009
- 2009-05-04 CN CN2009101371084A patent/CN101883084A/zh active Pending
-
2010
- 2010-04-30 US US13/318,479 patent/US20120173679A1/en not_active Abandoned
- 2010-04-30 WO PCT/CN2010/000598 patent/WO2010127551A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074401A1 (en) * | 2001-05-23 | 2003-04-17 | Brian Connell | Method and system for communication between computer systems |
CN1606311A (zh) * | 2003-10-09 | 2005-04-13 | 冲电气工业株式会社 | 用于在相互协作的不同协议环境之间提供信息的系统及其方法 |
CN101001153A (zh) * | 2006-12-30 | 2007-07-18 | 华为技术有限公司 | 接口设备、服务器、运营服务系统及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571701B (zh) * | 2010-12-16 | 2015-12-16 | 中国移动通信集团安徽有限公司 | 安全认证站点的访问方法、装置及系统 |
CN102571701A (zh) * | 2010-12-16 | 2012-07-11 | 中国移动通信集团安徽有限公司 | 安全认证站点的访问方法、装置及系统 |
CN102801544B (zh) * | 2011-05-25 | 2017-10-17 | 中兴通讯股份有限公司 | 一种物联网架构下统一终端管理的方法和系统 |
US11741427B2 (en) | 2012-06-12 | 2023-08-29 | Snap-On Incorporated | Monitoring removal and replacement of tools within an inventory control system |
CN105051763A (zh) * | 2012-06-12 | 2015-11-11 | 实耐宝公司 | 使存货控制系统和远程系统之间能够通过网络进行通信 |
CN109510865A (zh) * | 2013-03-05 | 2019-03-22 | 富士施乐株式会社 | 中继装置及系统 |
CN104980511B (zh) * | 2015-06-17 | 2019-07-16 | 深圳市腾讯计算机系统有限公司 | 一种游戏数据访问方法、系统以及游戏网页服务器 |
CN104980511A (zh) * | 2015-06-17 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 一种游戏数据访问方法、系统以及游戏网页服务器 |
CN105187391B (zh) * | 2015-08-10 | 2018-10-16 | 上海迈外迪网络科技有限公司 | App及其登录网络接入点方法、服务器及系统 |
CN105187391A (zh) * | 2015-08-10 | 2015-12-23 | 上海迈外迪网络科技有限公司 | App及其登录网络接入点方法、服务器及系统 |
CN107809362A (zh) * | 2017-11-15 | 2018-03-16 | 深圳四方精创资讯股份有限公司 | 企业服务总线的配置方法及其系统 |
CN107809362B (zh) * | 2017-11-15 | 2020-10-23 | 深圳四方精创资讯股份有限公司 | 企业服务总线的配置方法及其系统 |
CN111142910A (zh) * | 2019-12-27 | 2020-05-12 | 郑州信大捷安信息技术股份有限公司 | 一种面向多界面的资源调配处理方法及系统 |
CN111142910B (zh) * | 2019-12-27 | 2022-04-08 | 郑州信大捷安信息技术股份有限公司 | 一种面向多界面的资源调配处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120173679A1 (en) | 2012-07-05 |
WO2010127551A1 (zh) | 2010-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101883084A (zh) | 用于对网络服务通信进行适配的方法、适配器和适配器系统 | |
US7814404B2 (en) | System and method for applying workflow of generic services to component based applications for devices | |
CN101699393B (zh) | 一种面向网络的智能化软件界面动态生成方法 | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
EP3173951B1 (en) | Integrated framework for secured data provisioning and management | |
US20100211580A1 (en) | Semantics-based data transformation over a wire in mashups | |
US20120124554A1 (en) | Service-oriented application system and communicating method, creator and creating method thereof | |
CN102810090A (zh) | 网关数据分布引擎 | |
CN101165683A (zh) | 异构异源异平台数据的整合方法及交换方法 | |
CN112671734B (zh) | 面向多数据源的报文处理方法及其相关设备 | |
CN102880683A (zh) | 一种可行性研究报告的自动网络生成系统及其生成方法 | |
Chao | E-services in e-business engineering | |
KR101086620B1 (ko) | 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법 | |
CA2538561C (en) | System and method for conversion of web services applications into component based applications for devices | |
CN101861578A (zh) | 网络操作系统 | |
Paviot et al. | A generic multiCAD/multiPDM interoperability framework | |
CN101861580A (zh) | 网络操作系统 | |
CN107735785A (zh) | 自动信息检索 | |
Xiao et al. | RETRACTED ARTICLE: Cloud platform wireless sensor network detection system based on data sharing | |
Zhang et al. | IFC-based construction industry ontology and semantic web services framework | |
Sapel et al. | Challenges and research agenda for realizing a seamless integration of digital shadows into the production domain | |
Tabor | Microsoft. net XML web services | |
CN103399746A (zh) | 一种便于二次开发的信息管理系统及开发方法 | |
Kintonova et al. | Development of Distributed System for Electronic Business Based on Java-Technologies. | |
CN103679432A (zh) | 一种支持动态构建应用平台的vnms系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101110 |