您的位置:首页 > 编程语言 > Java开发

BPEL入门小结

2012-01-11 13:58 204 查看
 
在详细说以前,给大家介绍一本非常容易理解的一本介绍BPEL的的电子书籍:

Business Process Execution Language for Web Services

BPEL,即Business Process Execution Language,是业务流程执行语言,接下来我要介绍一些我学BPEL时的一些误区和一些比较细微的知识点.

 0.

 BPEL本身是一个用于构造一个复杂WEB 服务的定义文档,通过BPEL也可以生成WSDL文件,而BPEL所对应的WSDL文件其中会用到合作伙伴的WSDL定义,则通过import元素,导入合作伙伴WSDL。

 1.

        流程的根元素必须具有name,targetNamespace,xmlns属性,name即此流程的名称,targetNamespace即此流程的目标名称空间,所谓目标名称空间,就是应用此文档时所需要的名称空间,

xmlns是此文档中的默认名称空间,在没有名称空间前缀的元素名都是默认为此名称空间

 2.

 在variables元素中定义的variable是全局变量,相当于JAVA中的类变量,流程的每个部分都能访问这些变量,以后会学习到一个scope(范围)元素,他相当于JAVA中的一对{},在其中也可以声明变量,但,这些变量只有在scope范围内才能使用

 3.

 文档中定义的最外层的sequence元素,是整个流程最核心的元素,是流程执行的真正元素,流程会根据此元素定义的顺序来执行流程。对于同步和异步的认识是,

 同步:即开始是一个receive,它等待客户的调用,经过流程执行,将结果返回,通过reply

 异步: 即开始是一个receive,它等待客户的调用,经过流程执行,将结果返回,但是没有reply元素,而是通过回调(即合作伙伴反过来调用BPEL流程中的操作),Invoke元素调用合作伙伴的操作,在此Invoke节点以后必定会有一个receive元素,用于等待合作伙伴回调,这样在Invoke和receive节点之间就可以进行其他的操作,不影响流程的执行,通过回调,合作伙伴就返回客户所需要的信息了,而所对应的合作伙伴的WEB 服务,就必定是先receive再invoke,这是很容易理解的

 4.

 什么时候在partnerLinks元素添加partnerLink呢?就本人理解,只有与某个合作伙伴有连接的时候就会产生partnerLink,因此,想receive,invoke元素就应该会有对应的partnerLink元素,而且partnerLink是不能重复的

 5.

 角色问题,BPEL文档对应的WSDL中特殊的存在partnerLinkType元素(对应于BPEL中的PartnerLink),他其中对应有role的子节点,只有一个role说明是异步的,有两个的说明是同步的

在BPEL文档中,partnerLink也有名如myRole 和partnerRole的属性,这要看WSDL所对应的partnerLinkType中的有没有两个role了,如果没有,partnerLink就只能定义一个角色名.

 6.

 varialbe中有两个属性,其中一个是name,另外一个有3中选择,messageType,element,type

对于messageType,就是在WSDL(就是BPEL所对于的WSDL)中定义的消息,而element就是由XML Schema定义的元素,type就是由于XML Schema定义的简单类型,例如:

 <variable name = "XXXX" messageTyepe="ins : XXXX"/> <!--这里的ins是XML Schema所对应的模式文档的targetNamespace--> element,type 同理

 对于XML Schema,可以简单的介绍一下,XML Schema有点类相似于DTD,也是用于限制XML文档的,XML Schema也是一个XML文档,其中定义了一系列的数据类型和元素定义,与JAVA类很相似,也支持继承,多态,一个XML Schema文档又有对应的targetNamespace,在XML文档中,引用此XML Schema文档,那么此XML 文档就会被此XML Schema文档案所限制,如需要出现XML Schema所规定出现的元素等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息