引:廣義上講,SOA方法學貫穿于IT生命周期的各個階段和各個方面:IT系統項目的規劃,系統分析和設計,系統的實施,系統的部署和維護,以及整個過程中的監控和管理等。從實踐的角度說,已經出現如下SOA方法學。
廣義上講,SOA方法學貫穿于IT生命周期的各個階段和各個方面:IT系統項目的規劃,系統分析和設計,系統的實施,系統的部署和維護,以及整個過程中的監控和管理等。從實踐的角度說,已經出現如下SOA方法學。
(1)面向服務的分析和設計(SOAD)。以服務為中心,根據業務需求發現服務、描述服務,并設計服務的實現。
(2)面向服務的開發過程。結合現有開發過程,規劃以服務為中心的開發過程中的角色、職責、活動和工件。
(3)SOA的成熟度分析和遷移路線圖。以服務為中心,分析現有或目標系統的成熟度,并設計從現有成熟度遷移到目標成熟度的路線圖。
(4)SOA監管。設計組織和流程,確保SOA的設計原則在IT生命周期中得以貫徹,管理服務生命周期中的各種遷移的合理性等。
本文對SOA方法學的闡述主要集中在面向服務的分析和設計。首先介紹SOA方法學和主要的幾種方法學的區別和聯系,其次以IBM的SOMA
(Service Oriented Modeling and
Architecture,面向服務的建模與架構)為例,介紹SOA分析和設計中的主要內容和方法。
1、SOA方法學和其他方法學的比較
與SOA的設計原則類似,SOA方法學并不是全新的方法學,它是現有方法學的繼承和發展。一方面,原有的方法學并不能解決由于服務概念的引入帶
來的問題,如怎樣發現服務,怎樣定義服務;另一方面,服務是一個水平的概念,而不是一個垂直的概念,在服務分析和設計的過程中,需要處理服務和現有方法學
產物的關系,如業務流程和服務,企業架構和SOA,服務和對象等。因此服務的分析和設計最主要的職責在于發現服務、定義服務和實現服務,并指導如何和其他
方法學結合完成這些職責。
如圖4-1所示揭示了現有幾種方法學的定位。圖的橫坐標將項目周期分為分析、設計和開發三個階段,縱坐標將域分為應用、架構和業務。流程建模
(BPM)用于業務領域的分析和設計,如業務流程的定義、業務數據的定義等;企業架構(EA)和方案架構(SA)側重在架構領域的分析和設計,如根據業務
需求確定目前目標業務系統和IT系統,根據目標系統需求設計主要架構元素和它們之間的關系;面向對象的分析和設計(OOAD)則貫穿分析、設計和開發三個
階段,它主要分析細粒度的業務需求,如用例,分析和設計實現這些需求的類和對象,以及它們之間的關系。
圖4-1 傳統的方法學

如圖4-2所示,面向服務的分析和設計貫穿項目周期的三個階段和IT系統的三個域。這暗示著,在操作層面上,面向服務的分析和設計會和其他方法學緊密相聯。
圖4-2 SOA和傳統的方法學

1.BPM和SOA
業務流程建模是一個相當零散的領域,存在各種各樣的方法和技術,有效的方法可以幫助企業對業務進行合理的劃分,從而求得業務層面的靈活性。有些
方法則側重于流程建模本身,例如如何確定和定義業務流程中的業務活動、業務數據、業務規則、業務指標和業務事件等,但是BPM并不會幫助我們去發現和定義
服務。從SOA的方法學來看,各種BPM的結果是面向服務的分析和設計的重要輸入,如業務組件、業務流程和業務目標是服務發現的重要依據,而業務指標、業
務數據、業務規則等是服務暴露的分析的重要依據。
2.EA和SOA
盡管和BPM一樣,EA是一個零散的領域,但是當前的EA主要側重于定義跨越業務單元邊界的系統框架,企業范圍內系統的主要構成元素,這些元素
間的關系,以及將這些元素有機組合在一起的參考架構。但是,各種EA技術都缺乏業務領域的藍圖指導企業架構的設計。從SOA方法學來看,一方面,面向服務
的分析和設計通過和BPM結合將業務分解為各種類型的服務,可以作為企業業務的藍圖指導企業架構的設計;另一方面,企業架構設計的結果,如參考架構,又是
服務實現的重要依據。
3.OOAD和SOA
面向對象的分析和設計告訴我們使用Use Case捕獲需求,并設計類、對象及對象間交互來滿足Use
Case定義的需求。但是面向對象的分析和設計往往只是局限在單個應用內部,它不會缺乏業務藍圖和企業架構藍圖的指導。從SOA方法學看,在原理層面上,
OOAD中的很多設計原則,如抽象、隔離關注等被SOA繼承和發揚,并應用于服務的定義和實現中。而在操作層面上,服務模型為OOAD進行類和對象設計提
供了業務藍圖和企業架構藍圖,與此同時,Use Case作為對業務流程的補充說明被用于服務的發現和定義中。