`
soboer
  • 浏览: 1311889 次
文章分类
社区版块
存档分类
最新评论

BPEL4WS1.1学习笔记[1]

 
阅读更多

本文是我两个月前初读bpel规范时总结出来的一点咚咚。hoho~当时写在实习日志上,东一榔头西一棒槌的可能很没有条理~欢迎大家批评指正。

预备知识:

1.Partner Link Type:用来表示服务间的依赖关系(dependencies)

每个Partner link type定义至多2个“role”names,lists the portTypes that each role must support for the interaction to be carried out.

2.partner link types: purchasingLT & schedulingLT

前者表示connection between the process & the requesting customer the purchase order service needs to offers a service operation ("sendPurchaseOrder").后者表示了interaction between the purchase order service & the schedulingservice.只有scheduling service 的operations被invoked.

3.invoicingLT & shippingLT定义2个roles

both the user of the invoice calculation & the user of the shipping service must provide callback operations to enable asynchronous notifications to be asynchronously sent.

4.invoiceCallbackPT & shippingCallbackPT portTypes

5.默认命名空间xmlns:

别名,正在使用多个命名空间时,别名根据需要用作元素或属性的前缀。

三个必须声明的外部命名空间是WSDL,SOAP,XMLSchema.

xmlns="http://schema.xmlsoap.org/wsdl/"是WSDL默认命名空间。

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"是SOAP命名空间。

xmlns:xsd="http://www.w3.org/2001/XMLSchema"是XMLSchema命名空间。

WSDL1.1,XMLSchema1.0,XPath1.0,WS-Addressing

TargetNameSpace:is a convention of XML Schema that enables the WSDL document to refer to itself.

6.purchase order process 作为invoice,shipping服务的user,必须提供回调操作以供call back.

7.几个processes:

  1. purchase order process
  2. invoice service
  3. shipping service
  4. production scheduling process

<variables>:

  1. WSDL Message types
  2. XMLSchema simple types
  3. XMLSchema elements

<partnerLinks>partnerLinkType & role name表示出了purchase order business process and other partner need to implement 需要实现portTypes

<faultHandlers>faults are identified by a qualified name(QName)

<sequence>

<receive>

<flow>

<reply>

</sequence>

3个并发活动之间的同步依赖关系用“links”连接。

link:connect a source activity to a target activity.

没有link时,<flow>中的活动并发执行,link引进了control dependency(控制依赖)


query Language:XPath1.0

expression Language: XPath1.0

suppressJoinFailure:流程中所有活动的JoinFailure故障是否被抑制。默认是“no”。

enableInstanceCompensation:流程实例作为一个整体可被平台特定的方法补偿。默认“no”

abstractProcess:流程是否被定义为abstract.默认“no”

<terminate>只能用在executable processes

<receive>允许流程阻塞等待一个匹配消息的到达

<reply>允许流程send a message in reply to a message that was received through a <receive>

<invoke>允许流程调用一个单向(one-way) or request-response operation on a portType offered by a partner

<assign>更新variables的值,一个<assign>可包含任意数量的基本数值

<throw>生成故障from inside the business process

<wait>wait for a given time period or until a certain time has passed.Exactly one of the expiration criteria must be specified

<empty>insert a "no-operation" instruction into a business process .useful for 同步并发活动

<sequence>define a collection of activities to be performed sequentially in lexical order

<switch>select exactly one branch of activity from a set of choices

<while>repeat an activity until a certain criteria has been met

<pick>block and wait for a suitable message to arrive or for a time-out alarm to go off .When one of these triggers occurs,the associated activity is performed and the pick completes

<flow>指定一个或多个并行的活动,并行活动之间可以定义links从而定义任意的control structures

<scope>定义嵌套的活动及其相关的variables,fault handlers,compensation handlers

<compensate>只能在正常完成的内层作用域(inner scope)调用compensation.can only be invoked from within a fault handler or another compensation handler


流程实例的创建是隐式的,接收消息的活动(receive & pick)可加上注解,以表示活动的进行将导致业务流程的新实例被创建。注解的方式是把这种活动的属性createInstance设置为“Yes”。当消息被这样的活动接收到后,如果该业务流程的实例还不存在,那么该业务流程的实例将被创建。这种活动是“start activity”

要使不止一个启动活动被并发地执行,所有这些活动必须使用至少一个correlation set 并必须使用同一个correlation set

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics