SOA:BPM的最佳伴侶
2009-8-18 14:27:00 來源:網絡 編輯:56885 關注度:摘要:... ...
在上世紀九十年代,BPR(業務流程再造)的概念曾風靡一時。BPR的理念是通過摒棄過時的、低效的流程,從零開始設計與運用最優化的業務流程,達到在相對較短的時間內取得效益的最大化的目的。
其后各大企業和咨詢公司都對BPR寄予厚望、并嘗試使用BPR的理論對企業流程進行改造。不幸的是,大多數案例都以失敗告終。大家在慘痛的教訓中得出的教訓是,在現實世界中,真的想要完全摒棄原來的業務流程,設計一套完美的流程來進行執行,無論是對企業本身還是企業的員工,都不是那么容易的事情。更何況世界上本就沒有完美的流程,因為市場的需求總是在不斷變化和前進的。
在BPR的風潮過去一段時間后,一種新的概念-BPM(業務流程管理)應運而生。BPM與BPR之間的最大區別就在于:BPR是摒棄已存在的流程,從零開始;而BPM則是在原先已存在的流程上進行增量改變與優化,以達到提高流程效率的目的。
隨著IT在企業中發揮越來越大的作用,有一個問題無法避免地產生了。當管理部門為了達到快速適應市場需求變化或者追求更高效率的目的對流程進行優化時,我們的IT系統能否快速適應這種改變?
當業務人員在描述需求時一定會以業務的角度來進行闡述,然而當技術人員接收到該信息后會以技術的角度考慮如何實現。如圖2所示,這種思維方式的不對稱性看似不會帶來太大的問題, 然而如果仔細觀察,還是會發現一些有趣的現象。
技術人員在潛意識中,只會將他認為可能重復出現的代碼進行封裝,以備將來的重復使用,但技術人員常常不清楚哪些業務上的功能在將來可能會需要進行頻繁修改和重復使用。所以在實現企業的業務邏輯時,技術人員通常會使用面向過程的方法對現實業務進行描述。
如此一來,最常見的情況就是實現不同"詳細流程"的代碼常常會摻和在一起(如詳細流程1與詳細流程2)、共用一批內存變量。這就直接導致了實現不同流程的程序代碼不可分離和重組,這在技術上稱為"高耦合"。最終,在將來當企業希望改變流程的順序時,就不得不對代碼進行大量的重新編寫和調整;當希望在別的流程中希望使用另一個流程中已實現的詳細流程時,代碼卻無法順利地從原來的流程中進行分離。所以當企業的業務流程發生變化時,技術人員不得不花費極大的精力去進行維護和修改,這樣做不但增加了企業構建IT的成本,對原先程序功能的修改可能還會帶來許多無法控制的風險。
SOA的出現解決了上述問題。
SOA(面向服務架構)
提到SOA,大多數人首先會聯想到Web Service技術,甚至很很多人認為SOA就是將不同應用系統的功能以Web Service的方式部署出來,做到跨系統、跨平臺的調用,以此降低企業IT實現總體擁有成本的效果。而事實上,這些特點和益處都僅僅是Web Service這一特定技術所提供的,而非SOA最主要的目的和功效。
"服務"的意義非常廣泛,現實生活中的服務無處不在,那么SOA(面向服務架構)中的服務究竟指的是什么?SOA中的服務又如何能幫助企業的IT系統快速敏捷地應對業務流程的變化呢?
如果仔細觀察企業的運作,我們會發現其實企業的各個部門都在提供各式各樣的服務,財務部門提供與資金相關的服務,后勤部門提供物流、倉儲相關的服務。
由于BPM的理念是采用增量的方式優化流程,通常情況下業務流程的改變不會大幅度影響各個部門所提供的基礎服務的性質,而是通過重新組合這些基礎的業務服務,構建新的業務服務以及達到優化流程的效果。 BPM的這個特點給了我們一個很大的啟示:如果能夠運用企業的業務服務進行建模,然后再運用技術進行實現,那么這樣構建出的程序將非常地敏捷和高效。由于通過這種方式實現的程序功能的粒度粗細完全符合企業業務服務的粒度,當企業的流程發生變化時,IT系統可以運用重用已有系統功能的方式快速地適應變化。
所以,SOA中的服務指的企業各個部門所提供的業務服務。
所以當企業構建SOA時,首先要做的第一步就是對企業的業務服務進行建模,建模方式應該如圖3所示。首先按企業的業務流程自上而下的進行建模,然后根據已經完成建模的業務流程,自下而上地對企業的業務服務進行建模。只有用這種順序進行建模,才能保證最后得到的服務顆粒粗細能夠滿足企業流程變化的需要。
IDS Scheer ARIS建模工具的一大特色,就是可以將不同層面的模型聯系在一起,無論是業務流程與業務服務之間的、還是業務服務與技術服務之間的。如圖3所示,由于最終的技術服務是根據業務服務得出的,而業務服務又是根據企業的業務流程得出的,這三者之間最終形成了統一。對于企業業務流程的變化,IT系統可以運用重新組合已有技術服務的做法輕松應對。
BPM與SOA之間的關系非常巧妙。通過上文可以看出,運用SOA可以輕松靈活地應對BPM對流程進行的增量改變。反之,如果企業的IT實施了SOA架構,卻沒有使用BPM對流程進行管理,那么SOA架構的價值將大打折扣,所以BPM與SOA之間是一種相輔相成的關系。靈活地結合運用BPM與SOA,才能使企業的業務流程變得更加高效,企業IT架構變得更加敏捷。