通过Web服务选择和编排动态执行业务流程外文翻译资料

 2022-04-26 10:04

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


通过Web服务选择和编排动态执行业务流程

Muhammad Fahad, Neacute;jib Moalla and Yacine Ourzout

摘要:业务流程的动态执行需要对多个现有服务进行选择和组合,不管它们的位置、平台、执行速度等是否一致。因此,web服务选择似乎是一项具有挑战性的、难以实现的任务,尤其是服务任务的执行必须基于运行时的用户需求时。

本文介绍了我们基于语义的业务流程执行引擎(SBPEE),它通过编排各种公开的web服务来实现业务流程的动态执行。SBPEE基于我们设计的项目领域本体(PrjOnt,Project Domain Ontology),它捕获用户规范和SWRL规则,根据企业的业务逻辑和需求将用户规范划分为特定的类别。基于这种用户项目和需求的分类,我们的语义引擎从服务存储库中选择web服务,以实现业务流程的动态执行。SBPEE匹配web服务的功能需求,并要求QoS属性识别相关候选服务列表,以完成复杂的业务流程事务。最后,我们介绍了创建订单业务流程的案例研究,该流程旨在通过跟踪各种web服务来为客户创建订单。

关键词: Web服务选择与组合;工作流执行;协作事务流程平台

第一章 介绍

面向服务体系结构(Service Oriented Architecture, SOA)是企业IT基础设施的基础构建模块,是不同企业在管理业务流程的实现时的最常用范例。根据Zap的调查,大约50%的企业借助SOA构建他们的解决方案,而超过25%的企业计划在不久的将来使用它[1]。SOA的基本概念是Web服务,它是一个自包含的、自描述的松散耦合的可重用软件组件。各种服务被组合起来形成业务流程,这些业务流程处理复杂的业务功能,并为企业构建起灵活和敏捷的工作流。根据Papazoglou的说法,“工作流系统能够自动执行业务流程,在整个或部分过程中,文档、信息或任务会根据一组规则从一个参与者传递到另一个参与者[2]。”工作流系统还指业务流程的动态执行,它需要在一定条件下自动选择、集成和调用web服务,以实现企业所需的功能[3]。其在运行时最具挑战性的部分是选择一个能够满足指定的需求和约束而不需要人工干预的web服务。为了进行最优选择,web服务选择算法首先执行功能匹配,然后从存储库中选择QoS值较高的服务,以达到企业所需要的最优解决方案。假设当其中一个服务无法满足所需的约束,许多服务存储库中现有的服务可以集成为复杂的组合服务,以执行部分事务或工作流来实现事务流程所需的功能。

近年来出现了许多不同的业务流程建模标记和语言,其中包括业务流程建模标记(BPMN)[4]、工作流[3]、Petri Net[6]、统一建模语言(UML)[7]和业务流程建模语言(BPML)[8]。每种语言都为业务流程建模提供了不同的概念、语法和复杂性。Web服务组合提供了一种开放的、基于标准的方法,用于将Web服务连接到一起,以创建更高级别的业务流程。有两种方法可以组合这些服务,即Orchestration方式和Choreography方式。Orchestration处理的是一种机制,在该机制中所包含的web服务都处于一个节点中心流程(另一个web服务)的控制下,同时被调用的web服务都不知道自己处于复合流程中[9]。在Choreography方式下,被包含其中的每个web服务都知道何时活跃、交换消息,以及与谁交互以完成业务流程[10]。由于灵活性的原因,Orchestration是构建可执行业务流程的web服务的一种高效且更实用的机制。近年来,许多关于web服务的组合和执行的建议被提出,如WSCL[10]、XLANG[11]、BPMN[4]、DAML-S(和OWL-S)[5]、WSCI[11]、BPML[8]和BPEL4WS[12]。不同的研究和企业使用这些典型示例为他们的业务项目管理解决方案构建复杂的业务流程。

在本文中,我们展示了基于语义的业务流程执行引擎(SBPEE),用于动态执行业务流程,这需要在运行时合并多个现有企业服务。我们利用OWL[31]设计了项目领域本体(Project domain ontology, PrjOnt),它捕获了用户规范;在SWRL[32]中设计了基于语义的规则,根据企业的业务需求将用户项目/规范划分为特定的类别。基于用户项目的这种分类,我们的语义引擎SBPEE必须从服务存储库中选择并编排各种web服务,以实现业务流程的动态执行。web服务无法在设计时就选择好,只能根据客户需求在运行时选择它们。SBPEE匹配web服务的功能细节,并要求QoS属性识别相关候选服务列表,以完成复杂的业务流程事务。一旦匹配了给定的标准并计划了最佳解决方案,它将执行web服务以完成所需的任务。我们研究了一个企业创建订单业务流程的案例,该企业的目标是通过遵循许多web服务来完成中间任务,为客户创建订单。WSO2应用服务器上部署了许多具有多种变体的web服务,以指定处理企业复杂业务功能的业务流程。SBPEE使web服务的不同实例相互交互,实现单个请求,这些请求执行复杂工作流的部分以实现所需的目标。

