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