根據摩根史旦利在2004年二月對 CIO 的 IT 預算調查 (Morgan Stanley CIO Survey),有幾個重要的訊息值得探討,在軟件預算分類中,Application Integration 是僅次于更新服務器操作系統的最重要項目,可見整合應用系統,深化商業流程自動化,將是最重要的軟件開發工作。
在同一份調查中同時揭露 Application Outsourcing 高居信息服預算的第一位,顯示信息人員必須將重點放在最高階的信息工作上面,例如實時匯集客戶信息以快速響應客戶需求,設計自動化的商業流程以降低營運成本,增加信息系統商業智能以協助決策人員做正確的判斷。我們需要一個穩定且具有高度整合能力的信息架構做為基礎,方能達成這些高價值的工作。
服務導向架構 SOA 是系統整合的最佳方案
我們很早就了解系統整合的重要性,所以嘗試了各種解決方案,并且獲得一些成果。最早的解決方案是數據的整合,整合數據帶來立即的好處,使用者可以快速取得所需的所有資料。但是因為企業的應用系統通常來自不同的供貨商,所以整合所有的數據庫非常不容易。后來的方法則是 AP-to-AP 的 EAI 整合方案,由 AP 與其它的系統溝通,取回所有需要的數據,這方法的缺點在于應用系統采用不同的通訊協議與 API,當多個系統互動時,需要的轉接程序與數據轉換程序大量增加,如果要與其它企業的應用系統互動,則情況變得更為復雜。服務導向架構 SOA 使用 XML 與 Web Services 為底層基礎,解決通訊協議與數據溝通的問題,而且包含安全、交易、商業流程整合等等功能,使 SOA 成為最有彈性的系統整合方案。
服務導向架構 SOA 的特質
有別于傳統的系統整合方案,SOA 具有幾個重要的特質。第一個特質是每個服務 (Service)有一個明確的界限,其它的程序只能透過服務窗口要求服務。第二個特質是獨立自主 (Autonomous),每個服務不必倚賴其它的系統,我們獨立布署服務,并且管理多重版本,別的程序不能存取服務內部的功能與數據,例如傳進來的數據既不能修改,也不能退回。第三個特質是共享 Data Schema 與數據規定 (Validation Contract),因為每個服務使用的內部數據格式不一定相同,所以不可以傳遞對象,而且數據必須符合規定,Text Format Data 是以前常用的方法,現在 XML 則是最佳選擇。第四個特質是運用 Policy,SOA 使用 policy 設計連接端口規定、數據規定、功能規定、安全規定等等,并且協調服務之間的互動流程。
導入服務導向架構 SOA 的策略
導入服務導向架構 SOA 的最佳策略是與現有的系統共存,而不是替換已經運行中的系統,例如 EDI 系統已經廣泛地運行于全球前 10,000 大企業的電子式交易,RosettaNET 是最成功的信息電子 & 半導體產業的供應鏈系統。但是全球仍有數量龐大的中小企業與難以估計的終端系統 (End User Devices),它們皆希望以便利、低成本的方式與其它系統進行 AP-to-AP 的整合運算,所以為現行系統提供 Web Services 將是最佳的擴展策略。
導入服務導向架構 SOA 的最佳實務 (Best Pracrtices)
•導入服務導向架構必須有整體的規劃,確實執行每個步驟,方能克服障礙,確保成功,下列是為一些寶貴的經驗法則,對導入 SOA 有相當大的幫助。
•制定統一的 Data Schema(Canonical Schema):例如原來的 Customer 數據在 ERP 與 CRM 系統有不同的格式,在 SOA 中必須有統一的 Schema。
•延伸 Legacy System:使用 Web services 把 Legacy System 包裝起來提供開放的服務,是一種不錯的選擇。
•建立管理服務的機制:包括布署、監控、量測、Routing 等等。
•匯集服務 (Orchestrate services):如果匯集一些互動服務可以具有商務意義,則可提供匯集服務給客戶使用,通常對應 User Task 且具有 Business Transaction 特性。
•使用可靠的訊息傳輸機制:例如使用 Message Queue 比使用 TCP/IP 的 Socket 較穩定。
•按 Inte.net/Intranet 的不同,采用適當的身份識別系統與安全機制。
•采用 Services Interface、Services Facade、Services Implementation 三層架構,提高 Services 的彈性。
相關資源
欲深入研究 SOA 的架構原理與設計模式可以參考下列資源:
•http://www.iiiedu.org.tw/industry/SOA0720.asp -『SOA 技術剖析研討會』
•www.microsoft.com/taiwan/msdn 技術代言人講座與專欄
•www.microsoft.com/patterns
結論
服務導向架構一方面可以幫助企業快速建立彈性的自動化商業流程、降低成本、進而提升競爭優勢,另一方面則可讓信息部門把人力資源集中在高階的規劃工作,這是提升部門價值的最佳方法。Internet、XML、Web Services、應用程序何服器、及 EAI & B2B 平臺已經為服務導向架構鋪設堅實的基礎,在許多大型用戶、產業聯盟 (例如 RosettaNET、SWIFT)、標準組織 (W3C、WS-I、OASIS)、及信息領導廠商的高度共識與努力推動之下,SOA 在數年內將成為信息的主流架構,所以現在正是規劃與建置 SOA 的良好時機。
(責任編輯:銘銘)