没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记105(2004)51-71www.elsevier.com/locate/entcs走向解释语言Mirko Virolia,1aDEIS,Universit`adegliStudidiBolognaviaVenezia 52,47023 Cesena(FC),Italy摘要我们介绍了一个正式的框架,用于研究Web服务的编排语言的语义。以BPEL4WS语言作为参考案例研究,我们定义了一种核心语言的语法和语义,以从BPEL4WS规范中派生出业务流程的交互行为。这是通过开发一个进程代数来实现的,除了用于选择、顺序和并行组合的通常运算符之外,进程代数还具有命令式编程语言的构造,例如迭代循环和变量赋值。这些都旨在关注相关性的概念,BPEL4WS利用相关性将业务流程定义为多个流程实例的并发行为。关键词:演示语言,Web服务,进程代数。1介绍Web Services技术的研究热点之一是orchestration语言。演示语言指定了现有Web服务之间交互发生时的关系和约束:产生的行为称为业务流程。然后可以开发演示引擎,它采用规范并自动实现实现业务流程的新Web服务。依靠编排语言被认为可以以更一致和更健壮的方式支持复杂服务的开发[16,20],简化其分析,设计和部署。一些编排语言作为标准化的建议出现1电子邮件地址:mviroli@deis.unibo.it1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2004.05.00852M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)51Web服务技术中的标准化,例如由包括Microsoft、IBM、IBM System、IBM和SAP [21]的联盟开发的BPEL4WS(用于Web服务的业务流程执行语言),以 及 由 Sun Microsystems 、 Intalio 、 Sterling Commerce 和 CSC [2] 开 发 的BPML(业务流程管理语言)。Web服务编排的概念通常与Web服务编排:由于编排更关注不同Web服务的协调,因此编排是关于单个Web服务或业务流程公开的交互协议。然而,这两个概念并不完全不同。例如,BPEL 4 WS既可以用来描述编排问题,也可以用来描述编排问题;从定义抽象流程的核心部分开始,引入了两个小的扩展来处理可执行流程建模编排问题,以及业务协议建模编排问题。另一方面,BPML只处理编排问题,它建立在WSCI的编排标准之上[3]。由于我们认识到这两个概念之间的紧密关系和重叠,因此在本文中,我们选择BPEL 4 WS(有时简称BPEL 4 WS)作为研究Web服务组织概念的案例研究-尽管目前还不清楚这两个概念中的哪一个将真正成为标准。然而,我们相信我们的研究和方法的重要部分也可以应用于BPML,其细节留给未来的研究。在许多现有的松散耦合的Web服务之上-可能由不同的供应商实现并驻留在不同的组织中- 然后使用编排语言来从它们中指定完整的、健壮的和一致的业务流程特别是,这样的语言是为了定义Web服务协调现有活动的行为,通过强制利用给定的交互协议,支持不同的工作会话-也称为流程实例-,支持长时间运行的事务,提供管理异常的设施,等等。从软件工程的角度来看,编排Web服务的一般任务并不新鲜,但传统上被称为协调活动[9,13,19] -即,统治和管理不同软件组件的交互。自从原型协调语言Linda引入以来,许多现有的协调模型已经被研究和工程化[12] - JavaSpaces [11]、TuCSoN [22]、KLAIM [10]和Manifold [1],其中一些特性和思想实际上被编排语言所借鉴。一般来说,协调任务在业务场景中是一个特别重要的任务,因为它意味着包括使一组不同的M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)5153软件组件成为一个完整的系统--一个可靠有效地服务于其预期目的的工程制品因此,协调模型和语言已经成为一个彻底的正式研究的主题并不奇怪,其目标是精确描述它们的语义,证明它们的属性,并推动正确和有效实现的发展。重要的例子是Linda的过程代数方法[6],以及[23]的协调服务的正式框架。大多数现有的作品在这个方向上依赖于进程代数技术,因为它们提供了一个方便的框架,正式协调模型,其内在的能力来处理的概念,互动和并发行为。类似的方法也适用于编排语言[16,15],其主要目标是改进现有的规范,- 正如任何其他散文文档一样-有时可能是模棱两可的,在相关方面过于紧凑和/或在不太有趣的方面过于冗长。尽管如此,在为编排语言(如ORM)提供形式化模型的过程中,人们注意到进程代数确实被认为是一个参考,但也增加了一些新的和有趣的问题,值得研究。最值得注意的是,除了用于发送和接收消息以及以并发、排他或顺序方式组成活动的典型流程代数运算符之外,还引入了命令式结构,因此,本文的目标是研究所有这些结构之间的关系,提供一个正式的帐户的意义规范和相应的业务流程的行为。这是通过引入一种BPEL4WS核心语言来实现的,该语言专注于其功能的严格子集,并正式描述其(抽象)语法和操作语义。本研究的目的不是研究由非线性引入的某些特征的正常性质,例如[7,5]。相反,遵循主流技术的其他核心语言背后的直觉-轻量级Java [14]是一个显著的例子-我们的目标隔离语言的一个子集,提供其语义的精确、正式的描述。特别是,在本文中,我们确定的新机制,是值得研究的相关性,因为它是一个业务流程和流程实例之间的关系的核心,整个编排的想法。因此,这种核心语言可以作为一种描述工具,完成对特定对象的描述,避免歧义和欠规范,并使属性的正式研究成为可能-例如,类型问题或行为方面。此外,它还可以作为可拓学研究54M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)51BPEL4WS的其他特性(如补偿和故障处理程序),或者添加新机制的建议。本文其余部分的组织如下。第2节简要描述了BPEL4WS编排语言,介绍了一个用于处理物品运输的业务流程的经典示例,该示例贯穿全文,作为案例研究来展示模型的细节。第3节解释了我们的正式模型的目标和范围,介绍了我们使用的抽象语法来代替真正的语法规范。第4节为核心语言提供了操作语义,考虑了业务流程的必要执行方面,包括流程实例和可变分配。最后,第五节提供了结论性意见,并讨论了未来的工作前景。2使用业务流程语言进行2.1BPEL4WSBPEL 4WS是一种基于XML的规范语言,用于描述编排不同的、现有的和可能动态出现的Web服务的交互的业务流程。因此,它建立在WSDL语言之上,用于描述Web服务的接口[8]。这在端口类型、动作和消息方面进行了在面向对象的特别是,就JavaScript而言,动作可以有两种交互行为:单向,当它们被异步调用而不等待任何应答时,或者请求-应答,在实际期望应答的情况下。BPEL4WS规范由四个声明部分组成:伙伴链接、变量、相关集和实现业务流程的活动伙伴链接通过指定流程/Web服务和Web服务/流程交互的端口类型,标识业务流程与其他Web服务交互的关系。值得注意的是,编排语言从不直接引用特定安装的Web服务,而是引用通用端口类型,这些端口类型将在部署时绑定,甚至在运行时动态绑定。这种抽象是特别相关的,因为它还支持那些根据负载平衡问题将Web服务池动态绑定和解除绑定到业务流程业务流程的关键思想是,它的全局任务被划分为不同的会话,称为流程实例,每个会话负责执行M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)5155为每个用户提供单独的服务或工作-无论这是人还是另一个服务。为了支持这种情况,可以定义变量,这些变量可以携带XML数据值和消息,并用于定义每个流程实例的状态。最值得注意的是,变量也可以包含伙伴链接,即对其他服务的抽象引用:类似于π-演算,其中通道用于交换通道名称[18],这种机制有助于表达动态互连结构。然后引入相关集来识别与给定流程实例相关的那些交互,这对于在各种并发会话之间正确地分派消息是必要的。每个关联集都是一组属性,它们是部分消息的别名,并且被类似于一次写入变量处理:在给定时间,对于每个流程实例,许多关联集都是活动的,并且与所有属性相关联的值唯一地标识流程实例。例如,与给定客户请求相关的所有消息最后,指定一个活动来描述业务流程的精确行为。活动通常是通过结构化活动组合基本活动来构建的。基本活动包括发送和接收请求和应答(调用、接收和应答)的行为,这些行为可以指定它们必须遵守的一个或多个现有相关集,或者新的相关集。要初始化的关系集。在其他基本活动中,有可变分配(assign),通过私有链接(源和目标)同步内部并发活动,等待超时(wait)和引发错误(throw)。结构化活动实现了顺序组合(sequence)、保护选择(pick)、并行组合(flow)、迭代周期(while)和多个用例(switch)。2.2为例作为一个参考案例研究,在本文中,我们考虑BPEL4WS [21](第16.1节)的业务规范中描述的航运服务。尽管这个例子很简单,但它涵盖了我们感兴趣的大多数语言特性,包括相关集、变量和流控制结构。这个例子描述了一个Web服务,它实现了一个处理客户所请求的订单的服务,这些订单本身被建模为Web服务。处理两种类型的发货:客户可能要求以原子方式发货,在这种情况下,会向客户发送一个发货通知回调;或者客户可能指定一个未完成的订单,在这种情况下,将在不同阶段发货,每个阶段发送一个不同的发货通知。时间56M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)51按照上一节中介绍的模式,该规范定义了合作伙伴链接、变量、相关集和业务活动。这里只指定了一个合作伙伴链接来表示客户服务:客户通过名为shippingRequest的单向请求调用服务,服务通过名为shippingNotice的操作执行对客户的单向调用来提供通知。发货请求消息由三个部分:一个orderID整数,一个完整的布尔值,指定是否请求是否被原子地处理,以及一个itemsTotal整数,表示要发送的项目数。 发货通知消息由orderID整数和itemsCount整数组成,表示当前发货的项目数。在这个业务过程中使用了三个变量:shipRequest用于存储接收到的消息,shipNotice用于存储要发送的消息,itemsShipped用于计算已经发送的物品数量。只定义了一个包含prop-orderID的相关集:流程实例的唯一特征是相同的命令标识符。最后,实现业务流程的活动如图1所示。在这里,带下划线的部分并不表示实际的XML代码,而是非正式地描述更复杂的XML代码的占位符,为了简洁起见,没有报告其细节。实现的算法如下。当收到请求时,如果如果其完整部分为true,则立即使用相同的itemsCount调用应答。否则,执行while迭代。每次,shipNotice消息的itemsCount部分都被分配给特殊的标识符opaque,这意味着分配的结果是不确定的- 建模,例如与一些后端服务的交互,其不与模型交互。相应地,向客户发送消息,通知运送的物品的数量。当这个数字达到客户请求的总金额时,流程实例终止。 特别是所有指定的调用和接收活动链接到相关集,以便携带相同orderID的交互绑定到相同的流程实例,表示与客户的工作会话。3BPEL4WS的正式规范在本文中,我们为遵循BPEL 4WS规范的编排服务的行为引入了一个正式模型,为现有的非正式规范提供了一个正式的解释[21]。BPEL4WS实际上具有一组相对较大且异构的结构、机制和细节:提供完整的形式化超出了本文的范围。相反,按照编程语言[14,6]背景下的通常研究方法,我们发现M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)5157<接收shipRequest>.联系我们<开关><案例shipRequest.shipComplete>shipNotice.item sCo un t:= sh ipR eq ue st. it ems Count <调用shipNotice>./invoke>序列><产品展示<否则> itemsShipped:=0/assign><而条件=itemsShipRequest.itemsTotal> shipNotice.itemsCount:=opaque/assign><调用shipNotice>./invoke>itemsShipped+=sh ip No t ic e. ite ms Co unt 序列>否则>开关>序列>Fig. 1.运输服务专注于语言的较小但重要的子集是有用的, 一个核心语言感兴趣的特征。3.1模型选择我们这里的目标是研究过程实例的概念,即单个业务过程实际上由不同的子过程组成这一方面,在相关集和变量分配的机制中,是整个编排方法的基础,因此值得仔细研究。此外,这样的研究使我们有机会加深58M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)51进程代数方法的典型编程构造(例如并行组合和选择)、命令式语言的其它编程构造(变量及其赋值)以及通过相关集引入的对进程实例的因此,我们的核心语言有意忽略了一些有趣的方面,如超时、错误处理程序、补偿处理程序、伙伴链接的可重构性、XML数据表示等,包括这些机制与我们在这里感兴趣的研究方面的结束无关;相反,它们可以稍后以一种基本上正交的方式在我们的语言之上引入,以便提供对BPEL 4 WS的完整的正式说明。从语法上讲,我们介绍的语言是BPEL4WS子集的抽象版本:尽管大多数结构都有到核心语言的一对一转换,但有时映射需要一些辅助工作,为了处理简单,这些工作只是非正式地描述。操作语义遵循进程代数上的标记转移系统的标准方法,描述了一个行为规范如何随着内部计算或与环境的交互发生而移动到另一个行为规范。遵循BPEL 4WS在描述伙伴链接时使用的抽象,我们不描述与其他Web服务的交互细节以及相关属性,如同步性、直接性、传输协议等。相反,任何交互的特征在于(i)其含义(调用/应答),(ii)其方向(由业务流程发送或接收),(iii)所涉及的对等体(伙伴链接),以及(iv)内容(携带的消息)。我们介绍的语言没有配备必要的附加形式结构来检查规范的语义正确性,例如,验证变量在初始化之前被使用,相关集没有被初始化两次,等等。由于这将导致一个非常显着的建模工具,其对Web服务技术的重要性在[16]中讨论过,所以这里没有分析它,因为它可能是我们未来研究的主题。因此,我们也避免考虑规范中处理属性、变量、相关集、端口类型等声明的部分,而是关注它们的利用以及它们对业务流程运行时行为的影响。3.2抽象语法设u是整数和布尔值的元变量,v是变量(所有值),p是属性(形成相关集)。Meta-变量l的范围覆盖端点,端点在概念上可以看作是伙伴链接、动作名称和方向的三元组:它们唯一地标识M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)5159w::=v|p变量和属性e::=不透明|u|v|f(e)表达式s::= 0|send(l,v,w)|recv(l,v,w)|while(e){a}|switch(e){a:a}|空规格发送消息接收消息迭代结构交换结构变量赋值源(λ)|目标值(λ)|内部链接操作a; a|(a)|a + a序列、并行组合和选择a::=s活动图二. 抽象语法一种互动发生的渠道。给定任何元变量x,我们让x在x个元素的序列上范围(例如,x1,x2,. ,x k);相应地,x i是一个这样的序列的第i个元素,x∈x用于声明x=xi对于某个i,符号·用于空序列。我们介绍的语言的语法如图2所示。请注意,虽然类似于非常知名的过程代数运算符的结构化活动由标准理论符号表示,但我们对其他活动使用了类似于XML语言的抽象语法。元变量w涵盖变量和属性:它们的赋值定义了给定流程实例的当前状态。这里的表达式可以是不透明的标识符,它在赋值时可以非确定性地假设任何值,布尔值或整数值,变量,或者通过一些数学函数或运算符f的表达式组合。例如,我们允许表达式+(v,1)-也写为为了清楚起见,使用整数表示法v+ 1-代表与v和1相关的值之和,类似地写为例如v >10,v≥vJ,v+5 = 8等等。图3描述了活动的具体XML语法与抽象语法的关系。在左侧,我们使用x表示描述相应右侧元变量x的XML表示-例如,a 160M. Viroli/Electronic Notes in Theoretical Computer Science 105(2004)51a 1. a n 作为1; ; an a 1. a n/流量>作为一个1…an onMessagea M1>a 1/onMessage>... a k/onMessage>/pick>作为一个M;一个1+...+ aM; ak1Ka/while>如(e){a}<开关>a 1/case> a 2 .开关>如switch(e1){a1:switch(e2){a2:
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功