堯舜時代,洪水泛濫,肆虐生靈。大禹之父“鯀”奉命治水,以“堙”相擋,九年無功,終被賜死,一朝身殉。大禹繼父志,立宏愿,決心根治水患,造福黎民,為求治水良方,不辭千里跋涉,尋至涂山。終以一片堅貞,從涂山酋長蒙處得到秘藏之《水經圖》。 十三年治水,胼手胝足,披棘斬荊,亮節感人,終成大業?!渡袝防镉涊d了禹對自己治水的總結:“洪水滔天,浩浩懷山襄陵,下民昏墊。予乘四載,隨山刊木,暨益奏庶鮮食。予決九川距四海,浚賦治距川。暨稷播,奏庶艱食鮮食。懋遷有無化居。蒸民乃粒,萬邦作乂?!?
鯀雖然也是能力很強的領導者,但是治水時沿用了傳統的“堙”的方法,這種方法應對小的水患很有效,也是一直以來治水的思路,但是面對席卷九州的大洪水,“堙”的方法就顯示出其弱點--要建造一系列徹底攔住如此洶涌的洪水的堤壩在當時條件下是不現實的,所以鯀的方法就已經決定了他的失敗。禹開始就在方法層面下功夫,研究了父親失敗的原因,在“堙”的基礎上創新出“導”的治水方法,可以基于當時的條件徹底根治水患,再加上堅強的意志和持續的努力,終于獲得了治水的成功。
今天,企業面對的IT環境日益復雜,壓力也越來越大,在這種情況下SOA(Service Oriented Architecture,面向服務的架構)耀世而出,SOA作為一種全新的服務理念,給企業帶來了希望,它將彼此分離的IT和核心業務融合為一體,已經逐步成為企業信息化的主流發展方向。但當SOA步入實戰階段,人們開始探討SOA的實現過程的時候,卻發現傳統的開發理念成為瓶頸,希望通過傳統的設計方法實現企業SOA存在多重難以跨越的鴻溝,要讓SOA真正為企業所用,就必須在“堙”的基礎上尋找新的實現方法--“導”,這也就是我們要討論的“SOAD”。
SOA催生出的SOAD
SOA導引企業信息化方向
SOA是一個基于特定標準的組織和設計方法,SOA在傳統的業務層和技術層之間增加了一個服務層,通過連接能完成特定服務的獨立功能實體來實現軟件系統架構。它將業務層和技術層之間的信息有效地進行溝通,讓企業應用層可以徹底擺脫技術的束縛。將注意力放在服務上,使得應用程序能夠集中起來提供更加豐富、更加靈活、目的性更強的商業流程,使得基于SOA的企業應用系統能夠更加真實地反映出與業務模型的結合。
SOA 是一種新興的企業結構形式,可以用于設計下一代企業應用程序。迅速發現新的商機、及時預警商業威脅是現代企業的成敗關鍵,SOA 體系結構形式正是針對這一需求,旨在提供更加靈活的企業業務解決方案,這些業務解決方案可以按需擴展、隨需改變。SOA 解決方案由可重用的服務組成,帶有定義良好且符合標準的成熟接口系統。SOA 提供了一種機制,通過這種機制,可以集成現有的各種應用程序,不論它們采用哪種平臺或語言。SOA的實質就是促進IT與業務的融合,為核心業務提供端到端的服務,并且已經成為現階段企業信息化的方向所在。
SOAD--SOA的內生基因
面向服務的體系結構(SOA)和 Web 服務的基本觀念已經相當普及,并可看作是適于設計現代企業應用程序的體系結構形式。在這種背景下,“什么樣的服務才是好的服務”這個基本問題就成為確保成功實現 SOA 的關鍵。
從概念上講,SOA 中有三個主要的抽象級別:操作、服務和業務流程,在 SOA 術語中,業務流程包括依據一組業務規則按照有序序列執行的一系列操作。操作的排序、選擇和執行稱為服務或流程編排。典型的情況是調用已編排好的服務來響應業務事件。從建模的觀點來看,由此帶來的挑戰是如何描述設計良好的操作、服務和流程的抽象特征,以及如何系統地構造它們,此時,我們需要結構化方法或分析設計方法來設計高質量的SOA,但是現有的方法中沒有一種能夠滿足程序設計人員對最新的 SOA 項目的要求,所以產生了將現已經形成的良好實踐中的原理組合起來,并且應用從需要中創新的原理來對其加以補充,這個關鍵方法就是SOAD。
SOAD把已有的設計、分析方法中的原理與許多獨特的新原理組合起來,這樣得到的交叉學科OOAD 方法使成功地進行 SOA 開發更容易,我們稱之為面向服務的分析與設計(Service-Oriented Analysis and Design,SOAD)。SOAD 需要滿足下列需求:
SOAD 活動還必須回答這樣的問題:什么不是好的服務?例如:不可重用的任何東西都不可能成為好的一流 SOA服務。另一個例子就是帶有挑戰性的非功能要求的嵌入式實時系統,它們不能承受任何 XML 處理開銷。必須易于進行端到端建模,并且有全面的工具支持。
集大成的SOAD
傳統的開發理念無力支撐SOA的構建
最初的面向服務的體系結構(Service-Oriented Architecture,SOA) 的實踐經驗表明,諸如面向對象的分析與設計(Object-Oriented Analysis and Design,OOAD)、企業體系結構框架(Enterprise Architecture,EA)和業務流程建模(Business Process Modeling,BPM)這樣的現有開發流程和表示法,對于目前出現在 SOA 中的體系結構模式來說,僅僅能夠滿足一部分要求。
OOAD為具體功能模塊的開發給出了精細的描述,卻脫離了宏觀的業務構架。 OOAD 方法在定義 SOA 方面提供了非常好的起點。雖然許多年來在體系結構層次中應用 OOAD 技術和統一建模語言(Unified Modeling Language,UML)表示法是一個常見的做法,但是 OOAD 還是與像“類”和“單獨的對象實例”這樣的微觀層次的抽象有關。由于每個問題域常常都創建單獨的用況模型,因此,應用程序開發項目中企業的大方向在許多情況下變得模糊。此外,由于種種原因,用況模型并不總是與其對等的 BPM 保持同步。
EA根本就不能讓表示技術設備的低級構塊在宏觀層次上互聯。 諸如 Treasury 企業體系結構框架(Treasury Enterprise Architecture Framework,TEAF)、 面向特征的領域分析(Feature-Oriented Domain Analysis,FODA)和 Zachman這樣的 EA 方法都將城市規劃級的觀點加在解決方案體系結構之上,但是并沒有解決如何找到易于重用、且具有持久性的高質量企業抽象模型的問題。
BPM對繁瑣的業務流程進行了合理的抽象,卻沒有給出從IT上來實施的合理途徑。 雖然 BPM 方法(如 BPMI)在功能工作單元之上提供了端到端視圖,但是它們通常都沒有觸及體系結構和實現領域。例如,在像用于 Web 服務的業務流程執行語言(Business Process Execution Language for Web Services,BPEL)這樣的語言出現之前,BPM 表示法缺少操作語義。此外,我們還看到了許多流程建模與開發活動彼此分離的情況。
現有的規則中沒有一個可以解決如何為 SOA 啟用現有的應用程序的問題,大部分情況都采用自頂向下流程?,F有的系統通常都存放有大量的重要數據和業務邏輯,并且不能簡單地加以替代。概而言之,傳統的開發理念只涵蓋了支持目前出現在 SOA 中的體系結構模式所需的部分要求,而對于變化的需求卻無所適從。
圖表 1 BPM、EA 和 OOAD 的位置
SOAD:對傳統的融合與發揚
SOAD把已有設計、分析方法中的原理與許多獨特的新原理組合起來,這包括前述的EA、BPM和OOAD,吸取每種方法的優點,并加以有機的組合,創造出一種全新的方法。將企業應用程序和 IT 基礎設施發展成 SOA 可能是一個大的負擔,會影響多個業務線和組織單元。因此,需要應用 EA 框架和參考體系結構(如開放組織體系結構框架(The Open Group Architecture Framework,TOGAF))以及 Zachman,以努力實現單獨的解決方案之間體系結構的一致性。
然而,要利用所有現存的 BPM 方法作為 SOAD 的起點,還必須使用流程模型中用于驅動候選服務和它們的操作的附加技術來對其加以補充。此外,SOAD 中的流程建模必須與設計層用況建模保持同步,并且必須給出與 BPEL 有關的問題的答案。
OO 分析是一種非常強大且廣受贊譽的方法,同樣,SOAD 應該盡可能多地利用 OO 分析技術。要將 OO 分析成功地應用于 SOA 項目,開發者就必須一次分析多個系統。用況模型必須繼續扮演重要的角色。然而,SOAD是受業務流程驅動的,而不是用戶驅動的,因此,SOAD 需要 BPM 和用況建?;顒又g的強鏈接。
圖表 2 SOAD 及其組成部分:OOAD、BPM 和 EA
整合了所有這些方法的優勢,成就了SOAD的非凡血統,也為SOA的構建帶來了高成功率和新的生機。
在路上的SOAD
SOAD融合了各種傳統開發理念,使其優勢互補。此外,它按照面向服務(Service-Oriented)范式來完善開發工藝,從而在IT基礎架構搭建階段就植入了SOA的基因,使SOA的開發流程更加可控,提高開發的成功率。今天,SOAD仍然處于快速發展的道路上,眾多卓越的商業公司和優秀的技術人才的加盟,使得SOAD的未來充滿期待。
Rational:SOAD的最佳演繹者
全生命周期的開發管理、統一建模、清晰的角色定位……這讓Rational成為SOAD工藝的最佳演繹者。自2003年年底加入IBM軟件的大家庭以來,IBM Rational在吸收IBM軟件以整合為導向的先進理念、集成IBM軟件其它四大品牌(DB2、WebSphere、Tivoli和Lotus)的部分工具,并發揮其自身在軟件開發領域的技術優勢的基礎上,推出一套功能全面、管理科學的軟件開發工具--IBM Rational軟件開發平臺(IBM Rational Software Development Platform,SDP)。
應該說IBM Rational SDP提供的不只是一種開發工具,更重要的是它帶來了一種全新的軟件理念:將科學的管理思想融會于工具之中,倡導高品質的軟件工藝。在這種背景下,人們先前所奢望的一切場景都得以輕松實現。
并行開發如履平地,迎合軟件企業跨地域發展趨勢,IBM Rational SDP將不同區域的人們帶到同一開發平臺上來,并行地完成同一項開發任務。大規模作業井然有序,在應用范圍不斷擴張的趨勢下,軟件架構的復雜性也越來越強,成千上萬人協同完成一個任務已屢見不鮮,這在IBM Rational SDP中一切井然有序。質量始終在掌控中,周全、嚴密、自動化的質量控制,使IBM Rational SDP緊握軟件質量的命脈。
正如大禹創新出“導”的治水方法,SOAD為企業SOA的實現提供了一種全新的方法論,搭建了業務和 IT 之間的橋梁,全面支持 SOA 項目的分析和設計階段,以現有的經過實踐檢驗的 OOAD、EA、和 BPM 為基礎建立了創新的交叉學科的方法,規劃了一個整體的建模規則。SOAD還需要對現有的軟件開發方法不斷完善和提升,進一步提高企業應用程序開發項目的可用性和適用性,隨著時間的推移,還將發展相關的最佳實踐,并逐步走向成熟,馴服奔流在企業中的信息狂潮,讓“水患”變為“水利”。
(責任編輯:銘銘 mingming_ky@126.com TEL:(010)68476636)