关于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 服务的场景.
分享到:
相关推荐
多流程模式则涉及两个或更多的并行流程,强调流程间的交互,适合于处理更为复杂、涉及多方协作的业务场景。 #### BPEL的基本结构与模型 BPEL模型由以下几个关键组件构成: - **流程(Process)**:由一系列活动...
在BPEL中,活动(Activity)是构成流程的基本单元,代表了流程中的一个操作或步骤。 BPEL的常用基本活动包括: 1. **** / ****: - **** 用于在流程中进行数据赋值,它可以将一个变量的值复制到另一个变量,或者...
- **导入加法服务和减法服务的wsdl文件**:将这两个服务的WSDL文件导入到bpel工程中。 - **设置伙伴链接**:为每个服务定义伙伴链接,确保它们能够在流程中被正确地引用。 - **修改CaculatorProcessArtifacts.wsdl...
Eclipse3.5,升级Eclipse-bpel时需要的两个包 在添加BPEL Designer插件时,输入http://download.eclipse.org/technology/bpel/update-site/ 后,显示: "Cannot complete the install because one or more required...
- **CompleteAfterProject6**: 这个文件可能是一个包含BPEL流程的项目,名为"CompleteAfter"的第六个版本。这个流程可能涉及了Web服务的调用,并在所有前序任务完成后执行某些操作。 - **CompleteAfterProject4**: ...
这个流程可以被看作是一个服务,它接受两个输入参数x和y,然后计算并返回它们按照给定公式计算后的结果。 Eclipse BPEL2.0插件是开发者进行BPEL流程设计和调试的重要工具。它提供了一个图形化界面,使得流程的构建...
假设存在两个Web Service:一个是名为`AddService`的加法服务,用于处理两个数字的相加操作;另一个是名为`SubtractService`的减法服务,用于处理两个数字的相减操作。现在需要将这两个Web Service集成起来,创建一...
这两个服务会接收两个数字作为输入,并返回计算结果。 4. **服务调用与数据交换** 在BPEL流程中,我们可以使用`invoke`活动来调用CXF提供的Web服务。调用服务时,需要提供服务URL、操作名称以及输入参数。返回的...
- **Web服务组合方式**:BPEL支持两种组合Web服务的方式——编制和编排。 - **编制**:一个中心流程控制和协调相关的Web服务。优点在于灵活性高,可以预先制定应对失败的策略。 - **编排**:所有参与的Web服务都...
本文将详细探讨BPEL 1.0与BPEL 2.0的主要差异,以帮助读者理解这两个版本在功能、设计原则和改进方面的变化。 **一、BPEL 1.0 知识点** 1. **基础概念**:BPEL 1.0 是一种基于XML的编程模型,它允许开发者定义和...
BPEL的主要目标是为了解决企业级服务之间的交互问题,允许开发者将多个Web服务组合成复杂的业务流程。 ### 1. BPEL概述 BPEL是基于XML的,它定义了如何组织和执行一系列Web服务来实现一个业务流程。BPEL流程可以...
接着,导入之前生成的AddService.wsdl和SubService.wsdl,以便在BPEL流程中引用这两个服务。 在BPEL流程设计中,可以定义流程的各个活动,比如调用AddService执行加法操作,调用SubService执行减法操作,然后根据...
将两个活动之间建立链接,用于控制流程的执行顺序。 7. **Scope**:范围。定义了一个范围内的活动共享相同的变量空间,并且可以捕获和处理异常。 #### 三、BPEL4WS的特性 BPEL4WS是指BPEL for Web Services,它是...
在这个过程中,“相关集合”(Correlation Set)是BPEL中的一个重要概念,它在协调服务交互中扮演着关键角色。 相关集合是BPEL中用于关联消息和活动的一种机制,它可以将消息与特定的流程实例关联起来。这在处理...
它是一种基于XML的语言,允许开发者描述两个或多个Web服务如何协同工作来完成一个复杂的业务流程。BPEL提供了一种标准化的方式来表达业务流程,使得服务能够以声明式的方式进行集成。 **Eclipse BPEL Designer** ...
**BPEL 2.0**是BPEL的一个重大版本更新,其目标是提供一个更加强大且灵活的框架来定义和执行业务流程。该版本引入了许多新特性,包括但不限于: 1. **消息交换**:定义了如何在不同的Web服务之间进行消息传递。 2. ...
本案例的目标是使用BPEL调用两个通过Apache CXF项目发布的WebService——加法服务和减法服务,进而组合成一个新的服务——运算服务,并生成相应的WSDL文件。这不仅展示了BPEL在整合服务方面的强大能力,也突显了其在...
本实例将探讨如何使用BPEL链接六个小型Web服务,构建一个单一的综合Web服务。 首先,我们需要理解BPEL的基本概念。BPEL是基于XML的,它定义了如何通过一系列步骤来执行业务流程。这些步骤,或称为活动,可以是简单...
BPEL是一种用于描述企业服务业务流程的标准语言,它允许开发者将多个Web服务组合成复杂的业务流程。 在Oracle BPEL Process Manager中,开发者可以创建、部署和管理这些基于BPEL的流程。这个平台提供了可视化工具,...
在提供的文件中,`bpel4people-1.1-spec-wd-01.doc`是BPEL4People的早期工作草案,`wsbpel-v2.0.pdf`是BPEL2.0的核心规范文档,`WS-HumanTask_v1.pdf`是关于WS-HumanTask的详细描述,而`wsbpel-v2.0-Primer.pdf`是...