瀏覽人次:【4384】
歡迎大家回到「SOA停看聽」專欄。上期我跟大家介紹了「服務導向架構」(SOA;service-oriented architecture),這次我們要來探討支援SOA所須具備的技術。
圖一為SOA佈建的明確說明。圖片顯示出SOA架構具有三個主要元件:
(1)服務供應者(providers) - 將服務化為功能。
(2)服務使用者(Clients) - 使用服務。
(3)SOA基礎架構 - 以可靠與有效控制的方式將消費者與供應商連結在一起。
《圖一 SOA佈建》 |
如同我們所見,圖中有應用程式(不論是否是客製或是套裝軟體)、大型主機、使用者與交易夥伴等各式各樣的使用者與供應者。在任何SOA中,使用者將會是透過入口網站(例如發送採購需求)或是提供服務(像是能夠批准採購需求的主管)的主動積極參與者。我們能夠將SOA進行外部延伸以納入交易夥伴,唯一的規定,就是必須在互動時加入更多限制,例如要增加嚴格的安全規範等。
SOA提供了整合所有不同功能及服務的骨幹基礎。而且在很多情形下,相同的功能及服務將會同時扮演著使用者與供應者兩種角色。舉例來說,一個應用程式可能將其業務功能化為服務,但在其內部業務邏輯有需要時,也會求助於外部服務。
SOA標準的基礎
SOA架構最重要的特色之一,就是在使用者與服務之間的鬆散藕合(loose coupling)。任何一項服務皆會定義一種介面將與哪一個使用者互動;使用者則會運用介面來決定一項服務能作些什麼,以及要如何使用此一服務。使用者不用再受到原有基礎架構組成或是應用程式種類的牽制來選擇服務項目。
網路服務與XML為定義服務介面以及如何與服務互動提供了標準機制。這項標準機制讓使用者與各項服務能輕鬆的連結在一起。值得注意的是,這些被導入的服務是使用來自不同廠商的截然不同的技術。而要完成這項連結任務,重要步驟則包含了:
●表現收送服務的資訊:XML(extensible markup language,延伸符號標記語言)提供了在「程式中立」(application-neutral)格式中表現資訊的能力,使資訊交換的工作得以加速。除此之外,XML schema或是XSD也提供了關於XML文件的meta資料,以用來描述資訊的意義。
●定義服務介面:WSDL(Web services definition language,網路服務定義語言)提供了一種機制。此一機制是用來描述服務的介面、服務所提供的作業流程,以及那些作業中作為XML文件的輸入與輸出資料。
●透過介面來要求已經定義的服務:SOAP(simple object access protocol,簡單物件存取協定)為請求WSDL所指定的服務流程以及傳遞XML輸入與輸出資料提供了傳訊協定。使用者可以藉由發送SOAP訊息服務來請求服務處理。
事實上,目前還有很多其他與網路服務相關的標準,像是WS-Security、WS-Policy、BPEL等等,不過這些標準並不包含在本文討論的範圍之中。
從企業資源中創造服務與使用者
目前有各種不同的方法被用來從既存企業資源中創造各項服務。這些方法包含了像是可以被用來包裝應用程式API的網路服務工具箱(toolkit)、能夠連結應用程式,並提供網路服務介面的連接器(adapter)等。而套裝軟體的較新版本也提供了正宗的網路服務介面。
此外,一個入口網站可以被設計用來讓使用者呼叫所需服務。這些方法與策略會依特定應用軟體而定,不過對於許多使用者使用而促成的服務而言,卻會是個一次性的活動。
SOA基礎架構功能
我們剛剛已經談過什麼是服務,以及如何去要求一項服務。現在,讓我們開始討論支援這項互動的基礎架構。SOA基礎架構的必要條件包含有:
●傳輸(transport):在HTTP作為網路服務的傳輸預設時,以及當許多IT環境具有其他像是JMS或是IBM的MQSeries等其他訊息傳輸系統、並希望能重覆使用這些訊息時,支援不同訊息傳輸的能力是相當重要的。
●傳訊典範(Communication Paradigms):同步(synchronous)與非同步(asynchronous)傳訊典範(包括:要求/回應以及出版/訂購)都應該加以支援,以便在服務被使用時提供彈性。這些典範的橋接都應該被加以支援,舉例來說,讓同步瀏覽器使用者與提供非同步要求/回應服務的傳統應用程式彼此能夠互動。
●路線安排與轉換(routing and transformation):這個條件可以藉由安排使用者需求到不同服務,有效控制使用者與服務之間的互動。而這些不同的服務,仰賴像是訊息內容(message content)、安全文本(security context)或是其他外部規則等特定的準則。路線的重新安排,也可能需要訊息內容轉換成另一全新的格式。
●安全性(Security):這項功能是藉由確保使用者己透過身份驗證確定為本人,並且確定被授權取得此項服務的方式,以針對服務提供保護。
●管理(Administration):作業人員應該能夠監控並管理基礎架構、設定與監視SLA情況、追蹤在使用者與服務之間的訊息流通、發出警示,並且處理突發狀況。
●企業價值執行環境(Enterprise Caliber Runtime):SOA解決方案,將會成為企業的骨幹,同時SOA也需要提供符合企業價值的服務品質:可靠性、可行性、可服務性以及效能程度。
促成協調的服務作業與應用程式合成
現在,我們在整合既有應用軟體的情況下討論SOA,各種服務正在為其他欲執行的服務展示出應用程式的功能。這樣的情形很好,因為簡化EAI與B2B的問題是SOA的一大益處。然而,在這些服務的總集合成長之際,其他SOA的優點也會變得更加突出。透過運用這些服務來快速創造新應用功能已經是可能做到的事。
使用作業流程管理(BPM,business process management)技術,協調既有服務的新作業流程,能夠很迅速的被創造出來,企業也因此能夠在瞬息萬變的環境中快速反應。接下來,就是要創造使用這些服務的新應用邏輯程式碼的合成式應用程式。這個方法能使新企業功能較傳統方法更快速、更有效率的加以佈建。極為重要的是,SOA基礎架構得支援這些能力來確保SOA的優點得以全面。
以上是與SOA相關技術的概略討論。未來本專欄會針對更多SOA相關領域加以探討,下個月將討論企業採用SOA對於業務所帶來的益處。
(作者為BEA WebLogic Integration產品管理總監)
|