分布式业务流程的通信抽象
在分布式业务流程中,有效的通信至关重要。本文提出了一种介于传统工作流和消息层之间的通信和控制层,为通信的描述和执行提供了一个独立的区域。该方案基于一组强大且相对简单的抽象概念,包括通道、属性、属性关系和过滤器,能够实现各种形式的消息关联、选择、聚合消费以及基于时间的消息消费。
1. 通信模型
该通信模型抽象了通道和过滤器与业务流程活动或事件的关联方式,因此可以集成到各种流程定义语言中。
- BPEL扩展 :BPEL中的入站通信操作有两种形式,即独立的接收活动类型和调用活动的第二部分。通过使接收和调用活动能够引用上述定义的通道和过滤器,可以扩展BPEL。通道可以与BPEL中的伙伴链接和操作相关联。
- YAWL扩展 :可以在YAWL中定义一种消息接收任务,具体步骤如下:
1. 任务启用时,注册一个作为任务分解一部分定义的一次性消息消费过滤器。
2. 任务等待,直到过滤器返回匹配结果。
3. 如果在找到匹配项之前任务被取消,则撤回过滤器。
此外,还可以将消息消费过滤器附加到YAWL流程模型的初始条件上,以捕获特定场景。
2. 实现与评估
实现基于名为JCoupling的中间件服务和API,它支持主流通信中间件所支持的通信风格的超集,并且抽象了传输协议细节,使我们能够专注于核心方面。它支持单向和双向通信、时间、空间和同步解耦,并提供故障传播支持。
以下是原型的架构交互流程:
graph LR
超级会员免费看
订阅专栏 解锁全文
776

被折叠的 条评论
为什么被折叠?



