這種具有中立的介面定義(沒有強制繫結到特定的實現上)的特徵稱為服務之間的松耦合。松耦合系統的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程式的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。而另一方面,緊耦合意味著應用程式的不同元件之間的介面與其功能和結構是緊密相連的,因而當需要對部分或整個應用程式進行某種形式的更改時,它們就顯得非常脆弱。
對松耦合的系統的需要**於業務應用程式需要根據業務的需要變得更加靈活,以適應不斷變化的環境,比如經常改變的政策、業務級別、業務重點、合作夥伴關係、行業地位以及其他與業務有關的因素,這些因素甚至會影響業務的性質。我們稱能夠靈活地適應環境變化的業務為按需(on demand)業務,在按需業務中,一旦需要,就可以對完成或執行任務的方式進行必要的更改。
雖然面向服務的體系結構不是乙個新鮮事物,但它卻是更傳統的物件導向的模型的替代模型,物件導向的模型是緊耦合的,已經存在二十多年了。雖然基於 soa 的系統並不排除使用物件導向的設計來構建單個服務,但是其整體設計卻是面向服務的。由於它考慮到了系統內的物件,所以雖然 soa 是基於物件的,但是作為乙個整體,它卻不是物件導向的。不同之處在於介面本身。soa 系統原型的乙個典型例子是通用物件請求**體系結構(common object request broker architecture,corba),它已經出現很長時間了,其定義的概念與 soa 相似。
然而,現在的 soa 已經有所不同了,因為它依賴於一些更新的進展,這些進展是以可擴充套件標記語言(extensible markup language,xml)為基礎的。通過使用基於 xml 的語言(稱為 web 服務描述語言(web services definition language,wsdl))來描述介面,服務已經轉到更動態且更靈活的介面系統中,非以前 corba 中的介面描述語言(inte***ce definition language,idl)可比了。
web 服務並不是實現 soa 的惟一方式。前面剛講的 corba 是另一種方式,這樣就有了面向訊息的中介軟體(message-oriented middleware)系統,比如 ibm 的 mqseries。但是為了建立體系結構模型,您所需要的並不只是服務描述。您需要定義整個應用程式如何在服務之間執行其工作流。您尤其需要找到業務的操作和業務中所使用的軟體的操作之間的轉換點。因此,soa 應該能夠將業務的商業流程與它們的技術流程聯絡起來,並且對映這兩者之間的關係。例如,給**商付款的操作是商業流程,而更新您的零件資料庫,以包括進新**的貨物卻是技術流程。因而,工作流還可以在 soa 的設計中扮演重要的角色。
此外,動態業務的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作夥伴進行的操作。因此,為了提高效率,您需要定義應該如何得知服務之間的關係的策略,這種策略常常採用服務級協定和操作策略的形式。
最後,所有這些都必須處於乙個信任和可靠的環境之中,以同預期的一樣根據約定的條款來執行流程。因此,安全、信任和可靠的訊息傳遞應該在任何 soa 中都起著重要的作用。
我可以用面向服務的體系結構做什麼?
對 soa 的需要**於需要使業務 it 系統變得更加靈活,以適應業務中的改變。通過允許強定義的關係和依然靈活的特定實現,it 系統既可以利用現有系統的功能,又可以準備在以後做一些改變來滿足它們之間互動的需要。
改變和 soa 系統適應改變的能力是最重要的部分。對於開發人員來說,這樣的改變無論是在他們工作的範圍之內還是在他們工作的範圍之外都有可能發生,這取決於是否有改變需要知道介面是如何定義的以及它們相互之間如何進行互動。與開發人員不同的是,架構師的作用就是引起對 soa 模型大的改變。這種分工,就是讓開發人員集中精力於建立作為服務定義的功能單元,而讓架構師和建模人員集中精力於如何將這些單元適當地組織在一起,它已經有十多年的歷史了,通常用統一建模語言(universal modeling language,uml),並且描述成模型驅動的體系結構(model-driven architecture,mda)。
分布式計算概述
分布式系統 在 網 絡 計 算 平台 上 開 發 部 署 管 理 和 維 護 以 資 源 共 享 和 協 同 工 作 為 主 要 應 用 目 標 的 分 布 式 應 用 系 統。分布式系統的主要特徵 包含任意個數的系統程序和使用者程序 體系結構模組化,它由數目可變的多個處理部件組成 通過共享通訊結構...
分布式計算概述
分布式計算是一門電腦科學,主要研究物件是分布式系統。分布式系統是由若干通過網路互聯的計算機組成的軟硬體系統,且這些計算機互相配合以完成乙個共同的目標。分布式計算指在分布式系統上執行的計算。分布式計算是將乙個大型計算任務分成很多部分分別交給其他的計算機處 理,並將所有的計算結果合併為原問題的解決方案。...
分布式三 雲計算 分布式系統范型
雲計算是乙個新技術,同時也是乙個新概念,乙個新模式,而不是單純的指某項具體的應 用和標準。方便 按需 2.雲計算分類 1 按照是否公開發布服務分類 訪問物件 公有雲 所有客戶 私有雲 企業內部 混合雲 重點 2 按照服務模式,雲計算可以分為 iaas paas saas三種型別。iaas infra...