1996年,GartnerGroup最早提出SOA理念,現(xiàn)在已經(jīng)成為風(fēng)靡IT領(lǐng)域的一個(gè)重要概念。對(duì)于SOA這個(gè)概念,一般認(rèn)為SOA是一種創(chuàng)新的應(yīng)用架構(gòu),它著眼于日常的業(yè)務(wù)應(yīng)用,并將它們劃分為單獨(dú)的業(yè)務(wù)功能和流程,即所謂的服務(wù)。一項(xiàng)調(diào)查顯示,表示愿意在2010年之前使用或者正在使用SOA的企業(yè)占68%。在全球2000強(qiáng)里,已經(jīng)采用SOA的企業(yè)占到了74%。采用SOA進(jìn)行企業(yè)IT構(gòu)建,已經(jīng)成為了一種趨勢(shì)。服務(wù)間通過網(wǎng)絡(luò)彼此通信,進(jìn)行分布式組合、部署。
另外一種觀點(diǎn),將SOA看做一個(gè)組件模型,它將應(yīng)用程序的不同功能單元,通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它獨(dú)立于現(xiàn)實(shí)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。
可以看出,服務(wù)在SOA中的地位至關(guān)重要。服務(wù)是一個(gè)提供特定功能的軟件應(yīng)用。描述它的另一種方式是在流程中可重復(fù)使用的任務(wù)。W3C指出:“服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終結(jié)果。最終結(jié)果通常會(huì)使使用者的狀態(tài)發(fā)生變化,但也可能使提供者的狀態(tài)發(fā)生改變,或者雙方都產(chǎn)生變化”。
SOA架構(gòu)下,服務(wù)恰恰為流程的動(dòng)態(tài)化管理提供了條件與可能。
1、BPM在SOA中的角色
目前,人們對(duì)BPM和SOA持有兩大截然相反的觀點(diǎn)。
一種認(rèn)為,BPM和SOA是兩個(gè)相對(duì)的東西:一個(gè)是管理方法,是業(yè)務(wù)驅(qū)動(dòng)措施,一種是系統(tǒng)架構(gòu),是IT驅(qū)動(dòng)措施,兩者不可能相互兼容;另外一種觀點(diǎn)卻認(rèn)為SOA賦予BPM新的生命并幫助其實(shí)現(xiàn)靈活性。同時(shí),BPM也令SOA舊貌換新顏,將業(yè)務(wù)層面和IT層面緊密聯(lián)系在一起。現(xiàn)在,大量的事實(shí)傾向第二種觀點(diǎn),越來越多的中間件供應(yīng)商也將SOA和BPM產(chǎn)品聯(lián)合起來考慮。
IBM公司W(wǎng)ebSphere產(chǎn)品銷售部的經(jīng)理StephanieWilkinson認(rèn)為“BPM是SOA在業(yè)務(wù)方面的一個(gè)切入點(diǎn)。實(shí)現(xiàn)服務(wù)的重用是SOA的關(guān)鍵;而BPM則是對(duì)業(yè)務(wù)進(jìn)行管理,重點(diǎn)是對(duì)業(yè)務(wù)流程實(shí)現(xiàn)建模和監(jiān)控。要完成BPM的一些相關(guān)工作,需要基于一個(gè)靈活的IT架構(gòu),SOA就是一個(gè)不錯(cuò)的選擇,可以將服務(wù)和流程結(jié)合在一起。
ZapThink公司的高級(jí)分析師RonSchmelzer說“要想建立松耦合、復(fù)合的服務(wù)定向應(yīng)用,所有的供應(yīng)商都需要一個(gè)可靠的SOA解決方案,還要考慮其產(chǎn)品的業(yè)務(wù)流程方面。”他指出IBM和OracleandMicrosoft公司的產(chǎn)品可以提供SOA架構(gòu)下的流程管理方案。SonicSystems,F(xiàn)iorano和SOASoftware這樣的供應(yīng)商也可以勝任。甚至最近出臺(tái)的復(fù)合應(yīng)用供應(yīng)商如SEECSystems,WebifySolutions,Tenfold也在他們的SOA基礎(chǔ)設(shè)施中增加了BPM功能。
BPM在SOA架構(gòu)中扮演的角色。一個(gè)叫做“服務(wù)”的名詞作為銜接者,將BPM和SOA緊緊的聯(lián)系在了一起。
業(yè)務(wù)流程涉及一個(gè)或多個(gè)參與者、活動(dòng)、業(yè)務(wù)規(guī)則以及跨多游道的商業(yè)規(guī)則。服務(wù)作為一個(gè)細(xì)粒度對(duì)象將執(zhí)行一個(gè)非常特殊的功能。服務(wù)可以以獨(dú)立的方式脫離上下文,而業(yè)務(wù)流程在已經(jīng)定義好上下文的基礎(chǔ)上才能執(zhí)行。
服務(wù)是一個(gè)提供特定功能的軟件應(yīng)用。描述它的另外一種方式是,服務(wù)是在業(yè)務(wù)流程中可重復(fù)的任務(wù)。服務(wù)可以用公開的接口來描述,而與它們的實(shí)現(xiàn)方式無(wú)關(guān)。業(yè)務(wù)流程就是由許多這樣的所謂松散耦合的軟件服務(wù)組合而成。
業(yè)界有一個(gè)很形象的比喻,將傳統(tǒng)的IT開發(fā),僵化流程比作“雕版印刷”;將基于SOA架構(gòu)下的BPM比作“活字印刷”;“活字”就是服務(wù);“排版”就是業(yè)務(wù)流程的編排;“替換活字"就是服務(wù)的重用或業(yè)務(wù)規(guī)則的改寫。
2、基于SOA架構(gòu)下的BPM的優(yōu)勢(shì)
最近ForresterResearch的一份中間件軟件市場(chǎng)報(bào)告中指出:“如果企業(yè)中的系統(tǒng)已經(jīng)采用了SOA,那么業(yè)務(wù)部門會(huì)非常重視BPM項(xiàng)目,因?yàn)樗麄冋J(rèn)識(shí)到這些BPM項(xiàng)目很容易實(shí)施,并且將帶來巨大的經(jīng)濟(jì)利益”。IBM的BPM副總AngelDiaz表示:與SOA的結(jié)合增強(qiáng)了BPM的適應(yīng)能力。“你可以在沒有SOA的情況下單獨(dú)實(shí)施BPM,但是當(dāng)你開始使用基礎(chǔ)設(shè)施,并且通過ESB和服務(wù)做投資的時(shí)候,會(huì)發(fā)現(xiàn)基于SOA架構(gòu)下的BPM是多么的靈活”。
研究SOA和BPM的關(guān)系時(shí),首先我們應(yīng)該明確一點(diǎn):SOA是一種架構(gòu),而BPM是一組協(xié)調(diào)活動(dòng)。部署B(yǎng)PM,并不一定要基于SOA架構(gòu),以此可以快速的實(shí)現(xiàn)目標(biāo)。但由于SOA架構(gòu)下,具有易于集成、降低管理復(fù)雜性、消除信息孤島、增加重用和降低成本等特點(diǎn),在此結(jié)構(gòu)下實(shí)施BPM可以將其作用發(fā)揮的淋漓盡致。
在單獨(dú)部署B(yǎng)PM的情況下,流程可以被簡(jiǎn)單而快速的挖掘、設(shè)計(jì)、執(zhí)行、管理和維護(hù)、最優(yōu)化。而BPM的真正實(shí)現(xiàn),還必須與底層的IT系統(tǒng)相集成。在底層的IT系統(tǒng)完全不更改,并且業(yè)務(wù)人員和IT技術(shù)人員一起控制所有的系統(tǒng)的情況下,是否基于SOA架構(gòu),沒有太大的影響。圖2是BPM的單獨(dú)應(yīng)用。
當(dāng)BPM由一個(gè)小組來部署,消費(fèi)來自另外一個(gè)小組的系統(tǒng)的服務(wù),那么協(xié)調(diào)和管理每個(gè)小組中的更改的任務(wù)就會(huì)相當(dāng)困難;蛘吣硞(gè)組織的IT基礎(chǔ)架構(gòu)十分復(fù)雜,并且經(jīng)常需要改動(dòng),在這兩種情況下,就應(yīng)該基于SOA架構(gòu)柬實(shí)施BPM。因?yàn)楫?dāng)BPM部署或業(yè)務(wù)改變時(shí),業(yè)務(wù)人員會(huì)以他們的角度來闡釋需求,而IT技術(shù)人員要考慮去怎樣實(shí)現(xiàn)這些需求。技術(shù)人員會(huì)將他們認(rèn)為可能重復(fù)出現(xiàn)的業(yè)務(wù)進(jìn)行代碼的封裝,以各重用,但技術(shù)人員常常不清楚哪些業(yè)務(wù)上的功能在將來可能會(huì)需要進(jìn)行頻繁修改和重復(fù)使用。所以在實(shí)現(xiàn)企業(yè)的業(yè)務(wù)邏輯時(shí),技術(shù)人員通常會(huì)使用面向過程的方法對(duì)現(xiàn)實(shí)業(yè)務(wù)進(jìn)行描述。
如此一來,最常見的情況就是實(shí)現(xiàn)不同“詳細(xì)流程”代碼常常會(huì)摻和在一起、共用一批內(nèi)存變量。這就直接導(dǎo)致了實(shí)現(xiàn)不同流程的程序代碼不可分離和重組,這在技術(shù)上稱為“高耦合”。最終,當(dāng)企業(yè)希望改變流程的順序時(shí),就不得不對(duì)代碼進(jìn)行大量的重新編寫和調(diào)整:當(dāng)希望在別的流程中希望使用另一個(gè)流程中已實(shí)現(xiàn)的詳細(xì)流程時(shí),代碼卻無(wú)法順利地從原來的流程中進(jìn)行分離。所以當(dāng)企業(yè)的業(yè)務(wù)流程發(fā)生變化時(shí),技術(shù)人員不得不花費(fèi)極大的精力去進(jìn)行維護(hù)和修改,這樣做不但增加了企業(yè)構(gòu)建IT的成本,對(duì)原先程序功能的修改可能還會(huì)帶來許多無(wú)法控制的風(fēng)險(xiǎn)。
總結(jié)一下,基于SOA架構(gòu)下的BPM有如下優(yōu)勢(shì):
。1)屏蔽了底層應(yīng)用程序和數(shù)據(jù)庫(kù)的復(fù)雜性。當(dāng)BPM作為SOA的一部分進(jìn)行部署的時(shí)候,流程可以通過企業(yè)服務(wù)總線提供的代理服務(wù)來接入到底層的IT系統(tǒng)。
。2)業(yè)務(wù)流程連接到系統(tǒng)的過程會(huì)更簡(jiǎn)單。IT可以公開更有用的接口,例如使用聚合的數(shù)據(jù)服務(wù)或使用標(biāo)準(zhǔn)協(xié)議而不是專有協(xié)議的服務(wù)。這樣減少了實(shí)現(xiàn)流程所需的IT任務(wù)量,從而使流程人員將注意力更傾向于流程本身,而不是流程接入到底層IT系統(tǒng)所用的技術(shù)。
(3)BPM的實(shí)現(xiàn)更為健壯。因?yàn)榈讓拥腎T系統(tǒng)的變動(dòng)與更改都不會(huì)影響到流程所用的接口。
。4)簡(jiǎn)化了流程的本身。在SOA架構(gòu)下,服務(wù)被注冊(cè)在服務(wù)注冊(cè)中心,流程開發(fā)人員可以在構(gòu)建流程時(shí)瀏覽注冊(cè)中心,確保了與流程相關(guān)的服務(wù)可以被正確的使用和重用。這樣流程本身的復(fù)雜度將降至最低。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SOA:讓ERP業(yè)務(wù)流程管理更簡(jiǎn)單
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10820615439.html