SOA技術標準的比較說明

genusBIT發表於2008-08-01

  隨著近幾年SOA概念的推廣及相關技術標準的發展,SOA逐漸為眾多的使用者所接受,並在電子政務及企業應用的建設中逐步得到應用。但是,面對眾多紛繁複雜的SOA相關技術標準,IT企業在開發SOA相關軟體產品及使用者實施SOA進行選擇時,往往分不清楚哪些技術標準是他們所需要的,而且相當部分的SOA技術標準的定位,有一定的重合。因此,選擇適合的SOA相關技術標準,成為IT企業和實施SOA使用者的面臨的難題。下面,簡單介紹一下部分SOA相關技術標準,並作簡單分析。

  1. SOA相關技術標準分類

  標準與規範基本相似,但略微不同,規範是標準的建議文件。標準一般是由業界公認的標準化組織制定和釋出,而規範多為廠商或非標準化組織釋出。本文不對它們進行區分,統一稱為標準。

  SOA相關技術標準的一種分類方式,是根據技術標準在 SOA 中的角色功能,將其分為三大類:服務層次上的資訊互動規範、基礎通訊標準規範、後設資料標準規範。根據各種標準規範在SOA 體系中的角色功能,可以將 SOA 協議棧分為 7 層,如圖1所示。從底向上,包括傳輸層、訊息層、描述層、管理層、服務組合層、表示層及服務發現註冊層,其中除了ebXML和電子商務相關的技術標準(如資源註冊的ebRS、訊息表示ebMS、外部服務資源編排的WS-CDL等)外,大多數在國內已經得到了相當的應用,如東方通科技的應用整合產品TongIntegrator和應用伺服器TongWeb,都支援部分Web服務的相關技術標準,如傳輸層的SOAP、RMI、SMTP,訊息層的SOAP、JMS以及描述層的WSDL協議等。

  2. SOA相關技術標準比較說明

  由於SOA相關技術標準太多,圖1中,並沒有完全列舉出所有的SOA相關技術標準。下面,就部分相似的SOA相關標準進行比較說明,以便進行SOA開發時,能夠基於瞭解認識進行選擇。

  2.1. WSDL與OWL-S

  W3C組織提出的標準的Web服務描述語言WSDL,它從句法層面對Web服務的功能進行描述,包括4個不同的粒度:資料型別(Data type)、訊息(Message)、方法(Operation)和訪問埠(PortType)。這只是提供了Web服務的介面描述,對服務的行為約束和屬性描述缺乏進一步的支援。

  OWL-S是語義Web服務標記語言的標準,它比WSDL更能向使用者提供可理解的服務資源的描述形式,提高服務選取與推薦的準確性。語義Web服務的主要方法是利用Ontology來描述Web服務,然後通過這些帶有語義資訊的描述實現Web服務來實現服務的自動發現,呼叫和組合。語義Web和Web 服務是語義Web服務的兩大支撐技術。OWL-S是連線兩大技術的橋樑,目前對語義Web服務標記語言研究最重要的組織就是DARPA組織,其研究組OWL Services Coalition提出了語義Web服務標記語言OWL-S(原DAML-S)。

  語義Web服務及相關標準(OWL-S等)對於Web及Web服務應用的深化具有重要意義,同時也具有很好的發展前景。目前OWL-S等語義Web服務相關標準的應用還主要是研究性、示範性的。

  2.2. XML Web服務與ebXML

  SOA中的服務,當前多以Web服務技術實現和解釋,傳統的Web服務及其相關協議,都是以XML為基礎進行擴充套件的,因此我們把它稱為XML Web服務。其實,在XML Web服務之前,ebXML已經出現,鑑於此標準複雜而完善,因此它在傳統的電子商務領域,用處較廣。就具體的內容和定位而言,兩者有一定的區別。

  1) 訊息傳輸技術

  XML Web服務和ebXML都使用SOAP作為訊息傳輸技術,但是XML Web服務服務定義了鬆散耦合的協議堆疊,該堆疊由可靠傳輸 (WS-Reliability) 和 安全 (WS-Security) 的各個規範組成,而ebXML將所有這些功能都融入到自己的訊息傳遞標準和ebMS中,從而使用混合技術。

  2) 服務描述和發現

  XML Web服務分別使用WSDL和UDDI標準,UDDI序號產生器制是基於目錄的體系結構,其註冊內容包括技術模型和業務模型,本身可擴充套件但目前其註冊的內容和描述還不夠豐富和完整,圖3為UDDI的資料模型及關係圖。

  而ebXML將服務描述和發現機制對應兩個標準,一是註冊資訊模型ebRIM,二是註冊服務規範ebRS。ebXML序號產生器制要比UDDI豐富和完善的多,它的序號產生器制用途廣泛,可以表示範圍廣泛的資料物件,包括 xml 模式、業務流程描述、ebXML Core Component、UML模型、一般貿易合作伙伴資訊及軟體元件。為了支援如此多樣的資料,使用一個定義良好的資訊模型而不是目錄,將ebXML註冊設計得更像一個資料庫,圖2為ebXML的註冊資訊模型ebRIM的組織結構示意圖。

  3) 業務流程協作

  基於Web服務的業務流程協作和服務編排,有WS4BPEL、WS-CDL、基於XML的工作流XPDL等,這些基於XML和Web服務的標準都彼此相對獨立,甚至是不同的組織制定。

  ebXML標準也包含業務流程協作的標準,如ebCPPA、ebBPPS。

  總之,ebXML是一個獨立的規範集,具有內部一致性,而且不依賴於新興標準和規範,它的用途主要定位在有特殊要求的電子商務方面,目前,ebXML已被國家確定為國標推薦,但其應用看起來還要有一段路要走。而XML Web服務由於其內容相對簡單,技術實現容易,對應的一系列協議棧相對鬆耦合,因此其在構建SOA的應用中使用越來越廣泛。

  圖2.ebXML的註冊資訊模型(ebRIM)

  圖3.UDDI資料模型及其關係圖

  2.3. SCA與JBI

  SCA(Service Component Architecture),即服務元件架構,提供了一種程式設計模型,可以支援基於SOA的應用程式實現。SCA是一種模型,可以支援實現服務元件的各種技術,連線服務元件的各種存取方法。對於元件,不僅包括不同的程式語言,也包括這些語言使用的框架和環境。對於存取方法SCA合成操作支援各種通訊、服務存取技術,如:WS、MQ、RPC。SCA規範包括了Assemble Model和Client Model兩部分。前者約定了如何將異種元件(Java類,BPEL,Web Service)組裝併發布成SOA服務,是SCA最大的特點和最核心的概念;後者則約定了如何在異種語言環境中呼叫SOA服務。通過這兩部分的規範,就可以完全解決了服務從服務端到客戶端的跨語言、跨環境的問題。圖4為SCA的服務元件組裝模型。

  JBI是Java商業整合(Java Business Integration)的簡稱。JBI的制訂者們認為傳統的EAI和B2B解決方案使用非標準的技術,這使得使用者往往被鎖定到特定的方案和產品提供商上,與此同時,沒有任何一個單獨的提供商可以覆蓋EAI和B2B領域的所有問題。因此他們提出這個標準以期解決這個問題。這個標準定義了一個標準的體系結構允許第三方的元件插入到標準的基礎設施上,並且即使這些元件是有不同提供商提供的,它們也可以以一種可預見的和可靠的方式互操作。從高層次上看,JBI定義了可以從可插入元件構建整合系統的體系結構,這一結構中元件的互動使用一種經過中介的訊息交換機制,而這一訊息交換模式是基於WSDL 2.0或WSDL 1.1的。圖5為JBI環境組成及結構。

  圖4.SCA服務元件組裝模型

  圖5.JBI環境組成與結構

  從上面的分析來看,SCA定義了與具體技術無關的服務元件組裝模型,SCA的定位,主要在於細粒度的元件和服務組裝方式。SCA由於技術無關性及眾多廠商的參與,他們得到了大多數廠商的支援。而JBI,它們都是基於Java的技術,JBI更多的像服務匯流排的Java標準定義,其粒度比SCA要大,且更多的是服務間的通訊和組裝模式,當前支援的主流廠家也不多,但是開源的實現相對還是比較多的。

  2.4. WS4BPEL與WS-CDL

  WS4BPEL,即Web服務業務流程執行語言,它是一種可執行語言,能夠與各種促使業務流程自動化的軟體系統相相容。Web服務編制,通過說明性的方式(而不是程式設計的方式)表達了進行Web服務合成的需求。此標準主要用於組織內部的業務流程管理及服務編排,目前越來越多的BPM產品基於此規範實現。

  WS-CDL,即Web Services Choreography Definition Language,Web服務編排定義語言,它定義為在多個交易夥伴之間建立形式化關係,它不要求所有被整合的端點(endpoints)都有Web服務基礎設施。此規範更多地用於組織之外的服務與流程編排,目前在國內還不常用。

  另外,XPDL也可以用於服務的編排和組合,但它主要用於傳統的工作流定義,目前它也是BPM產品實現的重要技術標準。

  2.5. JSR168與WSRP

  JSR168是java 規範要求,它為建立portlet建立標準的api,它是為實現porltet、基於java的門戶伺服器和其他web應用程式之間的互操作性而設計的。JSR168的主要價值在於它被獨立軟體開發商(isv)所廣泛採用。在採用JSR168之前,企業應用程式開發商不得不支援所有開發商門戶的不同portlet集,支援多個門戶開發商不同的portlet集在類似業務資訊、內容管理、檢索和分析這樣的領域中非常令人頭疼。使用JST168規範,現在開發商只需要支援一種portlet集。目前,JSR168在基於Java技術開發Portal產品上,得到了廣泛的支援,但也僅限於Java技術。

  WSRP,即Web Services for Remote Portlets的縮寫,它定義瞭如何利用基於 SOAP 的 Web 服務在門戶應用程式中生成標記片斷的規範。通過定義一組公共介面,WSRP 允許門戶在它們的頁面中顯示遠端執行的 portlet,而不需要門戶開發人員進行任何程式設計。對於終端使用者,這些 porlet 就和執行在他們本地的門戶上一樣,但是實際上這些 portlet 來自於遠端執行的 portlet 容器,並且互動是通過 SOAP 訊息的交換來實現的。在面向服務的體系結構中利用 WSRP 將是一個強大的組合,從而使面向呈現的 portlet 應用程式可以被發現並重用而不用任何額外的開發和部署活動。WSRP是由OASIS組織制定,目前已得到多數廠商的支援,鑑於它基於Web服務標準,而且技術相對獨立,因此隨著此標準的逐漸完善,相信越來越多的Portal生產企業會支援此標準。

  3. 總結

  前面對部分SOA相關技術標準的比較分析,不可能覆蓋所有的SOA相關技術標準,如SOA的參考架構、Web服務協議棧的比較分析等。本文的目的,希望能夠為希望瞭解SOA相關技術標準及面臨技術標準選擇困惑的開發人員、軟體廠商及使用者等提供一些參考,以此達到拋磚引玉的作用。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-417452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章