《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于上下文的个性化Web services 组合研究

基于上下文的个性化Web services 组合研究

2008-03-19
作者:陈哲强, 周文彬, 王文杰

  摘 要: Web services组合是一个新的研究领域,它的个性化组合是研究的重点。在个性化Web services组合规范下,提出了一种基于上下文的组合方法,使得组合流程更加有效。该方法考虑了用户的上下文、需求、偏好以及Web services上下文,并把它们集成在组合中。而且为了保证规范的重用,在组合中基于上下文和BPEL扩展了一种规范语言C-BPEL。
  关键词: Web services  上下文  个性化  BPEL规范

 

  Web services是一些自包含、自描述、模块化的程序,可以发布在Web上,并被发现和调用。Web服务使得网络从静态的、松散的Web页面集合逐渐演化成动态的、互连的应用服务平台" title="服务平台">服务平台。Web services的一个重要思想就是未来的应用将由一组利用网络的服务组合" title="服务组合">服务组合而成。Internet 环境的动态、异构等特性要求基于web提供的服务更灵活、可靠地满足客户的要求,实现个性化的服务,也就是按照用户的要求将各种已有的服务组合起来,协同工作完成用户的任务。为了实现个性化的服务自由组合以达到用户的要求,必须综合考虑环境、用户的偏好、组合服务上下文、执行组合服务上下文等因素。上下文是指与用户、应用程序及所处的环境之间交互相关的任何信息[1]。组合服务的规范语言有:BPEL(Business Process Execution Language)[2]、WSFL(Web Services Flow Language)[3],WSIPL(Web Services Integration and Process Language)[4]等。使用规范语言的目的是为了给组合服务提供高层次的描述,但是目前这些规范语言并没有把上下文因素考虑进去。为此,本文基于上下文对BPEL规范语言进行了扩展,扩展后的规范语言为C-BPEL(Context-based Business Process Execution Language),它能够很好地满足个性化的服务组合。
1 个性化组合中的上下文
  Dey定义的上下文(context)“就是指与用户和所处的环境之间交互相关的任何信息”[5]。从Web services 发展来看,上下文更应该是包括用户环境、用户偏好、用户需求和web services的执行状态的一系列信息。在服务组合中有三类基本的上下文:用户上下文(U-context)、Web services上下文(WS-context)和组合服务上下文(CS-context)。本文只研究前两类上下文。
  一个Web 服务可以参加多个组合服务,在它参加一个新的组合服务之前,会检测这个组合服务中各个服务的可用性和资源配置等信息,并把这些信息储存在一个机构中,这个储存结构就是Web services 上下文。Web services上下文在分布式环境下是可以引用或者繁殖的,它可以给远程执行环境提供连续的上下文信息,并且把它封装在SOAP头部当作例子进行传递。在新的组合服务中,只使用一个原始的规范去描述组合服务的执行图表和参与组合服务的各个服务的类型。用户发送的服务请求实际上就是发送的上下文信息,也就是检测到的各个服务的上下文,提炼这个组合服务并规范化,就得到了执行原始规范后的新规范,这个新的规范就是组合服务的个性化规范。把各个服务集合起来按照一个规范的执行图表来描述服务连接的顺序,再集成用户上下文和Web services上下文后,所形成的新组合。就是个性化的组合服务。新的组合服务可以参与到另一个组合服务中去,这个新组合服务上下文就作为另一个组合服务的Web services上下文。
  用户上下文和Web services上下文的这种进化的特征,使得组合服务的规范具有不确定性。因为用户和服务的自然属性是动态的,组合服务中发生变化,两个类型的上下文的结构也就发生变化。组合服务规范" title="服务规范">服务规范变化的结果就是:从组合服务中执行一个现存的组合规范就得到一个新的规范,用户上下文或Web services上下文每次改变时就产生一个个性化的规范。这就是个性化的组合规范语言C-BPEL。与只能在一个给定的规范下创建服务的BPEL相比,C-BPEL允许一个规范有多个执行,所以更加能支持个性化的组合要求。
