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