王劍冰
一種基于流程的高效引擎開發(fā)
王劍冰
(北京福富軟件技術(shù)股份有限公司福州分公司,福建,福州 350013)
在某些業(yè)務(wù)環(huán)境下,對實(shí)時的處理要求較高,需要由高效的流程引擎來帶動的業(yè)務(wù)功能運(yùn)行。高效流程引擎使用C/C++編寫引擎內(nèi)核,使用共享內(nèi)存作為流程定義和流程實(shí)例等相關(guān)數(shù)據(jù)的緩存,并使用高效、交互性好、易擴(kuò)展的Lua腳本作為流程引擎部分類型節(jié)點(diǎn)的嵌入式執(zhí)行內(nèi)容。同時,使用流程加載和日志落地等模塊,使得持久層和緩存之間進(jìn)行同步,不影響流程引擎核心的執(zhí)行效率。通過以上各方面的優(yōu)化提高了流程引擎整體的執(zhí)行效率。
流程引擎;Lua腳本語言;C/C++;共享內(nèi)存
業(yè)務(wù)流程管理一詞通常是指企業(yè)通過一系列活動,以能夠適應(yīng)動態(tài)變化的環(huán)境的方式,自動管理及優(yōu)化流程。業(yè)務(wù)流程可以被定義為一個由各種不同功能的活動相連的一組有相互關(guān)系的任務(wù),它們依照一定的業(yè)務(wù)邏輯和順序依次執(zhí)行,業(yè)務(wù)流程有起點(diǎn)和終點(diǎn),而且它們都是可以重復(fù)的。業(yè)務(wù)流程管理(BPM)正在迅速成為企業(yè)獲得軟件敏捷性和適應(yīng)性的重要方法。近年來,基于流程引擎技術(shù)構(gòu)建的應(yīng)用系統(tǒng)越來越受到客戶的追捧和認(rèn)可,能否支持流程可定制、可更改、可運(yùn)行的目標(biāo),也逐漸成為客戶衡量一個應(yīng)用系統(tǒng)主要標(biāo)準(zhǔn)之一[1]。目前國外有關(guān)流程引擎的產(chǎn)品有很多,如jBPM[2]、OSWorkflow、Apache ODE、WebSphere Process Server、Oracle Aqulogic、Microsoft BizTalk等。在國內(nèi),主要是在上述幾個引擎基礎(chǔ)上做擴(kuò)展和應(yīng)用,而且絕大部分是……