用于web服务面向消息的构建的方法与系统的制作方法

文档序号:86176阅读:201来源:国知局
专利名称:用于web服务面向消息的构建的方法与系统的制作方法
技术领域
本发明涉及分布式计算中的web服务领域,尤其涉及web服务面向消息的集成。
背景技术
web服务代表了分布式计算的前沿,并被看作是在万维网上开发用于支持基于组件的应用的快速发展的真正通用模型的基础。在本领域中,已知web服务包括大量描述面向服务、基于组件的应用体系结构的新兴标准。特别地,web服务是从语义上封装具体功能性并通过标准因特网协议分发和可编程访问的松耦合的可重用软件组件。从概念上讲,web服务代表其中处理中的具体任务在整个值网中广泛分发的模型。许多业界专家都认为面向服务的web服务将成为因特网的下一发展阶段的动因。
一般来说,web服务是由例如web服务定义语言(WSDL)的接口描述的,并且可用根据该接口实现,不过只要实现遵循web服务接口就可以,实现细节没什么关系。例如,web服务可以通过包括一个或多个操作的WSDL端口类型在外部描述。操作包括至多一个输入消息、至多一个输出消息及零个或更多错误消息。一旦web服务已经根据对应的接口实现,该实现就可以登记到web服务注册表,如本领域众所周知的统一描述、发现与集成(UDDI)。当注册后,web服务就可以由web请求者通过使用包括例如简单对象访问协议(SOAP)的任何支持消息协议访问。
参考图1,传统的web服务服务器110包括位于web容器120中的服务小程序140,服务小程序140作为来自web服务客户130的web服务请求160A的监听者并向web服务客户130提供响应160B。当在服务小程序140中接收到请求160A时,请求160A的消息内容与反射逻辑一起用于创建消息的目标对象并选择关于对象的业务逻辑150的实例中的正确方法。关于目标对象的方法的参数是进一步利用消息的编码形式与反射接口的方法创建的。因此,传统的web服务模型将客户接口紧耦合到服务的服务器实现。
一旦消息160A传送到服务小程序140,控制流如下1.消息传送到服务小程序。
2.服务小程序确定为消息提供服务的类的名称。
3.服务小程序创建类的实例。
4.服务小程序确定关于该类要调用的方法的名称。
5.服务小程序根据消息中的信息创建方法的参数。
6.服务小程序调用方法,传递根据消息创建的参数。
7.方法带结果或错误返回。
8.类似于在消息中发送的参数,服务小程序编码结果或错误。
9.服务小程序带响应消息响应。
在典型的情况下,web服务可以利用例如JavaTM编程语言、C++编程语言或者Java 2企业编辑框架的低级编程语言构造。(Java及所有基于Java的商标都是Sun微系统公司的商标)。尽管如此,使用低级编程语言构造web服务需要开发人员对底层编程语言一定程度的精通和对由特定领域映射规则强加的任何限制的认识。
通过比较,面向消息的体系结构(MOA)描述了系统集成方法,其中应用程序可以通过消息交换与其它应用程序通信,而不需要知道其中每个其它应用程序驻留的平台或处理器。而且,消息可以包含格式化数据、动作请求或两者都有。现在的趋势反映了集成或调解使用不同标准与协议并常常证明不同操作行为的web服务的增长的需求。Web服务的集成与调解在习惯于使用MOA方法集成web服务的企业应用集成(EAI)和企业数据互换(EDI)领域中特别重要。然而,对于只熟悉基于消息的编程的用户,通过Java和J2EE的web服务构造需要技能培训和领域知识传输的巨大投资。

