版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BPEL业务流程1. 业务流程执行语言(WS-BPEL)规范2. 目前主流的WS-BPEL引擎3. Apache ODE大纲业务流程执行语言(WS-BPEL)规范业务流程执行语言(Business Process Execution Language, BPEL, 发音为bipple或bee-pell),也叫业务过程执行语言,是一种基于XML的,用来描写业务流程的编程语言,被描写的业务流程的每个单一步骤则由Web服务来实现。业务流程执行语言(WS-BPEL)规范BPEL是基于Web服务的,并且依赖于WSDL。一个BPEL流程可以发布为一个WSDL定义的服务,并像其它Web服务一样被调用。而且,
2、BPEL希望一个Web服务合成所包含的全部外部Web服务,都是用WSDL服务契约定义的,这令BPEL流程可以调用其它BPEL流程,甚至可以递归的调用自己。业务流程执行语言(WS-BPEL)规范值得注意的是BPEL不直接支持人机对话,BPEL所描写的过程仅与Web服务通信,而这些Web服务却可以提供与用户的信息交换,但它们不是用户本身。用BPEL编写的流程可以在任何支持BEPL规范的平台或产品上运行。业务流程执行语言(WS-BPEL)规范协议基础WSBPEL是基于XML定义的流程描述语言,它位于几个XML规范之上:WSDLl.1、XML Schemal.0和XPathl.0。其中WSDL消息和X
3、ML Schema类型定义提供了BPEL流程所用的数据模型;XPath为数据处理提供支持;所有的外部资源和伙伴被表示成WSDL服务。业务流程执行语言(WS-BPEL)规范BPEL包含的范围处理活动的顺序,特别是网络服务互操作。消息和处理实例之间的关系。在发生错误和例外情况下的恢复行为。处理角色之间的基于网络服务关系的双面性业务流程执行语言(WS-BPEL)规范实例1 : BPEL的基本结构 ? . ? . ? . 业务流程执行语言(WS-BPEL)规范 ? . ? . ? . activity业务流程执行语言(WS-BPEL)规范 前面的BPEL基本结构包括了一部分为了定义一个业务流程,BPE
4、L引入如下关键元素:伙伴链接伙伴链接 变量变量 活动活动 关联集合关联集合事件处理程序事件处理程序 BPEL事务与补偿机制事务与补偿机制 BPEL异常管理异常管理 业务流程执行语言(WS-BPEL)规范部分关键元素之间的关系:流程是由一系列的活动组成的;流程通过伙伴链接来定义与流程交互的其他服务;服务中可以定义一些变量;流程可以是有状态的长时间运行过程,流程引擎可以通过关联集合将一条消息关联到特定的流程实现。业务流程执行语言(WS-BPEL)规范伙伴一个流程可以调用其他服务,也可以响应来自客户端的请求一个流程既可以作为服务的请求者,也可以扮演服务的提供者BPEL把与流程交互的其他服务称为伙伴业
5、务流程执行语言(WS-BPEL)规范在异步通信环境中,流程与伙伴之间的会话可能是双向的,它们会扮演不同的角色。因此,为了消除在通信过程中的多义性,我们需要明确服务和流程所扮演的角色。业务流程执行语言(WS-BPEL)规范例如:在BPEL中的伙伴BPEL: 业务流程执行语言(WS-BPEL)规范Purchase Process WSDL:Purchase Process PortType: 业务流程执行语言(WS-BPEL)规范伙伴链接伙伴链接用于实现Web服务长期稳定的交互,描述伙伴之间的关联。这种关联是通过元素来定义的。如果在流程的活动中需要指定与特定伙伴的交互,只需要引用partnerLi
6、nk的名称即可。在元素中,属性myRole指出了业务流程本身的角色,而属性partnerRole指出了伙伴的角色业务流程执行语言(WS-BPEL)规范通过partnerLink的抽象,在流程建模时不必指定具体的服务端点,而将流程与具体服务的绑定推迟到组装或运行时来完成。这种动态伙伴关系为流程带来了极大的灵活性,也增强了流程的可复用性。业务流程执行语言(WS-BPEL)规范实例2 :一个包含的实例 业务流程执行语言(WS-BPEL)规范 业务流程执行语言(WS-BPEL)规范在实例2中,你会注意到每一个元素中都包含一个partnerLinkType 属性。下面让我们来解释一下 partnerLi
7、nkType 。伙伴链接通过引用partnerLinkType(伙伴链接类型)来定义流程与伙伴服务之间的通信接口(实际上是WSDL文档中的Port Type)。业务流程执行语言(WS-BPEL)规范伙伴链接类型声明了两个或多个服务之间的关系。伙伴链接类型定义了一组角色,其中每个角色指明一组Port Type,即明确了该角色所提供的服务接口,一边接收会话的上下文消息。 如果partnerLinkType仅有一个角色,那么将根据需要省略其中一个属性partnerLinkType通常被定义在WSDL文档中,被BPEL流程所引用。业务流程执行语言(WS-BPEL)规范下图展示了BPEL流程定义和WSD
8、L文件之间的映射关系。业务流程执行语言(WS-BPEL)规范实例2的代码片段显示了如何利用partnerLink 和 partnerLinkType 定义流程与伙伴的合作关系。 根据BPEL流程定义和WSDL文件之间的映射关系,我们还需要在流程对应的WSDL文档中定义partnerLinkType。 业务流程执行语言(WS-BPEL)规范实例3 :与实例2对应的WSDL文档中定义partnerLinkType 业务流程执行语言(WS-BPEL)规范. . 业务流程执行语言(WS-BPEL)规范在实例3中可以注意到:合作伙伴链接类型与合作伙伴链接之间具有一对多的关系,同一个合作伙伴链接类型可以用
9、来描述多个合作伙伴链接。虽然使用服务的用户必须静态地依赖于特定的port-Type,但是在执行过程中可以通过端口类型动态地发现和使用包括在端口定义中的信息。业务流程执行语言(WS-BPEL)规范变量:在BPEL中,可以使用变量来保存和传递流程的状态信息。它们通常是从合作伙伴那里接收到消息,或者是被发送给合作伙伴的消息。同时,它们还有可能是与流程有关的状态消息,这些消息并不与合作伙伴进行交换业务流程执行语言(WS-BPEL)规范BPEL支持的变量类型包括三种:1. 由WSDL文件所定义的消息类型(message type);2. 由XML Schema所定义的简单类型(simple type);
10、3. 由XML Schema所定义的元素(element).业务流程执行语言(WS-BPEL)规范可以赋值给变量的数据类型需要提前用messageType, element或type属性定义好。messageType属性表示允许变量包含WSDL定义的整个信息 element属性表示一个XSD元素结构;type属性表示一个XSD简单结构,比如:string ,integer业务流程执行语言(WS-BPEL)规范变量是有作用域的:每个变量只有在定义它的作用域和所包含的作用域内的全部作用域中才是可见的属于全局流程作用域的变量称为全局变量;属于流程作用域的变量称为局部变量业务流程执行语言(WS-BPE
11、L)规范BPEL支持四种表达式布尔表达式。持续时间表达式。截止时间表达式。普通表达式,可以归结为XML Schema中所定义的string, number和boolean格式。业务流程执行语言(WS-BPEL)规范BPEL同时支持一些操作符,如简单的算术运算(加、减、乘)、简单的比较运算(等于、不等于、小于、大于、小于等于、大于等于)、布尔运算(and和or运算)以及对xml格式的操作符。现有的BPEL可以通过外部的表达式语言来描述、计算表达式,这通过process的expressionLanguage属性进行表达式语言指定,现在只能指定为XPath1.0业务流程执行语言(WS-BPEL)规范
12、BPEL:Purchase Process WSDL: 业务流程执行语言(WS-BPEL)规范WS-BPEL提供了一些内置的函数支持变量内容的处理:(1)getVariableProperty(variableName, propertyName)(2)getVariableData(variableName, partName?, locationPath? )业务流程执行语言(WS-BPEL)规范实例4:用getVariableData函数检索不同变量中特定的数据片段getVariableData (InvoiceHoursResponse, ResponseParameter) getV
13、ariableData (input,payload, /tns:TimesheetType/Hours/.) 业务流程执行语言(WS-BPEL)规范活动:BPEL是由一系列步骤组成,这些步骤称为活动活动分两类:基本活动描述了流程内的一个具体步骤,如接受请求、调用伙伴服务、变量赋值等结构化活动描述了如何组织和管理流程的控制流业务流程执行语言(WS-BPEL)规范基本活动:基本活动是与外界进行交互最简单的形式,活动内不会嵌套其它活动。它们是无序的个别步骤,与服务进行交互、操作、传输数据或者处理异常等。业务流程执行语言(WS-BPEL)规范基本活动包括如下:流程用于和外界进行交互的基本活动:rec
14、eive、invoke、reply;流程用于传输数据的基本活动:assign;通过throw活动发出故障信号;通过exit活动放弃所有流程实例的执行;通过wait活动使流程等待一段时间或到达某个截止期限后再执行;通过empty活动不执行任何的动作;业务流程执行语言(WS-BPEL)规范主要基本活动:负责调用服务receivereplyinvokeassignwaitemptyexit业务流程执行语言(WS-BPEL)规范结构活动:结构化的活动规定了一组活动发生的顺序。他们描述了业务流程是怎样通过把它执行的基本活动组成结构而被创建的,这些结构表达了涉及业务协议的流程实例间的控制形式、数据流程、故
15、障和外部事件的处理以及消息交换的协调。结构化的活动可以被任意的嵌套和组合业务流程执行语言(WS-BPEL)规范 主要结构活动包括如下: sequence按照一个序列处理一系列活动while在一个条件满足的情况下处理一个活动switch按照不同条件处理不同活动flow平行或者按照随意顺序处理活动pick按照外部事件从过程的角度不定值地选择业务流程执行语言(WS-BPEL)规范主要结构活动sequenceflowwhileswitchpick业务流程执行语言(WS-BPEL)规范以上是是BPEL4WS1.1中常见的任务,在最新发布的WS-BPEL2.0支持更多新的任务或行为业务流程执行语言(WS-
16、BPEL)规范业务流程执行语言(WS-BPEL)规范活动举例: 接收一个用户id根据id获取用户的名字输出“Hello, 此id的名字”业务流程执行语言(WS-BPEL)规范对应的源码:业务流程执行语言(WS-BPEL)规范活动详解:Receive(接收) /Reply(回答)活动从流程的外部伙伴那获得数据,并将其保存到流程变量。通常一个Receive是一个流程的初始点,它会阻塞执行直到匹配的消息的到达。在异步信息交换时,receive也可以接收回收信息。业务流程执行语言(WS-BPEL)规范元素有5个属性: partnerLink :在通信过程中识别伙伴 portType:从伙伴方接收请求消
17、息的接口 operation :接收请求消息 variable:用来存储接收到的请求消息 createInstance: 当该属性设置为”yes”时,它指明了当前流程接收到匹配消息是会创建新的流程实例来处理该请求业务流程执行语言(WS-BPEL)规范活动发送消息给伙伴来应答通过Receive活动所接收到的消息。Receive 和Reply的组合对应着WSDL portType上定义的一个请求响应操作。如果receive活动对应着一个单向操作,则不能在流程中定义对应的reply活动。业务流程执行语言(WS-BPEL)规范元素也有5个属性:其中, partnerLink, portType 和 o
18、peration含义 同receive元素的属性含义相同。variable:用来存储从伙伴返回的消息messageExchange:这是一个WS-BPEL2.0新增加的可选的属性。它使得reply元素可以精确的关联到一个能够接收信息的活动(比如 receive元素)业务流程执行语言(WS-BPEL)规范实例4 :包含receive /reply活动的片段 业务流程执行语言(WS-BPEL)规范业务流程执行语言(WS-BPEL)规范注意:(1)在实例4中:receive和reply活动中都是通过partnerLink来引导预定义伙伴关系的,而且需要设置portType 和operation属性来
19、声明流程实现的WSDL portType和操作。(2)如果将receive活动作为流程的起始点,则需要将receive活动的createInstance属性设置为”yes”,它指明了当前流程接收到匹配消息是会创建系的流程实例来处理该请求。业务流程执行语言(WS-BPEL)规范在BPEL流程中,我们还可以定义更为复杂的消息响应机制,可以将特定的消息关联到相应的流程实例中。关联集合就是为了解决上述问题而提出来的。业务流程执行语言(WS-BPEL)规范Invoke 请求活动允许业务流程同步或异步调用由合作伙伴提供的服务,服务实现可以是单向或请求响应操作。该元素也有5个属性: partnerLink
20、:指明伙伴服务 portType: 辨别伙伴服务的portType业务流程执行语言(WS-BPEL)规范operation :伙伴服务对于从业务流程发送来的请求所要进行的处理操作inputVariable :用于与伙伴进行交流的输入信息。注意:输入信息作为一个变量outputVariable:该属性用于请求响应操作中保存返回值变量。业务流程执行语言(WS-BPEL)规范实例5:invoke元素辨别目标伙伴的实现细节 业务流程执行语言(WS-BPEL)规范Assign 赋值活动的作用是用新的数据元素来更新变量的值。Assign活动可以包括任意数量的基本复制操作Assign 活动还可以把端点引用复
21、制到合作伙伴链接,或把合作伙伴链接复制到端点引用,以实现服务的动态绑定。业务流程执行语言(WS-BPEL)规范实例6:TimesheetSubmissionFailedMessage 变量被复制到另一个信息变量 业务流程执行语言(WS-BPEL)规范注意:copy结构可以起到数据转换的功能比如:可以将一个变量的一部分copy到另一个变量业务流程执行语言(WS-BPEL)规范Wait 等待活动会暂停流程执行,等待一段给定的时间或等到某一时刻才能继续运行。Empty 空活动不执行任何的动作。Exit活动放弃所有流程实例的执行。业务流程执行语言(WS-BPEL)规范Sequence 顺序活动定义一段
22、按顺序先后执行的活动。执行顺序是sequence活动中嵌套活动的先后顺序。当sequence中的最后一个活动完成后,该sequence活动也就完成了。业务流程执行语言(WS-BPEL)规范实例7:一个sequence结构的纲要 . . . . 业务流程执行语言(WS-BPEL)规范Flow 流程活动可以描述更为复杂的活动执行顺序。我们可以利用flow来指定一个或多个并行执行的活动。为了定义任意的控制结构,可以在并行的活动中使用链接。Flow能进一步表达直接或间接嵌套在其中的活动之间的同步相关性,link(链接)用来表达这种同步相关性。业务流程执行语言(WS-BPEL)规范Flow活动出现的所有
23、link必须在flow活动中分开定义,并通过名称进行标识。Flow活动中嵌套的活动需要通过source或target属性来表明该活动为哪个链接的源或目标活动。在flow活动中,对于每一个link必须有且仅有一个活动作为它的源活动,同样有且仅有一个活动作为它的目标活动。业务流程执行语言(WS-BPEL)规范目标活动会在源活动完成之后执行。这样flow内部的活动就可以通过活动构成一个有向图。我们还可以在link源上定义transition(变迁)条件,当源活动完成之后,BPEL引擎会检查变迁条件是否满足,如果link的变迁条件满足,目标活动就会执行。业务流程执行语言(WS-BPEL)规范Switc
24、h分支活动与传统的结构化语言的功能类似,用于从一组分支情况中选择一个特定的活动分支加以执行。Switch由case元素定义的一个活多个条件分支的有序列表组成,后面可跟也可以不跟一个otherwise分支。业务流程执行语言(WS-BPEL)规范以case分支的出现顺序检查,第一个条件是true的分支被选择并被作为被执行的活动 。如果有条件的分支都未被选择,那么otherwise分支将被选择。注意:在WS-BPEL 2.0中,switch活动已经被if,elseifthen 活动取代。业务流程执行语言(WS-BPEL)规范实例7:switch活动框架 . . 业务流程执行语言(WS-BPEL)规范
25、While循环活动也继承于传统的结构化编程思想,提供了while-do循环结构的支持。它可以包含一个活多个活动它指定反复执行其内部活动,知道成功条件不被满足为止。业务流程执行语言(WS-BPEL)规范Pick选取活动会等待一组相互排斥事件中的一个时间的发生,然后执行与发生的事件相关联的活动。它会阻塞业务流程的执行,以等待某一特定的事件发生。当其中任何一个事件被触发后,业务流程就会继续执行,pick也随即完成了,不会再等待其他事件的发生。业务流程执行语言(WS-BPEL)规范每个pick活动必须至少包括一个onMessage事件。onMessage事件的语义等同于有关变量属性的可选择类型的rec
26、eive活动。Pick活动还可以定义onAlarm事件用于指定超时警报。业务流程执行语言(WS-BPEL)规范Pick活动也可以作为业务流程的起始点,指定流程可以接收多种不同的消息,并让流程在接收到特定消息后创建新的流程实例来处理消息。这里与receive活动类似,我们需要将pick活动的createInstance属性设置为“yes”。当然这时候就不应该定义onAlarm超时事件。业务流程执行语言(WS-BPEL)规范关联集合:BPEL提供了声明性机制,以指定服务实例中相关联的操作组。一组相关标记可定义为相关联的组中所有消息共享的一组特性。这样的一组特性称为关联集合。每个关联集都在一个作用域
27、中进行声明并属于该作用域。属于全局流程作用域的关联集称为全局关联集;属于局部作用域,这样的关联集称为局部关联集。业务流程执行语言(WS-BPEL)规范在流程开始时,全局关联集处于未初始化的状态。在其所属的作用域的执行开始时,本地关联集处于未初始化的状态。相关集在其语义上类似于延迟绑定的常数。相关集的绑定由特别标记的消息发送或接收操作来触发。相关集在其所属的作用域的生存期中只能初始化一次。在初始化之后,它的值就可被认为是业务流程实例的标识的别名业务流程执行语言(WS-BPEL)规范相关集用来关联和标定一个BPEL过程实例。对需要保持会话状态的BPEL业务需求以及多方业务协议来说是非常有用。初始者
28、流程发送启动会话的第一个消息,从而定义了标记该对话的相关集合中的特征值。所有其他参与者通过接收提供相关集中的特征值的传入消息来绑定会话中的相关集。业务流程执行语言(WS-BPEL)规范比如:一个旅行社订票流程,当该流程启动之后,用户需要能够查询该流程状态,并能取消该流程。这就需要相关集的支持来确保后续的请求消息绑定到相同的流程实例中。相关集的名称用在invoke、receive和reply活动中,也用在pick活动的onMessage分支中,同时还用在事件处理程序的onMessage形式中。 业务流程执行语言(WS-BPEL)规范生命周期:每个实例的生命周期为从实例的创建到实例的终止。实例的创
29、建:当receive或pick活动的createInstance属性被设为“yes”时,当活动执行到它们时就会检查该实例是否存在,如果不存在就创建一个新实例。业务流程执行语言(WS-BPEL)规范实例的终止方式有以下几种:当定义流程的活动全部完成时,正常终止;当故障出现时,异常终止;当流程实例被terminate活动显式地终止,异常终止。业务流程执行语言(WS-BPEL)规范至此,我们已经介绍了BPEL流程中关键元素的介绍。既然说BPEL是专为Web服务设计的,那让我们来看一下BPEL流程和WebService交互应用:业务流程执行语言(WS-BPEL)规范首先由客户端(JSP)通过消息发起流
30、程,创建流程实例并传入相关参数;流程在Receive节点将参数存入与BPEL流程绑定的WSDL接口的输入变量BO中;业务流程执行语言(WS-BPEL)规范添加invoke节点调用外部的WebService,该Web服务可能是由ERP、CRM或者OA等业务系统暴露出的服务接口,WebService根据输入变量BO完成查询数据库、启动其他工作流等相关业务处理并返回输出值给BPEL流程;流程在Reply节点把输出值返回给前台JSP,至此流程结束业务流程执行语言(WS-BPEL)规范BPEL异常管理活动执行过程中发生异常,业务流程必须对错误进行处理,BPEL提供了异常处理机制用户可以在业务流程中添加f
31、aultHandler来捕获处理相应的异常faultHandler与特定的Scope关联,用于捕获Scope内产生的异常。当异常发生时,BPEL正常执行流结束,控制流转入faultHandler内执行。业务流程执行语言(WS-BPEL)规范补充:特殊活动 ScopeScope活动为嵌套在其中的活动提供故障处理功能和补偿处理功能。scope 可以提供故障处理程序、补偿处理程序、数据变量和相关集。 每个Scope有一个定义它的正常行为的主要活动。该主要活动可以是一个复杂的结构化的活动,其中有任意深度的许多嵌套的活动。所有的嵌套的活动都共享该Scope业务流程执行语言(WS-BPEL)规范fault
32、Handler包含多个catch活动,每个catch活动能拦截某种特定的故障如果没有故障名,那么catch将拦截全部有适合类型的故障catchAll表示默认的错误处理活动业务流程执行语言(WS-BPEL)规范异常处理器会尝试三种解决方案:(1)分析该错误信息,并根据指定规则找到对应的合适的行为进行处理;(2)使用一个rethrow行为,向外再次抛出一个错误(3)强制终止该流程的执行。业务流程执行语言(WS-BPEL)规范实例8:异常处理 activity 当异常在特定的Scope内产生时,如果被Scope内内定义的faultHandler捕获,则该Scope状态被置为Failed,当异常被处理
33、后,外部Scope继续执行。如果异常无法被Scope内的faultHandler捕获或无faultHandler定义,则该Scope状态被置为Failed,并且将异常抛出到外部Scope继续处理,直到异常被处理为止。业务流程执行语言(WS-BPEL)规范业务流程执行语言(WS-BPEL)规范BPEL事务与补偿机制事务:是指一组作为同一单元的活动,要么全面成功,要么全部失败。事务包括如下属性:原子性 、一致性、隔离性 和持久性ACID业务流程执行语言(WS-BPEL)规范由于一个业务流程可能需要持续很长时间,而且流程可能涉及到外部服务。在流程完成之前,单个活动可能已经完成,如果随后某个事件或错误
34、发生而导致流程取消,已经完成的活动需要被恢复。在这种情况下我们要使用补偿机制来完成任务。业务流程执行语言(WS-BPEL)规范补偿处理是为了将流程的状态回滚,回到跟进入作用域前一样。所需要做的就是将该作用域内已执行部分采用其它行为进行撤销,通常是调用一个效果相反的服务。通过补偿处理程序,作用域可以描述一部分通过应用程序定义的方式可撤销的行为。有补偿处理程序的作用域可不受约束任意深地被嵌套。业务流程执行语言(WS-BPEL)规范补偿处理程序仅仅是补偿活动的包装。在许多情况下,补偿处理程序需要接收当前状态的数据并返回关于补偿结果的数据。补偿处理程序的调用方法是使用compensate活动。业务流程
35、执行语言(WS-BPEL)规范事件处理程序:整个流程以及每个作用域可以与一组在相应的事件发生时并发调用事件处理程序相关联。在事件处理程序中进行任何类型的活动,但是不允许使用调用补偿处理程序。事件处理机制从作用域的一开始就激活,一直等待事件的到来而执行内部行为,也会随着作用域的结束而结束。业务流程执行语言(WS-BPEL)规范有两种类型的事件:与WSDL中请求/响应或单向操作对应的传入消息;用户设置的时间过后发出的警报。 目前主流的WS-BPEL引擎BPEL核心组件有三部分组成BPEL设计工具(BPEL Designer)业务流模板(Process flow template)BPEL引擎(BP
36、EL Engine)目前主流的WS-BPEL引擎BPEL设计工具 大多基于Eclipse实现。业务流模板 业务流模板遵守BPEL规范。它在设计阶段有BPEL设计工具生成,运行阶段由BPEL引擎执行。目前主流的WS-BPEL引擎BPEL引擎执行任何与BPEL标准相符的业务流模板,主要功能包括调用Web服务,数据内容映射,错误处理,事务支持,安全等等。 通常BPEL引擎与应用服务器集成在一起。目前主流的WS-BPEL引擎举个简单例子来理解一下上述概念:比如说一个审理文件的工作流系统。现在要审批一个文件,你只需要坐在电脑旁,打开公司的工作流系统,点击某个按钮来启动审批这个文件的流程。这样,你的文件就
37、随着工作流系统的控制,从一级领导-二级领导等等一路走了下来。当然,这些领导们也是这个系统的用户,他们进入这个系统就看到了自己需要审批你的文件了目前主流的WS-BPEL引擎在上面这个例子中,流程一般是用流程设计器(也就对应上文的BPEL设计工具)来创建的。把流程创建好之后,一般会生成一个基于XML的文本文件(对应业务流模板),这个文件其实就是你刚才设计的流程。然后,你把文件交给流程引擎,设计器的工作就算完成了嗯?那引擎是什么?目前主流的WS-BPEL引擎2)引擎是什么?只有上面的流程文件没什么作用,这时就需要一个“东西”来处理这个文件了,它读取这个文件的内容,根据文件设定的流程走向来控制这个流程
38、。这个关键性的“东西”就是引擎。引擎就好像流程的指南针一样,指导着流程走向不同的地方。它是整个系统的核心目前主流的WS-BPEL引擎目前主流的WS-BPEL引擎有以下几个:Oracle BPEL Process Manager 甲骨文公司的BPEL标准的执行,带有JDeveloper和Eclipse的图像式模型和调配工具IBM的WBI Server FoundationBEA Integration 目前主流的WS-BPEL引擎开源的:ActiveVOS 一个开放源代码的BPEL4WS 1.1的执行Twiste 一个开放源代码的BPEL标准的执行,支持面向服务架构和人机界面,现名Agilabe
39、xeefivesight-pxe目前主流的WS-BPEL引擎开源的WS-BPEL引擎:ActiveVOSActiveVOS是ActiveBPEL的商业化产品。ActiveBPEL引擎的最新版本3.0,完全支持WS-BPEL2.0规范。其包含引擎和定制工具以及控制台。引擎是开源,但是定制工具并非开源。ActiveBPEL 是BPEL引擎的代表。目前主流的WS-BPEL引擎ActiveBPEL 引擎在结构上有三个主要的方面 : 引擎 (engine), 流程(process)和活动 (activity)。 引擎执行相匹配的一个或多个 BPEL 流程 , 流程由活动组成 , 并按照活动的顺序或包含
40、LINK 执行 。ActiveBPEL 引擎根据 BPEL 流程的定义 (XML 文件 ) 创建流程实例 , 并执行这个流程。目前主流的WS-BPEL引擎引擎:目前主流的WS-BPEL引擎引擎图中右边的数据库元素代表一般的持久性存储 . ActiveBPEL 引擎采用了插入式的结构 , 不同的管理器可以执行不同的存储机制 . ActiveBPEL 引擎伴有一个持续的管理者在内存中记录每件事。目前主流的WS-BPEL引擎 WS-BPEL引擎工作原理简介: (1)启动引擎利用一个引擎工厂管理一个 ActiveBPEL 引擎的创建。并通过一个对象提供的缺省值并读取 aeEngineConfig.xm
41、l 文件来配置引擎。 (2)创建流程目前主流的WS-BPEL引擎流程创建 每个 BPEL 流程必须至少有一个起始活动 . 一个新的 BPEL 流程当它的起始活动被触发时创建 , 也就是一个引入消息或一个 PICK 活动的警报的到来 引擎分派引入的消息给正确的流程实例 . 如果有相关的数据 , 引擎就会发现正确的实例并匹配相关的数据 . 如果没有相关的数据 , 请求匹配一个新的活动 , 一个新的流程实例被创建 .目前主流的WS-BPEL引擎流程创建图示:目前主流的WS-BPEL引擎(3)输入和输出Activebpel 引擎本身并不处理输入和输出。 然而 , 协议规范处理器像 AeBpelRPCH
42、andler 和 AeBpelDocumentHandler 把数据从一种特殊的协议转换为一种消息 ,反之亦然。目前主流的WS-BPEL引擎(4)数据处理所有变量的实现通过 IAeVariable 接口。这个接口能够得到变量的定义和它的有效负载 , 如果变量被声明成一种相对的元素或消息 , 将会有所不同 消息的负载需要一个和部件对象交互的接口 。目前主流的WS-BPEL引擎(5)表达式计算所有活动和链接允许使用对象各种属性的表达式。这些表达式需要一个相容的方法来执行 并描述执行的相互关系。 IaeBpelObject对象本身可以包含这些实现并能够提供继承于对象的抽象基本类.BPEL对象是它自己
43、的作用域并且可以被用来正确的找回表达式内容的变量.赋值允许所有的XPATH扩展( for example, bpws:getVariableData )。目前主流的WS-BPEL引擎(6)调试及日志(Debugging and Logging)在流程执行期间 ,ActiveBPEL 引擎激活流程的事件 。当日志启动 , 一个 AEEngineLogger 实例监听引擎的事件并写出每个流程的日志文件。一旦流程完成 , 文件关闭日志文件放在 user.home /AeBpelEngine/process-logs目前主流的WS-BPEL引擎IBM的WS-BPEL引擎:WBI Server Foun
44、dationWBI Server Foundation由运行环境和开发环境组成,它的开发环境是WSAD-IE,在WSAD-IE中完成流程开发后,将流程的EAR应用部署到运行环境中WBI Server Foundation 的运行环境提供一个高效的J2EE工作流引擎,它由流程导航(Navigator)、人员交互相关的工作项管理(WorkItem Management)、工厂(Factory)、内部和外部接口、客户端(Client)等部分组成116目前主流的WS-BPEL引擎WBI Server Foundation 的运行环境:目前主流的WS-BPEL引擎导航器:导航器组件是流程引擎的核心,它管
45、理所有流程实例的状态过渡以及这些流程实例中所有活动的状态过渡。 工作项管理:Work Item Manager 组件负责在流程引擎的数据库中创建和删除工作项,根据该数据库分析来自流程参与者的工作项查询等目前主流的WS-BPEL引擎工厂:工厂组件负责管理流程引擎处理的物理“状态信息。流程相关的数据能够以下列形式之一被存储: 瞬时存储在内存中,不可中断的流程要获得高效率的执行需要这种形式 持久存储在数据库中,可中断的流程要获得持久性需要这种形式 它支持的数据库包括 DB2、Oracle、Sybase 和 Cloudscape目前主流的WS-BPEL引擎 外部接口:流程引擎对外提供EJB和JMS两种接口,由Facade-Session
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度科技园区研发场地租赁合同范本下载3篇
- 《框架结构荷载分析》课件
- 2024简单工程劳务合同范本
- 税务业务知识培训课件
- 世纪生物医药研发与转让合同(04版)
- 个人住宅抵押贷款法律协议(2024版)版
- 2024版人力资源服务合同
- 2024年03月陕西中国银行信息科技运营中心(西安)春季校园招考笔试历年参考题库附带答案详解
- 二零二五年度餐饮行业员工福利保障合同3篇
- 2025年度新型装配式彩钢房拆除与改造施工合同范本4篇
- 人教版小学数学(2024)一年级下册第一单元 认识平面图形综合素养测评 B卷(含答案)
- 企业年会摄影服务合同
- 电商运营管理制度
- 二零二五年度一手房购房协议书(共有产权房购房协议)3篇
- 2025年上半年上半年重庆三峡融资担保集团股份限公司招聘6人易考易错模拟试题(共500题)试卷后附参考答案
- 城市公共交通运营协议
- 内燃副司机晋升司机理论知识考试题及答案
- 2024北京东城初二(上)期末语文试卷及答案
- 2024设计院与职工劳动合同书样本
- 2024年贵州公务员考试申论试题(B卷)
- 电工高级工练习题库(附参考答案)
评论
0/150
提交评论