官术网_书友最值得收藏!

1.1.6 服務是自治的

自治指的是對某一范圍的絕對控制權。服務的自治則指的是服務對其所包含邏輯的控制,即服務的邏輯必須被限定在某一個范圍之內,在這個范圍內該服務對其所包含的邏輯有絕對的控制權。其他的服務不能支配該服務所包含的邏輯,而只能通過定義好的服務合同與該服務進行交互。如圖1-2所示。

圖1-2 服務的自治

服務的自治性強調了服務對所包含邏輯的排他占有性,其他服務不能支配該邏輯,但是這并不排除其他的不屬于服務范疇的事物對該邏輯的訪問和支配。考慮企業的歷史遺留系統,在實現面向服務的架構的時候,根據需要,遺留系統的部分或全部功能被包裝為服務,這樣在服務這個層次上,服務是自治的,即其他服務不能支配該服務的邏輯,但是這并不排除這些遺留系統原有的客戶端對這些邏輯的訪問,只不過它們不屬于服務的范疇。所以服務的自治一般分為兩種,一種為服務級別的自治,即從服務的層次上看,服務是自治的。另一種為純粹的服務自治,新構建的服務一般為這種。此外也可以看出,服務級別的自治存在風險,因為服務不是唯一可以訪問邏輯的,這樣可能會導致沖突。在面向服務的架構中尤其要加以注意。企業的遺留系統是企業的資源和財富,在實施面向服務的架構時,不可能完全拋棄,所以把遺留系統包裝為服務其實是一種折中的方法,也是一把雙刃劍,在設計時要倍加注意。

在面向對象的方法中,對象之間的聯系緊密,實現自治比較困難。比如對象之間的繼承關系,使得子類可以直接訪問父類的屬性、入侵父類的領域,這樣導致自治難以實現。

服務的自治有很多優點。服務的自治使得每個服務都有一個其自身可以負責的范圍,在該范圍內服務有絕對的支配權。從而每個服務都有自己的范圍,互相不影響,服務之間的依賴性因此大大減少。如圖1-3所示。

圖1-3 服務的自治

主站蜘蛛池模板: 温宿县| 隆回县| 三门峡市| 万年县| 江华| 定安县| 沿河| 当涂县| 岳池县| 建水县| 唐山市| 济南市| 阿鲁科尔沁旗| 巴青县| 商南县| 旬阳县| 磴口县| 高唐县| 吉隆县| 乐业县| 长汀县| 五峰| 贺州市| 焦作市| 夏邑县| 利辛县| 太仆寺旗| 夏河县| 江永县| 利津县| 方正县| 丹东市| 巨野县| 府谷县| 双辽市| 萨嘎县| 桓台县| 衡东县| 化隆| 五莲县| 白玉县|