SOA 幫助企業信息系統遷移到"leave-and-layer"架構之上,這意味著在不用對現有的企業系統做修改的前提下,系統可對外提供 Web 服務接口,這是因為它們已經被可以提供 Web 服務接口的應用層做了一層封裝,所以在不用修改現有系統架構的情況下,SOA 可以將系統和應用迅速轉換為服務。SOA 不僅覆蓋來自于打包應用、定制應用和遺留系統中的信息,而且還覆蓋來自于如安全、內容管理、搜索等 IT 架構中的功能和數據。因為基于 SOA 的應用能很容易地從這些基礎服務架構中添加功能,所以基于SOA的應用能更快地應對市場變化,為使企業業務部門設計開發出新的功能應用。
與傳統的企業應用集成架構的主要區別在于該系統使用基于標準的服務,并包括過程/數據服務、編排和組合;跇藴实姆⻊粘闪藨瞄g的集成點。服務的編排和組合增加了服務的靈活性、重用性和集成性。
下表強調了分布式組件架構和 SOA 的區別:
表1:分布式服務與面向服務的架構比較
分布式組件架構 |
面向服務的架構 |
面向功能性 |
面向流程 |
設計目的是為了維持現狀 |
設計目的是為了適應變化 |
開發周期長 |
交互式和重用性開發 |
成本為中心 |
業務為中心 |
應用阻塞 |
服務協調 |
緊密耦合 |
敏捷的和可適應的 |
同構技術 |
異構技術 |
面向對象 |
面向消息 |
需深入了解實施細節 | 對實施細節進行概要抽象 |
與傳統方法相比,SOA具有以下更多優勢:基于標準、松散耦合、共享服務、粗粒度和聯合控制。
提供者在服務約定中以標準語言描述其服務,并向代理發布服務?蛻魪姆⻊沾硖帲ɑ虻怯浱帲┎樵兯璧姆⻊,并接收有關服務訪問的約定和信息。隨后,客戶或使用者便可綁定到服務,并可與提供者直接通信。
服務實現包含了服務的功能或業務邏輯。對于服務使用者來說,服務實現應該是一個"黑匣子";用戶沒必要知道服務的功能實現細節。 有五種類型的服務:
1. 數據訪問-允許對不同數據源進行統一訪問
2. 組件-提供對打包應用服務的訪問,如ERP
3. 業務-提供使用一個以上打包應用或定制應用功能的復雜服務
4. 組合-使用以上三種類型的服務來創建包括新功能和現有功能的新服務
5. 共享的或企業基礎架構服務?-?消息日志之類的低級服務,其重用性使快速創建新的高級服務成為可能
在SOA的架構下,不管是數據訪問、組件訪問還是業務訪問,都是對于服務的訪問,并可在此基礎上組合和共享。企業就此有了標準的服務規范和接口,計算環境變得簡單了。
BEA WebLogic,構建SOA的“服務倉庫”
企業基礎架構服務或共享服務為 SOA 增加了很大價值。共享服務由于自身的功能和位置特點,通常是在邏輯層實現的。這些特性由共享服務層實現,該層在邏輯上由幾個服務層組成。
讓我們再來看看部署及其后續工作:
部署
部署模型的選擇需要依賴于網絡架構,同時還取決于應用、運行和管理需要如何從邏輯和物理上進行分離。而以上這些通常是由企業的IT策略決定的。BEA提供了聯合部署或獨立部署的靈活性,因此可以選擇任意的部署模型來支持IT策略?梢园磳樱ū硎、集成、流程和數據)分離應用,也可以從經營和管理來分離應用。這樣可以實現最佳的控制和靈活性,但額外的硬件服務器和軟件許可也確實增加了成本。采用WSM產品增加了需要在同一服務器中部署的組件數量,或增加了所需管理的服務器數量。
運行、經營和管理(OA&M)
但是,SOA將開發和OA&M分離開來,這顯著減少了不同類型用戶所使用的接口數量。采用基于策略的計算模式,絕大部分控制交由OA&M人員來操作。這意味著他們可以采用WSM產品的用戶界面,而非WebLogic控制臺。
這樣在BEA的WebLogic框架之上,不斷地構筑業務需要的各種標準服務,實實在在地形成一個“服務倉庫”。按需服務,最終實現企業的商務自主!