论文部分内容阅读
面向服务的应用开发近年来发展迅速并受到软件产业界和学术界越来越多的关注。面向服务的应用开发,以服务构件作为基本元素,服务构件的视图由服务规约定义,组装应用时只需要服务规约所定义的语法、行为和语义信息,而真正的服务提供者在运行时才集成到应用中。服务规约的定义和运行时服务发现、绑定和组合使得面向服务的软件开发方法有效地控制了开发应用程序的时间和复杂度。
现有的面向服务技术中,服务描述主要关注服务的接口和静态属性信息,服务发现是通过精确的字段值或是语义相似性匹配查找服务实现,这样可以保证接口一致性。然而,忽视服务行为(即其外部可见的操作序列)的一致性可能引起运行时刻的异常;缺少服务运行时的质量信息,例如可用性、响应时间等,使得查找返回的并不是当前最有效的服务实例;忽略服务上下文信息将导致返回的服务实例不能准确地满足用户需求。这些缺陷阻碍了面向服务技术应用在不断变化的动态环境中,比如说智能空间。
针对上述服务发现和服务集成中忽视服务行为、服务质量和服务上下文的问题,很多研究工作不断涌现。我们正是在这些工作的基础上,提出统一的可描述接口、行为和能力(包括服务质量和服务上下文)信息的服务规约定义,基于该服务规约的服务发现以及服务组合方式,以及统一的面向服务应用的开发框架和过程。
本文提出了一种扩展的面向服务的开发模式,在现有的服务交互中引入行为和能力信息,其中主要工作包括:
1.对现有的面向服务的技术进行了系统分析,引入了一种面向服务的组件模型,深入探讨了该模型中的三个重要概念:服务规约,服务组件实现和服务组件,定义了扩展的服务规约以支持对接口、行为和能力信息的描述。
2.基于扩展的服务规约,提出了服务发现过程和服务匹配方法,包括对接口、行为和能力三方面属性的匹配。特别地,借鉴面向对象编程中关于行为的相关工作,提出并分析了服务发现的调用一致性和服务替换的观察一致性。
3.提出一种半自动的服务组合的方法,组合服务提供的公共操作的执行逻辑(过程模版)由UML活动图描述,并且通过把过程模版转化为控制语义等价的Petri Nets(以类似泳道的方式分离组合服务中的各个基本服务元素)实现对组合服务行为一致性的验证。
4.在OSGi平台上,采用动态AOP技术,设计和实现了一个中间件框架,支持对扩展服务规约的注册、发现和集成。该中间件平台被称为SOBECA(面向服务的支持行为和能力的体系结构),它由辅助开发工具和运行支持系统组成。辅助开发工具分别帮助服务提供者、服务使用者和服务集成者定义服务描述、服务需求和集成服务操作的过程模板,运行支持系统通过检测服务行为一致性、采集服务运行时动态信息以保证正确、有效和准确的服务交互。