關(guān)于業(yè)務(wù)流程管理(BPM)和面向服務(wù)架構(SOA)之間關(guān)系的討論熱鬧非凡。二者也是多年來(lái)的熱門(mén)話(huà)題,但是關(guān)于它們的討論通常都出現在互不相關(guān)的論壇上,討論它們的人通常也屬于不同的圈子。不過(guò)現在這種情況正在改變,因為這兩個(gè)概念以及相關(guān)技術(shù)的使用者和提供者正日漸將二者結合起來(lái)看待。
BPM陣營(yíng)通常聲稱(chēng),SOA對于實(shí)現BPM來(lái)說(shuō)不是必需的。只需部署一個(gè)BPM套件,就可以更快地實(shí)現目標而不會(huì )帶來(lái)多少復雜性。SOA陣營(yíng)則注重于如何從一般意義上解決企業(yè)IT的復雜性。該陣營(yíng)通常聲稱(chēng)BPM是SOA的一個(gè)特性,但是它是SOA解決方案的一部分,而不是一個(gè)單獨的東西。當SOA領(lǐng)域的人士談到BPM時(shí),該術(shù)語(yǔ)通常與服務(wù)編排或流程整合同義,而不強調對業(yè)務(wù)分析人員友好的建?;蛉藛T交互,而后者對BPM陣營(yíng)來(lái)說(shuō)非常重要。
為了澄清這些誤解,我認為有必要闡明BPM與SOA的不同本質(zhì):SOA是一種架構方法;BPM則是一組協(xié)調活動(dòng)。
因此,可以很容易地得到使用SOA或不使用SOA的BPM,反之亦然。我們來(lái)看看不同組合的優(yōu)點(diǎn)。
如果部署一個(gè)不使用SOA的BPM套件,則可以獲得快速創(chuàng )建、執行和監控/管理業(yè)務(wù)流程的能力。業(yè)務(wù)流程的模型可以由業(yè)務(wù)分析人員創(chuàng )建,但是其完整實(shí)現則需要與底層IT系統的集成(以及定義用戶(hù)如何與該流程交互,但是現在我們暫不考慮)。BPM套件(如BEA的AquaLogic BPM Suite)支持使用各種不同的技術(shù)(面向服務(wù)的或不是面向服務(wù)的)對應用程序和數據庫進(jìn)行輕松訪(fǎng)問(wèn)。實(shí)現由代碼和來(lái)自于并依賴(lài)于底層系統接口的元數據組成,因此,對底層數據庫和應用程序的任何更改都將導致對業(yè)務(wù)流程的更改。
如果組織和IT環(huán)境規模比較小,并且由同樣一組人來(lái)控制所有的系統(包括BPM套件)的話(huà),這是完全可以的。如果底層系統完全不更改的話(huà),這種方法同樣運行良好。
但是,如果BPM套件由一個(gè)小組部署,并消費來(lái)自另一個(gè)小組的系統的服務(wù),那么協(xié)調和管理每個(gè)小組中的更改的任務(wù)很快就會(huì )變得非常困難。這是SOA要解決的典型問(wèn)題,因此,SOA可以應用于BPM套件的部署,就像應用于其它地方一樣。
如果BPM作為SOA的一部分進(jìn)行部署,這意味著(zhù)當一個(gè)業(yè)務(wù)流程連接到底層系統時(shí),它連接到由企業(yè)服務(wù)總線(xiàn)所提供的代理服務(wù),這樣就隱藏了底層應用程序和數據庫的復雜性。這具有以下優(yōu)點(diǎn):
將業(yè)務(wù)流程連接到系統的過(guò)程會(huì )更簡(jiǎn)單,因為IT可以公開(kāi)更有用的接口,比如聚合的數據服務(wù)或使用標準協(xié)議而不是專(zhuān)有協(xié)議的服務(wù)。這減少了實(shí)現流程所需的IT工作量,并允許流程人員將精力集中于流程,而不是粘合流程與底層系統所需的技術(shù)。
它使得實(shí)現更為健壯,因為對底層IT系統的更改不必影響流程所使用的接口。
它在BPM套件之外提供了一個(gè)獨立的控制和管理層。這允許IT小組更好地管理他們所擁有和維護的服務(wù)的策略和資源。
SOA還支持從BPM套件中獲得對它所連接到的系統的更好可見(jiàn)度。IT小組可以在服務(wù)注冊庫中注冊服務(wù),流程開(kāi)發(fā)人員(甚至可能是業(yè)務(wù)分析師)可以在構建流程時(shí)瀏覽這樣的注冊庫。這確保了服務(wù)可以被正確地使用和重用,而且通常簡(jiǎn)化了業(yè)務(wù)流程,因為使用正確的服務(wù)可以將流程本身的復雜性降至最低。
無(wú)疑,這些優(yōu)點(diǎn)只有在IT基礎架構足夠復雜,并且/或者BPM項目達到一定的范圍和規模時(shí)才能顯現出來(lái)。因此,在很多情況下,應該首先開(kāi)發(fā)出BPM,而將SOA組件留待以后考慮。
最好的方法是一開(kāi)始就讓業(yè)務(wù)運作團隊和IT企業(yè)架構小組保持良好的對話(huà),并針對未來(lái)進(jìn)行規劃,同時(shí)支持戰術(shù)性執行。這就需要正確地組合產(chǎn)品。例如,BPM套件本身應該能夠提供豐富的連通性,以便無(wú)需全面應用完善的SOA來(lái)使得BPM運行,這一點(diǎn)非常重要。類(lèi)似地,BPM套件應該支持SOA,這樣BPM與SOA才不至于存在于獨立的豎井中,這也很重要。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1344345