基於WS-BPEL2.0的服務組合研究

http://tech.it168.com/soadocument/2008-01-03/200801031332376.shtmlhtml

 WS-BPEL是爲組合Web服務而制定的一項規範。它的前身是由IBM、Microsoft共同推出的Web服務業務流程執行語言BPEL4WS,2003年4月6日交由OASIS組織審查,正式公佈1.0版本,而且成立BPEL4WS技術委員會,決定將來規範的發展方向。該委員會致力於產生一種用於編寫Web服務控制邏輯的、獨立於平臺的、基於XML的編程語言。2003年5月3日,由BEA、IBM、Microsoft、SAP及Siebel Systems五家公司完成BPEL4WS 1.1版本。BPEL4WS 1.1版本推出後,技術委員會又對BPEL4WS 1.1作了大量修改工做,使之獲得全面提升。隨後,推出Web服務業務流程執行語言2.0規範草案,把BPEL4WS語言改稱爲WS-BPEL(Web Services Business Process Execution Language),除此以外還增長了對人員任務(WS-BPEL Extension for People)、Java語言(BPELJ)和子業務流程(WS-BPEL 2.0:Extensions for Sub-Processes)等的擴展支持。雖然除BPEL以外還有其餘業務流程規範,可是到目前爲止,BPEL是最爲成熟和被普遍支持的技術。
    WS-BPEL是IBM的WSFL和Microsoft的XLANG相結合的產物。WSFL和XLANG分別基於Petri網和Pi-calculus,所以BPEL吸取和借鑑Petri網和Pi-calculus的優勢,是一種高級的、抽象的、可執行建模語言,它不只實現Web服務間的交互和流程編排,也將流程自身暴露爲Web服務。
    BEPL產生的動機源於如下三個方面:
    1. 面向業務的整合編程

  • 企業內部的整合(Enterprise Application Integration)
  • 合做夥伴間的集成(Business-to-Business Integration)
  • 企業間跨行業整合(Syndication)

    2. Web Services到面向服務的計算(Service-Oriented Computing)的演進架構

  • 應用被看做服務(Service)
  • 鬆耦合(Loosely Coupled),動態交互
  • 異構平臺(Heterogeneous Platforms)

    3. 服務組合
    域中服務如何組合?異步

WS-BPEL的技術特徵async

    做爲當前基於流程的Web服務編排(Service Choreography)最常使用的技術,BPEL提供了一個描述基於流程及其合做夥伴之間Web服務交互的業務流程行爲模型。使用BPEL能夠實現兩種不一樣類型的流程:可執行流程和抽象流程。可執行流程描述了服務的內部實現,抽象流程則定義了服務的外部行爲。
    服務編排是BPEL設計的核心概念。BPEL提供序列和規則來描述Partner Services被調用的順序。這種功能咱們可使用Java、C或C#等語言,經過在應用中硬編碼的方式來實現,但卻犧牲了業務和應用變動的靈活性,也形成整個體系結構的緊耦合。經過BPEL來描述服務之間的關係,咱們能夠實現很是輕便的鬆耦合架構,來配合企業業務的靈活變動。WS-BPEL至關於服務間的粘合劑,幫咱們輕鬆實現服務間的編排(如圖1所示)。編程語言


圖1編碼


    WS-BPEL依賴於下列基於XML的規範:WSDL 1.一、XML Schema 1.0、XPath 1.0、XSLT 1.0和Infoset。其中,WSDL對WS-BPEL的影響最大。WS-BPEL的流程模型位於WSDL 1.1定義的服務模型的頂層(如圖2所示)。spa


圖2設計


    在WSDL中,不只定義了服務容許的各類傳輸消息類型和操做,還經過定義服務連接類型描述服務間的依賴關係。圖3顯示了BPEL在WS-*協議族中的位置。BPEL定義了WSDL操做如何被編排在一塊兒以知足業務流程,BPEL還明確規定了在支持長運行異步(long-running asynchronous)流程方面對WSDL的擴展。在BPEL中,直接引用WSDL中定義的操做,並經過Web服務接口提供流程實例。相對於其夥伴和資源行爲及交互的描述,流程和其相關的合做夥伴都被暴露成WSDL服務。業務流程定義了一個流程實例和它的partners之間該怎樣協同交互。由此,WS-BPEL流程定義提供或使用一個或多個WSDL服務。更準確地說,WS-BPEL被用來描述在交互中一個有着明確角色流程的消息交換。orm


圖3 WS-BPEL in the WS-* Stack


    WS-BPEL業務流程的定義遵循WSDL的分離(Separation of Concerns)模型,即把業務流程使用的抽象消息內容與部署信息(消息和端口類型<port type>經過綁定<binding>和地址信息<address information>)分離。具體地說,WS-BPEL流程用抽象WSDL接口<port types>和操做來表示全部的合做夥伴以及與這些合做夥伴的交互,它並不引用流程實例使用的實際服務。WS-BPEL不作關於WSDL binding的任何假設。

 

相關文章
相關標籤/搜索