SOA(Service-Oriented Architecture,面向服務的架構)是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)進行拆分,並經過這些服務之間定義良好的接口和契約聯繫起來。前端
SOA能夠知足企業軟件架構的須要,大大增長了企業對於IT系統更改的靈活性,它爲企業軟件架構的搭建定義了一種新方法,使得一些大企業或不在同一地區的開發團隊可以進行更有效率的合做,此外,SOA還能幫助企業處理系統升級方面的困難。web
要想實現SOA類型的架構設計,首先得明白SOA的架構模型,各部分的做用是什麼,什麼樣的設計才能對職責進行正確的劃分。圖1是一套由五個邏輯層組成的簡化版SOA模型。數據庫
圖1 基於SOA的管理信息系統體系結構示意圖瀏覽器
接下來對各層的功能進行分析:安全
一、表示層架構
爲企業內部用戶或企業服務客戶提供與系統交互的界面,例如web用戶界面。用戶與系統交互須要經過表示層的應用程序前端,而外界若要調用服務層的服務,也只能經過表示層。表示層中存在多種類型的應用程序前端,例如給用戶使用的操做界面。spa
二、數據庫層架構設計
包括企業底層的各類數據實體,例如業務合同、文檔備份等。設計
三、數據控制層blog
爲表示層提供服務接口,容許表示層的應用程序前端對系統內部的各類服務進行調用。
四、業務邏輯層
整個系統架構模型中最重要且最複雜的一層,包含了企業全部的業務邏輯和流程。主要有簡單業務服務與高級業務服務兩種服務。
五、數據訪問層
包含了對數據庫層的數據進行持久化操做的業務。
圖2 各層在SOA中扮演的角色
把全部服務實體集成,並在鬆耦合的約束下組合他們以造成複雜高級的業務邏輯是SOA最根本的目的。ESB(Enterprise Service Bus,企業服務總線)是基於SOA的企業信息系統模型中的一個抽象層,它把SOA的服務交互過程虛擬、統一化,並對該過程進行全程管理和監控。ESB的另外一個重要特徵是事件驅動,做爲SOA的信息傳輸主幹道,它爲SOA提供了一種靈活簡單的服務整合方法,下降了服務的耦合度和複雜度,是SOA在企業中成功實施的關鍵。
SOA被提出得比較早,但由於缺乏標準化的技術與方案規劃,因此一直沒有取代傳統的解決方案,近幾年web服務技術逐漸成熟,SOA概念才真正被應用於軟件開發,以此來爲企業信息化服務。
SOA的優點不少,總結以下:
①給企業提供一個更敏捷的系統。能從現有的服務中組合新的服務。經過對現有的組件和服務的重用來減小新軟件系統的開發週期,使企業能夠快速的開發新的業務服務。
②更好的重用企業現有的IT資產。SOA提供了一個能夠將現有的資產組合包裝成能提供企業新功能的服務的抽象層,企業能夠經過它來繼續在IT方面投資。
③減小開發成本、增長重用
④給整個系統提供更完善的集成。經過提供針對基於徹底不一樣的系統構建的現有資源和資產的服務規範,使集成更加易於管理。從而實現了真正意義上的集成:跨平臺和跨語言。
接下來給出一個以某公司爲例的SOA設計
公司原系統概況:本實例的公司是一家保險公司,總部在長春市,在吉林省有多家分支機構,在北京等地設有分公司。公司業務包含營業險等幾個主營險種,此外還約有100多個產品險種,200多個附加保險產品,客戶分佈面廣且數量大。公司在成立初購買了國內某著名軟件公司量身定作的信息管理系統,然而隨着公司的不斷髮展,國內保險行業和市場需求的不斷變化,該系統暴露出愈來愈多的缺點,更換新的系統迫在眉睫。
該公司信息系統主要存在如下幾方面的問題:①系統架構致使集成困難;②系統效率底下;③系統缺少敏捷性。
公司新系統需求以下:①較高的集成能力;②敏捷的快速部署能力;③具備較高的安全等級。
該公司基於SOA的信息系統架構設計
爲了減小二次開發對原系統產生的衝擊,面對SOA的新系統結構上並不與原有的系統衝突,這個項目的解決方案採用了多層結構的架構模型,以下圖
圖3 系統的N層架構
關鍵層功能設計
表示層。該層包含用戶界面應用程序,這些程序大多基於web客戶端,容許公司員工或者保險客戶經過web瀏覽器或其餘終端訪問。
應用程序與業務邏輯層。包含了服務實現的業務流程,組合和重用簡單業務服務和數據庫操做服務,由表示層訪問,經過表示層與域服務層的底層服務交互。
域服務層。包含了用於域的全部數據服務與基本業務服務,其主要目的是定義與和核心業務實體以及基本數據庫操做相關的功能。
參考文獻:基於SOA的企業信息系統架構設計__張卓