论文的其余部分结构如下:

第2章讨论基本概念和术语,以及了介绍web服务选择和组合领域的相关工作。

第3章有两个主要部分,讨论业务流程的动态执行的方法。第一部分介绍了基于语义的业务流程执行引擎。第二部分讨论了我们的案例研究中的一个示例场景。

第4章总结并展示了我们对这项工作的看法。

第二章 相关工作

2.1基本概念和术语

这里我们讨论一些基本的概念和术语来帮助读者理解这本书。

SOAP:简单对象访问协议是一种平台独立的基于XML的通信协议,客户端使用它通过HTTP传输协议访问web服务[13]。

UDDI: UDDI(Universal Description, Discovery and Integration)包含了对web服务的描述和查找访问它们的机制[14]。它描述了关于web服务的三种类型的信息。首先是关于名称、地址、已知标识符等。其次是web服务属于哪个业务类别和它的类型等。第三是关于服务的技术信息。UDDI只提供功能性属性,不存储web服务的非功能性属性。

WSDL: Web服务描述语言(Web Services Description Language, WSDL)是指通过Web服务提供的操作,以及通过网络发送和接收数据的结构[15]。Web服务是使用WSDL文件在Web服务存储库中注册的,因此必须访问UDDI注册中心才能确定Web服务是否在注册中心中发布。WSDL的问题在于它只描述发送和接收的数据的结构,而不能描述数据的语义或含义。语义的缺乏为自动搜索组合达到任务需求这一过程设置了障碍。

OWL-S: OWL基于W3C标准的万维网本体语言,是用于描述web服务属性及其语义的上层本体[16]。它由三个部分组成,也称为三个主要的上层本体。服务层文件包含一般信息和服务设计的内容。流程层表示服务如何实现所需的任务或功能。底层部分说明了如何访问web服务和与行业标准的链接。

WSML和WSMO: Web服务建模本体(WSMO)提供了一个概念模型和一个正式的建模语言WSML (Web服务建模语言),通过术语和原理的正式规范来指定Web服务的语义[17]。它用于具有Web服务执行环境(WSMX)的引用实现的语义标记。

BPMN:由BPMI提出的业务流程建模符号(Business Process Modeling Notation, BPMN)用于在工作流中建立业务流程模型[4]。它由各种图形组件组成,为业务流程的规范建模。每个BPMN符号与语言的实现执行之间都有一个映射。

BPEL4WS: 由IBM、Microsoft和BEA共同发起的一项协作计划产生了一个新的web服务工作流规范,名为web服务业务流程执行语言(BPEL4WS),简称为BPEL[12]。为了编排web服务,BPEL4WS提供了一个基于xml的语法来构建控制逻辑和关键算法,该算法调用并组合各种web服务来执行业务流程。

QoS: 服务质量(Quality of Service, QoS)是服务的一组非功能需求,如可用性、响应时间、声誉、吞吐量、可靠性等。当多个服务与功能需求匹配时,匹配QoS以选择最合适的服务至关重要。

Causal Links: 当web服务组合由局部顺序组成并且web服务由语义链接时,将其称为因果链接(Causal Links)的组合[18]。大多数情况下,因果链接矩阵(CLM)用于找到现有web服务的最佳组合。

2.2现有的方法:服务选择和组合

在研究文献中,web服务组合算法和系统使用QoS和基于非QoS的方法。基于QoS的web服务组合方法在进行选择和组合web服务时要考虑QoS属性。 Lecue等人从一系列具有功能性属性的服务集合和基于非功能性属性的CLM 中开发了因果链接矩阵(CLM) [18]。基于CLM和CLM 矩阵,选择最合适的服务并进行组合。Jiang等人基于修整方法开发了一种QoS感知自动服务组合的工具[19]。他们的修剪机制删除了没有输入的服务,因为它们不能被组合,而那些QoS不是最优的服务可以快速找到所需的组合。Bartalos和Bielikova也基于修整机制提出了一种具有语义的web服务组合方法,但同时也考虑了预处理和后处理,从而得到最优解[20]。Alrifai等人基于QoS属性开发了一种可扩展的web服务选择方法[21]。在他们的方法中,他们将抽象服务作为输入,并提出了一种机制,在考虑最优QoS属性的基础上为每个服务类选择具体的服务。Ardagna等人使用服务水平协议(Service Level Agreement, SLA)来表现一种在执行基于BPEL中开发的带注释的业务流程时被使用的QoS约束[26]。

