隨筆 - 19, 文章 - 93, 評論 - 17, 引用 - 0
          數據加載中……

          面向服務的一般原則

          面向服務的一般原則---摘自《SOA概念、技術與設計》第八章

          8.3. 面向服務的一般原則

          在第 3 中我們建立了不止一個 SOA 定義。也有不止一個掌控定義面向服務背后原則的標準體。同樣,對于面向服務的組成,也有許多源自公開的 IT 組織、廠商及咨詢機構觀點。

          據稱面向服務的根源在于軟件工程理論所謂的“關注點分離”。這一理論基于這樣的觀念:將一個大的問題分解為一系列單個關注點是有益的。這使得邏輯將需要解決的問題分解成更小的、相關片段的集合。每一段邏輯處理一個特定的關注點。

          這個理論已經被不同的開發平臺以不同的方式實現。例如,面向對象的編程與基于組件的編程方法,通過使用對象、類和組件而實現了關注點分離。

          面向服務能夠被視作以截然不同的方式來實現關注點分離。面向服務原則提供了一個支持此理論的方法,同時實現了一種基本范式,在此基礎上可構建諸多當代 SOA 特征。實際上,如果你再次研究這些特征,將會注意到數個(直接或間接)與關注點分離理論有聯系。


          如前所述,沒有官方的面向服務原則。然而,卻有一些最常與面向服務關聯的原則。現將這些原則羅列如下,本節將做進一步描述。

          l 服務可復用 不管是否存在即時復用的機會,服務被設計為支持潛在可復用。

          l 服務共享一個正式契約 為了與服務交互,只需要共享描述每個服務信息交換術語定義的正式契約。

          l 服務是松散耦合的 服務被設計為無需緊密的、跨服務的依賴而交互。

          l 服務是底層邏輯的抽象 只有經由服務契約所暴露的部分服務對于外部世界是可見的。契約之外所表達的底層邏輯是不可見的,且與服務請求者無關。

          l 服務是可組合的 服務可能組合其他服務。這允許表示不同粒度的邏輯,并促進復用及抽象層的創建。

          l 服務是自治的 邏輯由服務所控制,并位于一個清晰的邊界內。服務已經在這個邊界內被控制,并且不依賴于執行其控制的其他服務。

          l 服務是無狀態的 服務應當不需要管理狀態信息,因此能夠其維持松耦合性。服務應當盡可能設計成無狀態的,即便這意味著要將狀態管理移至別處。

          l 服務是可發現的 服務應當允許其描述被發現,并被人工和可能會利用其邏輯的服務請求者所理解。

          在這八條原則中,自治性、松散耦合、抽象、以及需要正式契約被視為形成 SOA 根本基礎的核心原則。如同在本章后面面向服務原則內部如何關聯一節所解釋,這四個原則直接支持其他原則(及其相互之間)的實現。

          還有其他與服務和面向服務相關的一般品質。示例包括自描述的和粗粒度的接口設計特征。我們更多地將這些作為服務的設計指導方針,并且因此在 15 作為設計指導方針的部分進行探討 .

          posted on 2006-12-03 08:45 BPM 閱讀(284) 評論(0)  編輯  收藏 所屬分類: SOA

          主站蜘蛛池模板: 平凉市| 五大连池市| 都兰县| 安阳县| 玉田县| 开远市| 安福县| 富平县| 临武县| 囊谦县| 山西省| 邢台县| 木兰县| 航空| 晋州市| 赞皇县| 桐梓县| 仙桃市| 孝感市| 苏尼特左旗| 五台县| 荔波县| 丰城市| 乌拉特前旗| 康平县| 洛南县| 郧西县| 富蕴县| 巴青县| 漠河县| 若尔盖县| 沙洋县| 新乐市| 常山县| 茶陵县| 榆社县| 河曲县| 太和县| 霞浦县| 临泉县| 章丘市|