解讀業(yè)務(wù)流程管理
■ 博文 編譯
利用業(yè)務(wù)流程管理(BPM)系統,我們可以把業(yè)務(wù)邏輯從應用系統中分離出來(lái),從而讓我們能比以前更快速地創(chuàng )建新的應用。 聽(tīng)起來(lái),BPM(Business Process Management,業(yè)務(wù)流程管理)軟件的好處很多,簡(jiǎn)直有些難以置信。比如,支持者說(shuō)BPM能降低應用軟件的開(kāi)發(fā)成本、縮短上市時(shí)間、加強法規遵從的貫徹力度、實(shí)現業(yè)務(wù)流程性能的最優(yōu)化。 當然,BPM軟件本身并不能改善任何東西,但是與關(guān)注業(yè)務(wù)流程的文檔和流程分析結合以后,BPM就會(huì )成為企業(yè)改善業(yè)務(wù)效率的利器。在BPM提供的高級開(kāi)發(fā)環(huán)境中,它采用流程驅動(dòng)的模型和性能評估來(lái)實(shí)現IT解決方案的開(kāi)發(fā)。 從低層次上說(shuō),BPM提供了一種業(yè)務(wù)人員與IT交流需求的平臺。而從更高的層次來(lái)講,BPM能幫助我們從現存的應用中提取出功能模塊,從而把業(yè)務(wù)邏輯從它所在的軟件系統中分離出來(lái),這就給我們帶來(lái)了前所未有的靈活性。 但是,有一個(gè)問(wèn)題一直困擾著(zhù)BPM的應用,就是BPM軟件有太多的變種,似乎只有很少的幾個(gè)咨詢(xún)顧問(wèn)才真正知道,到底哪個(gè)解決方案能解決自己的問(wèn)題。 不過(guò),現在由于BPM軟件包中集成了各種工具和運行時(shí)所需要的組件,以及能進(jìn)行業(yè)務(wù)流程仿真的軟件,這個(gè)問(wèn)題正在逐漸變得清晰起來(lái)。使用BPM軟件包中的這些工具和組件,用戶(hù)可以建立業(yè)務(wù)模型、部署和監控BPM系統,而不用零零碎碎地從多個(gè)的供應商把它們采購回來(lái),再一一安裝和部署它們。 如果使用恰當,BPM有助于解決應用系統內部基本的業(yè)務(wù)活動(dòng)難以修改的問(wèn)題,特別是在過(guò)去的那些業(yè)務(wù)軟件系統中,這個(gè)問(wèn)題尤為突出。與之相對的是,BPM軟件可以讓IT部門(mén)通過(guò)修改與這些業(yè)務(wù)活動(dòng)相關(guān)聯(lián)的流程邏輯來(lái)優(yōu)化業(yè)務(wù)效率。在BPM中,流程的設計就像畫(huà)流程圖,那些必要的執行方面的細節用注釋來(lái)注明。整個(gè)過(guò)程幾乎不用編碼,而且流程邏輯非常容易修改,所以,BPM可以算得上一種靈活的應用開(kāi)發(fā)工具。 流程的建模 BPM的使用從流程的建模開(kāi)始。這個(gè)階段要把當前的流程和未來(lái)的流程詳細地列出來(lái),并一一確定各個(gè)流程的性能指標(這些指標將來(lái)進(jìn)行流程的仿真模擬時(shí)需要)。這是一個(gè)業(yè)務(wù)驅動(dòng)的過(guò)程。 BPM軟件包中的流程設計器是一個(gè)圖形化的開(kāi)發(fā)工具,它能夠把流程模型和有關(guān)的人力活動(dòng)流、應用和業(yè)務(wù)規則整合到一起,生成一個(gè)可執行的流程。上述流程模型經(jīng)過(guò)這個(gè)流程設計器的優(yōu)化后自動(dòng)生成應用系統的一個(gè)框架,再經(jīng)過(guò)修改和補充后,成為一個(gè)完成的流程方案。這個(gè)方案和其他一些BPM軟件包運行時(shí)所需要的組件一起被加載給BPM的流程引擎。該流程引擎負責整個(gè)流程的路由、任務(wù)的追蹤、業(yè)務(wù)規則的執行以及與外部系統的集成。 如果一個(gè)流程的實(shí)例完成了每個(gè)活動(dòng),流程引擎就會(huì )生成一個(gè)事件來(lái)標記這個(gè)實(shí)例。這些事件由BPM軟件包中的性能管理組件負責收集。性能管理?yè)擞嬎愠鲆恍﹨祦?lái)衡量業(yè)務(wù)效率。 性能管理的儀表盤(pán)把通過(guò)OLAP鉆取分析出來(lái)的參考指標與上述的參數以圖形化的方式展現出來(lái)。性能管理也可以生成實(shí)時(shí)的報警信息。一旦KPI(關(guān)鍵性能指標)偏離了設定值,系統還可以自動(dòng)進(jìn)行流程的調整,這是由BAM(Business Activity Monitoring,業(yè)務(wù)流程監控)功能模塊來(lái)完成,通常BPM軟件會(huì )集成這個(gè)模塊。實(shí)際的性能數據會(huì )反饋給流程模型進(jìn)行調整,從而開(kāi)始一個(gè)新的性能優(yōu)化過(guò)程。 流程之爭 如果要對BPM的軟件提供的功能進(jìn)行一下清點(diǎn),你可以找到一大堆用來(lái)完成各種功能的軟件: 業(yè)務(wù)建模、仿真分析、人力工作流、應用集成、數據映射、業(yè)務(wù)規則、性能分析、業(yè)務(wù)活動(dòng)監控(BAM)、門(mén)戶(hù)等。在整合的BPM軟件包出現以前,這些工具相互獨立,分別來(lái)自不同的供應商。 不過(guò),今天它們都同屬于BPM,被整合進(jìn)入BPM軟件包,或者通過(guò)并購,或者通過(guò)OEM,或者通過(guò)合作伙伴的戰略。然而,這種轉變引發(fā)了BPM軟件供應商和建模工具、BAM及集成中間件供應商之間的一場(chǎng)沖突,因為每個(gè)人都想以自己的方式來(lái)解讀BPM。 最大的沖突源于兩種相互競爭的BPM技術(shù)架構。其中之一是最受媒體關(guān)注的、基于BPEL(Business Process Execution Language,業(yè)務(wù)流程執行語(yǔ)言)標準的架構,它通過(guò)在SOA環(huán)境中集成Web服務(wù)實(shí)現所需的功能,一些大型軟件供應商,如IBM、Microsoft、Oracle、SAP等都屬于這一類(lèi)。 另一類(lèi)是純BPM軟件供應商,如Fuego、FileNet、Pegasystems、Savvion等。它們的軟件架構從上個(gè)世紀90年代的工作流系統進(jìn)化而來(lái),因此在需要將人力工作流集成進(jìn)流程模型時(shí),它們更好用。在純BPM軟件供應商提供的產(chǎn)品中,SOA、BPEL的作用很有限,主要用于應用的集成,而很少像第一類(lèi)一樣用來(lái)描述端到端的流程。 他們的區別很明確: 大型軟件供應商提供的解決方案更強調BPEL,在應用較少涉及人力工作流,即組織中的流程無(wú)需多種角色的參與時(shí),能很容易地通過(guò)集成Web服務(wù)實(shí)現應用。而純BPM軟件供應商提供的軟件主要強調無(wú)需編碼就可以是實(shí)現流程的定制,因此,這些軟件更適合特定的行業(yè)。而它們的弱點(diǎn)則在于,與那些大型軟件供應商的產(chǎn)品相比,純BPM軟件比較難于與已有的應用系統進(jìn)行集成。 建模工具 無(wú)論是專(zhuān)門(mén)的BPM軟件供應商還是大型軟件供應商,建模工具都是其中的一個(gè)基本組成部分。這個(gè)工具使用一些基本元素,如活動(dòng)、任務(wù)、完成每項任務(wù)所需的資源以及相關(guān)的業(yè)務(wù)規則來(lái)描述業(yè)務(wù)流程,最后用業(yè)務(wù)人員很容易理解的一些圖形化的符號來(lái)表現他們。 建模工具在流程設計和定量的性能指標、以及通過(guò)仿真模擬進(jìn)行性能優(yōu)化時(shí)起到了十分關(guān)鍵的作用。建模工具在每一個(gè)流程活動(dòng)上標注有相關(guān)的性能參數,如預計執行時(shí)間、資源成本、可用性以及后續有幾個(gè)流程分支等。通過(guò)建模工具內置的仿真引擎能對各種場(chǎng)景進(jìn)行分析。分析過(guò)程中,KPI將被用來(lái)作為分析流程性能好壞的依據,并決定各個(gè)參數值,最后根據這些參數對整個(gè)流程進(jìn)行調整,完成一次閉環(huán)的業(yè)務(wù)流程實(shí)現。這就意味著(zhù)建模工具不僅僅是對活動(dòng)流程進(jìn)行簡(jiǎn)單的描述,而是要根據整個(gè)組織的資源、流程數據和流程性能參數進(jìn)行建模。 多年以來(lái),只有Casewise、IDS Scheer、Popkin (現在叫Telelogic)和Proforma等提供的業(yè)務(wù)流程建模工具提供這種能力,而且通常作為企業(yè)架構工具中的一部分。然而,如今很多軟件提供商,如Global360、IBM、Savvion等提供的BPM軟件本身已經(jīng)可以實(shí)現這部分功能了。下一步,建模工具供應商要利用BPMN(Business Process Modeling Notation,業(yè)務(wù)流程建模符號)——這是對象管理集團(OMG)提出的一種標準化的圖形符號,來(lái)改善BPM軟件之間的交互性。 流程建模工具的輸出是一組對業(yè)務(wù)的描述,用來(lái)指導IT人員實(shí)現所需的業(yè)務(wù)流程,建模工具將此提交給BPM的流程引擎,流程引擎將啟動(dòng)一個(gè)自動(dòng)的過(guò)程來(lái)保證流程的自動(dòng)執行。借助模型的標準符號(如BPMN)和模型交互格式(如CIF),模型可以輸入到BPM的設計工具中,從而產(chǎn)生一個(gè)流程實(shí)現的基本框架。雖然這個(gè)框架還缺少真正執行時(shí)所需的很多細節,但是它完全可以作為定義業(yè)務(wù)流程的起點(diǎn)。 通用性問(wèn)題 雖然采用像BPEL這樣標準的BPM設計語(yǔ)言,但是每個(gè)供應商的流程設計工具也只能在它們自己的運行環(huán)境中使用。到今天為止,還無(wú)法保證一種流程設計結果可以在任意選擇的流程引擎上運行,除非從一開(kāi)始就在人力工作、業(yè)務(wù)規則、數據映射等方面充分考慮到這個(gè)業(yè)務(wù)流程設計將會(huì )在另一個(gè)流程引擎上執行。 今天,大多數BPM軟件提供了一個(gè)統一的設計環(huán)境,同時(shí)還隱藏了人力工作流、應用集成、業(yè)務(wù)規則、交易管理等集中在一個(gè)可執行環(huán)境時(shí)所帶來(lái)的復雜性,這樣在企業(yè)的IT架構中,這些流程構件可以作為一個(gè)個(gè)獨立的模塊對待,其帶來(lái)的好處就是,整個(gè)企業(yè)的流程可以采用統一的數據模型和統一的狀態(tài)管理。 與建模一樣,流程設計大多數也是圖形化的。設計工具提供了一個(gè)配置板,從中設計人員可以選擇、配置、安排流程步驟。除非需要對流程進(jìn)行特殊的定制,一般流程設計幾乎不用編程。在圖形化的流程設計背后,是BPM軟件專(zhuān)有的流程執行語(yǔ)言在運行。 在基于工作流架構的BPM軟件中,各個(gè)供應商采用自己專(zhuān)門(mén)的流程執行語(yǔ)言,但都符合工作流管理協(xié)會(huì )制定的XPDL(XML流程定義語(yǔ)言)。流程活動(dòng)一般是一些預定義并已實(shí)現了的類(lèi)型,如Web服務(wù)、用戶(hù)任務(wù)、集成活動(dòng),以及與這個(gè)流程活動(dòng)相關(guān)的資源,如人工活動(dòng)的角色或者集成適配器等。依據每個(gè)活動(dòng)類(lèi)型的不同,會(huì )出現不同的配置對話(huà)框。 與基于工作流架構的BPM軟件不同,綜合性的BPM軟件采用了BPEL語(yǔ)言標準。BPEL只有惟一的一種活動(dòng)類(lèi)型,即調用,包括調用Web服務(wù)、調用人工任務(wù)、調用集成適配器等,所有這些必須用服務(wù)實(shí)現,并采用WSDL標準來(lái)描述接口。調用通過(guò)服務(wù)的URL地址進(jìn)行,而不是基于角色。為了適應流程中的人工活動(dòng),BPEL調用的并不是人工活動(dòng)本身,而是調用任務(wù)管理服務(wù),再由任務(wù)管理服務(wù)來(lái)處理其中的細節。 兩種BPM軟件的另外一個(gè)不同是,基于工作流的BPM軟件支持子流程的概念。子流程是一種可重用的流程片斷,它與調用它的父流程具有同樣的上下文數據和狀態(tài)。而B(niǎo)PEL中沒(méi)有類(lèi)似的概念,在基于BPEL的BPM軟件中,子流程就是另外一種BPEL流程,數據共享和狀態(tài)同步也都必須在流程邏輯中明確定義。由于子流程在真實(shí)世界中客觀(guān)存在,為克服這個(gè)局限,去年夏天,IBM、SAP對BPEL標準進(jìn)行了擴展,這個(gè)擴展是可選的,但整個(gè)規范到目前為止還沒(méi)有完成。不過(guò),盡管架構和程序不同,但基于BPEL的BPM軟件的核心功能都是一樣的。 實(shí)現流程驅動(dòng)的應用 流程設計完成后,將被部署到流程引擎上。一旦流程開(kāi)始執行后,引擎會(huì )按照預先確定的活動(dòng)順序、集成需要的外部應用來(lái)執行,如果需要人的參與,引擎會(huì )將任務(wù)發(fā)送給相關(guān)的人,引擎還會(huì )管理整個(gè)流程的執行時(shí)間以及意外。在那些應用服務(wù)器供應商,如IBM、Microsoft、Oracle、SAP等,提供的BPM軟件中,流程引擎只有在它們自己的應用服務(wù)器和相關(guān)的中間件上運行才能充分發(fā)揮流程引擎的性能,而那些純BPM軟件供應商的BPM軟件可以運行在任何應用服務(wù)器平臺上。 為了管理業(yè)務(wù)流程的性能,流程引擎還能產(chǎn)生流程運行的實(shí)時(shí)數據和狀態(tài)報告,通常采用事件的形式。BPM中的性能管理組件將收集這些事件,根據這些事件提供的信息來(lái)更新KPI和其他的在建模階段定義的性能指標。通常情況下,這些指標會(huì )被集中在OLAP Cube中,以圖表顯示或者用戶(hù)通過(guò)管理駕駛艙里的查詢(xún)獲取?;贠LAP的性能管理提供了歷史信息和近乎實(shí)時(shí)的信息報告以及鉆取分析報告,因為最新的數據可以按照需要進(jìn)行采集和更新。一些BPM軟件,如Adobe、FileNet、IBM、Intalio、Savvion等公司的BPM產(chǎn)品,支持實(shí)時(shí)的BAM,可以對指定的KPI指標進(jìn)行實(shí)時(shí)更新,并且能報警和自動(dòng)進(jìn)行調整。 從正在運行的流程中計算出來(lái)的參數可以用來(lái)對模型中參數進(jìn)行優(yōu)化,進(jìn)而得到更佳的參數值,從而讓流程的修改更有針對性。 BPM軟件的選擇 選擇最合適的BPM軟件無(wú)疑是一件具有挑戰性的任務(wù)。盡管每個(gè)供應商都在它們的宣傳冊和網(wǎng)站上承諾提供差不多完全一樣的功能,而事實(shí)上,每個(gè)供應商的產(chǎn)品都有其最佳的應用領(lǐng)域、流程類(lèi)型和最適合的應用需求。 例如,對專(zhuān)注于金融交易的BPM軟件而言,“Straight-Through”流程涉及非常復雜的應用集成,而幾乎不涉及人工活動(dòng),所以不是需要多人協(xié)同、以人為中心而很少涉及集成的流程的最佳選擇。而那些以文檔為中心的流程、或者需要人工從高速的隊列中進(jìn)行選擇的生產(chǎn)工作流流程也有自己的特殊需求,也并不是所有的BPM軟件都能滿(mǎn)足的。 然而,盡管BPM還是很復雜,比如,從架構上來(lái)說(shuō),它似乎像一團亂麻,但今天BPM軟件正在給用戶(hù)提供真正的投資回報。而且,新一代集成的BPM軟件正在拋棄傳統BPM的復雜性,為IT人員和業(yè)務(wù)人員提供一個(gè)嶄新的協(xié)作平臺。最重要的是,BPM正在給用戶(hù)帶來(lái)真正的投資回報。 (譯自Infoworld) BPM的四個(gè)階段 從更高層次上說(shuō),BPM解決方案的開(kāi)發(fā)過(guò)程與其他應用大體一樣。不過(guò),BPM的幾個(gè)特色,如圖形化的建模、自動(dòng)生成應用程序、與老的應用系統集成,可以大大加快軟件的開(kāi)發(fā)速度,縮短軟件上市時(shí)間。

(計算機世界報 2006年04月03日 第12期 B22、B23)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。