用于动态地创建web服务的方法和系统的制作方法

文档序号:7628598阅读:74来源:国知局
专利名称:用于动态地创建web服务的方法和系统的制作方法
技术领域
本发明涉及面向服务架构的应用的开发领域,并且更具体地涉及用于动态地创建Web服务的方法和系统。
背景技术
面向服务架构(SOA)允许软件编程人员根据通过网络以组件提供给任何人和任何地方的服务建立编程解决方案模型。服务开发工具(例如WebSphere Studio Application Developer(WSAD))是基于服务和处理(流程)的编程模型。所述服务是架构中把所有部分捆绑在一起的关键因素。服务由端点(业务应用)实现,并由Web服务定义语言(WSDL)文件描述。所述处理实现新的业务服务,并在其实现中使用现有的服务。所述处理实现还可以包括其它的处理。
用于开发SOA应用的处理通常包含以下步骤1.创建希望使用的服务。将现有资产转变为服务,(使它们可再次使用),或者从头开始创建新的服务。
2.创建业务处理。业务处理是将所有单独建立的服务会聚到一起的方法。处理使用一组服务得到一个新的服务。建立时(build-time)工具例如WSAD-IE中的处理编辑器可被用来建立业务处理。
3.创建服务提供者希望提供的服务。现在创建处理,其中所有以前的服务被组合到另一个服务内,该服务需要被部署或被打包到可以放在应用服务器上的文件内。
以目前的技术,上面所列的所有步骤都被在建立时使用诸如WSAD的建立时工具完成。现有的工具不能动态地和实时地开发新的Web服务。在建立时可能不知道实现流程中的服务的业务应用系统,而且现有的工具不允许所述工具实时地选择和绑定到业务应用系统,也不能填补流程节点中到端点的绑定尚未完成的空隙。

发明内容
根据本发明的实施例可以实现一种用于实时地动态地开发新的服务的方法和系统。在一种情况中,可以开始描述和实现流程的处理服务,但是可以不必完成该流程,并可以略去用于它的一些节点的服务实现。如前所述由端点实现并执行业务服务,所述端点是业务应用系统。在建立时可能不知道实现所述流程中的服务的业务应用系统,因此,可以用允许所述建立工具实时地选择并绑定到业务应用系统的框架和方法增强该工具。因此,此处的实施例涉及一种用于动态地完成流程和创建服务的方法和框架。例如,填补流程节点中到端点的绑定尚未完成的空隙能够完成所述流程。
在本发明的第一个方面中,动态创建Web服务的方法可以包括如下步骤向网络中其它服务提供者揭示正被创建的服务的流程,请求该流程的节点所需的服务,并且使得其它服务提供者能够填充所述流程节点所需的服务。该方法可以进一步包括如下步骤合并该流程节点所需的由其它服务提供者填充的服务,以及一旦填充了所述服务并且该流程合并了所述服务,可选择地删除对所述流程节点所需服务的任何请求。因此所述方法能完成流程的所有节点并且创建和部署所述服务。应注意,所述请求步骤可以包括通告该流程的流程节点所需服务的WSDL文件,所述WSDL文件代表该流程为了完成所述服务所需的至少一个服务。请求步骤还可以包括在类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件。
在本发明的第二个方面中,使用服务提供者的网络动态地创建Web服务的系统可以包括连接到服务提供者的网络的处理器。该处理器可以被编程以便向网络中的其它的服务提供者揭示正被创建的服务的流程,请求该流程中的流程节点所需的服务以及使得其它服务提供者能够填充所述流程节点所需的服务。所述处理器还可以被编程以便合并所述流程节点所需的由其它服务提供者填充的服务,以及一旦填充了所述服务并且该流程合并了所述服务,可选择地删除对该流程节点所需服务的任何请求。所述处理器可以进一步被编程以便完成流程中所有的节点,创建所述服务并部署该服务。该处理器可以通过通告WSDL文件来请求该流程的流程节点所需的服务,所述的WSDL文件代表该流程为了完成所述服务所需的至少一个服务。所述服务器还可以通过在类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件来进行请求。
在本发明的第三方面中,一种计算机程序具有可由机器执行的多个代码部分,用于使得该机器执行如上面第一和第二方面概述的方法和系统中所述的一些步骤。


