根據(jù)SOA參考架構所對應的業(yè)務、構建SOA涉及的技術要求以及技術標準在 SOA 中的角色功能,我們將SOA相關技術標準分為三大類:服務層次上的信息交互規(guī)范、基礎通信標準規(guī)范、元數(shù)據(jù)標準規(guī)范。根據(jù)各種標準規(guī)范在SOA 體系中的角色功能,可以將 SOA 協(xié)議棧分為 7 層,從底向上,包括傳輸層、消息層、描述層、管理層、服務組合層、表示層及服務資源注冊和發(fā)現(xiàn)層,其中除了ebXML和電子商務相關的技術標準(如資源注冊的ebRS、消息表示ebMS、外部服務資源編排的WS-CDL等)外,大多數(shù)在國內已經(jīng)得到了相當?shù)膽。下面簡單介紹一下相關的技術標準及其應用場合。
1、傳輸層
傳輸層作為傳統(tǒng)的傳輸協(xié)議,在SOA技術實現(xiàn)中,依然發(fā)揮著重要的作用。如HTTP、RMI/IIOP(分別用于Java的遠程對象調用和CORBA的遠程通訊)、SMTP、TCP/IP等。當然,在使用基于Web的服務時,常常使用HTTP協(xié)議,以便于互聯(lián)網(wǎng)上穿越防火墻。
2、消息層
SOAP協(xié)議基于XML描述,格式簡單,語言獨立,便于解析和擴展,因此,消息層SOAP已經(jīng)是Web服務消費的消息傳輸載體的首選。Web服務協(xié)議棧中的許多規(guī)范,多是基于SOAP進行擴展的,如WS-Security、WS-Reliability、WS-Policy等。在有特殊要求的電子商務領域,消息傳輸還可以采用ebXML中的ebMS標準,而基于J2EE技術的應用中,還可以選擇JMS作為傳輸協(xié)議。
3、描述層
要消費、發(fā)現(xiàn)和識別服務資源,需要對服務的語義進行描述。雖然SOA中的服務并不一定是Web服務,但由于Web服務的語言獨立性、協(xié)議的簡單性及眾多廠商的支持,Web服務已經(jīng)是最常用的服務表現(xiàn)形式,而多數(shù)SOA的技術標準也大多是基于Web服務的。
WSDL從句法層面對Web服務的功能進行描述,包括4個不同的粒度:數(shù)據(jù)類型、消息、方法和訪問端口。WSDL在Web服務語義方面的描述還不完善,因此基于SOAP協(xié)議擴展推出的WS-Policy,對表示W(wǎng)eb服務的限制條件和能力方面進行了補充。鑒于WSDL比較簡單,與傳統(tǒng)的對象和方法調用等概念較一致,而且語言獨立,得到了絕大多數(shù)廠商的支持,如IBM、BEA及國內中間件廠商東方通等公司的產品,都提供了對Web服務及其標準的支持,而WSDL和SOAP已經(jīng)成為Web服務最基礎的標準。
由于WSDL的缺點和限制,DARPA組織發(fā)展了OWL-S協(xié)議,它是語義Web服務標記語言的標準,它比WSDL更能向用戶提供可理解的服務資源的描述形式,提高服務選取與推薦的準確性。此協(xié)議相對完整和嚴謹,但是相對復雜,目前它主要在學術界進行研究和發(fā)展,實際應用較少。
4、管理層
與傳統(tǒng)的IT技術相比,松耦合的分布式的SOA軟件系統(tǒng),處理服務質量方面的管理問題,更加棘手。例如安全性問題,對于跨網(wǎng)絡的多個服務訪問,如何驗證合法身份、防止飽和性攻擊、消息內容如何防止篡改和竊取、多個信任域如何一次性驗證身份等?如果使用傳統(tǒng)的多種非標準技術或不同廠家來實現(xiàn)這些要訪問的服務,要解決上述問題簡直是場噩夢。這種情況下,統(tǒng)一使用標準的協(xié)議,才是解決的最佳方案。為此,一些標準化組織如OASIS等發(fā)展出了系列的標準。如WS-Security標準系列、WS-Trust、SAML等,結合傳統(tǒng)的安全標準,如KPI、加密算法等,可以用來解決Web服務的安全性問題;WS-Reliability、WS-ReliableMessaging標準,可以用來解決消息傳輸?shù)目煽啃詥栴};WS-Transaction系列協(xié)議,用來解決傳統(tǒng)的多個Web服務消費的事務完整性問題。上述協(xié)議可用于服務容器、業(yè)務服務及企業(yè)服務總線等的服務管理擴展。目前上述部分標準已經(jīng)在某些商用產品中使用,如應用服務器(服務容器中實現(xiàn))、企業(yè)服務總線產品等。
另外,對于Web服務及資源的分布式管理,還可以參考Web服務分布式管理WSDM標準及Web服務資源框架WSRF協(xié)議,不過這些協(xié)議推出時間比較晚,目前還鮮有應用。
5、服務組合層
服務組合層的標準規(guī)范,主要用來構建基礎服務及將服務進行組合編排,來形成滿足用戶需要的業(yè)務服務。WS4BPEL,即Web服務業(yè)務流程執(zhí)行語言,它是一種可執(zhí)行語言,能夠與各種促使業(yè)務流程自動化的軟件系統(tǒng)相兼容。Web服務編制,通過說明性的方式(而不是編程的方式)表達了進行Web服務合成的需求。此標準主要用于組織內部的業(yè)務流程管理及服務編排,目前越來越多的BPM產品基于此規(guī)范實現(xiàn),大有代替?zhèn)鹘y(tǒng)工作流技術的趨勢。WS-CDL,定義為在多個交易伙伴之間建立形式化關系,它不要求所有被集成的端點(endpoints)都有Web服務基礎設施。此規(guī)范更多地用于組織之外的服務與流程編排,目前在國內還不常用。
SCA(Service Component Architecture),即服務組件架構,提供了一種編程模型,可以支持基于SOA的應用程序實現(xiàn)。它支持實現(xiàn)服務組件的各種技術,連接服務組件的各種存取方法。SDO能夠使應用編程人員可以用一致的方法操作異構數(shù)據(jù)源,包括關系型數(shù)據(jù)庫,XML數(shù)據(jù)源,Web services和企業(yè)信息系統(tǒng)。理想上,可以使用多種技術開發(fā)組件,然后使用SCA標準來組裝組件及更大粒度的服務組裝,而SDO可以作為服務及組件之間傳輸?shù)臉藴蕯?shù)據(jù)格式。SCA比較年輕(2007年推出第一個1.0版本),國內實際使用的還比較少,而SDO由于發(fā)展較早,國內已經(jīng)有部分用戶和廠商在使用。
JBI,即Java業(yè)務集成,它定義了一個標準的體系結構允許第三方的組件插入到標準的基礎設施上,并且即使這些組件是有不同提供商提供的,它們也可以以一種可預見的和可靠的方式互操作。JBI標準可用來實現(xiàn)企業(yè)服務總線及企業(yè)應用集成產品,但由于JBI限于Java技術,目前商用的產品支持還比較少,倒是一些開源實現(xiàn)比較多。
6、表示層
表示層的標準如JSR168和WSRP,主要應用在Portal軟件的開發(fā)。JSR168是java 規(guī)范要求,它為創(chuàng)建portlet建立標準的api,它是為實現(xiàn)porltet、基于java的門戶服務器和其他web應用程序之間的互操作性而設計的。在開發(fā)基于Java技術的門戶產品和Web頁面集成時,可以考慮使用JSR168規(guī)范。而且,大多數(shù)的基于Java技術的Portal產品,都支持此規(guī)范。
WSRP,定義了如何利用基于 SOAP 的 Web 服務在門戶應用程序中生成標記片斷的規(guī)范。通過定義一組公共接口,WSRP 允許門戶在它們的頁面中顯示遠程運行的 portlet,而不需要門戶開發(fā)人員進行任何編程。WSRP是由OASIS組織制定,目前已得到多數(shù)廠商的支持,鑒于它基于Web服務標準,而且技術相對獨立,因此隨著此標準的逐漸完善,相信越來越多的Portal產品會支持此標準。
7、服務資源的注冊與發(fā)現(xiàn)
在服務資源的注冊與發(fā)現(xiàn)機制上,主要有兩種標準規(guī)范可用,UDDI和ebXML中的ebRS標準。UDDI注冊內容包括Web服務的技術模型和業(yè)務模型,本身可擴展,但目前其注冊的內容和描述還不夠豐富和完整,因此它主要用于Web服務的注冊和查找。在商用的Web服務注冊器的實現(xiàn)上,多有基于UDDI的產品。
ebXML中的ebRS標準,其注冊機制要比UDDI豐富和完善的多。它的注冊機制用途廣泛,可以表示范圍廣泛的數(shù)據(jù)對象,包括 XML 模式、業(yè)務流程描述、UML模型、一般貿易合作伙伴信息及軟件組件。但正是由于其完善而復雜,因此它主要用于電子商務領域。
..
|