2 基于上下文的组合与C-BPEL
  BPEL是一个规范语言,它定义了合成商业过程的Web services之间的交互。BPEL的规则是把目前的一系列服务组合成一个新的服务,它能够在组合过程和BPEL的基础上描述商业过程的行为,BPEL流程的每一个步骤都成为一个活动。由于BPEL的流程是在用户请求和调用服务的基础上完成的,所以C-BPEL在考虑了用户上下文、服务上下文后,同样采用请求和调用服务。基于上下文的组合流程如图1所示。图1中,用户需要通过他的需求、偏好以及他的环境来研究他的个性化Web服务。为了达到这一目的,用户修改好自己的参数后,就发送一个请求。这些参数被组织且储存在一个创建的上下文结构中,然后发送到C-BPEL流程,C-BPEL流程通过考虑U-context和WS-context等参数的兼容性来估计用户的请求,将U-context和WS-context这两个上下文结构更新并且传给用户。


  在两个上下文结构的基础上,用C-BPEL生成的代码能很好地规范Web services组合,并能有效地执行组合中各服务的年表,较好地完成服务的组合。程序1为BPEL组合类型结构,它由一序列的元素组成,在BPEL中是通过流程的自然状态和描述参数基本活动的一系列属性描述的。为了在组合中集成上下文,特别是为了加强组合类型的计划表,增加了两部分上下文:
  (1)属性上下文。指明了这一个过程中必须考虑的组合中的上下文。在中增加的元素如下:
  (2)用户或者Web services上下文。在中增加的元素如下:
  
  于是上下文类型就分解为两个元素: and 。程序2为BPEL新的组合类型结构。
  程序1:BPEL组合类型结构:


 
    
  
           "0" maxOccurs="unbounded">
       
       



 
 
 
 

 

 

 程序2:新的组合类型结构:
 
 
 
 
   minoccurs="0" maxOccurs="1" />
   minoccurs="0" />
 

 

 

  用户上下文用元素描述,并分成两个元素。元素描述用户的个人特征,元素描述用户的动态特征。
  描述Web services上下文。对照用户上下文也分解为两个元素:元素描述WS的状态特征,元素描述WS的动态特征。
    用户上下文描述了用户在给定时间的状态,用侧面、需求和偏好来表示。由于用户上下文的动态特性" title="动态特性">动态特性,使得用户的侧面可以进化,并且任何交互都可以修改它。静态的用户上下文由元素 描述,这个元素包括五个元素: age、 gender、language、religion和race。动态的用户上下文用元素描述,这个元素包括六个元素组成:
  Web services上下文描述了组合瞬间的状态,也分为静态和动态上下文。静态的Web services上下文由元素来描述,包括五个元素:。动态的Web services上下文由元素来描述,包括两个元素。


3 实例说明
  C-BPEL是把有效服务组合成为一个新服务的一种语言,C-BPEL流程主要是接收请求,然后调用其他服务,同时考虑用户和调用服务的上下文信息。这里,通过如图2所示的旅行活动过程的组合流程例子来说明执行过程:假设有一个游客计划去观光和购物,他按照自己的兴趣爱好发送一个请求给景点,在请求被处理后,游客会得到景点的列表;然后整个过程就会按照顺序一步步地执行。首先从游客那里接收信息,然后检测天气预报和查看在参观期间景点是否对外开放来确定参观的景点,即需要调用观光Web services和天气预报Web services来确定参观的景点,这两个活动是并行;最后调用交通运输" title="交通运输">交通运输Web services 来选择那种交通运输方式,一旦这个服务被调用,包括参观的景点和采用的交通方式的需求结果就会传递给游客。
4 上下文匹配模块
  为了更好地发现用户的需求服务,使用上下文匹配模块CMM(Context Matching Module)。可以最大限度地匹配客户的服务请求和服务提供者的服务。基于Web services的WSDL、SOAP、UDDI等技术,在XML下,上下文匹配模块由三个步骤组成:元素间的匹配、属性间的匹配、估价间的匹配。第一步,匹配模块提炼上下文信息,并把自己的上下文信息和用户的请求及上下文信息进行对比,这一步的结果就是列出用户上下文和服务上下文的各个元素;第二步,就是把罗列的元素进行匹配,得到属性相似的元素。第三步,是估价间的匹配,一旦匹配属性被发现,就提取他们的估计值,并检测相似性,返回的结果就是用户上下文和服务上下文的估价匹配。
  本文提出了一种基于上下文的方法来研究个性化服务组合,并在BPEL语言基础上基于上下文扩展了一种新的语言C-BPEL,同时在这个语言的基础上提出了一个个性化服务组合的规范。该规范不仅考虑了用户的个性化需求,而且综合考虑了三种上下文信息即:用户上下文(U-context)、Web services上下文(WS-context)和组合服务上下文(CS-context),因而这个规范更能满足个性化组合服务的要求。为了确保用户的偏好和上下文在服务组合中更加有效地匹配,提出了一种上下文的匹配模块,该模块能够更好地提供个性化Web服务的选择和发现。
参考文献
[1]  BR′EZILLON P. Focusing on context in human-centered computing. IEEE Intelligent Systems,2003,18(3).
[2]  ANDREWS T, CURBERA F. Business process execution language for Web ServicesVersion 1.1. echnical report,IBM,2003. http://www-128.ibm.com/developerworks/library/specification/ws-bpel/.
[3]  LEYMANN F. Web services flow language. Technical report, IBM Corporation, 2001.
[4]  CHEUNG D W, LO E, NG C Y,et al. Web services oriented data processingand Integration. In Proceedings of the Twelfth International World Wide Web Conference,Budapest, Hungary, May 2003.
[5]  DEY A K, ABOWD G D, SALBER D. A conceptual framework and a toolkit for supportingthe rapid prototyping of context-aware applications.Human-Computer Interaction Journal, 2001,16(1).
[6] 石静,丁长明,赵泽宇,等.服务合成研究综述[J],计算机科学,2004,31(6):54-58.
[7]  NANDA M G, CHANDRA S, SARKAR V. Decentralizing composite web services. In proceedings of workshop on compilers for parallel computing, Amsterdam, Nedherland, January 2003.
[8]  MAAMAR Z, ALKHATIB G, MOST′EFAOUI, S K, et al. Context-based Personalization of seb services composition and provisioning. In Proc. of The 30th IEEE EUROMICRO Conf. - Software Process and Product Improvement EUROMICRO’2004, Rennes, France, 2004.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。