SOA架構設計

  SOA,它是一個面向服務的體系結構,是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)經過這些服務之間定義良好的接口和契約聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和編程語言,這使得構建在各類這樣的系統中的服務能夠以一種統一和通用的方式進行交互。它可以幫助軟件工程師們站在一個新的高度理解企業級架構中的各類組件的開發、部署形式,能幫助企業系統架構者以更迅速、更可靠、更具重用性架構整個業務系統。較之以往,以SOA架構的系統可以更加從容地面對業務的急劇變化。數據庫

  服務導向架構並非一種全新的解決方案;相反,SOA是技術與架構的天然進化。系統架構一直在不斷進步,與商業保持高度一致。系統設計師與商家很早就認識到將技術與商業流程相協調的重要性,包括充分應用併合理化技術資源,以及爲商業提供更好的支持。SOA也在必定程度上源於早已有之的企業架構理論。企業架構對技術進行評估,可是更重要的是,它關注整個企業和所有的商業流程並提供了作出技術決策的背景信息。SOA工具則融合了互聯網技術,如HTTP和XML,以及綜合技術,如消息總線、轉譯技術和鏈接技術。編程

  SOA的核心主體是服務,所謂服務,從業務角度而言,便是一個可重複的通過標準,服務就像一堆「元器件」,這些元器件經過封裝造成標準服務,他們有相同的接口和語義表達規則。但服務要組裝成一個流程和應用,還須要有效的「管理」,包括如何註冊服務、如何發現服務、如何包裝服務的安全性和可靠性,這些就是SOA治理。SOA治理乃是將SOA這一堆元器件,進行有效組裝,造成一個「產品」的關鍵,不然它永遠是一堆器件,而沒法造成一個有機總體。安全

  基於服務的應用系統的本質特徵是鬆耦合,以基本業務功能(服務封裝)爲系統的基本實現單元,而後經過服務編排(流程管理)來「組裝」業務應用系統。鬆耦合系統的好處有兩點,一點是它的靈活性,另外一點是,當組成整個應用程序的每一個服務的內部結構和實現逐漸地發生改變時,它可以繼續存在。相對於以往的應用系統,是面向技術組件,由系統程序實現業務流程,在複用、耦合方面都存在靈活性問題。架構

  SOA依賴於一些更新的進展,這些進展是以可擴展標記語言爲基礎的。經過使用基於XML的語言來描述接口,服務已經轉到更動態且更靈活的接口系統中。Web服務並非實現SOA的唯一方式。通用對象請求代理體系結構是另一種形式,這樣就有了面向消息的中間件系統,好比IBM的MQseries。可是爲了創建體系結構模型,所須要的並不僅是服務描述。須要定義整個應用程序如何在服務之間執行其工做流。尤爲須要找到業務的操做和業務中所使用的軟件的操做之間的轉換點。所以SOA應該可以將業務的商業流程與它們的技術流程聯繫起來,而且映射這二者之間的關係。例如,給供應商付款的操做是商業流程,而更新您的零件數據庫,以包括進新供應的貨物倒是技術流程。於是,工做流還能夠在SOA的設計中扮演重要的角色。全部的這些都必須處於一個信任和可靠的環境之中,以同預期的同樣根據約定的條款來執行流程。所以,安全、信任和可靠的消息傳遞應該在任何SOA中都起着重要的做用。編程語言

  SOA的實施具備幾個鮮明的基本特徵:可從企業外部訪問,隨時可用,粗粒度的服務接口分級,鬆散耦合,可重用的服務,服務接口設計管理,標準化的服務接口,支持各類消息模式,精肯定義的服務契約。這些基本特徵保證了SOA的有效實施,使SOA服務區別於其餘。SOA的出現給傳統的信息化產業帶來新的概念,再也不是各自獨立的架構形式,可以輕鬆的互相聯繫組合共享信息。可複用以往的信息化軟件。基於SOA的協同軟件提供了應用集成功能,可以將ERP、CRM、HR等異構系統的數據集成。鬆散耦合方式,只要充分了解業務的進程,就能夠不用編寫一行代碼,經過流程圖實現一套咱們本身的信息系統。就像已經給你準備好了磚瓦和水泥,只須要想好蓋什麼樣的房子就能夠輕鬆的蓋起。加快開發速度,而且減小了開發和維護的費用。軟件將全部的管理提煉成表單和流程,以記錄管理的內容,指定過程的流轉方向。更簡便的信息和數據集成。信息集成功能能夠將散落在廣域網和局域網上的文檔、目錄、網頁輕鬆集成,增強了信息的協同相關性。同時,複雜、成本高昂的數據集成,也變成了能夠簡單且低成本實現的參數設定。建立了徹底集成的信息化應用新領域。分佈式

  SOA架構具備三大特色:(1)系統集成:站在系統的角度,解決企業系統間的通訊問 題,把原先散亂、無規劃的系統間的網狀結構,梳理成規整、可治理的系統間星形結構,這一步每每須要引入一些產品,好比ESB、以及技術規範、服務管理規範;這一步解決的核心問題是有序。(2)系統的服務化:站在功能的角度,把業務邏輯抽象成可複用、可組裝的服務,經過服務的編排實現業務的快速再生,目的:把原先固有的業務功能轉變爲通用的業務服務,實現業務邏輯的快速複用;這一步解決的核心問題是複用。(3)業務的服務化:站在企業的角度,把企業職能抽象成可複用、可組裝的服務;把原先職能化的企業架構轉變爲服務化的企業架構,進一步提高企業的對外服務能力;「前面兩步都是從技術層面來解決系統調用、系統功能複用的問題」。第三步,則是以業務驅動把一個業務單元封裝成一項服務。這一步解決的核心問題是高效。工具

  SOA的目標在於讓IT系統變得更有彈性,以便更靈活、更快地響應不斷改變的企業業務需求,解決軟件領域一直以來存在的「如何重用軟件功能」問題。其5大基本特徵爲軟件功能重用提供瞭解決的辦法。①服務之間經過簡單、精肯定義的接口進行通訊,不涉及底層編程接口和通訊模型;②粗粒度性:粗粒度服務提供一項特定的業務功能,採用粗粒度服務接口的優勢在於使用者和服務層之間沒必要再進行屢次的往復,一次往復就足夠了;③鬆耦合性:鬆耦合性要求SOA架構中的不一樣服務之間應該保持一種鬆耦合 的關係,也就是應該保持一種相對獨立無依賴的關係。這樣的好處有兩點,首先是具備靈活性,其次當組成整個應用程序的服務內部結構和實現逐步地發生變化時,系統能夠繼續地獨立存在。而緊耦合意味着應用程序的不一樣組件之間的接口與其功能和結構是緊密相連的,於是當須要對部分或整個應用程序進行某種形式的更改時 這種結構就顯得很是脆弱;④位置透明性:位置透明性要求SOA系統中的全部服務對於其調用者來講都是位置透明的,也就是說,每一個服務的調用者只須要知道想要調用的是哪個服務,但並不須要知道所調用服務的物理位置在哪;⑤協議無關性:協議無關性要求每個服務均可以經過不一樣的協議來調用。spa

  爲了實現SOA,須要一個明確的服務架構,服務消費者能夠經過發送消息來調用服務。這些消息由一個服務總線轉換後發送給適當的服務實現。這種服務架構能夠提供一個業務規則引擎,該引擎允許業務規則被合併在一個服務裏或多個服務裏。這種架構也提供了一個服務管理基礎,用來管理服務,相似審覈,列表,日誌等功能。此外,該架構給企業提供了靈活的業務流程,更好地處理控制請求,例如Sarbanes Oxley,而且能夠在不影響其餘服務的狀況下更改某項服務。操作系統

  要運行管理SOA應用程序,企業須要SOA基礎,這是SOA平臺的一個部分。SOA基礎必須支持全部的相關標準,和須要的運行時容器。WSDL,UDDI和SOAP是SOA基礎的基礎部件。WSDL用來描述服務;UDDI用來註冊和查找服務;而SOAP,做爲傳輸層,用來在消費者和服務提供者之間傳送消息。SOAP是Web服務的默認機制,其餘的技術爲能夠服務實現其餘類型的綁定。一個消費者能夠在UDDI註冊表查找服務,取得服務的WSDL描述,而後經過SOAP來調用服務。設計

  在具體的功能實現上,SOA協同軟件所實現的功能包括了知識管理、流程管理、人事管理、客戶管理、項目管理、應用集成等,從部門角度看涉及了行政、後勤、營銷、物流、生產等。從應用思想上看,SOA協同軟件中的信息管理功能,全面兼顧了貫穿整個企業組織的信息化軟硬件投入。儘管各類IT技術能夠用於不一樣的用途,可是信息管理並無任意地將信息分爲結構化或者非結構化的部分,所以ERP等結構化管理系統並非信息化建設的所有;同時,信息管理也沒有將信息化解決方案劃分爲部門的視圖,所以僅僅以部分爲界限去構建軟件應用功能的思想未必是不可撼動的。基於SOA的協同軟件與 ERP、CRM等傳統應用軟件相比,關鍵的不一樣在於它能夠在合適的時間、合適的地點而且有正當理由向須要它提供服務的任何用戶提供服務。

  SOA的概念並不是什麼新東西,SOA不一樣於現有的分佈式技術之處在於大多數軟件商接受它並有能夠實現SOA的平臺或應用程序。SOA伴隨着無處不在的標準,爲企業的現有資產或投資帶來了更好的重用性。SOA可以在最新的和現有的應用之上建立應用;SOA可以使客戶或服務消費者免予服務實現的改變所帶來的影響;SOA可以升級單個服務或服務消費者而無需重寫整個應用,也無需保留已經再也不適用於新需求的現有系統。總而言之,SOA以藉助現有的應用來組合產生新服務的敏捷方式,提供給企業更好的靈活性來構建應用程序和業務流程。採用SOA來構建信息平臺,無疑是將來的發展方向。

相關文章
相關標籤/搜索