SOA的依賴原則

2021-09-17 04:11:25 字數 1776 閱讀 6772

在去年的qcon上,ganesh prasad分享了他對soa的看法。今年早些時候,他在一篇文章裡對其中部分內容作了展開,闡述了在他是怎樣將soa

思想視作一種面向依賴

思想的:

\

\

soa是一門對系統之間的依賴進行分析和管理的科學,「管理依賴」意味著消除不必要的依賴,並將合規依賴轉變為易於理解的契約。

\

\

為了輔助說明自己的觀點,他給出了下面這幅圖:

\ ganesh表示:

\

\

在業務層,對依賴的聚焦迫使我們將流程合理化並進行精簡。業務流程需要能夠追溯到組織機構的願景(關於「烏托邦」的理念)、組織的任務(實現「烏托邦」的戰略)和為執行那些戰略所需的廣泛功能(產品管理、工程、市場、銷售等等)[……]在應用層,我們嘗試對操作進行分組。注意業務層已經將操作的執行時分組定義為流程,而在應用層,我們需要更加靜態地對其進行分組。哪些操作是一類的,哪些不是?這就是應用層需要考慮的依賴問題。然而,只有在下面的資訊層才能找到這些問題的答案,因為只有當操作共享同乙份資料模型的時候他們才是「一類的」。因此,資料模型可以分為兩組,分別是「外部」和「內部」。任何系統的「內部」資料模型又被稱作「領域資料模型」,它們將永遠不會對其他系統可見。與之相對應,系統的「外部」資料模型被稱為「介面資料模型」,它們永遠對外暴露並與其他系統分享。

\

\

最近,ganesh有機會將這些理念變為現實,並參照此方法**實際工作中的使用情況。對於每個失敗的場景,ganesh認為其罪魁禍首都可以歸咎於違反了乙個或多個依賴原則。因此,他堅信如果組織機構能夠遵循這些規則,那麼最終將能夠「實現soa」。當然,我們擁有多年以來

的許多其他

例子——關於soa的失敗和成功之處,以及相應的為了讓soa成功而遵循原則

與規則的嘗試。ganesh概括出的原則,可以根據操作的層次分為四類:

\ 業務層:

\ (1)可追蹤性——實行核心治理,「確保每件完成的事情都與組織機構的願景有關」。

\ (2)極簡主義——挑戰假設。

\ (3)領域洞察——理解業務的本性,「從基本原則重新構想業務」。

\ 應用層:

\ (4)內聚與耦合——「那些屬於一類的應該歸到一起,並且在不同系統間僅保留最小限度的聯絡。」

\ (5)實施與**——「共用領域資料模型和業務邏輯的操作組都會轉化為產品,而共用介面資料模型的都會轉化為服務。」

\ (6)變體與版本——「識別出每個邏輯操作的多重並行型別,建立一種方法來支援其邏輯和介面的不斷變更」。

\ 資訊(資料)層:

\ (7)內部與外部——「區分介面資料模型與領域資料模型」。

\ (8)內容與上下文——「將介面資料模型的核心資料元素與限定元素分離」。

\ (9)抽象與具體——「建立同時適用於內容和上下文元素的資料型別的層次結構」。

\ 技術層:

\ (10)**依賴——「在實現業務邏輯的過程中,避免在無關的元件之間引入新的依賴」。

\ (11)後期繫結——「推遲不可避免的依賴,直到最後責任點」。

\ (12)完成工作的合適工具——「使用最合適的機制來實現邏輯」。

\ 對用於soa的面向依賴思想的原則和理念,各位讀者怎麼看?它們是否已經對你曾經參與的某個soa專案產生了幫助?現在你是否會考慮使用它們,或是基於自己的經驗對其進行修訂?

\檢視英文原文:dependency principles for soa

SOA的依賴原則

在去年的qcon上,ganesh prasad分享了他對soa的看法。今年早些時候,他在一篇文章裡對其中部分內容作了展開,闡述了在他是怎樣將soa 思想視作一種面向依賴 思想的 u0026 xd n u0026 xd n soa是一門對系統之間的依賴進行分析和管理的科學,管理依賴 意味著消除不必要的...

SOA松耦合的依賴關係

1 什麼叫耦合 coupling 耦合是相互互動的系統彼此間的依賴。依賴分為真依賴 real dependency 和假依賴 artifical dependency 真依賴是系統從其他系統消費的特徵 feature 和服務的集合。真依賴總是存在,只要系統間存在互動,無法簡化。假依賴是系統為獲得其他...

依賴倒轉(依賴倒置)原則

1.抽象不應該依賴細節,細節應該依賴於抽象 介面,抽象類 2.針對介面程式設計,不要對實現程式設計。3.高層模組不依賴底層模組,兩者都應該依賴抽象。4.依賴倒置含義在於,相互之間不依賴,除了約定好的介面實現,大家都可以靈活自如,子類實現介面進行 策略工廠 實現,高層模組通過使用介面來實現 開閉依賴倒...