`
alartin
  • 浏览: 210204 次
社区版块
存档分类
最新评论

理解BPEL

    博客分类:
  • SOA
阅读更多
流程
流程也叫业务流程,指定了一组 Web 服务的操作的可能执行顺序、这些 Web 服务间共享的数据、业务流程涉及哪些伙伴以及这些伙伴在业务流程中扮演什么角色、一组组 Web 服务的共同异常处理以及关于多个服务和组织是怎样参与的其它问题。特别是它允许指定 Web 服务间长期运行的事务,提高 Web 服务应用程序的一致性和可靠性。 在BPEL中流程是一种实体, 服务也是一种实体. 所以在BPEL就是描述流程和服务之间如何打交道(交互).

伙伴
在BPEL中,伙伴的定义是相对流程来讲的, 实际上伙伴指的是和流程打交道的服务. 所以 伙伴 = 和流程交互的服务. 在BPEL中,伙伴可以分为三种:
  1. 被调用的伙伴(Invoked partner): 就是只由流程调用的服务/伙伴 ,流程 --> 服务 单向
  2. 客户机伙伴(Client partner): 只调用流程的服务/伙伴, 流程 <-- 服务 单向
  3. 第三种伙伴: 既可以由流程调用, 也可以调用流程的服务/伙伴, 流畅,<--> 服务 双向
伙伴连接类型
伙伴的第三种类型带来一个问题,这就是参照问题,或者说是看问题的角度问题。如果你站在流程的角度,可以说我需要服务提桶给我一个PortTypeA, 同时我将我的PortTypeB提供给服务。 如果站在服务的角度,可以说,我给流程提供了PortTypeA,同时我需要流程给我PortTypeB. 问题是每个人的角度不同,导致对问题的理解不同。 怎么办呢?我们应该站在那个角度上看问题呢?最好的办法就是我们既不站在流程的角度,也不站在服务的角度上考虑,而是站在第三方的角度上。要想站在第三方角度上考虑,那么伙伴连接类型就派上了用场。我们使用角色这个概念。伙伴连接类型定义了两个伙伴如何交互,并且每一方提供了什么我们通过角色用来定义在这个交互中每一方伙伴提供了什么。
第三种伙伴需要给流程一个端口类型(PortType), 让流程去使用这个PortType, 同时流程也要提供另一个端口类型(PortType), 供这个伙伴使用.
第三种伙伴引出了服务/伙伴连接类型(Partner Link Type)的概念. 服务连接类型并不是从这些参与方(流程和服务)中的某一方的角度出发来定义流程和服务之间的关系. 它代表了一个第三方的声明.通过这个声明来描述两个或者多个服务之间的关系. 为了达到这个目的, 服务连接类型引入了角色这个概念.服务连接类型定义了一组角色, 其中每个角色指明一种端口类型PortType(其实就是服务). 本质思想是,当两个服务交互时,服务连接类型就是对这两个服务如何交互的声明(阐明各方本质上提供了什么).
转过来说, BPEL通过服务连接类型来定义伙伴: 给伙伴一个名称,然后指明这个伙伴的服务连接类型的名称, 然后分别确定流程在这个服务连接类型中充当的角色和伙伴充当的角色. 回到上面的伙伴类型, 这样来看, 前两种的伙伴在服务连接类型中只有一种角色.

服务引用
当BPEL运行时, 伙伴必须解析为实际的WEB服务,所以伙伴实际上就是一个有类型的服务引用.其类型信息来自服务连接类型和其角色.至于伙伴如何绑定到特定的服务上, 那是支持BPEL服务器的事情, 例如Glassfish.
分享到:
评论

相关推荐

    bpel完整实例(webservice+bpel)

    对于想要深入理解BPEL和OpenESB的开发者,可以从这些项目文件入手,通过反编译和分析流程定义,理解每个版本的业务逻辑变化,以及如何利用OpenESB来管理和运行这些流程。同时,实践部署和调试这些流程,将有助于提升...

    BPEL2.0及相关规范

    **BPEL2.0(Business Process Execution Language 2.0)**是Web服务业务流程执行语言的第二版,它是一种用于编排...通过深入研究这些文档,开发者可以全面理解BPEL2.0及其相关规范,从而更有效地设计和实现业务流程。

    bpel primer_(BPEL 2.0 primer_权威).pdf

    这份文档的目标读者是对BPEL感兴趣的技术人员,以及希望深入理解BPEL概念及其主要组成部分的人士。通过一系列实例和对规范性文档的广泛引用,读者可以更好地掌握BPEL的关键特性,并识别出适合使用BPEL的具体场景。 ...

    BPEL入门教程.zip

    **BPEL(Business ...综上所述,BPEL入门教程将帮助初学者理解BPEL的基础概念、语法结构以及其在实际业务场景中的应用。通过实践案例和示例代码,学习者可以逐步掌握如何利用BPEL设计和实现高效、可靠的业务流程。

    oracle bpel 流程开发指导

    1. **BPEL基础知识**:理解BPEL的基本概念,如活动(Activities)、流程(Processes)、变量(Variables)、事件(Events)和合作伙伴链接(Partner Links)。BPEL流程由一系列操作顺序组成,这些操作可以是服务调用...

    BPEL 1.0 vs 2.0

    **标题:“BPEL 1.0 vs 2.0”** **正文:** BPEL,即Business Process Execution Language,是一种...通过学习和比较这两个版本,开发者能够更好地理解BPEL语言的发展历程,从而在实际项目中选择合适的版本进行应用。

    BPEL流程例子程序

    **BPEL流程例子程序详解** BPEL(Business Process Execution Language)是一种基于XML的编程语言,用于描述和执行业务...对于学习和理解BPEL的工作原理,以及如何在实践中应用BPEL,这个例子程序是一个很好的起点。

    bpel思想详解-----

    在深入理解BPEL之前,我们需要先了解工作流的基本概念。工作流是指在组织内部,多个参与者按照预定规则执行的一系列相互关联的任务。这些任务可以是自动化或手动的,它们共同构成了一个业务流程。BPEL就是用来描述...

    BPEL CookBook

    通过学习"BPEL CookBook",开发者可以深入理解BPEL的工作原理,掌握在Oracle环境中使用BPEL的最佳实践,从而有效地构建和管理业务流程。书中的实例和技巧将对提升开发者的技能水平大有裨益,使他们能够应对日益复杂...

    bpel_designer_1.0.5

    **BPEL(Business Process Execution Language)** BPEL,即业务流程执行语言,是用于构建服务导向架构(SOA)中的...理解BPEL及其设计工具不仅有助于提升SOA项目的开发效率,还能确保服务之间的协同工作更加顺畅。

    BPEL的基本思想 实例讲解

    通过与Java的对比,可以更深刻地理解BPEL在业务流程自动化中的优势。在实际操作中,结合实例和练习可以快速上手,并通过BPWS4J等工具进行流程设计和调试。 **5. 使用资源** "bpel_CN"可能是一个中文的BPEL学习资源...

    BPEL介绍BPEL介绍BPEL介绍

    BPEL,全称Business Process Execution Language,是用于编排Web...通过实例学习,如房屋贷款流程或上述的计算器服务,开发者可以更好地理解BPEL的各种过程组件和活动的用法,从而更有效地利用BPEL构建复杂的业务流程。

    BPEL流程编排发布实例

    在本实例中,我们将深入理解BPEL的基本概念、流程设计以及如何发布和执行BPEL流程。 1. **BPEL基础** BPEL基于活动的概念,这些活动可以是服务调用、数据处理、条件判断或循环。流程由一系列相互连接的活动构成,...

    bpel详解

    为了更直观地理解BPEL的工作原理,我们可以通过一个具体的例子——运算服务(CaculatorService)的创建来进一步说明。假设存在两个Web Service:加法服务(AddService)和减法服务(SubtractService)。我们的目标是...

    BPEL4WS.ppt

    【BPEL4WS详解】 BPEL4WS,全称Business Process Execution Language for Web Services,是一种用于构建和...通过理解BPEL的基本结构、属性、元素以及工作流模式,开发者可以更好地设计和实现高效、可靠的业务流程。

    BPEL中文教程2

    1. **BPEL基础概念**:首先,你需要理解BPEL的基本元素,包括活动(Activities)、结构(Structures)和控制流(Control Flow)。这些元素构成了BPEL流程的骨架,定义了服务间的交互逻辑。 2. **BPEL工作流**:BPEL...

    BPEL调用SQLServer数据库存储过程Demo

    首先,理解BPEL的工作原理至关重要。BPEL流程由一系列活动组成,这些活动可以是简单的服务调用,也可以是复杂的条件判断或循环结构。在BPEL中,我们可以定义一个活动来执行SQLServer存储过程,这通常通过WSDL(Web ...

    BPEL随书示例代码

    书中提供的示例代码可以帮助读者更直观地理解BPEL的工作原理,如何编写流程定义,以及如何处理各种服务交互。这些代码涵盖了BPEL的各种元素,如活动(activities)、流程(processes)、变量(variables)、合作伙伴...

    我自己写的BPEL建模工具雏形 含源代码

    这个工具的初步实现虽然还不具备完整的功能,如BPEL流程的分析和生成,但对于理解BPEL建模的基本概念以及Java绘图编程有一定的学习价值。 在BPEL建模过程中,用户通常需要创建活动(Activities)、序列(Sequence)...

    BPEL.rar_BPEL_SOA

    通过深入理解BPEL和SOA,开发者可以创建出灵活、可扩展的业务流程,实现服务之间的高效协作,以满足企业日益复杂的业务需求。"BPEL.ppt"文件很可能是对此主题的详细讲解,包括概念、语法、最佳实践等内容,建议结合...

Global site tag (gtag.js) - Google Analytics