SOA淺談


服務導向架構(Service-Oriented ArchitectureSOA) 是一種架構模型,由網站服務技術等標準化元件組成,目的是為企業建構一個具彈性、可重複使用的整合性介面,促進內外部如內部應用程式、用戶、與部門等相關單位完美的溝通,盡速達到網路服務提升的目標。服務導向架構 (SOA) 所提供的原則與指導,可將公司中眾多分散、複雜且缺乏彈性的異質性現有 IT 資源,轉化成整合式、簡化、具備高度彈性的資源,而這些資源還可進一步加以變更及組合,以更直接的方式支援企業目標。

WebService + XML ≠ SOA

到底啥是SOA? 首先讓我們釐清一些SOA的迷思。正確來說:
1.  SOA不是新玩意:多年前即有資訊部門或公司成功地用SOA方式來建構、運行應用程式,且當時XMLweb service都尚未提出。
2.  SOA不是種技術:它是種建構、組織的方法,用來建立應用程式的運行環境,以及讓學校的業務程式能以「功能化」方式發展、累積。
3.  就算購買最新的XMLweb services產品(如開發工具、執行平台、軟體元件等),也不表示就可以建構出SOA式的應用程式。

SOA服務導向架構是一種新興的系統架構模型,主要概念是針對企業需求組合而成的一組軟體元件。組合的元素通常包括:軟體元件(component)、服務(service)及流程(process)三個部份。當企業面對外部要求時,流程負責定義外部要求的處理步驟;服務包括特定步驟的所有程式元件,而軟體元件則負責執行工作的程式。例如,以訂機票服務為例,流程制定訂機票的處理步驟;服務則包括信用查詢、機位查詢及接單作業等;元件則是指真正完成信用查詢、機位查詢工作的程式。

SOA 的實作,就是將所有程式邏輯及服務內容全部包裹在服務內部,並實作一個標準的介面與外部作溝通,這種做法跟傳統的元件導向做法非常類似,唯一的差別是介面定義的方式、資料格式、與溝通管道必須是產業標準 (httpXMLSOAP(simple object access protocol) )。 也就是說只要能實作出這樣的介面,不論介面後面是什麼,都可使成為 SOA

服務導向架構 SOA 的特質

有別於傳統的系統整合方案,SOA 具有幾個重要的特質。
l          第一個特質是每個服務 (Service)有一個明確的界限,其他的程式只能透過服務窗口要求服務。
l          第二個特質是獨立自主 (Autonomous),每個服務不必倚賴其他的系統,每個服務獨立佈署,並且管理多重版本,別的程式不能存取服務內部的功能與資料,例如傳進來的資料既不能修改,也不能退回。
l          第三個特質是共用 Data Schema 與資料規定 (Validation Contract),因為每個服務使用的內部資料格式不一定相同,所以不可以傳遞物件,而且資料必須符合規定,Text Format Data 是以前常用的方法,現在 XML 則是最佳選擇。
l          第四個特質是運用 PolicySOA 使用 policy 設計連接埠規定、資料規定、功能規定、安全規定等等,並且協調服務之間的互動流程。

簡單來說,SOA 使用 XML Web Services 為底層基礎,解決通訊協定與資料溝通的問題,而且包含安全、交易、商業流程整合等等功能,使SOA 成為最有彈性的系統整合方案。

留言

這個網誌中的熱門文章

MPS / MRP