`
grid.qian
  • 浏览: 57472 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于BPEL的两个话题

    博客分类:
  • 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 服务的场景.

分享到:
评论
7 楼 grid.qian 2008-10-16  
dpj666666 写道

有沒有關於BPEL的詳細介紹和實施的實例?

详细介绍好多,网上GOOGLE一下就行。最全面的还是BPEL的规范,现在是2.0版本,你可以自己下。
至于实施案例,我手上没有。也没有在网上搜过。不过能用到BPEL的项目,估计都比较大,你可以去IBM,ORACLE之类的公司网站看看。
6 楼 dpj666666 2008-10-16  
有沒有關於BPEL的詳細介紹和實施的實例?
5 楼 grid.qian 2008-09-25  
CDL可以被用来定义企业间消息的格式,传输方式,但我觉得它主要是被用来定义企业间业务流程的交互情况的,应该是和BPEL属同一个范畴,只不过更抽象一点
4 楼 fifayh 2008-08-22  
感觉BPEL主要面向流程编制,或者业务逻辑设计,类似于控制流的处理。
CDL则是主要面向安全、可靠消息传输等,类似于数据流的处理。
3 楼 grid.qian 2008-08-21  
最近听说,国外有个小公司一直在做CDL的东西。已经有了雏形,而且在和JBOSS ESB做集成
2 楼 grid.qian 2008-01-25  
是啊,这篇文章我也看了。WS-CDL好坏我也不知道,没有厂商支持,就没有产品,没有产品就无法检验优劣。
1 楼 SSailYang 2008-01-25  
Burton Group:BPEL必须为SOA编排标准让路
按照这篇文章的描述,WS-CDL 和 BPEL 的应用层次是不同的。WS-CDL 是被用来使用 BPEL 构建的 sub-process 去构建整个 SOA 应用。但这终究是一家之言的理论,究竟会怎样呢?我是不知道呀。没有厂商支持终究不行呀。

相关推荐

    BPEL简要概括(关于BPEL)

    多流程模式则涉及两个或更多的并行流程,强调流程间的交互,适合于处理更为复杂、涉及多方协作的业务场景。 #### BPEL的基本结构与模型 BPEL模型由以下几个关键组件构成: - **流程(Process)**:由一系列活动...

    关于bpel的简介

    在BPEL中,活动(Activity)是构成流程的基本单元,代表了流程中的一个操作或步骤。 BPEL的常用基本活动包括: 1. **** / ****: - **** 用于在流程中进行数据赋值,它可以将一个变量的值复制到另一个变量,或者...

    BPEL的一个运行实例

    - **导入加法服务和减法服务的wsdl文件**:将这两个服务的WSDL文件导入到bpel工程中。 - **设置伙伴链接**:为每个服务定义伙伴链接,确保它们能够在流程中被正确地引用。 - **修改CaculatorProcessArtifacts.wsdl...

    Eclipse3.5,升级添加BPEL Designer插件l时需要的两个包

    Eclipse3.5,升级Eclipse-bpel时需要的两个包 在添加BPEL Designer插件时,输入http://download.eclipse.org/technology/bpel/update-site/ 后,显示: "Cannot complete the install because one or more required...

    bpel完整实例(webservice+bpel)

    - **CompleteAfterProject6**: 这个文件可能是一个包含BPEL流程的项目,名为"CompleteAfter"的第六个版本。这个流程可能涉及了Web服务的调用,并在所有前序任务完成后执行某些操作。 - **CompleteAfterProject4**: ...

    BPEL流程例子程序

    这个流程可以被看作是一个服务,它接受两个输入参数x和y,然后计算并返回它们按照给定公式计算后的结果。 Eclipse BPEL2.0插件是开发者进行BPEL流程设计和调试的重要工具。它提供了一个图形化界面,使得流程的构建...

    BPEL编程思想详解

    假设存在两个Web Service:一个是名为`AddService`的加法服务,用于处理两个数字的相加操作;另一个是名为`SubtractService`的减法服务,用于处理两个数字的相减操作。现在需要将这两个Web Service集成起来,创建一...

    bpel入门实例(组合加减法运算)

    这两个服务会接收两个数字作为输入,并返回计算结果。 4. **服务调用与数据交换** 在BPEL流程中,我们可以使用`invoke`活动来调用CXF提供的Web服务。调用服务时,需要提供服务URL、操作名称以及输入参数。返回的...

    BPEL中文教程 BPEL学习很好的

    - **Web服务组合方式**:BPEL支持两种组合Web服务的方式——编制和编排。 - **编制**:一个中心流程控制和协调相关的Web服务。优点在于灵活性高,可以预先制定应对失败的策略。 - **编排**:所有参与的Web服务都...

    BPEL 1.0 vs 2.0

    本文将详细探讨BPEL 1.0与BPEL 2.0的主要差异,以帮助读者理解这两个版本在功能、设计原则和改进方面的变化。 **一、BPEL 1.0 知识点** 1. **基础概念**:BPEL 1.0 是一种基于XML的编程模型,它允许开发者定义和...

    BPEL入门教程.zip

    BPEL的主要目标是为了解决企业级服务之间的交互问题,允许开发者将多个Web服务组合成复杂的业务流程。 ### 1. BPEL概述 BPEL是基于XML的,它定义了如何组织和执行一系列Web服务来实现一个业务流程。BPEL流程可以...

    Eclipse_BPEL_使用详解

    接着,导入之前生成的AddService.wsdl和SubService.wsdl,以便在BPEL流程中引用这两个服务。 在BPEL流程设计中,可以定义流程的各个活动,比如调用AddService执行加法操作,调用SubService执行减法操作,然后根据...

    bpel学习心得笔记

    将两个活动之间建立链接,用于控制流程的执行顺序。 7. **Scope**:范围。定义了一个范围内的活动共享相同的变量空间,并且可以捕获和处理异常。 #### 三、BPEL4WS的特性 BPEL4WS是指BPEL for Web Services,它是...

    BPEL相关集 bpel相关集合

    在这个过程中,“相关集合”(Correlation Set)是BPEL中的一个重要概念,它在协调服务交互中扮演着关键角色。 相关集合是BPEL中用于关联消息和活动的一种机制,它可以将消息与特定的流程实例关联起来。这在处理...

    bpel_designer_1.0.5

    它是一种基于XML的语言,允许开发者描述两个或多个Web服务如何协同工作来完成一个复杂的业务流程。BPEL提供了一种标准化的方式来表达业务流程,使得服务能够以声明式的方式进行集成。 **Eclipse BPEL Designer** ...

    bpel primer_(BPEL 2.0 primer_权威).pdf

    **BPEL 2.0**是BPEL的一个重大版本更新,其目标是提供一个更加强大且灵活的框架来定义和执行业务流程。该版本引入了许多新特性,包括但不限于: 1. **消息交换**:定义了如何在不同的Web服务之间进行消息传递。 2. ...

    BPEL整合WEBService服务的一个完整案例

    本案例的目标是使用BPEL调用两个通过Apache CXF项目发布的WebService——加法服务和减法服务,进而组合成一个新的服务——运算服务,并生成相应的WSDL文件。这不仅展示了BPEL在整合服务方面的强大能力,也突显了其在...

    关于bpel链接小service的实例

    本实例将探讨如何使用BPEL链接六个小型Web服务,构建一个单一的综合Web服务。 首先,我们需要理解BPEL的基本概念。BPEL是基于XML的,它定义了如何通过一系列步骤来执行业务流程。这些步骤,或称为活动,可以是简单...

    oracle bpel 流程开发指导

    BPEL是一种用于描述企业服务业务流程的标准语言,它允许开发者将多个Web服务组合成复杂的业务流程。 在Oracle BPEL Process Manager中,开发者可以创建、部署和管理这些基于BPEL的流程。这个平台提供了可视化工具,...

    BPEL2.0及相关规范

    在提供的文件中,`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`是...

Global site tag (gtag.js) - Google Analytics