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 scheduling service.只有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:
- purchase order process
- invoice service
- shipping service
- production scheduling process
<variables>:
- WSDL Message types
- XMLSchema simple types
- 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