没有合适的资源?快使用搜索试试~ 我知道了~
Web服务协调中的长时间运行的事务与π演算研究
理论计算机科学电子笔记180(2007)55-70www.elsevier.com/locate/entcsWeb服务协调Claudio Guidi、Roberto Lucchi和Manuel Mazzara博洛尼亚大学计算机科学系,意大利博洛尼亚,Via Mura Anteo Zamboni 7 - 40127电子邮件:{cguidi,lucchi,mazzara}@ cs.unibo.it摘要最近,术语Web服务编排已经被引入来解决与Web服务组合和协调相关的一些问题。在过去的几年里,已经提出了几个描述业务流程编排的建议,其中许多语言(例如BPEL 4WS)使用了长时间运行的事务和补偿的概念来处理错误处理。然而,BPEL4WS的复杂性使得很难正式定义这个框架,从而限制了对所设计的应用程序的正式推理。在本文中,我们正式解决Web服务协调,特别注意Web事务。我们加强我们过去的工作-事件演算-引入两个主要的新颖性:i)多播事件通知机制,和ii)事件范围名称绑定。前者可以更轻松地指定复杂的协调场景-例如电子商务应用程序需要- 而后者允许许多新的有趣的行为,这些行为在业务场景中非常有用:引入私有事件范围名称-用于处理安全和隐私-以及动态事件范围定义,可用于管理同一应用程序的多个实例保留字:Web服务,协调,长时间运行的事务,π演算,事件通知。1引言Web服务技术是一个平台,在这个平台上我们可以利用Internet基础设施开发应用程序。Web服务,具体地说,描述了公司希望通过互联网公开的特定业务功能,目的是为其他公司提供使用它们的方法。关键是通过使用松散耦合、可重用的软件组件来进行即时软件创建。Web服务承诺利用互联网基础设施的连接性和全球存在性,并利用利用XML技术的标准Web消息传递基础设施取代专有接口和数据格式,来促进自动化应用程序级业务集成。尽管Web消息传递对于一些简单的应用程序集成需求是足够的,但它不足以支持关键业务流程的完全自动化。第一代Web服务技术主要集中在SOAP [20]和WSDL(Web服务)1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.10.04656C. Guidi等人理论计算机科学电子笔记180(2007)55定义语言)[6]。 WSDL用于根据端口(实现此服务的地址)、端口类型(操作和消息交换的抽象定义)和绑定(打包和传输协议的具体定义,如SOAP,用于互连两个会话端点)来描述Web服务。尽管这个基础能够指定与业务流程上下文相关的关键信息和需求,但它不支持跨组织边界的业务流程。要真正跨企业边界集成业务流程,仅仅使用标准消息和协议支持业务交互需要由显式流程模型驱动的长时间运行的交互。这就需要Web服务组合语言,也称为Web服务编排语言或Web服务编排语言。最近,Web服务编排(Web Services choreography)一词被引入来标识Web服务组合和协调,这是从简单服务中定义复杂服务的方法。在过去的几年里,已经提出了几个描述业务流程编排的建议:例如BPML [2],IBM[1](代表IBM和微软之间的交易)。业务流程编排通过编码管理服务交互的业务规则或模式由Web服务的聚合组成,并具有重用创建的聚合的能力[8]。业务逻辑可以看作是对Web服务之间的交互进行排序、协调和管理的要素。例如,为了对复杂的跨企业工作流任务或业务事务进行编程,可以将离散的Web服务活动逻辑地链接到企业间的业务流程中。在Web服务的世界中,业务流程指定了源自Web服务集合的操作的潜在执行顺序,这些服务之间传递的共享数据,参与联合流程的贸易伙伴,他们在流程中的角色,Web服务集合的联合异常处理条件以及可能影响Web服务或组织如何参与流程的其他因素[12]。这特别允许指定Web服务之间的事务,以便增加由Web服务组成的业务流程的一致性和可靠性业务流程编排需求涉及异步交互、流程协调、业务事务活动和管理。这些对于需要将多个Web服务协调到多步业务事务中的所有业务应用程序都因此,Web服务环境要求多个Web服务操作具有事务属性,并被视为作为业务事务的一部分执行的单个逻辑工作单元。业务事务是由定义明确的业务功能驱动的业务状态的一致变化。通常,一个业务流程由多个业务事务组成。在Web服务环境中,业务事务本质上表示组织之间的事务性Web服务交互,以实现某些定义明确的共享业务目标。例如,考虑,C. Guidi等人理论计算机科学电子笔记180(2007)5557开发基于Web服务的解决方案的制造商,以自动化与其供应商的订购和交付业务功能,作为业务交易的一部分。制造商与其供应商之间的交易仅可于所有零件交付至最终目的地(可能为下订单后数天或数周)后在Web服务环境中,事务是复杂的,涉及多方,跨越许多组织,并且可能持续很长时间。更具体地说,业务交易是自动化的长期命题,涉及谈判、承诺、合同、运输和物流、跟踪、各种支付工具和异常处理。这些业务相关任务的性能需要将事务属性注入到Web服务范例中。尽管非常可靠,但只有在短时间内涉及受信任方时,使用经典ACID事务才有意义 严格的ACIDITY不适合于自主贸易伙伴的松散耦合世界,其中安全和库存控制问题阻止了本地资源的硬锁定业务应用程序需要传统ACID事务之外的事务支持。我们将非ACID事务称为长时间运行事务。在这种情况下,错误处理依赖于补偿的概念大多数现有的Cho- reography语言使用长时间运行的事务和补偿作为描述松耦合活动的机制补偿是特定于应用程序的活动,它试图逆转作为被放弃的更大工作单元的一部分而执行的先前活动的效果。对于数据库中的ACID事务,事务协调器及其控制的资源知道所有未提交的更新,并完全控制它们必须被逆转的顺序,而对于业务事务,补偿行为本身是业务逻辑的一部分,必须显式指定。很容易理解的是,为了满足这些要求,像XLANG或KLANG这样的编排语言是相当复杂的。这种复杂性使得理解精确的语义变得困难,从而限制了对所设计的应用程序的形式化推理。基于这种动机,我们的工作集中在正式解决Web服务协调,特别关注Web事务。在本文中,我们加强了我们过去的工作-事件演算-这是基于事件通知的想法作为唯一的错误处理机制,在Web服务编排。虽然以前的工作是在定义一种用于建模Web服务编排和错误处理机制的内核语言的问题上进行的,但在这里,我们扩展了该语言,引入了两个主要的新颖性:i)多播事件通知机制,以及ii)事件作用域名称绑定机制。第一个扩展允许更容易地指定复杂的协调场景(如电子商务应用程序),相对于我们在过去的工作中提出的代数,主要集中在错误处理机制的统一。第二个扩展还允许许多新的有趣行为,这些行为在业务场景中非常有用,例如处理安全和隐私问题的机会,或者用于管理同一应用程序的多个实例的动态事件范围定义。此功能共享一些58C. Guidi等人理论计算机科学电子笔记180(2007)55这与ESTA提出的用于相同目的的技术相似。在本文中,我们将按以下方式进行。在第二节中,将介绍Web服务协调的形式化方法,概述Web服务编排的发展现状,并比较不同的编程模型和相关特性。我们决定选择π演算,并提出一个扩展,以包括交易设施。在第3节中,我们介绍了这个扩展,事件演算,以及它的语法和语义。然后,在第4节中,我们将提出一个电子商务交易场景,并使用事件演算对其进行形式化,以了解该语言的潜力最后,在第5节中,我们描述了一些相关的工作报告一些结论性的意见和可能的未来工作。2Web服务协调的形式化方法Web服务编排的问题是由三个标准来解决的,这些标准最近被提出来处理Web服务技术发展的下一步支持业务流程编排的标准有:用于Web服务的业务流程执行语言( BPEL 4 WS 或 简 称 BPEL ) [1] 、 WS-Coordination ( WS-C ) [24] 和 WS-Transaction(WS-T)[25]。XML是一种工作流定义语言,描述了可以编排Web服务的复杂业务流程。WS-Coordination和WS-Transaction是对Web Services的补充,提供了定义特定标准协议的机制,这些协议将由事务处理系统、工作流系统或其他希望协调多个Web Services的应用程序使用。 这三个规范协同工作,以解决在连接和执行许多Web服务时涉及的业务工作流问题,这些Web服务可能在业务场景中涉及的组织之间的不同平台上运行。Web服务业务流程执行语言是IBM的WSFL和Microsoft的XLANG的融合,实际上两者都支持它。 到目前为止,它代表了最受认可的候选者,成为Web服务编排领域的未来标准。因此,它值得研究,并被视为这一领域任何进一步成就的试金石。UML允许块和图结构的过程模型的混合,从而以复杂为代价使语言具有表达能力。虽然可持续发展是最受认可的提案,但值得注意的是它受到了多大的关注,而表达性和充分性等更基本的问题却没有得到解决。另一个问题是,尽管已经进行了一些形式化的子集的尝试[23],这种语言和其他类似的建议还没有任何明确定义的语义。这是因为它的复杂性使得很难正式定义这个框架,从而限制了对设计应用程序的正式推理。出于这个原因,在这项工作中,我们希望正式解决定义工作流组成和协调Web服务的问题。特别地,我们提出了一种处理编排的基本语言。这种语言的目的是提供一种方法来表达常见的Web服务需求。C. Guidi等人理论计算机科学电子笔记180(2007)5559图1. 方案拟订模式概要依靠编排/编排语言被认为是以一种更一致和健壮的方式支持复杂服务的定义[14,19],简化了它们的分析和设计。在这里,我们一般性地介绍了Web服务的编排语言应该满足的要求。业务流程编排需求涉及异步交互、流程协调、业务事务活动和管理:(i) 基本流型:• 序列• 条件• 平行(ii) 向/从其他WS(iii) 发送/接收映射到类型化端口(iv) WS的调用(v) 错误/事务处理(补偿、补偿)为了正式地处理这些要求,我们选择从π-演算开始[18],这是一个众所周知的过程代数,在过去的十五年中得到了广泛的研究图1激励我们选择从许多有趣的功能的角度比较许多不同的模型。该表显示π-演算是最适合我们目的的选择。不幸的是,正如上一篇专栏文章所强调的,即使是π演算也不支持任何事务机制。由于Web服务环境要求多个Web服务操作具有事务属性,并被视为作为业务事务的一部分执行的工作的单个逻辑单元,因此在本文中,我们将以这种方式扩展基本演算,以包括事务设施。在过去已经提出了一些其他的作品来解决类似的问题。无论如何,所有过去的工作只致力于ACID或长期运行的语义,没有提供一个通用的框架,形式化的语义。相反,我们的尝试可以朝这个方向解释。60C. Guidi等人理论计算机科学电子笔记180(2007)55图2. π演算作为业务流程管理系统的基础与关系代数作为关系数据库考虑到π演算是表达并发性的一种自然方式,并且由于大多数编程领域现在都是并发的-从微程序和设备驱动程序级别开始,从GUI级别开始,到达系统集成和业务到业务编排-它的市场可以跨越非常广泛的例如,一个实际的应用程序是由微软的XLANG服务器[15],一个最近用于集成业务系统的工具。XLANG --XLANG的内部编排语言--明确地建立在π演算的模型上,以获得严格的数学基础。随后,这种演算也强烈地影响了对“零”的定义理论和学术领域与商业导向领域之间的强烈相关性不应该像许多人认为的那样令这是因为参与第二种方法的一部分人以前参与过第一种方法,在选择一种有效的编舞语言范式时,他们决定使用一种已经深入实验的范式,例如π演算。对于汽车的发明来说,这似乎是完全自然的:实现这种交通工具的更自然的方式是将已经试验过的交通工具作为长途汽车加以改进。在水池上安装一个引擎会导致一个奇怪的实验,尽管很有趣!由于对π演算的商业兴趣,我们想试着想象一个场景,在这个场景中,这个理论可以被用作业务流程管理系统的基础这样一个概要如图所示。二、3事件演算复杂的框架使得它难以正式定义这个框架,从而限制了对设计应用程序的正式推理。在本文中,我们加强了我们过去的工作[13] -事件在这项工作中,我们主张三种不同的错误处理机制是不必要的,我们形式化了一种新的C. Guidi等人理论计算机科学电子笔记180(2007)5561舞蹈语言在这里,我们不仅仅是说,这样的机制是足够的建模与Web服务协调一般的广泛的问题为了做到这一点,我们扩展了演算与多播事件通知机制更适合复杂的协调场景。例如,在涉及更多合作伙伴的电子商务/商业应用中,某些事件可能是他们中的许多人感兴趣的(考虑例如,管理会议注册和房间预订的应用程序,其利用两个Web服务来提供这些任务,事件我们确信,多播事件通知机制是Web服务协调的最佳选择,特别是在电子商务环境中,事务扮演着重要的角色。我们的主张也得到了其他研究人员最近提出的不同工作的支持,他们使用了类似的机制(例如,参见[7]中报告的CORBA事务系统的扩展从技术上讲,我们在事件演算中引入的新颖性涉及:i)多播事件通知的引入,以及ii)事件作用域名称绑定。第一个扩展允许更容易地指定复杂的协调场景(如电子商务应用程序),这与我们在过去的工作中提出的代数有关,主要集中在错误处理机制的统一上。第二个扩展还允许许多新的有趣行为,这些行为在业务场景中非常有用。如前所述,更广泛地采用电子商务的主要障碍是安全和隐私。我们强调了基础设施为解决这些问题提供支持的重要性。私有事件作用域名称的引入也可用于处理安全和隐私。事实上,私有事件作用域名称允许我们管理只能被应用程序中涉及的进程子集观察到的事件。通过这种方式,我们保证未经授权的信息流不会通过利用事件通知来实现。例如,考虑一个事件表示“用户A使用信用卡xxx在酒店x预订了一个房间”的情况最后,与以前的工作不同,我们将要描述的演算允许动态事件范围定义,即动态定义事件范围感兴趣的事件。3.1语法设N,被n所覆盖,是名字的集合,T,被t所覆盖,是名字的集合。 在下面,我们来看看你,v,. . . torangeoververNT,anddu,v,. . . 来表示N T中的元素列表。进程集的定义如下62C. Guidi等人理论计算机科学电子笔记180(2007)55语法:P、Q、R =0正常终止| x v. P输出| x(u).P输入| (u)P私人名义| P|P并行执行| A(u)进程调用| 信号(t)信号的升起| [P,Q]t活动范围我们定义一个过程P的自由名fn(P),就像在π演算中那样,并对信号(t)和[P,Q]t进行必要的扩展:fn([P,Q]t)=(fn(P)<$fn(Q))<${t}fn(signal(t))={t}。为了支持过程定义,我们假设一组过程常数,范围为A,其定义如下:定义3.1[过程定义]过程标识符A的形式A(u)def=P当n(P){u_n}和u_n由p{u_n}组成时,h_n(P){u_n}和u_n(P){u_n}是随机的前五个运算符和往常一样:0简单地描述了一个过程的正常项。 这是一个NingofaOutputxv. Pis enga listvingalisti s t i n g a l i st isti 输入预处理(U)。预处理操作中断的概率,对于U ∈NT的变量(该变量可以是CH NN New Name Creation操作符也是名称n∈ N T的绑定器。parallel操作符将对并发的支持表示为EJB中的流活动。与在JavaScript中一样,这里的世界是由并发活动建模的,这些活动通过消息传递和事件引发进行交互XML允许Web服务组合,调用活动。在同一种方法中,采用π-计算的方法来合成多个不同的非耦合服务。到目前为止,该语言严格类似于π-演算,它只对最后两个运算符有区别。第一个是signal(t),它产生一个指向所有由t标识的事件作用域的信号。第二个是事件范围[P,Q]t的定义。非正式地,事件作用域[P,Q]t定义了一个在正常执行期间运行的进程P和一个与事件t相关联的事件处理程序Q(与以前的工作不同,许多事件作用域可能对同一事件感兴趣,即使用相同的标识符t)。当系统中的进程发出信号(t)时,所有与t相关的事件范围的事件处理程序最终将被执行(激活C. Guidi等人理论计算机科学电子笔记180(2007)5563由于物理延迟而异步),并且相关主体(即,管理正常执行的进程)被终止。因此,事件作用域只能捕获一次信号指向不存在的标识符的信号会丢失。最后,值得注意的是,我们还可以动态地定义事件作用域感兴趣的事件。例如,考虑过程x(t)。[P,Q]t,其中事件作用域名称t作为通道x上的输入获得。3.2语言语义学现在我们将按照Milner [17]的方法,分两步给出语言的语义这种方法在于把支配过程之间静态关系的定律与支配过程之间我们将实现这一点,首先定义句法过程上的静态结构同余关系。一个结构同余关系的过程中引入了一个小集合的公理,允许轻微的操作过程的结构。这个关系是用来表达运算符的一些内在含义,例如parallel是可交换的。第二,我们将通过一个标记变迁系统来定义过程动态演化的方式。 做这样,我们简化了转移系统的陈述,只是在表1中添加了(CONGR)规则,该规则关闭了由结构同余引起的处理顺序操纵下的转移关系。定义3.2[结构一致性] 结构 过程同余是满足以下条件的最小等价关系,并且对于α-重命名、并行复合和限制是封闭的:(i) (P,|,0)是阿贝尔幺半群:P1|P2-P2|P1交换性(P1|P2)|P1|(P2)|P3)结合性P|0P0是nil元素(ii) (u)0美元(iii) (u)(v)P(iv)(u)(P1|P2)P1|(u)P2 如果u/∈fn(P1)def(v)A(v)P{v/u}ifA(u)=P在这种情况下,我们可以使用通常对子序列的定义:P{v/u}是指在过程P中,将有序序列中每次出现的名称替换为有序序列中的关键字。有时候,系统的语义是用一个归约关系来定义的,这样可以得到更简洁的结果。无论如何,在这种情况下,我们发现一个标记的转换系统是一种更优雅的方式来描述信号的提升和作用域间的交互。因此,我们决定用这种方式来表达语义,尽管它缺乏64C. Guidi等人理论计算机科学电子笔记180(2007)55简洁。系统状态之间的转移关系由动作标记。我们有五种行动,定义如下:定义3.3[动作]动作由以下给出:α::=xv |x(u)|⟨t⟩|不|τ我们将为这组动作编写Act这些数 据 表 明 , 当 检 索 到 已 更 新 的 缓 存 时 , 将 更 新 缓 存 。 该hird 和该fourhnest是针对针对由t标识的事务的事件的信令以及对捕获信号t的兴趣的通知的专用。最后,τ代表一种内部作用。 我们省略了fn(α)、bn(α)和subj(α)的定义。对于动作,它们分别表示自由名称、绑定名称和在通信中作为主语出现的名称的集合。这些定义与通常的信号标签的直接扩展一样。定义3. 4[Transitionrelations]Tetansitionrelations{−α→|α ∈Act}由Table 1中的规则定义,其中P−α→PJ是指P在PJ中以作用量α演化的过程。表1基本上是我们以前工作中所提出的一个优化版本,增加了多播事件通知机制和动态事件范围定义。为了表达通知机制的语义,我们遵循[4]中提出的方法。通道上输出和输入的前缀原语分别由ax-ioms(OUT)和(IN)描述,而(SIGNAL)表示信号执行时终止。规则(COM)显示了两个进程之间的通信行为,规则(PAR)描述了并行运行的进程的行为(注意,规则不允许在不考虑所有并行运行的进程的情况下执行信号和事件捕获)。规则(RES)和(CONGR)是Pi演算中用来描述名字限制和进程可替换性的经典规则。规则(SCOPE)表明事件范围[P,Q]t根据P的行为而演变,除非执行对事件t的通知的信号或反应。特别地,如果事件t被进程P(RAISING)通知,或者t被另一个并行运行的进程(REACT)通知,那么 事件作用域表现为Q。值得注意的是,如果事件范围包含对同一事件感兴趣的事件范围,比如t,则仅执行与对t感兴趣的外部事件范围相关联的补偿。规则(事件多播1)和(事件多播2)描述了,如果事件t被信号化,则必须将其通知给对捕获该事件感兴趣的所有进程,而(事件捕获1)和(事件捕获2)强制对t感兴趣的所有事件范围必须对该信号作出反应C. Guidi等人理论计算机科学电子笔记180(2007)5565/−→/(OUT)xv. P−x→vP(IN)x(u)x(u)。P−→P(信号)⟨t⟩Signal(t)−→(COM)P−x→vPJQx(u)QJ(PAR)PJ−α→PJJbn(α)fn(P)=α/=t,t>P|Q−τ→PJ|QJ{v/u}PJ|P−α→PJJ|P(RES)P−α→PJ(u)P−α→(u)PJu/∈subj(α)(鼓掌)P<$PjPJ−α→PJJPJ <$PJJJP−α→PJJJ(SCOPE) α(AUTORAISING)⟨t ⟩(REACT)P−→PJα/=t,tP−→PJt[P,Q]t−α→[PJ,Q]t⟨t⟩[P,Q]t−→Q[P,Q]t−→Q(EVENTMULTICAST 1)(EVENTMULTICAST 2)⟨t⟩P−→PQ−→tQJ⟨t⟩P−→PQ−→t⟨t ⟩P|Q −→ PJ|QJ⟨t⟩P|Q −→PJ|Q(E通风口 C匹配 1)(E通风口 C匹配 2)P−→tPJQ−→tQJP−→tPJQ−→tP|Q−→tPJ|QJP|Q−→tPJ|Q表1标记转换系统4电子商务场景在本节中,将介绍一个电子商务场景,以展示事件演算在描述长期运行的事务和业务活动方面的潜力。如前所述,长时间运行的事务可能涉及其他事务。出于这个原0JJ66C. Guidi等人理论计算机科学电子笔记180(2007)55因,通常需要协调器来处理长时间运行的事务的状态,并在某些内部事务失败时激活补偿。参考[9],我们考虑一个客户应用程序的例子,C. Guidi等人理论计算机科学电子笔记180(2007)5567允许从购物门户网站购买一套新的正装物品,一套西装,一条领带和一双鞋。客户应用程序要求必须购买所有项目,否则必须取消订单。购物门户可以看作是客户应用程序和协调器之间的接口,协调器管理链接到购买订单的业务活动(BA)。特别是,让每个供应商都有一个公共服务,协调员可以调用它来启动三个不同的购买领带和BA 3购买这双鞋的业务活动在这将执行情况三的不同事务。当它们中的每一个都成功完成时,完成消息被发送到协调器。 当所有内部事务都成功完成时,协调器可以通过购物门户接口向应用程序客户发送完成消息。现在让完成对应于物料的采购,否则失败表示供应商无法采购物料。例如可能BA1和BA3完成购买西装和鞋子,而BA2由于供应商不能采购领带而失败。 在这种情况下,一个失败的消息被发送到协调器,协调器可以尝试从另一个供应商获得领带(让如果这是可能的,则可以在协调器和新供应商的服务之间激活新的内部事务补偿意味着协调人必须取消先前与西装供应商和鞋子供应商完成的交易。在这种情况下,在补偿之后,协调器的状态在语义上等同于执行购买订单操作之前的状态。购物门户知道协调器的状态,向客户应用程序发出无法完成订单的信号为了简单起见,我们假设我们要建模的业务应用BA(购物门户)利用四个业务活动,即BA1、BA2、BA3和BA4,其中BA4是BA2的唯一替代(而对于BA1和BA3没有替代)。我们首先介绍了通道名称、事件作用域名称和流程将用来描述活动及其相应的含义。假设invokeS1、invokeS2、invokeS3、invokeS4、receiveS1、receiveS2、receiveS3和receiveS4是用于调用(分别为接收响应)分别提供业务活动BA1、BA2、BA3和BA4的Web服务。让receive和reply成为服务提供者(购物门户)用来接收服务调用的通道(我们使用req表示请求参数)和回复客户申请。假设完成1、完成2、完成3和完成4分别是用于表示业务活动BA1、BA2、BA3和BA4的完成的事件名称让coo作为事件,它表示由68C. Guidi等人理论计算机科学电子笔记180(2007)55BA,abort是事件名称,表示所涉及的活动(BA1、BA2、BA3和BA4)应中止。我们使用ABORT HAN DLER1、ABORT HAN DLER2 、ABORT HAN DLER3和ABORT HAN DLER4分别表示管理业务活动BA1、BA2、BA3和BA4的任务的流程。设notok为事件名,表示所有成功完成的活动都我们使用CANC1、CANC2、CANC3和CANC4分别表示管理业务活动BA1、BA2、BA3和BA4的任务的流程。令m是表示业务活动BA2已经失败的事件,然后要考虑备选BA4为了简单起见,我们提出的模型利用了条件运算符1.一、IsresOK?P:Q,它测试res(Web服务调用的返回值)是否等于ok(这意味着业务活动成功完成),然后执行流程P,反之则执行Q业务活动BA的定义如下,由流程PSopBA1::=[invokeS1(req).receiveS1(res).IsresOK?信号(完成1):signal(coo),ABORT HANDLER1]中止| [0,[signal(c oun t), CANC1]notok] c ompl et ion1BA2::=[invokeS2(req).receiveS2(res).IsresOK?信号(完成2):信号(m),中止处理程序2]中止| [0,[signal(c oun t), CANC2]notok] c ompl et ion2BA3::=[invokeS3(req).receiveS3(res).IsresOK?信号(完成3):signal(coo),ABORT HANDLER3]中止| [0,[signal(c oun t), CANC3]notok] c ompl et ion3BA4::=[invokeS4(req).receiveS4(res).IsresOK?信号(完成4):signal(coo),ABORT HANDLER4]中止| [0,[signal(c oun t), CANC4]notok] c ompl et ion4Comp::=信号(中止)| signal(notok)| reply (BAnotok)Coord::= BA 1 |[BA 2,BA 4] m|BA 3 |[0,Comp] coo计数器::= [0,[0,[0,reply(BAok). 信号(请求)]count]count]countPShop::= receive(req)。([Coord|计数器,0]要求)进程PSop是提供购物门户的进程,如果长时间运行的事务完成,它将回复消费者BAok或BAAnotok。1 这个结构可以很容易地在我们的演算中编码(参见[22])C. Guidi等人理论计算机科学电子笔记180(2007)5569失败的情况下(在这种情况下,它管理补偿)。值得注意的是,进程Counter通过利用事件计数来实现计数器,当事件计数被通知三次时,它通知事件请求(这意味着所有业务活动都已完成),然后进程PSop可以通过回复BAok来终止。5结论在本文中,我们增强了我们过去的工作-事件演算-这是基于事件通知的想法,作为Web服务编排中唯一的错误处理机制虽然以前的工作是在定义一种用于建模Web服务编排和错误处理机制的内核语言的问题上进行的,但在这里,我们扩展了该语言,引入了两个主要的新颖性:i) 多播事件通知机制,以及ii)事件范围名称绑定机制。第一个扩展允许更容易地指定复杂的协调场景(如电子商务应用程序),相对于我们在过去的工作中提出的代数,主要集中在错误处理机制的统一。我们想添加一些关于通知机制的注意事项:当一个事件被发出信号时,在系统激活所有与该事件相关的事件作用域之前,不会执行任何操作。在分布式Web服务和事件作用域的情况下,为了以更现实的方式对机制进行建模,假设作用域以异步方式捕获事件可能另一方面,信号机制已经允许表示事件的通知是异步的。第二个扩展还允许许多新的有趣行为,这些行为在业务场景中非常有用,例如处理安全和隐私问题的机会,或者用于管理同一应用程序的多个实例这一特点与Einstein提出的用于相同目的的技术有一些虽然我们主要介绍了我们的语言的电子商务应用程序,我们认为这样的演算代表了一个基础框架,能够处理Web服务协调的任何方面我们还认为,所提出的语言与STAC,StAC [5]和πt-演算[3]共享一些特性:它们都可以在相同的编程抽象级别上进行查看作为未来的工作,我们打算调查这些建议的表现力。特别是,我们认为,由Jesus提出的管理应用程序的多个实例的技术(基于相关集)与我们提出的在运行时定义作用域感兴趣的事件的方法有一些相似之处,例如在x(t)中。[P,Q]t. 一个更详细和正式的比较,这些语言和微积分在这里提出的是留给未来的工作。最后一点是关于定时事务的需要。目前,我们相信在长时间运行的事务中的时间概念在业务场景中是有用的(参见[10])。其他研究人员认为,时间的概念应该在模型级别和协议和实现级别引入。70C. Guidi等人理论计算机科学电子笔记180(2007)55例如,XLANG本身就包含了一个定时事务的概念,它是长时间运行活动的一个特例。引用[1] Tony Andrews,Francisco Curbera等人,《用于Web服务规范的流程执行语言》,1.1版,2003年5月5日。[2] A. Arkin -业务流程建模语言(BPML)规范,BPMI,http://www.bpmi.org,2002年6月。[3] L.Bocchi,C.Laneve,G.Zavattaro -一个长期运行事务的演算。FMOODS '03,巴黎,2003年12月。LNCS。[4] N.布西河Gorrieri,G. Zavattaro:Process Calculi for Coordination:From Linda to JavaSpaces。在Proc. of International Conference on Algebraic Methodology and Software Technology(AMAST[5] StAC的操作语义学,一种建模长时间紧急事务的语言. 2004年协调[6] 作者:E.Christenses,F.Curbera,G.Meredith,S. Weerawarana.Web服务描述语言(WSDL 1.1)http://www.w3.org/TR/wsdl,W3C,注15,2001年。[7] 放大图片作者:Mark C.放大图片作者:Ian Robinson.斯图尔特·什里瓦斯塔瓦支持扩展事务的CORBA活动服务框架。软件,Pract. 专家33(4):351-373(2003)。[8] R. Khalaf,S. Tai和S. Web服务,下一步:健壮服务组合的框架,CACM,面向服务计算特刊,M.P.Papazoglou和D。Georgakopoulos编,2003年10[9] WS-Transaction简介,Arjuna技术报告-http://www.arjuna.com[10] Cosimo Laneve和Gianluigi Zavattaro。Web交易的基础。FossacsSpringer-Verlag,2005.[11]F.Leymann-Web服务流语言(WSFL1.0)-http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf[12] F. Leymann和D. Roller -BPEL 4 WS的快速概述,IBM WeboperWorks,2002年8月-http://www-106.ibm.com/developerworks/[13] M.Mazzara,R.Lucchi -一个在业务流程中处理一般错误的框架。第一届Web服务和形式化方法国际研讨会(WS-FM),2004年。[14] L.G. Meredith,Steve Bjorg-合同和类型。ACM来文,2003年10月[15] 微软公司Biztalk服务器。http://www.microsoft.com/biztalk[16] 罗宾·米尔纳(Robin Milner),《通信与移动系统:π演算》(Communicating and Mobile Systems:Theπ-Calculus)作者剑桥大学出版社,1999年。[17] R. 米尔纳-函数作为过程。Mathematical Structures in Computer Science,2(2):119-141,1992.[18] Robin Milner,Joachim Parrow,David Walker-移动过程的微积分.信息与计算杂志中国科学院出版社,1992年.[19] Chris Peltz -Web服务演示和编排。IEEE计算机2003年10月(第36卷,第10期),第46-52页。[20] SOAP-简单对象访问协议。www.w3.org/TR/soap[21] 孙文,企业流程设计的Web服务,2001,www.gotdotnet.com/team/xml[22] David N. Turner:多态Pi演算:理论与实现。爱丁堡大学博士论文,1995年。[23] Mirko Viroli-走向一个正式的基础,以解释语言。第一届Web服务和形式化方法国际研讨会(WS-FM),2004年。C. Guidi等人理论计算机科学电子笔记180(2007)5571[24] WS-协调规范http://www-128.ibm.com/developerworks/library/specification/ws-tx/[25] WS-事务规范http://www-128.ibm.com/developerworks/library/specification/ws-tx/[26] 可扩展标记语言1.0http://www.w3.org/TR/2000/REC-xml-20001006
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功