基于非QoS的web服务组合方法在web服务的选择或组合过程中不考虑QoS参数。Lecue等人针对web服务组合提出了一种描述逻辑推理和基于AI规划的方法[22]。他们使用DL在输入和输出上进行论证和推理,以便更好地解释web服务的组成。他们的Golog解释器能够借助因果链接自动分支,并提供条件web服务组合。Rao等人为语义web的发现和组合提供了一种新的混合方法[23]。他们的方法主要关注用户对许多关键决策的干预,而不是提示和识别许多不一致之处。他们提出了一个图形计划来预测可行性分析,以评估是否可以从另一个状态达到一个给定的状态。Sohrabi等人使用一阶语言来表示用户偏好和web服务,以找到web服务的最优组合[24]。他们自定义的Golog(即,代理/逻辑编程语言) 在web服务组合方面提供了用户选择权。Aydm等人提供了带有事件演算的自动化web服务组合(即,逻辑编程处理时间和变化)[25]。它们的诱导定理生成一系列事件和一组时间顺序判断,这些判断有助于web服务组合。

与我们的方法最接近的工作是基于工作流技术的web服务组合,该技术旨在生成静态或动态的工作流。Casati等人针对静态工作流生成提出了EFlow平台中的自适应和动态服务组合[27]。他们为组合服务制定了一个图表,其中包括服务、决策和事件,还捕获了图表内的执行顺序。他们进一步扩展了组合服务定义语言(CSDL)的工作,该语言将服务调用及其操作分离开来[28]。Schuster等人通过在多态过程模型中建模和组合服务来设计企业流程[29]。PPM中有趣的特性是,它们将服务建模为状态机,封装服务的各种可能状态及其执行顺序,而有关服务组合的论证和推理则在状态机上基于其转换进行。

对于服务选择和组合已经得到了不少的研究成果,但是业务流程的动态执行需要在运行时根据用户需求选择web服务,这需要得到学术界的更多关注。

第3章 业务流程动态执行方法

为了实现web服务和调用这些服务完成所需任务的业务流程之间的互操作性,我们使用开源的WSO2应用服务器来托管我们设计的web服务。对于每个web服务,中介器都会生成一个唯一的端点,以便终端用户算法或应用程序可以调用和使用它。我们在一个名为Activiti的开源工具中设计业务流程,该工具提供图形符号和相应的符合BPMN规范的XML (即,bpmn2.0 xml文件) [30]。通常,在业务流程和中介器之间构建互操作性有两种方法。首先是“Web服务任务”,其次是“JAVA服务任务”。在Activiti工具中,这两个任务(Web服务任务和JAVA服务任务)都以相同的方式可视化,但实现机制不同。调用web服务的两种方法都有各自的优缺点。

首先,想要通过业务流程内部的WSDL命令直接调用web服务执行任务需要在中介器部署相应的web服务,并在业务流程中设计web服务任务。然后,我们必须生成web服务的输入/输出规范代码。最后,我们必须为业务流程的执行变量和web服务参数手动编写接口连接代码,它能够将业务流程的输入数据和输出变量映射到web服务的输入和输出参数。由于业务流程内的web服务调用的代码不可更改,因此该方法不允许在运行时进行web服务选择,并且在我们的示例和动态语义web场景中也不适用。

第二个方法是通过业务流程和web服务之间的中介JAVA类。这种JAVA类有一个web服务选择算法,该算法动态地将服务任务与web服务绑定在一起,web服务通过将服务存储库的web服务自带的功能属性和QoS属性进行匹配来很好地配置web服务。对于系统的设计,我们遵循该方法来动态执行业务流程,它需要以下步骤:

首先,它需要业务流程和JAVA类之间的链接,以及为业务流程中的服务任务实现代码分配适当的值。为此,需要将JAVA类的名称指定为Activiti类属性(即,activiti:class = “ wso.services.AuthenticateUser ”)。其次,它需要实现作为JAVA委托类而实现的中介J

全文共6581字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[13272],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。