Bpel异步流程的构建与关联集

 
Bpel异步流程的构建与关联集
 
在流程的整合的实际应用中,常常会出现流程的异步运行。
例如:流程运行某处,阻塞,等待伙伴系统传来的信息,流程继续运行。可以使用receive活动或者pick活动来完成这中情况:
 异步流程需要注意的问题是传入数据的相关性。因为一个流程可能有多个实例在同时运行,假如流程A运行的是学号01的同学的流程,在异步处等待该学生的成绩。在这时传来了一个成绩消息,那能否接受该消息呢?这就需要考虑数据相关性。确定相关性后,只有学号是01的同学的成绩才能传入这个流程实例。这就是相关集的作用。那么如何定义相关集呢?
 在Netbeans中设置关联集有一下几个步骤
1. 首先思考能保证消息唯一性的数据是什么,例如上例中学号是唯一标识,学号是字符型,所以在相应的wsdl中添加一个属性,属性的类型为String,属性名为MY。
2. 确定属性别名。在异步流程中,传入的消息可能有多个,所以需要在这些消息中挑出一些Element来唯一确定这个消息。如上例中有两个消息。第一个消息是学生的个人信息,其的ID Element需要加入属性MY。第二个消息是学生的考试成绩,其中的ID需要加入属性MY。这样就把这个消息联系了起来。
3. 在流程中创建关联集,在关联集中添加属性MY。
4. 在消息传入的Activity中添加关联集。上面两个图中,图一的receive1与receive2需要添加关联集,图二的receive1与OnMessage需要添加关联集。
完成了以上几个步骤就可以实现异步流程了,另外提几点:
1. Pick中有个OnAlarm活动,该活动的作用是当异步消息的等待超过了一定的时间所引起的活动。
2. 发送异步消息的伙伴服务的实现形式有多种。一种是将发送消息的程序服务化,集成为Web Service,另一种是在该程序中添加一个Web Service Client,调用流程WSDL的PortType中的Operation,还有一种是Jms消息传递,在流程的receive端设置好Jms的ConnectionFactiry以及Destination,填写一个Jms服务器,填写正确的用户名密码。活动活动发送Jms消息到制定的服务器,该消息激活Receive活动,流程继续运行。Jms绑定比Http绑定更加安全可靠,这里不再骜述。这也是我在学习过程中的一点记录,有不当之处情指出
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值