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所规定出现的元素等。
相关文章推荐
- 数据结构入门小结之链表
- 持续集成学习笔记-入门篇(10)小结
- BPEL 经典实例入门教程
- 简单易懂的程序语言入门小册子(8):基于文本替换的解释器,小结
- HTML和CSS的入门小结
- Linux多线程编程小结——入门级教程
- HTML5的重点知识小结——入门篇
- java的核心入门到放弃————面向对象小结
- [专家讲座] ArcGIS API for Silverlight开发入门(6):图层类型小结(转)
- 10、MySQL入门小结
- [Python入门及进阶笔记]Python-基础-列表及列表解析小结
- Flume 小记(一) 入门、小结、注意事项
- vue.js入门教程之基础语法小结
- DM入门之Apriori小结
- ArcGIS API for Silverlight开发入门(6):图层类型小结
- 数据结构入门小结之树
- Android基础入门教程——8.1.1 Android中的13种Drawable小结 Part 1
- 算法入门---java语言实现的希尔排序小结
- 业务流程执行语言 (BPEL)入门简介 [收藏]
- AJax入门小结