关于BPEL的两个话题

关于BPEL,网上有很多资料.所以就没有写自己的总结.但BPEL中有两个概念困扰了我很久,直到不久前才彻底明白.

第一个概念就是关于流程的编制和编排

编制:Orchestration.首先说明BPEL属于流程编制标准.
流程编制使用一个中心流程来协调不同的 Web 服务操作。这个中心流程了解编制的总体目标、涉及的操作以及操作的调用顺序。这种集中化管理使 Web 服务能够在不了解彼此影响的情况下进行添加和删除,还允许在出现错误和异常的情况下进行补偿。其结果可以看作一个新的Web Service,可以执行,只是执行的过程需要调用别的Web服务.

编排:Choreography.可描述多个贸易伙伴为了实现多组织业务功能而进行的交互。也就是说编排主要描述的不同流程之间的交互情况.例如,在供应链方面,实施产品采购可能涉及到多家公司的定单、发货通知单和资金的交互。编排不描述每个公司如何处理操作,只描述不同公司如何彼此交互。

BPEL属于编制标准,而BPMN,个人认为既可以描述流程编制也可以描述流程编排.在一个BPMN图中如果只含有一个流程,那么它表现的就是流程编制.而如果一个BPMN图中含有多个流程(存在于不同的POOL中),那么它就表现了流程编排.而BPMN的两个子类型Collaborative (Global) B2B Processes 协作图,Public (Abstract) Process 抽象图更清晰的表现了流程的编排.

而W3C的Web Services Choreography Description Language 简称WS-CDL更是专门的流程编排标准.而WS-CDL自认为可以包含流程编制,它才是SOA发展的方向.但目前WS-CDL还不成熟,而BPEL又有多家大公司支持,所以短期内,即使BPEL不如WS-CDL强大,BPEL还是会是SOA中流程标准中的主流.

第二个概念是人工流程

业务流程的完全自动化虽然非常不错,但在实际中却是不可能实现的,因为有些活动要求相关人员做出判断,或要借助人员的专业知识(例如手动处理异常情况或审批请求等),这些活动将始终由人进行。在整个业务流程中,和任何其他任务一样,人工任务是一项服务,不过是通过人员活动(而不是程序)实现的,由相关人员(而不是计算机)执行。

因此,在SOA 编程模型中,人员活动可以作为 Web 服务实现。该服务被调用时,将通知承担任务的个人进行相关工作,并将输入数据以恰当的形式传递给此人。任务完成后,将产生相应的结果,服务会返回到其调用方,并将此结果作为输出数据传递给调用方。该结果实际由相关人员得出这一事实可能对调用方完全透明。该场景采用异步调用来支持运行时间长的服务.
BPEL正是利用自己对异步服务的支持,使用这种方式来支持人工流程的.

目前的流程标准中,BPMN作为流程的标记标准,在其图示化的编辑器中是支持人工流程的.例如其ACTIVITY就有Manual的类型.而XPDL也是支持人工流程的.而BPEL为了弥补自己对人工流程支持上的不足,又定义了BPEL4PEOPLE的标准.
BPEL4People 扩展提供了通过嵌入人工任务扩展业务流程所需的扩展功能。它可处理将手动任务呈现为不透明的独立 Web 服务的场景.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值