发明内容本发明的实施方式解决现有技术关于web服务构造的缺陷并提供用于面向消息的web服务构造的新的且非显而易见的方法、系统与计算机程序产品。在本发明的第一实施方式中,用于面向消息的web服务构造的方法可以包括图形组装定义web服务操作的消息流原语的选择、互连所选消息流原语以表示从一个互连的消息流原语到另一互连的消息流原语的消息流,及根据消息流原语的选择生成web服务逻辑。该方法还可以包括响应接收到调用web服务的请求而解释或执行web服务逻辑。
在该实施方式的一方面,图形组装定义web服务操作的消息流原语的选择可以包括确定web服务的web服务操作类型、将web服务操作类型与预先配置的消息流模式匹配,并呈现消息流模式的可视表示。在该实施方式的另一方面,附加的流原语可以插入到消息流模式中,而且插入的附加流原语可以连接到消息流模式中至少一个其它的流原语。在该实施方式的另一方面,确定web服务的web服务操作类型可以包括读取web服务的注册表,以便识别由对应WSDL文档定义的web服务,识别用于注册表中每个web服务的web服务操作,并确定用于所识别web服务操作中所选一个操作的web服务操作类型。
在本发明的第二实施方式中,为面向消息的web服务构造配置的数据处理系统可以包括消息流模式,每个消息流模式都包括消息流原语的选择,耦合到消息流模式与web服务注册表的图形用户接口(GUI)消息流生成器,及耦合到GUI消息流生成器的代码生成逻辑。GUI消息流生成器可以包括能够根据从匹配于注册表中所列web服务中所选的web服务操作的web服务操作类型的消息流模式中消息流原语的组装生成流逻辑的程序代码。同样,代码生成逻辑可以包括能够将消息流逻辑变换成在运行时由web服务服务器所使用的web服务逻辑的程序代码。
本发明的其它方面部分地将在以下描述中阐述,部分地将从该描述中显而易见,或者可以通过本发明的实践学习。本发明的方面将通过在所附权利要求
中特别指出的元件及其组合实现与获得。应当理解,前面的总体描述与以下具体描述都是示例性和解释性的,而不是对本发明的要求保护的限制。
结合进本说明书并构成其一部分的了本发明的实施方式,并与描述一起用于解释本发明的原理。在此所说明的实施方式目前是优选的,但应当理解,本发明不限于所示的精确结构与手段,其中图1是说明本领域已知的传统web服务部署与传送体系结构的框图;图2是根据本发明为面向消息构造配置的web服务部署与传送体系结构的示意性说明;图3是说明在与图2web服务部署与传送体系结构的用户接口中通过流模式中流原语的组装的用于面向消息的web服务构造的处理的流程图;图4是在与图2web服务部署与传送体系结构的用户接口中所使用的流原语的图形说明;图5是与图2web服务部署与传送体系结构的用户接口的屏幕快照;图6A至6D一起是图5用户接口中用于定义web服务操作的面向消息逻辑的不同流模式的屏幕快照;及图7是在图5用户接口中web服务构造中将不同web服务操作类型与图6A至6D的流模式中的不同模式关联的表格。
具体实施方式本发明的实施方式提供了用于web服务的面向消息构造的方法、系统与计算机程序产品。根据本发明的实施方式,用于web服务的操作可以通过图形用户接口中图形元素的面向消息布置来定义。称为消息流原语的图形元素可以指定消息的接收或发送及在接收到消息之后、发送消息之前或者两者所执行的相应处理。每个消息流原语还可以提供要提供给错误处理器的错误消息。
重要的是,消息流模式可以根据互连消息流原语的选择形成,以便匹配于所选操作的web服务操作类型。就象在本领域中众所周知的,web服务操作类型包括单向、请求-响应、要求-响应和通知操作。其它web服务操作类型也被认为是属于本发明的范围,包括由WSDL2.0规范定义的那些类型。此外,中间处理可以通过将用户定义的活动原语插入到消息流模式来为消息流模式指定。最后,不同的流模式可以组合,以便提供处理基于同步和异步消息的协议的一致方法。具体而言,为了提供对不同类型面向消息系统的访问,流模式可以通过对应于单向类型web服务操作类型的消息原语耦合到消息队列。
特别地,由消息流模式定义的web服务可以包括呼出另一web服务的消息流原语。以这种方式,web服务可以从其它web服务组成。最后,消息流模式可以由代码产生器处理,以便生成在运行时环境中由web服务服务器所使用的产品代码。以这种方式,web服务可以根据消息范例图形化地构造并且可以部署到web服务环境中。因此,熟悉基于消息编程的人可以更容易地构造web服务,而不需要具有过程化编程的完全掌握。
在更具体的说明中,图2是根据本发明为面向消息构造配置的web服务部署与传送数据处理系统的示意性说明。如图2所示,数据处理系统可以包括耦合到代码生成逻辑260的流生成器图形用户接口(GUI)300。在web服务注册表250中构造用于web服务的所选web服务操作的流逻辑200的过程中,流生成器GUI 300可以访问一个或多个流模式270和一个或多个流原语280中的每一个。
流原语280可以表示在执行下一流原语之前必须完成的工作单元。具体而言,每个流原语280可以接收与处理、形成与处理或者形成与发送消息。例如,每个流原语280可以对消息的内容或上下文起作用或者改变它。为此,如图4所示,流原语400可以包括其中可以接收消息的零个或更多输入终端410及消息可以通过其发送到其它耦合的流原语的零个或更多输出终端420。可选地,流原语400还可以包括用于错误处理的终端430,错误消息可以通过其发送到耦合的错误处理器。
流原语400的终端410、420由WSDL消息确定类型。如此,消息必须是兼容性,以便允许流原语400的输出终端420到另一原语400的输入终端410的连接。然而,不需要来自输出终端420的输出消息的消息类型匹配于另一原语400中的输入终端410的消息类型。相反,变换逻辑可以包括在特定类型的流原语400中,以便将一种格式的消息类型变换到另一种,从而在流原语400之间发送的消息之间建立兼容性。
流原语400可以分成web服务操作流原语和用户定义的流原语。Web服务操作流原语定义web服务操作的操作性行为。下表定义示例web服务操作流原语的选择
通过比较,用户定义的流原语可以由用户定义成执行独立的操作,如消息登录、二元判定切换、内容变换。此外,用户定义的流原语可以容纳对输入消息运行的Java编程逻辑或XQuery逻辑运算。
不同的流原语可以布置成可以匹配于特定web服务操作类型的流模式。在更具体的说明中,图6A至6D一起是用于定义web服务操作的面向消息逻辑的不同流模式的屏幕快照。首先参考图6A,示出了输入请求流模式610。输入请求流模式610可以包括与一个或多个用户定义的活动原语组合的输入原语,后面跟着可以调用用于其它web服务的其它web服务操作的输入响应原语或呼出原语。
通过比较,参考图6B,要求响应流模式620可以包括要求原语,后面跟着一个或多个用户定义的活动原语。参考图6C,通知/要求请求流模式630可以包括用户活动定义的原语,后面跟着通知原语或要求原语。最后,参考图6D,呼出响应流模式640可以包括耦合到后面跟着输入响应原语的一个或多个用户定义的活动原语的呼出响应原语。
返回图2,在操作中,web服务的选择及由用于该web服务的对应WSDL文档定义的对应操作可以通过流生成器GUI 300提供。可以为web服务选择操作,而且可以确定操作的操作类型。为了方便所选操作与流模式270的匹配,可以由流生成器GUI 300访问表格,以便将所选操作与对应的流模式270关联。例如,图7是说明在web服务构造中将不同web服务操作类型与图6至6D流模式中的不同模式关联的表格。
基于所确定的操作类型,可以为操作选择流模式270,而且所选择的流模式可以根据为所选流模式270定义的原语280在流生成器GUI 300中呈现。如用户定义活动的附加原语280可以插入到所选流模式270中,就象原语280之间的附加原语到原语连接可以插入到所选流模式270中一样。在流生成器GUI 300中原语布置的说明中,图5是与图2web服务部署与传送体系结构的用户接口的屏幕快照。
如图5所示,流生成器GUI 500可以包括web服务构造工程窗口510、注册表的web服务中所识别的web服务操作的列表窗口520及流生成器窗口530。web服务构造工程窗口510可以提供web服务构造工程组件的层次视图,包括用于构造中的web服务的一个或多个操作的定义消息流逻辑。列表窗口520又可以提供在web服务WSDL文档的耦合注册表中定位的定义可用的web服务操作列表。最后,流生成器窗口530可以允许流模式和流原语的放置与互连,以便定义用于列表窗口520中的所选操作的流逻辑。
具体而言,当在列表窗口520中选择操作时,可以为所选的操作识别web服务操作类型,而且可以查询表格识别对应的流模式。随后,对应流模式的图形表示可以在流生成器窗口中呈现。通常,流模式可以包括输入原语540A、一个或多个用户定义的活动原语540B或者例如响应原语、通知原语、呼出原语、要求原语或输入响应原语的输出原语540C中的任何一个。不同的原语可以彼此耦合,以便指示耦合到所耦合原语终端的图形原语到原语连接之间的消息流。此外,不同的消息流可以为所选的web服务操作组装,而且可以通过表格550访问。
在图5的流生成器GUI操作的进一步说明中,图3是说明通过在流生成器窗口530的流模式中流原语组装的用于web服务的面向消息构造的处理的流程图。在块305开始,web服务的列表可以参考web服务的注册表提供。在块310,可以选择web服务,而在块315,可以提供用于所选web服务的定义操作的列表。随后,在块320,可用选择用于所选web服务的特定操作,进行构造。
在块325,可以确定用于所选web服务的所选操作的操作类型,而在块330,操作类型可以匹配于特定的流模式。因此,所匹配流模式的图形表示可以呈现以便由终端用户使用和修改。在决定块340,可以确定流模式中不同原语之间的连接器是否添加或除去。如果是,则在块345,所选的连接器可以根据情况添加或除去。同样,在决定块350,可以确定原语是否添加到流模式或从中除去。如果是,则在块355原语可以根据情况添加或除去。处理可以在决定块360继续,直到没有更多的修改要进行。随后,可以生成流逻辑365,以便编辑到用于在运行时解释的web服务逻辑中。
最后返回图2,所生成的流逻辑200可以由代码生成逻辑260变换成由运行时240解释的web服务逻辑290。运行时240可以耦合到配置成响应请求客户220在计算机通信网络230上的web服务请求的web服务服务器210。关于这点,当在web服务服务器210中接收到来自请求客户220的用于web服务中操作的请求时,运行时240可以执行或解释由web服务逻辑290定义的逻辑,以便满足所接收的请求。任何由web服务逻辑290产生的输出都可以提供给web服务服务器210,用于返回给请求客户220。
本发明的实施方式可以采取完全硬件实施方式、完全软件实施方式或包含硬件和软件元件的实施方式的形式。在优选实施方式中,本发明在软件中实现,这包括但不限于固件、驻留软件、微代码等。此外,本发明可以采取可以从计算机可用或计算机可读介质访问的计算机程序产品的形式,其中计算机可读介质提供由计算机或任何指令执行系统使用或与其连接使用的程序代码。
为了描述,计算机可用或计算机可读介质可以是能够包含、存储、传播或传输由指令执行系统、装置或设备使用或与其连接使用的程序的任何装置。介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。目前光盘的例子包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统将包括至少一个直接或通过系统总线间接耦合到存储器元件的处理器。存储器元件可以包括在程序代码的实际执行过程中所采用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以便减少执行过程中代码必须从大容量存储器检索的次数的高速缓冲存储器。输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备等)可以直接或通过中间I/O控制器耦合到系统。网络适配器也可以耦合到系统,以便使数据处理系统能够通过中间的私用或公共网络耦合到其它数据处理系统或远端打印机或存储设备。调制解调器、光缆调制解调器和以太网卡就是目前可用的一些网络适配器类型。
权利要求
1.一种用于web服务的面向消息的构造的方法,该方法包括图形化组装定义web服务操作的消息流原语的选择;互连所选的消息流原语,以便表示从一个互连的消息流原语到另一互连的消息流原语的消息流;及根据消息流原语的选择生成web服务逻辑。
2.如权利要求
1所述的方法,还包括响应接收到调用web服务的请求而解释web服务逻辑。
3.如权利要求
1所述的方法,还包括响应接收到调用web服务的请求而执行web服务逻辑。
4.如权利要求
1所述的方法,还包括通过对应于单向web服务操作类型的消息流原语将消息流原语的组装与消息队列互连。
5.如权利要求
1所述的方法,其中图形化组装定义web服务操作的消息流原语的选择包括确定用于web服务的web服务操作类型;将web服务操作类型与预先配置的消息流模式匹配;及呈现消息流模式的可视表示。
6.如权利要求
5所述的方法,还包括在消息流模式中插入附加流原语及将插入的附加流原语连接到消息流模式中的至少一个其它流原语。
7.如权利要求
5所述的方法,其中确定用于web服务的web服务操作类型包括读取web服务注册表,以便识别由对应web服务定义语言(WSDL)文档定义的多个web服务;识别用于注册表中每个web服务的多个web服务操作;及确定用于所识别web服务操作中的所选一个操作的web服务操作类型,该web服务操作类型包括选自单向操作、请求-响应操作、要求-响应操作及通知操作的web服务操作类型。
8.如权利要求
5所述的方法,其中将web服务操作类型与预先配置的消息流模式匹配包括将web服务操作类型与选自输入请求流模式、呼出响应流模式、通知/要求请求流模式与要求响应流模式的消息流模式匹配。
9.一种为面向消息的web服务构造而配置的数据处理系统,该系统包括多种消息流模式,每种消息流模式都包括消息流原语的选择;图形用户接口(GUI)消息流生成器,耦合到消息流模式与web服务注册表;及代码生成逻辑,耦合到GUI消息流生成器,所述GUI消息流生成器包括能够根据消息流模式中的消息流原语的组装生成流逻辑的程序代码,其中所述消息流模式匹配于从注册表中所列web服务中所选的web服务操作的web服务操作类型,所述代码生成逻辑包括能够将消息流逻辑变换成由web服务服务器运行时所使用的web服务逻辑的程序代码。
10.如权利要求
9所述的系统,其中消息流原语每个都包括选自输入原语、输入响应原语、要求原语、要求响应原语、通知原语、呼出原语、呼出响应原语、输入错误原语、用户定义的活动原语及呼出错误原语的消息流原语。
11.如权利要求
9所述的系统,其中消息流模式每个都包括选自输入请求流模式、呼出响应流模式、通知/要求请求流模式及要求响应流模式的消息流模式。
12.如权利要求
9所述的系统,其中web服务操作类型是选自单向操作、请求-响应操作、要求-响应操作及通知操作的web服务操作类型。
13.一种包括具有用于web服务的面向消息的构造的计算机可用程序代码的计算机可用介质的计算机程序产品,所述计算机程序产品包括执行权利要求
1-8中任何一项所述的方法步骤的计算机可用程序代码。
专利摘要
本发明的实施方式解决现有技术关于web服务构造的缺陷并提供用于面向消息的web服务构造的新的且非显而易见的方法、系统与计算机程序产品。用于面向消息的web服务构造的方法可以包括图形化组装定义web服务操作的消息流原语的选择,互连所选的消息流原语,以便表示从一个互连的消息流原语到另一互连的消息流原语的消息流;及根据消息流原语的选择生成web服务逻辑。该方法还可以包括响应接收到调用web服务的请求而解释或执行web服务逻辑。
文档编号H04L29/06GK1992725SQ200610143930
公开日2007年7月4日 申请日期2006年11月3日
发明者艾伦·V.·陈, 菲尔·考尔萨德, 燕玲, 陈仲明, 黄志伟, 理查德·M.·戈德伯格, 戴维·A.·斯普里特 申请人:国际商业机器公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1