一開始對SOA的擔心之一,是組織必須對整個企業進行變革才能實現有意義的SOA推廣。許多組織視之為非此即彼的命題。在許多情況下,這往往會導致失敗,因為組織并沒有嘗試大規模的采用,那樣會發生太多的變化,與此前的應用交付方式相比相差太大。
現在,組織意識到自己采用基于領域的方法可以實現更加成功的SOA部署。這允許組織以有意義的、成功的方式逐步推進SOA部署。
Thomas Erl,Arcitura Education Inc.的CEO,同時也是包括《SOA設計模式》在內的若干SOA相關書籍的作者。他說,SOA成功的關鍵在于選擇一個相關的領域,該領域能以可管理的方式貫穿公司的各個孤立部分。在識別相關領域、做出決策以及實現最相關和最有價值領域方面,資深的企業架構師能扮演主要角色。
Erl解釋說,“意識到基于領域我們能實現更加成功的SOA部署會導致在SOA實現方式上發生徹底變化。它允許SOA層層推進。允許我們識別在IT企業的什么部分能讓我們實現平衡。”
建立特定領域的詳細目錄
對于企業來說,建立一個企業服務詳細目錄是很困難的。如果做得糟糕,會危及整個SOA行動的成功。領域詳細目錄的想法是指服務可歸類進特定領域的詳細目錄,從而各自進行標準化、治理和管理。
Erl已經發現采用領域的主要原因跟業務服務之下的業務邏輯有關。每一個部門可能都有著不同的以業務文檔體現的業務邏輯和數據模型,這些形成了劃分邊界和建立不同領域的基礎。
為了讓這些領域有意義,服務必須貫穿各個相互孤立的部分,Erl說。在企業層建立領域也很重要,這樣它們才能由集中化的IT團隊管理。每一個領域都可以隨著組織向SOA轉變而逐步采用。
領域可以基于地理、自治區、不同的計算環境、業務單元或運營單元劃分。按業務線劃分領域對于擁有不同產品目錄的大型企業集團來說會比較有意義。另一方面,按照運營進行劃分,對于需要在銷售、客戶服務、質量控制和物流等運營部門之間劃分邊界時顯得比較有意義。
在基于領域來實現SOA時,形成的標準沒有必要在整個企業范圍內采用。每一個業務單元都可以利用業務部門常見的現有數據模型為特定業務流程建立服務,不同部門均可擁有和管理這樣的服務。采用好的邊界使每一個部門可以保持服務目錄的同步,從而令涉及的業務模型對其他領域產生的影響最小化。
階段設置
企業架構師需要在標準實施時扮演角色。這將改善特定SOA項目的成功采用,為更大范圍的SOA采用鋪平道路。Erl說,“如果SOA對于一個組織來說是個新事物的話,這種方法的風險很低,可以在開始更大范圍推廣前讓IT員工接觸到與SOA隨之而來的所有的實踐、技術、設計原則及模式。”
對于治理之類的事情來說這一點特別重要,因為那些事情需要IT團隊確保所要建構的元素可用于直接需求之上的服務。他們交付的是具有特定特征的服務,這些服務會成為他們要衡量和檢查的解決方案的一部分。他們需要能夠交付預期可作出改變的服務。
在這些邊界確定以后,企業架構師的最佳實踐是與業務部門經理一道定義與特定領域相關的數據模型,命名規范及規則。好的標準規范可改善服務構成的能力,同時還能減少溝通不同領域的需要。
對于企業架構師來說,與不同項目團隊協作也很重要,這樣才能確保有重復功能的服務在組織不是獨立地開發。
協調各部分
為不同的業務部門建立的服務之間也許會有不同,因為它們的標準化是各自進行的。每一個領域可能也要依賴不同的數據模型、技術或技術的不同版本。
如果建立企業級的標準不可行,那么就需要一些橋接機制來將貫穿領域邊界的服務整合到一起。這些情況下,你需要考慮能協調數據模型轉換、數據格式轉換及協議橋接等不同服務的設計模式。
采用跨領域的功能層設計模式有助于為不同業務部門開發的服務提供一個公共基礎設施。這一層處理領域之間的轉換,從而克服差異性問題。企業用它來維護以技術為中心的服務,組織的多個部門都需要它。
不同部門可利用這些模式,但是要想管理這些服務,他們必須有不同的治理方法。這可以讓這些服務得到跨領域的重用,從而使得每一個部門無需在自己的領域再建這些服務,而組織既可以采用基于領域的方法,永不會造成領域之間徹底相互隔絕。它還提高了跨領域的重用和標準化的可能性。在組織內重用這些服務還減少了開發時間。
提示問題
以下是尋求基于領域方法時需要考慮的一些問題:
·每個企業部門都是誰來管理這些服務的?
·地理邊界會不會對企業范圍內的部署造成問題?
·組織的不同部門是由不同IT部門支持的嗎?還是IT集中化管理的?
·特定業務部門對于SOA所能提供的敏捷性之類的需求是不是更大?
·不同的業務部門使用不相互兼容的數據模型嗎?
·不同部門的IT經理會不會放棄對項目開放方式的控制?
在企業內實施SOA在敏捷性和成本節省方面能為企業帶來顯著的長遠利益。然而,如果組織一下子試圖接管太多的東西,這些努力有可能就會失敗。找出在技術上、IT支持及政治障礙方面更容易實施的更小一點的領域,從最容易的地方著手是個好主意。這些項目的早期成功將有助于為在組織內實施范圍更廣的SOA項目做好準備。