`
hougbin
  • 浏览: 492014 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

BPEL SDO SCA

    博客分类:
  • SOA
阅读更多

1    BPEL:business process execution language  商业过程执行语言

     BPEL前身BPEL4WS(Business Process Execution Language For Web Service),后改名为WS-BPEL(Web Service Business Process Execution Language),可简称为BPEL。

    BPEL(Business Process Execution Language) 即业务流程执行语言,是业界在以XML、Web服务为基础的诸多规范之上提出的一种新型的业务流程定义语言。它以业务流程及其参与者的交互为基础定义了业务流程的描述语法,用于业务流程建模。其中,业务流程及其参与者的交互用Web服务接口标准加以描述。因此BPEL流程可直接调用符合Web 服务规范的服务。BPEL用来描述多个服务交互的协作与协调,从而对外提供流程服务,以达到某种商业价值。

 

2  BPEL 设计原则:

     BPEL所定义的流程实质上是对一系列单个无状态服务的调用与编排,使得这些服务调用按照既定的规则进行。因此BPEL所定义的流程必然涉及与外部服务的交互。其交互接口由WSDL所描述的Web服务接口所定义。从简单性和可重用性考虑,其接口定义应是抽象的,不应涉及服务绑定、服务质量定义等实现相关的细节问题。这些实现相关的定义可在BPEL流程部署时加以确定。

      BPEL流程本身也以由WSDL所描述的接口声明为Web服务。在这里,BPEL实际上作为Web服务的一种实现向外界提供服务调用,实现了与Web服务的无缝兼容,同时也为子流程或嵌套流程的定义提供了解决方案。

BPEL是一种基于XML的标准,只描述业务流程本身,而并不关注业务流程的图形化表示,也不涉及业务流程的设计方法学。不同的厂商可以基于BPEL规范在流程建模工具中提供自己的图形化界面来表示BPEL流程。

      BPEL的前身是XLANG和WSFL。XLANG是一种由专门的控制构件构成的结构化的流程建模语言,而WSFL是一种基于加入(join)和转换(transition)条件的、图形化的建模语言。WSFL可以根据流程模式进行图形化的建模,具有很强的直观性,易于图形化建模工具的支持。这两种建模语言都有很大的用户群,因此BPEL的目的是要融和两者的优点,争取最多的用户群,提供一个易于直观的图形化建模,同时又可以不加修改的部署到运行环境上的业务流程语言。因此它的建模视图和执行视图应该是一致的,基于同样的概念集,不需任何转换。

      BPEL是以流程规则的定义为中心的,并不是一般意义上的数据操作语言,因此BPEL的数据操作支持应以保证流程建模的需要为基础,提供相对简单的数据操作,比如消息的构建,变量的提取与赋值,简单的数据表达式等。而复杂的数据操作和数据存取功能则应交给BPEL过程所调用的服务来完成,而将结果返回给BPEL过程。

      任何流程在执行过程中都可能有异常和错误情况发生。因此BPEL必须将错误和异常情况的处理放在与业务流程本身同等重要的地位。业务流程可能是长期运行的流程并跨越多个事务边界,一旦某个环节发生异常,不可能将整个流程执行中所发生的结果都进行回滚。因此BPEL应提供可定制的错误处理和补偿机制,可在定义流程的同时,根据流程自身的特点、异常类型以及实际需求,定义相应的错误恢复或补偿操作,以应对相应的异常情况。

      BPEL定义了流程的模板。在BPEL流程的执行环境中,同一个流程模板可以生成多个BPEL流程实例。同时BPEL的服务调用是松耦合的,它所调用的服务不会保留BPEL的实例信息。在BPEL流程与一个服务进行异步交互时,如何将属于同一交互的消息路由到正确的流程实例,是BPEL必须面对的问题。因此BPEL提供了消息与流程实例的关联机制以解决该问题。为了保持Web服务的实现无关性,这种关联机制必须依赖于业务数据,也就是消息中所携带的业务数据,而不是实现相关的数据,如流程实例的标示符。为此BPEL规范定义了关联集合(correlation set)的概念用于消息和流程实例的关联。用户将一组业务属性定义为关联集合,关联集合必须唯一确定一个BPEL流程实例。BPEL运行环境将消息路由到与该关联集相匹配的流程实例。而且,对于流程中不同的接口,用户可以定义不同的关联集合,以适应不同的业务需求。

由于BPEL本身可以作为Web服务的实现向外界提供服务调用。Web服务是一种无状态的服务描述,而BPEL作为多个服务的协调服务可以看做一种有状态的服务。对外的无状态性以及自身的有状态性,决定了对BPEL实例的生命周期管理必须是隐含性的。生命周期的隐含性意味着流程实例的创建和销毁是由BPEL运行环境根据到来的消息自动进行的,不需人工干预。因此BPEL服务的调用者也就不能通过Web服务调用直接对BPEL的实例进行管理,如实例的创建,运行实例的挂起与继续,实例的销毁等。这些高级的BPEL生命周期的管理功能将留待今后的版本予以增强。
     总的说来,BPEL规范具有以下特点:

     基于开放的Web服务标准,易于实现跨系统、跨部门、跨企业的互操作。BPEL的调用对象是Web服务,本身也可以作为Web服务向外提供服务,因此与现有的Web 服务标准相融合。由于Web 服务是开放标准,已被众多的企业所采用,BPEL使建立跨企业的业务流程成为可能。

高度的松耦合性。BPEL可看作是对多个服务的调度与协调。BPEL本身只定义流程相关的逻辑,具体的功能则由它所调用的服务来实现,与BPEL无关。由于BPEL调用的对象都是一致的Web服务接口,BPEL定义本身只需指定相应的接口即可,不需要指定实现该接口的服务。相应的实现服务完全可以在部署甚至运行时确定。同时,流程与所调用的服务之间以XML形式传递消息,不直接与服务的实现打交道。因此BPEL流程和所调用的服务之间是松耦合的,他们可以独立地进行替换或修改,而不对另一方产生影响。

      服务的重用性。由于BPEL流程的调用对象是服务。一个服务在被一个流程调用的同时也可向其他流程,其他客户提供服务。同时BPEL流程本身也可以封装成流程向客户提供服务或是作为子流程为其他流程所重用。这种服务的可重用性为企业的流程管理减少了开发成本,同时也提高了维护效率。

高度的敏捷性。现代企业的业务需求随时都在改变以适应千变万化的市场。这种需求的快速改变也相应对企业的IT基础设施提出了更高的要求。在企业的业务需求改变时,相应的IT设施必须能够快速调整为新的业务需求提供支持。从业务流程的角度来说,相应的业务流程必须能够容易的、快速的甚至是动态的改变才能满足这一要求。正是由于BPEL具有高度的松耦合性和可重用性,才使其具有敏捷性的特点。

 

 

 

2  SDO: service data object  服务数据对象

3 SCA: service components architecture 服务组件架构

  

    

 

分享到:
评论

相关推荐

    浅析微软ServiceLayerGuidelines和OSOA架构体系(SCA,SDO等)之间的关系

    注:本文假设您已了解熟悉了SOA的一些重要概念,包括SCA,SDO,BPEL,ESB,以及微软体系下的WCF,消息队列,WorkFlow等概念。因为下文中将会通过对比一下这两个SOA技术体系的架构图来介绍一下其中的一些有意思的东西。首先...

    soa核心技术及应用第三部分

    本书详细的介绍了SCA SDO 和 BPEL,是一本不可多得的好书。 本书是继《SOA·方法·实践》之后,IBM SOA技术专家精心打造的又一SOA技术力作,是SOA专注应用之作。 作者从SOA技术一线的经验出发,深入剖析SOA核心技术...

    SOA标准之----SCA架构思想

    SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准。JBI之关注Java组件只处理Java组件的集成。SCA实现了业务组件和传输协议的分离,可以处理...

    BPEL及其发展历程

    作为SOA的关键技术,SDO和SCA分别为SOA提供了数据模型和服务组件模型的定义标准。那么到目前为止,SOA是否能解决用户所面临的所有业务问题呢?让我们先来看看下面的例子。一个企业将提供一个订单处理服务。这个订单...

    soa核心技术及应用

    .本书是毛更新写的【soa原理方法实践】后的又一本好书,同样出自IBM团队.这本书详细的介绍了SCA SDO 和 BPEL,是一本不可多得的好书。本书共有117M 因为本人上传有限.所以分作三个部分上传.这是第二部分

    SOA核心技术及应用(全书)第三部分

    本书首先和读者一起回顾一下SOA的基本理念和实施SOA的技术需求,进而简要介绍SCA、SDO和 BPEL技术。此后的章节根据这三个主要的技术方向分为不同的模块,分别介绍相应技术的起源、理 念、规范和实例,力图使读者全...

    SOA核心技术及应用(全书)第一部分

    本书首先和读者一起回顾一下SOA的基本理念和实施SOA的技术需求,进而简要介绍SCA、SDO和 BPEL技术。此后的章节根据这三个主要的技术方向分为不同的模块,分别介绍相应技术的起源、理 念、规范和实例,力图使读者全...

    SOA核心技术及应用(全书)第二部分

    本书首先和读者一起回顾一下SOA的基本理念和实施SOA的技术需求,进而简要介绍SCA、SDO和 BPEL技术。此后的章节根据这三个主要的技术方向分为不同的模块,分别介绍相应技术的起源、理 念、规范和实例,力图使读者全...

    SOA标准之----JBI架构思想

    SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准。JBI之关注Java组件只处理Java组件的集成。SCA实现了业务组件和传输协议的分离,可以处理...

    wicket 开发指南

    并将具有特殊标记的Html 元素定义为UI 控件,在java 文件中则直接使用代码操作这些UI 控件,控制其输出面向构件成长社区http://gocom.primeton.com 独家首发 Wicket 开发指南SCA/SDO/SOA/Eclipse/BPEL/EOS 技术交流 ...

Global site tag (gtag.js) - Google Analytics