附图中示出了多种实施方式,但是可以理解,本发明并不限于示出的精确的方案与手段。
图1示出了根据本发明的一个实施例的服务和处理编程模型的图示;图2示出了根据本发明的一个实施例用于动态地创建Web服务的方法的流程图;图3示出了根据本发明的一个实施例用于动态地创建Web服务的方法的另一个流程图。
具体实施例方式
根据本发明的实施例可以向其它服务提供者揭示正被构建的服务的流程,并允许所述服务提供者填充该流程中所需的节点。可以通过请求或通告流程节点所需服务的WSDL文件完成揭示和填充。典型地,服务的WSDL文件描述该服务能执行什么功能(抽象接口),怎样与该服务交互(绑定)和该服务的实现位于何处(定位)。然而,根据本发明被通告的WSDL文件代表了所述流程(或正创建的服务)为了实现将完成的服务需要什么,而不是服务当前能提供什么。与可以提供什么相对的对需要什么的请求与WSDL文件的现有应用不同。此处以与其它任何应用完全不同的方式使用WSDL文件。再次地,此处使用的WSDL文件并不描述提供的服务,而是所希望的服务。还可以在类似UDDI的目录内公布这些所需的WSDL文件。就此而言UDDI也被以一种不同的方式使用。典型的UDDI被服务请求者(用户)用于发现他们希望使用的服务。相反,此处类似UDDI的目录被用于通告需要什么,并请求服务提供者的帮助以便提供所需的服务。服务提供者能够访问该目录,并能将所需的WSDL提供回该框架。如果该框架接受了来自服务提供者的WSDL,它将把该WSDL合并到构建中的流程中,并从目录中删除该通告。当流程的所有节点都完成之后,框架创建所述服务并部署它。
参考图1的示例的情况,图1的流程图示出了系统10,其中正在构建一个允许不同的源更新企业的顾客信息数据库46的服务。要求可以是如顾客更新处理流程12中所示,来自不同源的顾客数据必须以一种统一的方式保持在企业顾客数据库中。为保证数据质量、有效性和完整性,必须在更新顾客数据存储之前对数据进行标准化、匹配和汇总。图1中示出了描述了对地址进行标准化13、指定或匹配14、汇总15及更新16的活动的处理流程12。该处理流程中的每个活动调用所使用的服务18中的相应的服务(23、24、25或26),并且所述服务分别由端点应用实现,诸如服务43、44、45或46。例如,标准化地址活动13调用地址标准化服务23,并且地址标准化功能由地址标准化引擎43实现。
图1的示例说明示出了开发的各个服务(地址标准化服务、关键字指定服务、数据汇总服务和持久化服务)并且这些服务被一起组合到一个处理服务内(顾客更新服务)并实现一个处理(顾客更新处理)。所述各个服务中的每一个由它们自己的WSDL文件(例如,地址标准化服务WSDL文件)描述,并由一个端点应用(例如,地址标准化引擎)实现。这些端点应用中的一些可以由第三方提供,并在构建时是不可用的。在构建时,定义了服务接口(WSDL)并且没有到端点的任何特定绑定。可以如上所述通告所述各个WSDL。第三方提供者可以检查WSDL并确定它们是否满足该说明。然后,第三方提供者可以动态地提供它们的WSDL(绑定到它们的端点)。
在图1的示例的情况中,在构建该服务时除了数据匹配引擎44之外图1中示出的所有组件都可用的假设能进一步说明本发明的实施例。因此,在该实现中由于缺少服务实现和执行所需的匹配引擎端点44,关键字指定服务24不能被完成。关于具有数据匹配引擎的多个供应商的知识允许使用系统或框架10动态地选择一个供应商并实时地构建需要的服务。就此而言,可以为关键字指定服务创建上述提到的特定的WSDL文件,其仅在该WSDL的实现部分缺少服务位置信息。
回顾一下,WSDL文件包括三个部分抽象服务接口,服务接口实现和服务位置。WSDL中的服务接口被称为“portType”。PortType由具有输入和输出的一个或多个操作构成。所述输入和输出由消息描述。使用XML方案键入服务消息。由特定于服务提供者的可扩展元件描述服务接口实现。服务接口实现支持多个特定于服务提供者的绑定,包括SOAP、Java、无状态会话EJB、J2EE连接器、JMS、处理和转换。如图所示,服务23、24和26分别使用无状态会话EJB绑定33、34和36,而服务25使用Java绑定35。由特定于服务提供者的端口可扩展元件描述服务位置。
现在参考图2,一个流程图示出了用于动态地构建Web服务的方法50。方法50包括向网络中其它服务提供者揭示正被构建的服务的流程的步骤51,请求该流程的流程节点所需的服务的步骤52,和使得其它服务提供者能够填充所述流程节点所需服务的步骤55。注意请求步骤可以包括通告该流程中的流程节点所需服务的WSDL文件的可选择步骤53,所述WSDL文件代表为了完成该服务所述流程所需的至少一个服务。请求步骤还可以包括在一个类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件的步骤54。所述方法还可以包括在步骤56合并所述流程节点所需的由其它服务提供者填充的服务的可选择步骤,以及可选择地在步骤57一旦填充了所述服务并且该流程合并了所述服务,删除对所述流程节点所需的服务的任何请求。然后方法50在步骤58完成该流程的所有节点并且创建和部署该服务。
如上提到的,向其它服务提供者揭示正被构建的服务的流程和允许服务提供者填充该流程中所需的节点可以通过通告流程节点所需服务的WSDL文件实现。典型地,服务的WSDL文件描述了该服务可以执行什么功能(抽象接口),如何与服务交互(绑定),服务实现位于何处(位置)。然而,根据此处的实施例的被通告的WSDL文件代表了为了完成所述流程(或正被创建的服务)需要什么,而不是它当前可以提供什么。另外,可以在类似UDDI的目录中公布WSDL文件,同样所述类似UDDI的目录被以不同于典型的UDDI目录的方式使用。典型的UDDI目录被服务请求者(用户)用来寻找他们希望使用的服务。相反地,此处类似UDDI的目录可以被用于通告需要什么并且请求服务提供者的帮助以提供所需的服务。服务提供者可以访问该目录并且能将所需的WSDL提供回框架。如果框架接受了来自服务提供者的WSDL,它将把该WSDL合并到构造中的流程内,并且从所述目录中删除该通告。当完成流程的所有节点后,框架创建所述服务并部署它。
应注意,UDDI(统一描述,发现和集成)项目致力于定义一组说明,所述说明使得企业易于加速对B2B和因特网上的交易的使用。UDDI通过定义企业可以如何揭示它们的业务应用来完成所述目的,例如作为Web服务的电子商务、订单管理、库存、销售和记账,它们可以直接地安全地被定义、被发现和被集成到贸易伙伴和客户处的业务应用中。
UDDI项目基于现有的因特网标准,是平台和实现中性的,并且自从它的推出以来已产生了相当大的推动力。最重要的是,UDDI涉及基于UDDI说明的Web服务的共享实现。所述的Web服务,即UDDI业务注册,是企业以及它们作为Web服务揭示给贸易伙伴和顾客使用的应用的因特网目录。业务程序以类似于人们使用Web搜索引擎搜索网站的方式使用UDDI业务注册以便确定其它公司的程序说明。这种因特网上的自动的应用到应用的发现和集成将有助于消除阻止企业更广泛地采用B2B的许多配置和兼容性问题(尽管B2B具有节省成本和提高效率的潜力)。
综上所述并参照图3的流程图示出的方法70,用户72希望开发一种服务,可以使用服务构建工具74创建服务处理或流程76。所述各个服务中的每一个服务由它自己的WSDL文件描述,并且由端点应用实现。其中这些端点应用中的某一些可以由第三方提供商81(A到N)提供,并且可以在构建时是不可用的。在构建时,定义服务接口(WSDL)并且没有到端点的任何特定绑定。根据本发明的一个实施例,框架78能够如上所述请求或通告84各个WSDL82。第三方提供商81可以检查WSDL82并确定它们是否满足所述说明。然后第三方提供商81可以在运行时环境80期间动态地提供它们的WSDL(绑定到它们的端点)。另外,还可以提供传统的UDDI86以便就像已知的服务那样提供服务,只是所提供的服务是由框架78动态地创建的。
应当理解可以使用硬件、软件或硬件和软件的组合来实现本发明。还可以在一个计算机系统中以集中的方式实现本发明,或以分布式的方式实现本发明,其中不同的元件分散在若干互连的计算机系统上。适合于执行这里描述的方法的任何类型的计算机系统或其它装置都是适用的。硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,当所述计算机程序被装入并被执行时,控制所述计算机系统,从而它执行此处说明的方法。
本发明还可以被嵌包含在计算机程序产品中,所述计算机程序产品包括能够实现此处说明的方法的所有特征,并且当其被装入计算机系统时能够执行这些方法。当前上下文中的计算机程序或应用是指一组指令的任何的语言、代码或符号的任何表示,其旨在使得具有信息处理能力的系统或是直接地或是在a)转换成另外的语言,代码或符号;b)以不同的材料形式复制之一或两者之后执行特定的功能。
可以其它形式表述本发明而不脱离本发明的精神或基本属性。因此应当参考下面的权利要求而不是上述的说明确定本发明的范围。
权利要求
1.一种动态地创建Web服务的方法,包括如下步骤向网络中其它服务提供者揭示正被构建的服务的流程;请求所述流程的流程节点所需的服务;以及使得其它服务提供者能够填充所述流程节点所需的服务。
2.根据权利要求1的方法,其中所述方法进一步包括合并由所述其它服务提供者填充的所述流程节点所需的服务的步骤。
3.根据权利要求2的方法,其中所述方法进一步包括一旦所述服务被填充并且已被所述流程合并,则删除对所述流程节点所需服务的任何请求的步骤。
4.根据权利要求2的方法,其中所述方法进一步包括完成所述流程的所有节点,创建所述服务并部署所述服务的步骤。
5.根据权利要求1的方法,其中所述请求步骤包括通告用于所述流程的流程节点的所需服务的Web服务定义语言(WSDL)文件的步骤。
6.根据权利要求5的方法,其中所述WSDL文件代表为了完成所述服务所述流程所需的至少一个所需服务。
7.根据权利要求6的方法,其中所述请求步骤包括在类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件的步骤。
8.一种使用服务提供者的网络动态地创建Web服务的系统,包括连接到服务提供者的所述网络的处理器,其中所述处理器被编程为向所述网络中其它服务提供者揭示正被构建的服务的流程;请求所述流程的流程节点所需的服务;以及使得其它服务提供者能够填充所述流程节点所需的服务。
9.根据权利要求8的系统,其中所述处理器进一步被编程为合并由所述其它服务提供者填充的所述流程节点所需的服务。
10.根据权利要求9的系统,其中所述处理器进一步被编程为一旦所述服务被填充并且已被所述流程合并,则删除对所述流程节点所需服务的任何请求。
11.根据权利要求9的系统,其中所述处理器进一步被编程为完成所述流程的所有节点,创建所述服务并部署所述服务。
12.根据权利要求8的系统,其中所述处理器进一步被编程为通过通告用于所述流程的流程节点所需的服务的Web服务定义语言(WSDL)文件进行请求。
13.根据权利要求12的系统,其中所述WSDL文件代表为了完成所述服务所述流程所需的至少一个所需服务。
14.根据权利要求8的系统,其中所述处理器进一步被编程为通过在类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件进行请求。
15.一种其上存储有计算机程序的机器可读存储器,所述计算机程序具有多个可由机器执行的代码部分,用于使得所述机器执行如下步骤向所述网络中其它服务提供者揭示正被构建的服务的流程;请求所述流程的流程节点所需的服务;以及使得其它服务提供者能够填充所述流程节点所需的服务。
16.根据权利要求15的机器可读存储器,其中所述机器可读存储器进一步被编程为合并由所述其它服务提供者填充的所述流程节点所需的服务。
17.根据权利要求16的方法,其中所述机器可读存储器进一步被编程为一旦所述服务被填充并且已被所述流程并合,则删除对所述流程节点所需服务的任何请求。
18.根据权利要求16的方法,其中所述机器可读存储器进一步被编程为完成所述流程的所有节点,创建所述服务并部署所述服务。
19.根据权利要求15的方法,其中所述机器可读存储器进一步被编程为通过通告用于所述流程的流程节点所需服务的WSDL文件进行请求。
20.根据权利要求1的方法,所述机器可读存储器进一步被编程为通过在类似统一描述、发现和集成(UDDI)目录中公布所需的WSDL文件进行请求。
全文摘要
一种动态地创建Web服务的方法(50),包括向网络中其它服务提供者揭示(51)正被构建的服务的流程,请求(52)所述流程的流程节点所需的服务和使得其它服务提供者能够(55)填充所述流程节点所需的服务。所述方法还可包括合并(56)由其它服务提供者填充的服务,以及一旦服务被填充并且已被流程合并则可选择地删除(57)对所述流程节点所需服务的任何请求。该方法然后可以完成(58)所述流程的所有节点并创建和部署所述服务。应注意,所述请求步骤可以包括通告(53)用于所述流程节点所需服务的WSDL文件。所述请求步骤还可以可选择地包括在类似UDDI目录中公布(54)所需的WSDL文件。
文档编号H04L29/06GK1797401SQ20051012836
公开日2006年7月5日 申请日期2005年11月14日 优先权日2004年12月28日
发明者A·A·布-甘纳姆, T·E·克里默, N·A·卡茨, V·S·莫尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1