APP下载

Web服务动态组合关键方法研究

2021-09-05刘聪杨怀洲

计算机时代 2021年8期
关键词:WEB服务

刘聪 杨怀洲

摘  要: Web服务动态组合方式相较于静态组合方式拥有更高的灵活性和实用性,动态组合使服务在异常情况下可以被替换。文章通过对当前Web服务动态组合主要方法的实现原理与相关关键技术进行综合分析,比较得出各类方法的适用性及优缺点,并提出了Web服务动态组合的研究方向。

关键词: Web服务; 服务组合; 智能规划; 工作流技术

中图分类号:TP301          文献标识码:A    文章编号:1006-8228(2021)08-21-03

Research on key methods of web service dynamic composition

Liu Cong, Yang Huaizhou

(Xi'an Shiyou University, Xi'an, Shaanxi 710065, China)

Abstract: Compared with static composition, dynamic composition of web services has higher flexibility and practicability. Dynamic composition enables services to be replaced in abnormal situations. Through the comprehensive analysis of the implementation principles and related key technologies of the current main methods of web services dynamic composition, the applicability, advantages and disadvantages of these methods are obtained by the comparisons, in this paper, and  the research direction of Web services dynamic composition is proposed.

Key words: Web service; service composition; AI planning; workflow technology

1 Web服務动态组合关键方法介绍

Web服务是面向服务的体系结构的一种典型实现方法,具有跨平台、跨标准、跨语言等优点。但是,由于当前单个Web服务功能有限,为了完成更加复杂多样的业务需求,我们需要组合不同服务以获得更大粒度的服务[1]。

静态组合和动态组合是Web服务的两种组合方式[2]。静态组合需要定义大量的模板且服务在运行期间不可替换更改,针对上述缺陷,需要对服务动态组合。

当前关于Web服务动态组合的研究主要主要分为两个方向:一个是基于智能规划,以斯坦福大学和卡内基-梅隆大学等机构提出的Web服务本体语言(OWL-S)为代表;另一个是基于工作流技术,以IBM、微软等提出的业务流程执行语言(BPEL4WS)以及惠普公司提出的EFlow技术为代表[3]。

⑴ 基于语义的Web服务动态组合方法

面向语义的Web服务动态组合,其基本思想是利用本体来描述Web服务,通过带有语义信息的Web服务使服务之间能够自动发现、组合和执行。

目前,主要的语义Web服务描述语言有WSMO(Web service modeling ontology)、SAWSDL(semantic annotations for WSDL and XML schema)和OWL-S(Ontology Web Language for Services,Web服务的本体语言)等。

OWL-S是在语义网的OWL基础架构下,用来描述语义网服务,在 OWL-S顶层服务本体中有三种本体:Service Profile、Service Model和Service Grounding[4]。

Service Profile描述服务是什么,描述服务的功能、适用范围以及服务的质量;

Service Model描述服务如何工作,描述调用服务以及服务执行期间的相关情况;

Service Grounding描述如何访问服务,描述访问一个服务的相关细节。

实现基于 AI 规划的动态服务组合方法,是一个十分复杂的问题。目前,这一方法还处于理论探索阶段,大多数Web 服务规范都是基于语法的[5],其表达能力弱,无法支持服务组合过程中的智能推理,适用于事先知道服务功能和效果的系统。

⑵ 基于BPEL的Web服务动态组合

BPEL是基于工作流方法中的典型代表,目前已经成为 Web 服务组合工业上的事实标准。BPEL(Business Process Execution Language)是目前应用广泛的一种用于自动化业务流程的形式规约语言,BPEL结合并且替换了IBM的WSFL(Web Services Flow Language)和微软公司的XLANG规范,它的作用是将一组现有的服务重新组合起来,形成一个新的Web服务,以此来完成一个新的业务需求[2]。

BPEL是基于XML的流程描述语言,支持相关的Web服务技术:WSDL、SOAP、UDDI。BPEL利用WSDL规范提供抽象定义与具体实现的分离机制,结合工作流的建模,流程执行时在UDDI注册中心动态查询,获取该抽象定义可能的Web服务实现,再根据QoS选择最优Web服务。

基于工作流技术的服务组合方法图形建模界面直观,自动化程度较高,实用性高,得到很多开源产品的支持。同时工作流的理论研究比较成熟,基于BPEL的规范得到IBM和ORACLE等主流厂家的支持,符合现实商业需求。

⑶ 通过服务的动态绑定实现服务动态组合

通过服务的动态绑定实现服务动态组合,通常在服务组合定义过程中不为活动指定固定的服务提供者,将具体的绑定延迟到组合服务执行时动态完成,根据业务流程运行时的输入动态调用Web服务[2]。即:设计阶段使用抽象服务,执行阶段再进行具体服务的绑定。

