用BPM策略對(duì)應(yīng)用進(jìn)行現(xiàn)代化的可行性如何?Tom Nolle用批判的眼光進(jìn)行了審視,并且對(duì)如何有效使用它提供了一個(gè)分步驟的解釋。
一些人提議把業(yè)務(wù)流程管理作為應(yīng)用現(xiàn)代化的手段之一,但也有人對(duì)此提出質(zhì)疑,但采用BPM策略可以成為現(xiàn)代化遺留應(yīng)用的明智方式。Tom Nolle對(duì)此進(jìn)行了解釋。 對(duì)遺留應(yīng)用進(jìn)行現(xiàn)代化的一個(gè)最大問(wèn)題是“現(xiàn)代化”并不意味著進(jìn)行任何特殊的技術(shù)或功能改變。
這些都應(yīng)該是任何應(yīng)用設(shè)計(jì)和開發(fā)項(xiàng)目的一部分。
下面我們來(lái)探索一下業(yè)務(wù)流程管理如何能夠幫助提供一個(gè)現(xiàn)代化的框架。
促進(jìn)有效的BPM策略
正確的BPM使用從仔細(xì)識(shí)別真正的業(yè)務(wù)流程開始,而不是它們目前的實(shí)現(xiàn);要把業(yè)務(wù)流程和應(yīng)用工具看作是交互元素;對(duì)策略的流程和應(yīng)用維度的重視程度應(yīng)當(dāng)與對(duì)實(shí)現(xiàn)的重視程度相當(dāng)甚至更高。
BPM被用來(lái)打破結(jié)合了若干業(yè)務(wù)目標(biāo)的特定活動(dòng)。在許多情況下,也許是BPM策略實(shí)施最佳的情況下,它可能是作為企業(yè)架構(gòu)的一個(gè)元素而存在的。在應(yīng)用設(shè)計(jì)和開發(fā)方面,BPM是需求的來(lái)源。
BPM驅(qū)動(dòng)現(xiàn)代化的關(guān)鍵應(yīng)用現(xiàn)代化是重構(gòu)應(yīng)用的過(guò)程,其目標(biāo)是吸收被證明能夠提供最好敏捷性和效率的設(shè)計(jì)原則和技術(shù)。它主要考察的是支持業(yè)務(wù)流程的實(shí)現(xiàn),大多數(shù)情況下,會(huì)把應(yīng)用實(shí)現(xiàn)當(dāng)作功能基礎(chǔ)。
明智的BPM驅(qū)動(dòng)應(yīng)用現(xiàn)代化解決辦法認(rèn)識(shí)到。工具與流程之間存在根本性的依賴。員工利用手頭的東西做自己能做的事,所以應(yīng)用和數(shù)據(jù)的可用性往往框定了他們做事的方式。這種相互依賴給應(yīng)用現(xiàn)代化制造了極大的風(fēng)險(xiǎn),因?yàn)樘菀拙蜁?huì)把過(guò)去基于工具的限制帶給將來(lái)的應(yīng)用了。這意味著你必須從當(dāng)前的應(yīng)用細(xì)節(jié)退后一步重新捕捉真正的業(yè)務(wù)流程。
這時(shí)候,企業(yè)架構(gòu)也許提供了一條容易的途徑,如果存在一個(gè)“EA模型”的話(幾乎一直都是這樣)??梢哉f(shuō),對(duì)于一家大企業(yè)來(lái)說(shuō),永遠(yuǎn)都不要在沒(méi)有根據(jù)已有的標(biāo)準(zhǔn)(如TOGAF)制定一項(xiàng)EA模型之前,就進(jìn)行大規(guī)模的遺留應(yīng)用現(xiàn)代化。而在應(yīng)用現(xiàn)代化項(xiàng)目的范圍存在更多限制的情況下,是有可能從當(dāng)前的應(yīng)用中恢復(fù)業(yè)務(wù)流程定義的。如果你沒(méi)有EA框架來(lái)引導(dǎo)BPM映射,可以利用應(yīng)用工作流,通過(guò)把應(yīng)用功能組織進(jìn)支持的業(yè)務(wù)流程來(lái)對(duì)它們“抽象”化。
確定“工作模型”如果你有一個(gè)合適的BPM框架,現(xiàn)代化遺留應(yīng)用的第一步是評(píng)估該框架的工作流限制。這種做法的目標(biāo)是確定應(yīng)用最適合支持的工作模型。下面一些模型可供參考:
1、簡(jiǎn)單事務(wù)流:業(yè)務(wù)流程靠事務(wù)驅(qū)動(dòng),當(dāng)一個(gè)流程被發(fā)起時(shí),它是按照既定的路徑走到結(jié)束的。大多數(shù)遺留應(yīng)用都是這樣工作的,無(wú)論業(yè)務(wù)有沒(méi)有執(zhí)行。
2、流化計(jì)算模型:業(yè)務(wù)流程受到活動(dòng)流的驅(qū)動(dòng),這些活動(dòng)流可能牽涉到多個(gè)事件和來(lái)源,流程需要在這些流當(dāng)中得到交互式的支持。
3、事務(wù)+分析:業(yè)務(wù)流程基本上屬于事務(wù)性,但大數(shù)據(jù)采集和分析驅(qū)動(dòng)了一批流程。
這些模型每一個(gè)都有一個(gè)合適的應(yīng)用結(jié)構(gòu),后者隨后可以推動(dòng)中間件工具以及應(yīng)用程序接口(API)的選擇。事務(wù)型應(yīng)用,尤其是簡(jiǎn)單的事務(wù)型應(yīng)用,可以很容易地跟SOA應(yīng)用模型連接起來(lái),而SOA也可以用在事務(wù)+分析模型的主事務(wù)流上。流計(jì)算模型應(yīng)該基于復(fù)雜事件處理以及流(Stream/flow)式API,尤其是微服務(wù)。CEP可能對(duì)事務(wù)+分析模型也有用,因?yàn)榉治鲇袑?shí)時(shí)的需要。
這種模型會(huì)疊加到你原來(lái)的BPM流程圖上,表明了應(yīng)用是如何與流程自然建立起來(lái)的工作流關(guān)聯(lián)起來(lái)的。流程既是模型定義的事務(wù)或流的來(lái)源,也是活動(dòng)如何排序的引導(dǎo)力。把握住這種映射來(lái)確保你不會(huì)在建構(gòu)應(yīng)用時(shí)打破BPM工作流。
映射應(yīng)用組件BPM驅(qū)動(dòng)應(yīng)用現(xiàn)代化項(xiàng)目的下一步是映射當(dāng)前和未來(lái)應(yīng)用組件到你選擇的模型里面。如果應(yīng)用組件適合總體圖定義的流,那這種組件就適合用來(lái)提供相適應(yīng)的接口。不過(guò)要注意所需的API和信息模型;這些合起來(lái)可以形成中間件選擇的需求。
這時(shí)候就要考慮業(yè)務(wù)流程和應(yīng)用工具的交互性問(wèn)題。貫穿你模型的臨時(shí)性工作流在邏輯上未必與應(yīng)用組件相適應(yīng),或者這個(gè)時(shí)候你希望使用的流里面合適的組件未必具備所需的信息。如果是這種情況,那可以考慮對(duì)流進(jìn)行試驗(yàn)性的重映射,改變組件次序,然后收集所需的信息。你在做的是改變假定的業(yè)務(wù)流程來(lái)優(yōu)化特定的應(yīng)用用法,所以根據(jù)過(guò)去經(jīng)驗(yàn)從最有價(jià)值的組件開始是明智之選。
策劃實(shí)施當(dāng)所有應(yīng)用和組件已經(jīng)映射進(jìn)模型之后,你就可以策劃應(yīng)用現(xiàn)代化并實(shí)施策略了。重要的是要保持功能(BPM)與結(jié)構(gòu)(技術(shù))的分離,所以新的組合應(yīng)用圖和工作流應(yīng)該在你一開始做好的BPM流程圖之上構(gòu)建。記住,你可能會(huì)對(duì)這張圖進(jìn)行少量改動(dòng)以適應(yīng)某些應(yīng)用組件所需的特定信息。
誠(chéng)然,對(duì)于遺留應(yīng)用現(xiàn)代化來(lái)說(shuō),作為一種技術(shù)演進(jìn)似乎并不天然從屬于業(yè)務(wù)流程管理,者也是為什么很多人看不到存在關(guān)聯(lián)的原因。但是如果沒(méi)有BPM策略,你是沒(méi)有辦法做好包括流計(jì)算在內(nèi)的應(yīng)用模型改變的,這些可是下一代應(yīng)用架構(gòu)的基礎(chǔ)。不要對(duì)BPM做出技術(shù)選擇,而是要讓BPM來(lái)確定需求,這樣你才能取得勝利。