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

          面向服務(wù)的一般原則

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

          8.3. 面向服務(wù)的一般原則

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

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

          這個理論已經(jīng)被不同的開發(fā)平臺以不同的方式實現(xiàn)。例如,面向?qū)ο蟮木幊膛c基于組件的編程方法,通過使用對象、類和組件而實現(xiàn)了關(guān)注點分離。

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


          如前所述,沒有官方的面向服務(wù)原則。然而,卻有一些最常與面向服務(wù)關(guān)聯(lián)的原則。現(xiàn)將這些原則羅列如下,本節(jié)將做進(jìn)一步描述。

          l 服務(wù)可復(fù)用 不管是否存在即時復(fù)用的機會,服務(wù)被設(shè)計為支持潛在可復(fù)用。

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

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

          l 服務(wù)是底層邏輯的抽象 只有經(jīng)由服務(wù)契約所暴露的部分服務(wù)對于外部世界是可見的。契約之外所表達(dá)的底層邏輯是不可見的,且與服務(wù)請求者無關(guān)。

          l 服務(wù)是可組合的 服務(wù)可能組合其他服務(wù)。這允許表示不同粒度的邏輯,并促進(jìn)復(fù)用及抽象層的創(chuàng)建。

          l 服務(wù)是自治的 邏輯由服務(wù)所控制,并位于一個清晰的邊界內(nèi)。服務(wù)已經(jīng)在這個邊界內(nèi)被控制,并且不依賴于執(zhí)行其控制的其他服務(wù)。

          l 服務(wù)是無狀態(tài)的 服務(wù)應(yīng)當(dāng)不需要管理狀態(tài)信息,因此能夠其維持松耦合性。服務(wù)應(yīng)當(dāng)盡可能設(shè)計成無狀態(tài)的,即便這意味著要將狀態(tài)管理移至別處。

          l 服務(wù)是可發(fā)現(xiàn)的 服務(wù)應(yīng)當(dāng)允許其描述被發(fā)現(xiàn),并被人工和可能會利用其邏輯的服務(wù)請求者所理解。

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

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

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

          主站蜘蛛池模板: 麻江县| 新营市| 望江县| 绥中县| 宝兴县| 盐亭县| 古丈县| 剑阁县| 松溪县| 延吉市| 霍林郭勒市| 宜良县| 富宁县| 建德市| 墨江| 莒南县| 萝北县| 嘉峪关市| 平南县| 金秀| 仙居县| 新和县| 余姚市| 黎川县| 广安市| 曲阳县| 乡宁县| 获嘉县| 鱼台县| 灵川县| 英吉沙县| 赞皇县| 石楼县| 新竹县| 太谷县| 宽城| 竹溪县| 淮滨县| 东乌珠穆沁旗| 嘉祥县| 宝坻区|