介紹
在一篇名為《動態業務應用勢在必行(The Dynamic Business Applications Imperative)》的論文中,Forrester的進階分析師John R. Rymer指出了當今應用的一個致命缺陷:
當今應用迫使人們去尋找一種將孤立的資訊和功能組映射到他們任務和過程的方法,它們強迫IT人員花高額預算來跟蹤不斷變化的市場、策略、規章制度和業務模型。
在下一個5年內,IT的主要目標應該是發明新一代企業軟體,適應業務和業務工作,同時能隨業務演變而演變。
Forrester稱這個新生代為動態業務應用,強調了和業務過程及工作(為人而設計)的緊密配合,對業務變化的自適應(為變化而構建)。在這個階段,動態業務應用的需求比建立它們所需的設計實踐更清晰。工具都是現成的:面向服務架構(SOA)、業務過程管理(BPM)和商務規則領域中的先驅——包括獨立軟體開發商(ISV)——已經開始向我們展示了這種方法。現在就是開始這段旅程的時候。
在這篇由兩部分組成的文章中,我們會從架構和方法論的角度,採用曆史的觀點來看待這些動態業務應用(DBA)的發展。我們的目標是獲得一種能使應用容易適應業務變化和其他必要修改的構建方法。隨著企業在21世紀關注靈活性,DBA是使業務和IT在未來幾十年內成功的關鍵。
圖1. 靈活性和效率——21世紀企業的兩個主要驅動力
動態性對我們意味著什嗎?
在軟體工程領域,許多架構或產品都聲稱具有自適應性。在我們設法理解一個解決方案在適應變化方面究竟有多好之前,需要給系統是如何變化的——它們的動態性——下一個可靠的定義。
早期的物件導向方法論認識到[1]:為了使系統分析中立,它必須基於兩類現實世界的需求:
現實世界的實體 —— 收集現實世界實體的資訊和它們間的關係,有助於分析師開始以一種系統的、結構的、客觀觀點來看待需求,而非一種技術的、主觀的觀點
現實世界的事件 —— 系統行為只由改變現實世界實體狀態的事件的出現來驅動
在這樣的背景下,對於每一個被分析的系統,我們總能識別一個或多個最重要的實體。每個實體都又包含3個關聯元素:事件、狀態和生命週期。每個事件代表狀態中的一個變化,所有普通實體狀態的有序和代表了一個生命週期。但是,那些觸發狀態變化且是正常流程一部分的事件與那些觸發狀態變化但不是正常流程一部分的事件之間有明顯的差異。例如,當一個產品訂單被提交之後,一組可能發生的事件包括付費處理和訂單交付。當一個使用者變更訂單或當企業改變價格時,我們不能認為這些動作是正常流程的一部分,因此它們與實體(如訂單)的生命週期無關。核心實體執行個體的生命週期單獨定義了在正常操作中系統最有可能處理的東西。所有其他事件類型,如變化或中間步驟,被區別對待。
這個情境對很多工程師都不陌生:一個系統模型包含一個核心實體結構,該實體具有一組事件,這些事件組成了實體的生命週期。這個系統模型對分析師和設計者都很清晰且易於理解。建模工具,如有限狀態機器、實體關聯圖、實體狀態轉換圖和資料流圖,為了協助這種方法已經經過了快20年的完善。那些為複雜系統(如空客380或F-22,後者是世界上最進階的戰鬥機)服務、擁有數十億行代碼的軟體就是這樣被編寫出來的。使用物件流程圖(它是捕獲事件和狀態轉換的基本模型)虛擬化實體生命週期是這個模型的關鍵。在這個情況下,架構可以被認為是靜態,因為整個系統狀態在時間軸上的任意一點都是確定的。
圖2. 事件模型、狀態變化和生命週期是正常操作的核心
普通事件、狀態、生命週期間的關係,以及從其他事件類型中分出的普通事件是理解所建議的動態操作架構的基礎。正如James Martin 和James Odell很久以前在《物件導向分析設計》中所寫的,分析師、設計師和實現者都應該使用同一系統模型。分析師使用資料流圖思考,設計師使用結構圖思考,程式員使用Java和SQL思考。在資料流上下文中,分析師識別物件類型,並思考改變對象狀態的事件。終端使用者也理解這個相同的認識。他們也應該按照物件類型、事件、對象狀態的變化,以及觸發和控制事件的商務規則進行思考。Martin和Odell強調了物件流程圖對系統設計師的重要性:“事件模式適合按照事件、觸發器、條件和操作來描述過程。但是這種方式不適合描述大型複雜過程。一個系統領域常常太大或太複雜,無法表示成事件和觸發器。此外,可能只有一個進階別的認識才是必要的。這對戰略層級的規劃尤其正確。在這樣的情況下,一個物件流程圖是有用的。物件流程圖(OFD)與資料流圖(DFD)類似,因為它們描述了活動和其他活動間的介面。在DFD中,這個介面傳遞資料。在對象技術中,我們不再限於資料傳遞。相反,圖應該表示從一個活動傳遞到另一個活動的任何類型事物:不論它是報表、零組件、已完貨物、設計、服務、硬體、軟體——或資料。簡而言之,OFD指的就是被產生的對象,以及產生和交換它們的活動。”
為了捕獲與業務操作關聯的資訊流,商務分析師用價值流程圖(Value Stream Mapping)對OO方法論進行了補充。價值流程圖起源於豐田,與精益製造關係緊密。美國國家環境保護局將價值流程圖定義為“用來認識那些產生產品或交付服務的活動序列與資訊流程的精益過程映射方法。”此處的關鍵詞是“產品”和“服務”。它們顯現了合適的資訊流程在整個企業中扮演的統一角色。
把過程流圖和價值流程圖兩個概念結合在一起後,它產生了一個完全代表整個企業經營範圍、可被方便翻譯成OO(圖2)概念的架構基礎。