歡迎大家回到「SOA停看聽」專欄。上期我跟大家介紹了「服務導向架構」(SOA;service-oriented architecture),這次我們要來探討支援SOA所須具備的技術。
圖一為SOA佈建的明確說明。圖片顯示出SOA架構具有三個主要元件:
《圖一 SOA佈建》
如同我們所見,圖中有應用程式(不論是否是客製或是套裝軟體)、大型主機、使用者與交易夥伴等各式各樣的使用者與供應者。在任何SOA中,使用者將會是透過入口網站(例如發送採購需求)或是提供服務(像是能夠批准採購需求的主管)的主動積極參與者。我們能夠將SOA進行外部延伸以納入交易夥伴,唯一的規定,就是必須在互動時加入更多限制,例如要增加嚴格的安全規範等。
SOA提供了整合所有不同功能及服務的骨幹基礎。而且在很多情形下,相同的功能及服務將會同時扮演著使用者與供應者兩種角色。舉例來說,一個應用程式可能將其業務功能化為服務,但在其內部業務邏輯有需要時,也會求助於外部服務。
SOA標準的基礎
SOA架構最重要的特色之一,就是在使用者與服務之間的鬆散藕合(loose coupling)。任何一項服務皆會定義一種介面將與哪一個使用者互動;使用者則會運用介面來決定一項服務能作些什麼,以及要如何使用此一服務。使用者不用再受到原有基礎架構組成或是應用程式種類的牽制來選擇服務項目。
網路服務與XML為定義服務介面以及如何與服務互動提供了標準機制。這項標準機制讓使用者與各項服務能輕鬆的連結在一起。值得注意的是,這些被導入的服務是使用來自不同廠商的截然不同的技術。而要完成這項連結任務,重要步驟則包含了:
事實上,目前還有很多其他與網路服務相關的標準,像是WS-Security、WS-Policy、BPEL等等,不過這些標準並不包含在本文討論的範圍之中。
從企業資源中創造服務與使用者
目前有各種不同的方法被用來從既存企業資源中創造各項服務。這些方法包含了像是可以被用來包裝應用程式API的網路服務工具箱(toolkit)、能夠連結應用程式,並提供網路服務介面的連接器(adapter)等。而套裝軟體的較新版本也提供了正宗的網路服務介面。
此外,一個入口網站可以被設計用來讓使用者呼叫所需服務。這些方法與策略會依特定應用軟體而定,不過對於許多使用者使用而促成的服務而言,卻會是個一次性的活動。
SOA基礎架構功能
我們剛剛已經談過什麼是服務,以及如何去要求一項服務。現在,讓我們開始討論支援這項互動的基礎架構。SOA基礎架構的必要條件包含有:
促成協調的服務作業與應用程式合成
現在,我們在整合既有應用軟體的情況下討論SOA,各種服務正在為其他欲執行的服務展示出應用程式的功能。這樣的情形很好,因為簡化EAI與B2B的問題是SOA的一大益處。然而,在這些服務的總集合成長之際,其他SOA的優點也會變得更加突出。透過運用這些服務來快速創造新應用功能已經是可能做到的事。
使用作業流程管理(BPM,business process management)技術,協調既有服務的新作業流程,能夠很迅速的被創造出來,企業也因此能夠在瞬息萬變的環境中快速反應。接下來,就是要創造使用這些服務的新應用邏輯程式碼的合成式應用程式。這個方法能使新企業功能較傳統方法更快速、更有效率的加以佈建。極為重要的是,SOA基礎架構得支援這些能力來確保SOA的優點得以全面。
以上是與SOA相關技術的概略討論。未來本專欄會針對更多SOA相關領域加以探討,下個月將討論企業採用SOA對於業務所帶來的益處。
(作者為BEA WebLogic Integration產品管理總監)