静态绑定适用于高度定向的系统,服务的动态绑定使服务在异常情况下可以被替换,增强了服务组合能力,使服务在运行期间仍具有高度灵活性和实用性,适用于业务流程更加复杂的大型系统。

⑷ 基于Petri网的Web服务动态组合

基于Petri网的Web服务动态组合是较为常用的一种形式化的Web服务组合方法。由于Web服务的行为基本上是操作的一个偏序集,所以可以直接将Web服务映射到一个Petri网上,Petri网是将具体的服务组合描述语言与形式化模型进行映射,实现流程描述到形式化模型的转换,然后再进行验证[6]。

Petri网作为描述动态Web服务组合的工具,方便直观,但当服务数量较多,服务之间交互复杂时,可能会引起状态空间爆炸,且这种方法对于流程描述语言会有要求,适用于环境较为理想的系统。

⑸ 基于知识复用进行服务动态组合

基于知识复用进行服务动态组合--Keen(AKnowledge Reuse Based Approach for Dynamic Services Composition) ,方法的核心思想是将领域专家的知识和经验封装成组合模板,透明地提供给用户,使用户可以在业务层面以一种大粒度的方式描述需求,建立業务应用。

基于知识复用的服务动态组合遵循“构建与使用相剥离”的原则,它将面向服务的应用构造分为两个层面,基础设施构造和应用构造,领域专家将其知识与经验封装成组合模板提供给相关业务用户,业务用户根据自身需求,在应用层面以一种大粒度方式按需构建应用[7]。这种动态服务组合方法提高了业务用户主动参与的能力,但对用户计算机知识要求较高。

⑹ 通过增加Cache动态调用模块

国防科学技术大学CISR技术国防科技重点实验室提出了一种SOA架构下的动态服务组合模型,通过增加一个Cache动态调用模块来实现服务的动态调用。客户端部署后,服务使用者首次成功调用服务时的信息将被保存在Cache模块中,如果服务失效,则重新搜索并调用服务,并更新Cache中的内容[8]。这种服务组合的效率和可执行程度高。

2 主要动态服务组合方法的比较

Web服务的应用程序需要应对开放和不断发展的环境,并需要在动态环境下运行(例如:用户需求的变化、资源可用性的变化)[9]。表1对上述几种动态组合方法进行了比较及总结。

3 结束语

Web服务动态组合相较于静态组合实用性更高且更加灵活。本文通过对当前Web服务动态组合主要方法的实现原理与相关关键技术进行了综合分析,进而比较得出各类方法的优缺点及适用性。Web服务组合将服务按照一定规则有序调用,而动态组合在Web服务组合的基础上根据QoS动态替换获得质量更高的服务。因此,如何准确发现和描述Web服务、如何在服务组合的过程中选择服务有待进一步研究。

参考文献(References):

[1] 丁志军,周泽霞.Web服务组合测试综述[J].软件学报,2018.29(2):299-319

[2] 任文娜.基于BPEL的Web服务组合可靠性分析研究[D].西安电子科技大学,2018.

[3] 李静亚,寇志亮.AI规划在Web服务组合中的应用[J].信息化建设,2016.4:31

[4] 凌静,江凌云.物联网服务的语义化描述:一种WSDL到OWL-S的转换方法[J].计算机科学,2019.46(4):89-94

[5] Adel Boukhadra, Karima Benatchba, Amar Balla. Efficient distributed discovery and composition of OWL-S process model in P2P systems,2016.7(2):187-203

[6] 邓式阳.基于逻辑Petri网的Web服务组合与优化方法研究[D].山东科技大学,2019.

[7] 刘颖,胡海涛.一种基于知识复用的动态服务组合方法[J].计算机科学,2011.38(3):153-158

[8] 皇甫先鹏,陈洪辉,罗雪山.一种SOA架构下的动态服务组合模型[J].中国电子科学研究院学报,2009.4(5):469-472,479

[9] Martina De Sanctis, Antonio Bucchiarone, Annapaola Marconi.Dynamic adaptation of service-based applications:a design for adaptation approach,2020.11(1):70-73

收稿日期:2021-03-17

基金项目:广州市哲学社会科学发展“十三五”规划2018年青年项目(2018GZQN43); 广东省教育厅青年创新人才(人文社科)项目(2016WQNCX095)

作者简介:钱志华(1982-),男,江西抚州人,硕士,算法工程师,主要研究方向:图像工程,生物特征识别。

猜你喜欢

WEB服务
现代SOA架构差旅报销系统的设计与实现分析
基于3G技术的智能水表WEB服务系统的研究
基于Web服务的SPSS与.NET系统集成开发
基于线性回归的航班延误预测研究与系统开发
基于Proteus的嵌入式以太网Web服务虚拟实验的设计与实现
智慧校园一卡通与图书馆系统对接探究
教学工作量管理系统的设计与实现
一种基于SOA的web异构数据集成方法研究
面向服务构架下Web服务安全问题的研究