面向服務的一般原則
面向服務的一般原則---摘自《SOA概念、技術與設計》第八章
8.3.
面向服務的一般原則
在第
3章
中我們建立了不止一個
SOA
定義。也有不止一個掌控定義面向服務背后原則的標準體。同樣,對于面向服務的組成,也有許多源自公開的
IT
組織、廠商及咨詢機構觀點。
據稱面向服務的根源在于軟件工程理論所謂的“關注點分離”。這一理論基于這樣的觀念:將一個大的問題分解為一系列單個關注點是有益的。這使得邏輯將需要解決的問題分解成更小的、相關片段的集合。每一段邏輯處理一個特定的關注點。
這個理論已經被不同的開發平臺以不同的方式實現。例如,面向對象的編程與基于組件的編程方法,通過使用對象、類和組件而實現了關注點分離。
面向服務能夠被視作以截然不同的方式來實現關注點分離。面向服務原則提供了一個支持此理論的方法,同時實現了一種基本范式,在此基礎上可構建諸多當代 SOA 特征。實際上,如果你再次研究這些特征,將會注意到數個(直接或間接)與關注點分離理論有聯系。
如前所述,沒有官方的面向服務原則。然而,卻有一些最常與面向服務關聯的原則。現將這些原則羅列如下,本節將做進一步描述。
l
服務可復用
不管是否存在即時復用的機會,服務被設計為支持潛在可復用。
l
服務共享一個正式契約
為了與服務交互,只需要共享描述每個服務信息交換術語定義的正式契約。
l
服務是松散耦合的
服務被設計為無需緊密的、跨服務的依賴而交互。
l
服務是底層邏輯的抽象
只有經由服務契約所暴露的部分服務對于外部世界是可見的。契約之外所表達的底層邏輯是不可見的,且與服務請求者無關。
l
服務是可組合的
服務可能組合其他服務。這允許表示不同粒度的邏輯,并促進復用及抽象層的創建。
l
服務是自治的
邏輯由服務所控制,并位于一個清晰的邊界內。服務已經在這個邊界內被控制,并且不依賴于執行其控制的其他服務。
l
服務是無狀態的
服務應當不需要管理狀態信息,因此能夠其維持松耦合性。服務應當盡可能設計成無狀態的,即便這意味著要將狀態管理移至別處。
l
服務是可發現的
服務應當允許其描述被發現,并被人工和可能會利用其邏輯的服務請求者所理解。
在這八條原則中,自治性、松散耦合、抽象、以及需要正式契約被視為形成
SOA
根本基礎的核心原則。如同在本章后面面向服務原則內部如何關聯一節所解釋,這四個原則直接支持其他原則(及其相互之間)的實現。
posted on 2006-12-03 08:45 BPM 閱讀(284) 評論(0) 編輯 收藏 所屬分類: SOA