加载中…
个人资料
蔡尐
蔡尐
  • 博客等级:
  • 博客积分:0
  • 博客访问:187,470
  • 关注人气:28
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

BPEL与Java

(2010-05-17 12:10:26)
标签:

web服务

业务流程

java

bpel

soa

技术

开发

it

分类: Web技术

注:译文--点击查看原文

原文作者 Matjaz Juric

BPEL与Java


 简介

    几乎每一个新的技术和企业应用开发平台背后的思想和的动机都是为了提供一个更易于开发业务应用的环境,在此,开发环境不能过于复杂,业务应用应与业务流程紧密地结合起来,并可以适应业务流程的不断变化的性质没有太多精力。
    Java为这类应用的开发提供了一个很好的平台,但今天的商业应用不能被孤立起来。在公司内部,企业应用必须是互操作的和集成的,在公司之间也是如此。整合不同的应用,一直以来都是一项与各种功能和技术的相关的艰巨的任务。
    一体化的挑战的最新解决方案是面向服务架构(SOA)和Web服务技术。 SOA的自下而上的观点认为应通过Web服务来暴露不同的业务应用的功能。因此,现在可以通过一个新的标准化方式(Web服务)来访问不同的传统和新开发的应用程序。这种访问方式是重要的,因为典型的公司都有大量的现有应用程序需要整合。
    仅仅有Web服务的开发和功能的暴露是不够的。我们还需要一种可以使用正确的顺序将这些功能整合起来的方式——一种可以使用这些暴露的功能来定义业务流程的方式。我们当然喜欢比较简单和直接的方式来定义这些过程,尤其是认识到业务流程经常改变之后,我们想要更容易的对其进行修改。
    正因如此,BPEL(Web服务的业务流程执行语言,也称WS-BPEL、BPEL4WS)变得非常重要。 BPEL允许Web服务的组合,是自上而下的、基于过程的SOA方法。

    本文主要讨论BPEL的作用及其与Java的关系。我们将集中精力专门针对BPEL的扩展,一方面能够整合Web服务之外的其他资源(例如EJB,JMS等),另一方面有可能将BPEL和Java代码相结合,展示一些有趣的新观点。

BPEL与Java

BPEL的作用
    这一基于过程的SOA方法需要一种语言来对Web服务是如何组成业务流程进行相对简单的描述。当然,如果这样的描述也可以执行就更好了,这将使我们不仅要定义抽象流程定义,还要对流程撰写确实可执行的规范。 BPEL就是这样一种语言,也是第一个这种语言,它可以:
    1.允许我们定义抽象和可执行程序
    2.为大部分公司所支持
    3.存在可以对这种程序进行执行(BPEL服务器)和开发(BPEL的设计器)的软件(来自多个供应商)。

    在我们更深入地了解BPEL之前,先讨论一下Web服务组合的两种方法:业务流程和动作。在业务流程,中央接管进程所涉及的Web服务的控制和协调不同的业务在操作中涉及的Web服务的执行。这是按照业务流程的需求而做的。所涉及的Web服务并不知道(也不需要知道)它们所涉及到的组合,它们只是一个更高的业务流程的一部分。只有在业务流程的中心协调员知道并对有明确的业务流程定义的行动和对Web服务的调用顺序进行集权。

     另一方面动作不依赖于中央协调器。相反,每个Web服务中所涉及的动作都确切地知道应该什么时候执行其业务和跟谁进行交互。动作是一个重点在于信息交换的协作过程。所有参与其中的动作都必须知道业务流程、业务执行、互换的信息,以及信息互换的时机。
    从组合Web服务来执行业务流程的角度来看,业务流程比动作更加灵活:
    1、可以确切地知道究竟谁应该为整个业务流程的执行负责。
    2、可以将Web服务纳入业务流程之中,即使是它们并不知道自己是一个业务流程的一部分。
    3、另外,还可以提供发生故障时可以采用的替代方案

    BPEL遵循业务流程范例。业务流程为其他标准所覆盖,如WSCI(Web服务业务流程接口)和WS-CDL(Web服务业务流程描述语言)。业务流程并未得到业内人士将可媲美BPEL的支持。
    BPEL的第一个版本早在2002年8月就已经由BEA,IBM和微软所制定。此后,大多数厂商的加入引起了若干次修改并在2003年3月改进和制定了1.1版。2003年4月,BPEL提交给OASIS(结构化信息标准促进组织)标准化,从那时起WSBPEL训练班(Web服务业务流程执行语言技术委员会)就已经成立(http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel) 。这导致了在行业中更广泛的接收。

    BPEL可以用于公司内部和公司之间。BPEL在公司内部用于规范企业应用的集成和整合,扩展先前孤立的系统。BPEL在企业之间,使业务伙伴之间可以更容易和更有效的整合。BPEL中业务流程的描述不影响现有系统从而刺激系统的升级。 BPEL是功能已经存在或即将通过Web服务公开的情况下的关键技术。随着在Web服务技术的使用的增加,BPEL的重要性也将进一步提升。

BPEL与Java

BPEL语言

 

 

 

附 录

  相关资料:Matjaz B. Juric,A Hands-on Introduction to BPEL

 

            BPEL wiki

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有