面向服務開發的七項原則

2021-04-26 15:22:41 字數 1360 閱讀 4281

當今關於web服務(web services)

的描述主要是關於整合的。走出不景氣階段的企業都把降低整合成本作為乙個明顯的目標。運用公開的、基於標準的、鬆散藕合的web服務技術就給企業提供了乙個不是很昂貴的整合方法。然而,web服務不僅僅是使整合簡單化了,它們的用處更多。實際上,它們將注定要從根本上改變人們建立和使用軟體的方式。

為了擺脫老式的思考方式,軟體專家必須要了解web服務的技術,並且要了解web服務可以給我們帶來怎樣的前景。下面的面向服務開發的七項原則——它們是隨著老式思考方式轉變到新的思考方式而產生的——為你形成這種新層次的觀念提供了指南。

1. 動態的服務替代了靜態的元件

構建

乙個web服務不僅僅是像傳統的元件開發期望的那樣建立具有特殊功能的軟體。乙個web服務的web服務描述語言(wsdl)檔案動態地描述了web服務的功能。所以,開發人員只需要指出在**找到wsdl檔案,這樣呼叫web服務的軟體在執行時就可以找到對服務功能的描述。該原則要求在運用web服務的系統中顯示邏輯層同商業邏輯層和持久(persistence)邏輯層分離開。當開發人員構建乙個web服務時,他們可能不知道那個服務是如何被呼叫的、或者web服務使用者的使用者介面將是怎樣的。乙個web服務架構師不能將商業邏輯和顯示邏輯結合起來。

2. 服務呈現(exposure)和響應(reflection)替代了傳統的系統整合

當今的系統架構師根據系統級的需求來整合專案。架構師計畫各種元件應該如何整合。作為這種top-down方法的替代,面向服務的開發採用了一種bottom-up的方法。在任何系統結構形成前,系統中的每個元件都呈現成乙個web服務

。然後,每個服務(查詢乙個服務自己的功能)給外部系統提供它們訪問服務所需要的資訊。

在構建乙個系統時,web服務架構師首先考慮系統的需求,並進行服務裝配。在服務裝配過程中,架構師訪問服務的動態描述,它們只代表了實際的api的一部分。然後,架構師確定系統的結構,即使在執行前,單獨的元件及其介面並沒有被完全地描述。

3. 為廣泛的適用性編寫**替代了為可重用性編寫**

為可重用性編寫**是物件導向程式設計的乙個重要的特點。實際上,對開發人員來說,編寫可重用的**可能比為單獨用途的應用程式編寫**更具挑戰性。因此,靈活的軟體方法(如extreme programming(xp))就避開了可重用性。在xp中,如果外來的功能進入到**中,那麼開發人員就重新編寫、或重構(refactor)**,直到它盡可能地簡單。

雖然重構可以形成一些重用的方法,因為最終**滿足很多情況,但這種方法同傳統的為可重用性編寫的**不同,因為它的目的是建立靈活的和廣泛適用的**。重用性和廣泛適用性的**的區別是很小的,但它們卻是面向服務的開發過程的本質。最好的方法就是把面向服務開發的結構性原則同靈活的開發原則結合起來。

物件導向設計 三大特性 七項原則

class calculater if c if c if c 如果我再想加入 功能,則需要修改 calculate 方法,得修改源 class calculater class plus public calculater class subtrct public calculater class...

物件導向的七個原則

一,單一職責原則 類 它的定義是 乙個方法只做一件事,保證粒度 二,開閉原則 類 模組 函式等 對擴充套件開發,對修改封閉 三,黎克特制替換原則 引數 確保超類所具有的性質在子類中仍然能夠成立 四,依賴倒置原則 介面 面向介面程式設計,不是面向實現 五,介面隔離原則 介面 介面隔離原則英文全稱是in...

面向服務架構(SOA)的原則

web service已經不再是新婚的娘子。眾多企業都已經建立各種實驗性web services 專案,事實證明,這項新興的分布式計算技術確實能夠降低整合和開發的成本。另外,一些關鍵的web services標準紛紛制定,強安全 robust security 和管理方面的產品也陸續問世。對於志向遠...