当前位置: 首页 > news >正文

ActiveBPEL引擎流程部署描述符(pdd)文件概述

文章仅供大家参考,所有评论 , 错误报告 , 其他信息以及批评 , 请邮寄到 Jeffery.Lee AT gmail.com 或者访问我的个人blog同我交流 ( http://ibuddie.spaces.live.com/ ) 。本文遵从 GNU 的自由文档许可证 (Free Document License) 的条款,欢迎转载,如若修改、散布,请注明文章原始出处和来源。

PDD相关内容总结

概述

ActiveBPEL引擎执行时需要用户定义一个流程部署描述符(Process Deployment Descriptor)文件来与引擎交互,这个文件后缀为pddpdd文件告诉ActiveBPEL引擎关于BPEL流程的相关信息。每一个流程文件 (*.bpel)部署之前都需要包含它对应的.pdd文件(一对多的关系)。pdd文件基于XML格式,它的元素包含了partner links WSDL的描述。

关于pdd文件有必要说明以下两点:

首先,pdd文件格式虽然是基于XML的,但它并非标准的文件格式,它是我们采用的ActiveBPEL引擎特有的。因为目前关于BPEL流程部署时相关信息和引擎绑定这方面并没有事实的标准,不同的引擎提供商拥有各自不同的部署文件格式,并提供相应的可视化工具来实现部署文件的生成。

其次,Active-endpoints公司并没有提供任何API供创建pdd文件使用,目前也没有任何第三方提供相应的pdd创建工具。Active-endpoints公司免费提供的ActiveBPEL Designer是目前唯一支持可视化创建pdd的产品。

pdd文件格式

pdd本身是一个XML文件,其Schema定义在以下网址可以查看到:

http://schemas.active-endpoints.com/pdd/2006/08/pdd.xsd

其语法格式总结如下:

< process name ="qname"

xmlns
=http://schemas.active-endpoints.com/pdd/2005/09/pdd.xsd

xmlns:wsa =http://schemas.xmlsoap.org/ws/2003/03/addressing

xmlns:bpelns =”qname”

location ="relativeDeploymentLocation"

persistenceType
="full|none" ? >

< partnerLinks >

< partnerLink name ="ncname" >

< partnerRole

endpointReference ="static|dynamic|invoker|principal"

<wsa:EndpointReference
>

< wsa:Address > url </ wsa:Address >

< wsa:ServiceName PortName =”qname”>qname</wsa:ServiceName>

</wsa:EndpointReference >

[...endpointreference....]

</ partnerRole > ?

< myRole service ="name" allowedRoles ="namelist" ?

binding
="DocumentLiteral|RPCEncoded|RPCLiteral|External|PolicyDriven" /> ?

</ partnerLink > +

</ partnerLinks >

< references >

< wsdl location ="uri" namespace ="uri" /> +

</ references > ?

</ process >

<!--[if !supportLists]-->l <!--[endif]-->relativeDeploymentLocation属性定义了BPEL文件的路径,与BPEL引擎运行时的类路径相关。通常BPEL文件的路径是指与pdd文件在同一个bpr中的BPEL文件的相对路径。

<!--[if !supportLists]-->l <!--[endif]-->persistenceType属性将覆盖引擎自身的持久性设置,可选值为“full|none”。它将影响到所有在此pdd文件基础上由引擎创建的BPEL流程实例。

<!--[if !supportLists]-->n <!--[endif]-->full为默认值,表示所有的流程实例(该pdd基础上创建)将按照引擎配置的正常持久性机制运行;

<!--[if !supportLists]-->n <!--[endif]-->none表示流程实例不需要持久性支持。所有行为将按照ActiveBPEL引擎默认的in-memory设置进行;

<!--[if !supportLists]-->l <!--[endif]-->partnerLink 描述了流程中每个partner扮演的角色,endpointReference属性定义了一个partner的地址是从何处获得的。

<!--[if !supportLists]-->n <!--[endif]-->static PDD定义

<!--[if !supportLists]-->n <!--[endif]-->dynamic 从流程运行时从BPEL流程中映射

<!--[if !supportLists]-->n <!--[endif]-->invoker partnerde SOAP消息头获得(WS-Addressing

<!--[if !supportLists]-->n <!--[endif]-->principal 从基于认证规则的partner定义文件(.pdef)获得

<!--[if !supportLists]-->l <!--[endif]-->EndpointReference元素基于WS-Addressing标准。

<!--[if !supportLists]-->n <!--[endif]-->Address子元素用于提供服务的地址;

<!--[if !supportLists]-->n <!--[endif]-->ServiceNamePortName分别对应相关服务的WSDL文件中的定义。

<!--[if !supportLists]-->l <!--[endif]-->myRole元素中的allowedRoles属性值必须为空,除非你使用应用服务器自带的安全机制。该属性的设置是希望能够利用应用服务器已经存在的Web安全机制。

<!--[if !supportLists]-->l <!--[endif]-->references元素列出了BPEL流程参考引用的WSDL文件,它被ActiveBPEL引擎用来创建WSDL在内存中的表示。在每个<wsdl>元素,namespace属性被用来将BPEL中的名空间映射到一个具体的locationlocation属性可以是一个文件名或者任何URL。首先,location的值将首先供bpr包中META-INF子目录下catalog.xml的定义来查找使用;接下来,引擎将根据location的值获得具体的wsdl的名字(忽略之前的URL或文件相应路径),如果该名字的文件可以在bpr包中的wsdl子目录下找到,那么该WSDL将被引擎读取,否则的话,该location将被视为一个URL,引擎将根据该地址去寻找并读取该WSDL

pdd文件实例

具体pdd的例子可以参考下面这个例子(BPEL规范中的Loan Approval例子,服务wsdl文件(不含partnerLinkType定义)放置在服务器上通过url方式获得,本地建立wrapper包装wsdl,并在其中实现partnerLinkType定义):

<? xmlversion="1.0"encoding="UTF-8" ?>
< process xmlns ="http://schemas.active-endpoints.com/pdd/2006/08/pdd.xsd"
xmlns:bpelns
="http://www.jefferylee.com/loan_approval"
xmlns:wsa ="http://schemas.xmlsoap.org/ws/2003/03/addressing"
location
="bpel/Loan_Approval_Remote/loan_approval.bpel"
name
="bpelns:loan_approval" persistenceType ="none" >
< partnerLinks >
< partnerLink name ="approver" >
< partnerRole endpointReference ="static" >
< wsa:EndpointReference xmlns:s ="http://example.com/loan-approval/wsdl/"
xmlns:wsa
="http://schemas.xmlsoap.org/ws/2003/03/addressing" >
< wsa:Address > http://localhost:8080/active-bpel/services/ApproverWebService </ wsa:Address >
< wsa:ServiceName PortName ="SOAPPort" > s:LoanApprover </ wsa:ServiceName >
</ wsa:EndpointReference >
</ partnerRole >
</ partnerLink >
< partnerLink name ="assessor" >
< partnerRole endpointReference ="static" >
< wsa:EndpointReference
xmlns:s
="http://example.com/loan-approval/wsdl/"
xmlns:wsa
="http://schemas.xmlsoap.org/ws/2003/03/addressing" >
< wsa:Address > http://localhost:8080/active-bpel/services/AssessorWebService </ wsa:Address >
< wsa:ServiceName PortName ="SOAPPort1" > s:LoanAssessor </ wsa:ServiceName >
</ wsa:EndpointReference >
</ partnerRole >
</ partnerLink >
< partnerLink name ="customer" >
< myRole allowedRoles ="" binding ="RPC" service ="LoanService" />
</ partnerLink >
</ partnerLinks >
< references >
< wsdl location ="http://10.3.5.37/loanServicePT.wsdl"
namespace
="http://example.com/loan-approval/wsdl/" />
< wsdl location ="project:/Loan_Approval_Remote/wsdl/wrapper.wsdl"
namespace
="http://example.com/loan-approval/wsdl/wrapper" />
</ references >
</ process >



参考引用
1 http://forums.active-endpoints.com/showthread.php?t=2426
Quote:
Why does the engine need such a non standard file format?
There is no standard defined for establishing the binding information required for a BPEL process deployment. Every vendors implementation will have it's own unique deployment file format and in many cases different due to the different capabilities that a vendor may choose to provide for their implementation.

Quote:
Is there an API to manage/create the PDD files?
There is no API that creates a pdd as it is dependent on many of the options that you awant to use. There are users that have created their own code to create a pdd which can either be very compex or complicated depending on the options you want to take advantage of.

I am not clear as to what you mean by manage. Can you provide any examples of this?

Quote:
Are there any GPL tools to manage/create PDD files?
Again I am not sure what you mean by manage here. I am not aware of any GPL tools that have been created. Note however the ActiveBPEL Desginer is a free product which provides an unparalleled development, deployment and testing (simulation and remote debugging) environment for all your BPEL needs.

2 http://www.active-endpoints.com/activebpel-pdd-for-version-2x.htm
官方早期关于pdd的格式说明,但基于ActiveBPEL2.0,在3.0以后有很大改动,本文基于ActiveBPEL4.0实现(不知何原因,目前官方从2.0后就不再透露pdd的格式具体细节)。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 200 switching to ascii mode_上海某超市保安遭辞退怒砸200瓶红酒;香槟产区采收时间打破历史记录 | 酒界新闻...
  • ODM和OLAP实现时序预测(一)
  • 16进制 转为图片 php_ImageMagick(图片处理软件) 分享
  • 数据分析 超市条码_超市小程序做得比较好的功能点是什么?
  • ODM和OLAP实现时序预测(二)
  • 软件产品研发方向调研内容_研发部职能分解:调研,产品、技术、工艺、软件研发,测试、验收...
  • 网页像素测量工具_寓教于乐!11 个提升网页设计和前端开发技能的趣味游戏
  • ODM和OLAP实现时序预测(三)
  • asp 执行 exe_asp.net core 系列 18 web服务器实现
  • 搜索引擎登录,网站分类目录登录地址
  • python删除列表元素_Python去除列表中对应数量的元素(一一对应)
  • 基于Java Socket的文件UpLoad代码
  • python网络爬虫_Python网络爬虫实战(二)数据解析
  • 应用Executors来建立Thread pool
  • 富士通台式电脑_什么是电脑显卡 电脑显卡分类介绍【详解】
  • 【Leetcode】101. 对称二叉树
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • co.js - 让异步代码同步化
  • JavaScript设计模式系列一:工厂模式
  • Meteor的表单提交:Form
  • SAP云平台里Global Account和Sub Account的关系
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue ES6 Jade Scss Webpack Gulp
  • 跨域
  • 前端之Sass/Scss实战笔记
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 强力优化Rancher k8s中国区的使用体验
  • 手写双向链表LinkedList的几个常用功能
  • 数据结构java版之冒泡排序及优化
  • 优秀架构师必须掌握的架构思维
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​zookeeper集群配置与启动
  • !!java web学习笔记(一到五)
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Python) SOAP Web Service (HTTP POST)
  • (python)数据结构---字典
  • (办公)springboot配置aop处理请求.
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (南京观海微电子)——COF介绍
  • (四)linux文件内容查看
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (源码分析)springsecurity认证授权
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ***利用Ms05002溢出找“肉鸡
  • .apk 成为历史!
  • .gitignore文件---让git自动忽略指定文件
  • .net core 的缓存方案
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net framework 4.8 开发windows系统服务