论文部分内容阅读
摘要:随着电子商务的迅速崛起,基于Web的应用模式迅速发展,Web应用从局部化发展到全球化,从B2C(business -to-customer)发展到B2B(business-to-business),从集中式发展到分布式,Web服务成为电子商务的有效解决方案。Web服务是一个崭新的分布式计算模型,是Web上数据和信息集成的有效机制。Web服务的新型架构,Web服务的高效执行方式,Web服务与其他成熟技术的有机结合以及Web服务的集成是解决现实应用问题的重要技术。
关键字:Web服务;组合服务;应用集成
1 引言
面向服务的计算(Service-Oriented Computing, SOC)近年来成为软件产业界和学术界关注的一个热点话题。从软件技术的角度看,SOC的前提是“软件作为服务”,而SOC的核心是如何协同这些软件服务以完成所面临的应用任务。
目前Web服务的使用还比较单调,主要是将企业原有的信息系统进行封装,通过一系列标准发布出来让用户通过网络使用。而要较全面地实现SOC的潜能,还需要在软件服务的基础之上,对所谓的“组合服务”提供支持,进一步构建完整的面向服务的架构技术体系和系列标准。
本质上,Web服务是一种自描述的、模块化的、由URI标识的应用程序,它采用基于XML和Internet的开放标准,支持基于XML的接口定义、发布和发现。开放标准的采用使得Web服务具有很好的互操作性,自描述、模块化的特性允许任何企业采用任何编程语言在任何平台上开发松散耦合的应用部件,从而通过适当的服务组合支持Internet上的应用程序集成。
基本的Web服务规范包括Web服务描述语言(Web Services Description Language, WSDL)、简单对象访问协议(Simple Object Access Protocol,SOAP)、通用描述、发现与集成(Universal Description, Discovery ,Integration,UDDI)等。Web服务安全(WS-Security)、Web服务事务(WS-Coordination、WS-Atomic Transaction) 等规范的出现正在弥补Web服务在安全性、事务支持方面的缺陷,但是距离一个成熟的Web服务架构还有很多问题需要解决。人们逐渐意识到,仅通过制定这些标准并不能充分支持SOC的理念。原因在于从根本上说标准是既有技术的规范化和统一化,固然有助于解决不同层次的互操作问题,但对技术本身的不足无能为力。而作为一类基于Internet的分布式计算系统,这种面向服务的协同应用系统在对开放动态的网络计算环境和不断演化的用户个性化需求的适应性方面常有很高的要求;而目前已有的软件开发技术和运行支撑技术还不能完全满足这方面的要求,特别是在对系统的动态配置和再配置以及自适应的演化方面有待深入研究。
SOA架构下的服务组合是近年来工业界和学术界的研究热点,从整体上看这些研究可以分为三大类:人工组合、半自动化组合和自动化的组合。
2 人工组合方式
Triana提出的是典型的人工组合框架,在这些框架中,用户需要通过图形或者文本编辑器来产生一个工作流,然后提交给工作流执行引擎来执行。提供了一个图形化的用户界面,用户从工具箱里选择所需的服务并将它们拖放到布局管理器中。这些服务可以通过关键词检索从UDDI中得到。另外,在Triana中可以使用本地工具来进行服务的组合[1]。BPWS4J提供了一个Eclipse插件让用户在XML层次上来组织一个工作流图。这个工作流图以及跟组合相关的服务的WSDL文档提交给执行引擎[2]。Self-Serve允许用户通过服务构造器来建立一个工作流。服务构造器跟UDDI进行交互来发现所需的服务。使用一个基于P2P的执行模型,组合图(一个被标注的状态图)被执行。该系统的一大特色是引入了服务容器的概念,容器中存放着具有相同功能的服务集合。在运行时,服务容器根据成员模式和一个评估服务来选择实际所需的服务[3]。
以上这些系统都存在着一定的不足:第一,当提供的服务的数目增长时,发现和选择服务方法不能及时获知,因此不具有可伸缩性。第二,它们需要用户具有底层的知识。比如在BPWS4J中,用户要在XML层次上建立一个工作流。虽然Triana提供了一个图形化的拖放界面,但是对大型的工作流,它们不太适用。第三,如果某个服务出现问题,整个工作流的执行都会失败,即使在Self-Serve中,服务容器可能会选择一个服务替代者。
3 半自动化的组合方法
采用半自动化的组合技术,它们在组合的过程中向前又迈进了一步,对服务的选择考虑了语义的一些特征,但是用户仍然需要从适当的服务列表中选取自己所需的服务并按照约定的顺序来连接这些服务。Sirin给出了一个系统,能使服务的选择在每个阶段上都保持语义一致性[4]。Cardoso 和Sheth提出了一个框架,能向用户推荐符合用户需求的服务,主要是通过匹配用户指定的Service Template(ST)和Service Object(SO) [5]。Chen则提出一种基于知识的框架,能在用户构建工作流的时候提供建议。该系统允许用户储存工作流,所以有利于工作流的复用[6]。这些系统虽然解决了人工组合的部分问题,但是当有海量的服务供用户选择的时候,它们仍然不具有伸缩性。另外,在这些系统中几乎没有容错机制。例如在Cardoso和Sheth中,如果一个ST和一个SO匹配失败,整个组合过程也将会失败。同样地,在Sirin和 Chen中,组合的工作流被发送给执行引擎,如果在这个阶段某个服务不可用,执行也会失败。最后,除了Chen外,其他的系统对工作流的不同层次的粒度也支持不够。
4 自动化的组合方法
自动的工作流组合技术,通过使用人工智能或相关技术来自动化整个组合过程。McIlraith 和Son是一个基于Agent的服务组合框架,它通过使用类属过程和语义化的服务来引导组合。Agent代理充当Web服务的网关并负责服务的选择和调用。该框架假定一个类属过程的存在,如果缺少了类属过程,组合不能进行。另外,如果Agent代理不能匹配一个服务,执行也会终止[7]。SWORD通过使用基于规则的服务描述来自动化服务的组合。用户指定初始和最终状态,然后planner试着将一系列的服务形成一个满足需求的链。这里要求用户要能给出状态,并且它里面没有自动的服务发现机制。同样地,组合也是基于特定服务的执行,当某个服务不可用时,也很难保证整个过程的顺利执行[6]。
在组合工作流中一个重要的方面就是服务的发现。在这方面的研究主要集中在用DAML-S来描述服务。匹配器比较服务请求者和服务提供者的DAML-S描述。Sycara提出了一个基于DAML-S匹配器和DAML-S虚拟机的框架。该框架没有使用工作流仓库技术,所以当收到一个请求时,工作流每次都需要重新计算。另外,它没有区分执行时和非执行时工作流。所有的工作流都是建立在被执行的服务是可用的基础之上的,结果就是它所建立的工作流不能被复用也不能被共享,因为谁也不能保证现在可用的服务将来一定还是可用的[8]。
5 结束语
Web Service的自动组合体现了以用户为中心的业务模式,用户的各种纷繁复杂的需求可以通过对Web Service的组合而不是重新编写代码来实现。目前,这些组合方式还有待完善,因为在实际的业务例子中,用户的很多需求都是模糊的,并不能提供清晰的目标。
参考文献
[1]Taylor, I., Shields, et al: Grid Enabling Applications Using Triana, Workshop on Grid Applications and Programming Tools, 2003,Seattle. In conjunction with GGF8.
[2]IBMAlphaworks,BPWS4J,http://www.alphaworks.ibm.com/tech/bpws4j.
[3]Benatallah, B., Sheng, Q.Z., and Dumas, M.: The Self-Serv Environment for Web Services Composition, Jan/Feb, 2003, IEEE Internet Computing. Vol 7 No 1. pp 40-48.
[4]Sirin, E., Hendler, J., and Parsia, B: Semi-automatic composition of web services using semantic descriptions. In Web Services: Modeling, Architecture and Infrastructure Workshop in conjunction with ICEIS 2003.
[5]Cardoso, J. and Sheth, A. 2002. Semantic e-Workflow Composition. Technical Report,LSDIS Lab, Computer Science, University of Georgia.
[6]Ponnekanti, S. R., and Fox, A. 2002. SWORD: A Developer Toolkit forWeb Service Composition. In Proc. Of the Eleventh International World Wide Web Conference,Honolulu.
[7]McIlraith, S. and Son, T.C. 2002. Adapting golog for composition of semantic web services. In Proc. of the 8th International Conference on Knowledge Representation and Reasoning (KR ’02), Toulouse, France.
[8]Sycara, K., Paolucci, M., Ankolekar, A., and Srinivasan, N.: Automated Discovery,Interaction and Composition of Semantic Web Services, Journal of Web Semantics,1(1) 2003.
关键字:Web服务;组合服务;应用集成
1 引言
面向服务的计算(Service-Oriented Computing, SOC)近年来成为软件产业界和学术界关注的一个热点话题。从软件技术的角度看,SOC的前提是“软件作为服务”,而SOC的核心是如何协同这些软件服务以完成所面临的应用任务。
目前Web服务的使用还比较单调,主要是将企业原有的信息系统进行封装,通过一系列标准发布出来让用户通过网络使用。而要较全面地实现SOC的潜能,还需要在软件服务的基础之上,对所谓的“组合服务”提供支持,进一步构建完整的面向服务的架构技术体系和系列标准。
本质上,Web服务是一种自描述的、模块化的、由URI标识的应用程序,它采用基于XML和Internet的开放标准,支持基于XML的接口定义、发布和发现。开放标准的采用使得Web服务具有很好的互操作性,自描述、模块化的特性允许任何企业采用任何编程语言在任何平台上开发松散耦合的应用部件,从而通过适当的服务组合支持Internet上的应用程序集成。
基本的Web服务规范包括Web服务描述语言(Web Services Description Language, WSDL)、简单对象访问协议(Simple Object Access Protocol,SOAP)、通用描述、发现与集成(Universal Description, Discovery ,Integration,UDDI)等。Web服务安全(WS-Security)、Web服务事务(WS-Coordination、WS-Atomic Transaction) 等规范的出现正在弥补Web服务在安全性、事务支持方面的缺陷,但是距离一个成熟的Web服务架构还有很多问题需要解决。人们逐渐意识到,仅通过制定这些标准并不能充分支持SOC的理念。原因在于从根本上说标准是既有技术的规范化和统一化,固然有助于解决不同层次的互操作问题,但对技术本身的不足无能为力。而作为一类基于Internet的分布式计算系统,这种面向服务的协同应用系统在对开放动态的网络计算环境和不断演化的用户个性化需求的适应性方面常有很高的要求;而目前已有的软件开发技术和运行支撑技术还不能完全满足这方面的要求,特别是在对系统的动态配置和再配置以及自适应的演化方面有待深入研究。
SOA架构下的服务组合是近年来工业界和学术界的研究热点,从整体上看这些研究可以分为三大类:人工组合、半自动化组合和自动化的组合。
2 人工组合方式
Triana提出的是典型的人工组合框架,在这些框架中,用户需要通过图形或者文本编辑器来产生一个工作流,然后提交给工作流执行引擎来执行。提供了一个图形化的用户界面,用户从工具箱里选择所需的服务并将它们拖放到布局管理器中。这些服务可以通过关键词检索从UDDI中得到。另外,在Triana中可以使用本地工具来进行服务的组合[1]。BPWS4J提供了一个Eclipse插件让用户在XML层次上来组织一个工作流图。这个工作流图以及跟组合相关的服务的WSDL文档提交给执行引擎[2]。Self-Serve允许用户通过服务构造器来建立一个工作流。服务构造器跟UDDI进行交互来发现所需的服务。使用一个基于P2P的执行模型,组合图(一个被标注的状态图)被执行。该系统的一大特色是引入了服务容器的概念,容器中存放着具有相同功能的服务集合。在运行时,服务容器根据成员模式和一个评估服务来选择实际所需的服务[3]。
以上这些系统都存在着一定的不足:第一,当提供的服务的数目增长时,发现和选择服务方法不能及时获知,因此不具有可伸缩性。第二,它们需要用户具有底层的知识。比如在BPWS4J中,用户要在XML层次上建立一个工作流。虽然Triana提供了一个图形化的拖放界面,但是对大型的工作流,它们不太适用。第三,如果某个服务出现问题,整个工作流的执行都会失败,即使在Self-Serve中,服务容器可能会选择一个服务替代者。
3 半自动化的组合方法
采用半自动化的组合技术,它们在组合的过程中向前又迈进了一步,对服务的选择考虑了语义的一些特征,但是用户仍然需要从适当的服务列表中选取自己所需的服务并按照约定的顺序来连接这些服务。Sirin给出了一个系统,能使服务的选择在每个阶段上都保持语义一致性[4]。Cardoso 和Sheth提出了一个框架,能向用户推荐符合用户需求的服务,主要是通过匹配用户指定的Service Template(ST)和Service Object(SO) [5]。Chen则提出一种基于知识的框架,能在用户构建工作流的时候提供建议。该系统允许用户储存工作流,所以有利于工作流的复用[6]。这些系统虽然解决了人工组合的部分问题,但是当有海量的服务供用户选择的时候,它们仍然不具有伸缩性。另外,在这些系统中几乎没有容错机制。例如在Cardoso和Sheth中,如果一个ST和一个SO匹配失败,整个组合过程也将会失败。同样地,在Sirin和 Chen中,组合的工作流被发送给执行引擎,如果在这个阶段某个服务不可用,执行也会失败。最后,除了Chen外,其他的系统对工作流的不同层次的粒度也支持不够。
4 自动化的组合方法
自动的工作流组合技术,通过使用人工智能或相关技术来自动化整个组合过程。McIlraith 和Son是一个基于Agent的服务组合框架,它通过使用类属过程和语义化的服务来引导组合。Agent代理充当Web服务的网关并负责服务的选择和调用。该框架假定一个类属过程的存在,如果缺少了类属过程,组合不能进行。另外,如果Agent代理不能匹配一个服务,执行也会终止[7]。SWORD通过使用基于规则的服务描述来自动化服务的组合。用户指定初始和最终状态,然后planner试着将一系列的服务形成一个满足需求的链。这里要求用户要能给出状态,并且它里面没有自动的服务发现机制。同样地,组合也是基于特定服务的执行,当某个服务不可用时,也很难保证整个过程的顺利执行[6]。
在组合工作流中一个重要的方面就是服务的发现。在这方面的研究主要集中在用DAML-S来描述服务。匹配器比较服务请求者和服务提供者的DAML-S描述。Sycara提出了一个基于DAML-S匹配器和DAML-S虚拟机的框架。该框架没有使用工作流仓库技术,所以当收到一个请求时,工作流每次都需要重新计算。另外,它没有区分执行时和非执行时工作流。所有的工作流都是建立在被执行的服务是可用的基础之上的,结果就是它所建立的工作流不能被复用也不能被共享,因为谁也不能保证现在可用的服务将来一定还是可用的[8]。
5 结束语
Web Service的自动组合体现了以用户为中心的业务模式,用户的各种纷繁复杂的需求可以通过对Web Service的组合而不是重新编写代码来实现。目前,这些组合方式还有待完善,因为在实际的业务例子中,用户的很多需求都是模糊的,并不能提供清晰的目标。
参考文献
[1]Taylor, I., Shields, et al: Grid Enabling Applications Using Triana, Workshop on Grid Applications and Programming Tools, 2003,Seattle. In conjunction with GGF8.
[2]IBMAlphaworks,BPWS4J,http://www.alphaworks.ibm.com/tech/bpws4j.
[3]Benatallah, B., Sheng, Q.Z., and Dumas, M.: The Self-Serv Environment for Web Services Composition, Jan/Feb, 2003, IEEE Internet Computing. Vol 7 No 1. pp 40-48.
[4]Sirin, E., Hendler, J., and Parsia, B: Semi-automatic composition of web services using semantic descriptions. In Web Services: Modeling, Architecture and Infrastructure Workshop in conjunction with ICEIS 2003.
[5]Cardoso, J. and Sheth, A. 2002. Semantic e-Workflow Composition. Technical Report,LSDIS Lab, Computer Science, University of Georgia.
[6]Ponnekanti, S. R., and Fox, A. 2002. SWORD: A Developer Toolkit forWeb Service Composition. In Proc. Of the Eleventh International World Wide Web Conference,Honolulu.
[7]McIlraith, S. and Son, T.C. 2002. Adapting golog for composition of semantic web services. In Proc. of the 8th International Conference on Knowledge Representation and Reasoning (KR ’02), Toulouse, France.
[8]Sycara, K., Paolucci, M., Ankolekar, A., and Srinivasan, N.: Automated Discovery,Interaction and Composition of Semantic Web Services, Journal of Web Semantics,1(1) 2003.