亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

流程引擎處理方法

文檔序號(hào):6543383閱讀:206來(lái)源:國(guó)知局
流程引擎處理方法
【專利摘要】本發(fā)明涉及軟件建模領(lǐng)域,具體而言,涉及流程引擎處理方法。該流程引擎處理方法,包括:用戶或自動(dòng)機(jī)、節(jié)點(diǎn)授權(quán)管理器、節(jié)點(diǎn)消息總線和節(jié)點(diǎn)處理器。在經(jīng)過(guò)節(jié)點(diǎn)處理器預(yù)定的信息交流后,節(jié)點(diǎn)消息總線會(huì)通知節(jié)點(diǎn)處理器開(kāi)始實(shí)例化和處理指定的事務(wù)。節(jié)點(diǎn)消息總線再判斷待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化;若否,則節(jié)點(diǎn)處理器將待實(shí)例化事務(wù)進(jìn)行實(shí)例化,并生成實(shí)例化結(jié)果;節(jié)點(diǎn)處理器執(zhí)行實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果;節(jié)點(diǎn)處理器向節(jié)點(diǎn)消息總線發(fā)出執(zhí)行結(jié)果。本發(fā)明提供的流程引擎處理方法,在處理多維度復(fù)雜流程的時(shí)候能夠減少同時(shí)實(shí)例化活動(dòng)的數(shù)量,減輕了流程引擎的處理壓力加快了流程引擎的處理速度。
【專利說(shuō)明】流程引擎處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件建模領(lǐng)域,具體而言,涉及流程引擎處理方法。
【背景技術(shù)】
[0002]業(yè)務(wù)建模(Business Modeling)是以軟件模型方式描述企業(yè)管理和業(yè)務(wù)所涉及的對(duì)象和要素、以及它們的屬性、行為和彼此關(guān)系,其目的是為了更好地展現(xiàn)、分析、規(guī)劃、設(shè)計(jì)企業(yè)的業(yè)務(wù)流程,以及設(shè)計(jì)和構(gòu)架企業(yè)請(qǐng)求系統(tǒng)。業(yè)界常用的有兩類(lèi),一是偏向技術(shù)的業(yè)務(wù)建模技術(shù),是指對(duì)業(yè)務(wù)系統(tǒng)從靜態(tài)和動(dòng)態(tài)兩個(gè)方面進(jìn)行抽象,并利用UML標(biāo)記語(yǔ)言記錄下來(lái)。根據(jù)業(yè)務(wù)系統(tǒng)的特點(diǎn),UML業(yè)務(wù)建模方法主要包括業(yè)務(wù)角色、業(yè)務(wù)實(shí)體、業(yè)務(wù)活動(dòng)和業(yè)務(wù)流程等建模元素以及業(yè)務(wù)實(shí)體關(guān)系圖、業(yè)務(wù)流程活動(dòng)圖和業(yè)務(wù)流程狀態(tài)圖等圖形表示,其核心是業(yè)務(wù)流程活動(dòng)圖,采用UML的活動(dòng)圖(Activity Diagram)描述不同的業(yè)務(wù)角色如何進(jìn)行特定業(yè)務(wù)活動(dòng)來(lái)完成業(yè)務(wù)流程。代表性的建模技術(shù)如Rational SoftwareArchitect是IBM Rational新一代的UML建模工具。二是偏向于管理的業(yè)務(wù)建模技術(shù),此類(lèi)方法也是以流程為核心,將流程涉及的要素創(chuàng)建和關(guān)聯(lián)起來(lái),形成流程的詳細(xì)描述;對(duì)流程進(jìn)行分類(lèi),以區(qū)分出各流程的所處的位置;通過(guò)企業(yè)結(jié)構(gòu)總圖對(duì)關(guān)聯(lián)要素分類(lèi)管理。這樣從整體上就能夠建立起對(duì)企業(yè)經(jīng)營(yíng)活動(dòng)的整體描述和展現(xiàn)。這兩種建模技術(shù)的建模和管理的核心對(duì)象是流程。按照上述建模方式所建立出的模型可以理解為:一個(gè)流程是由多個(gè)活動(dòng)構(gòu)成的,處理完一個(gè)流程需要先同時(shí)實(shí)例化一個(gè)流程中的全部活動(dòng),再按照預(yù)設(shè)的順序處理完所有活動(dòng)也就完成了一個(gè)流程。其中,活動(dòng)之間的處理順序是設(shè)定在活動(dòng)消息總線上的,當(dāng)一個(gè)活動(dòng)處理結(jié)束之后,將結(jié)果發(fā)送給活動(dòng)消息總線,活動(dòng)消息總線再根據(jù)接收到的結(jié)果選擇執(zhí)行后續(xù)的活動(dòng)或者停止。
[0003]隨著使用的需求,出現(xiàn)了多維度的復(fù)雜流程,如圖1所示的流程架構(gòu)圖,,使用者在處理流程I的時(shí)候,流程I中包含活動(dòng)A,活動(dòng)A中的多個(gè)事務(wù)是分別存在于流程1、流程2和流程3中的。按照傳統(tǒng)的流程處理方式,完成流程I需要同時(shí)實(shí)例化流程I中的全部活動(dòng),這也就意味著需要同時(shí)實(shí)例化活動(dòng)A中的全部事務(wù)。為了實(shí)例化活動(dòng)A,也就需要將包括活動(dòng)A中事務(wù)I的流程1、包括活動(dòng)A中的事務(wù)2的流程2和包括活動(dòng)A中事務(wù)3的流程3都同時(shí)實(shí)例化,才可以完成活動(dòng)A。同時(shí),活動(dòng)B中的事務(wù)4和事務(wù)5又分別處于流程2和流程4中,按照上述的方法,實(shí)例化活動(dòng)B就需要同時(shí)實(shí)例化流程2和流程4。這就意味著想要完成流程1,就需要同時(shí)實(shí)例化流程1、流程2、流程3和流程4。需要說(shuō)明的是,實(shí)例化是指在將指定的數(shù)據(jù)加載到用于處理某一流程,或某一活動(dòng),或某一事務(wù)的活動(dòng)處理器上,用戶再在流程引擎上對(duì)加載后的數(shù)據(jù)進(jìn)行處理,以完成某一流程,或某一活動(dòng),或者某一事務(wù)。
[0004]采用這種傳統(tǒng)流程的處理方式對(duì)圖1中所描述的多維度的流程進(jìn)行處理時(shí),需要同時(shí)實(shí)例化大量的相關(guān)聯(lián)的流程,這加重了現(xiàn)有流程引擎的處理負(fù)擔(dān),降低了流程的處理速度,流程引擎是指的處理流程的基本邏輯處理器。如果一個(gè)流程X中包含某一具有多個(gè)事務(wù)的活動(dòng),并且該活動(dòng)中的事務(wù)又是分屬于不同的流程中的,那么,想要完成流程X,就需要同時(shí)實(shí)例化和流程X相關(guān)聯(lián)的全部流程,這種處理量大大加重了流程引擎的處理壓力,拖緩了流程引擎的處理速度。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的在于提供流程引擎處理方法,以解決上述的問(wèn)題。
[0006]在本發(fā)明的實(shí)施例中提供了流程引擎處理方法,包括:
[0007]用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求,所述活動(dòng)請(qǐng)求包括用戶或自動(dòng)機(jī)所要實(shí)例化的待實(shí)例化事務(wù)的信息,所述待實(shí)例化事務(wù)是屬于用戶或自動(dòng)機(jī)的一個(gè)節(jié)點(diǎn)處理器在一個(gè)活動(dòng)中所需要處理的全部事務(wù),節(jié)點(diǎn)處理器是用于實(shí)例化和處理屬于所述節(jié)點(diǎn)處理器的事務(wù)的應(yīng)用系統(tǒng);
[0008]節(jié)點(diǎn)授權(quán)管理器在接收到所述活動(dòng)請(qǐng)求后,若所述活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求;
[0009]節(jié)點(diǎn)處理器輪詢節(jié)點(diǎn)消息總線;
[0010]節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到所述確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求,所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求包括與節(jié)點(diǎn)消息總線相對(duì)應(yīng)的待實(shí)例化事務(wù);
[0011]節(jié)點(diǎn)處理器接收到所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷所述待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化;
[0012]若否,則節(jié)點(diǎn)處理器將待實(shí)例化事務(wù)進(jìn)行實(shí)例化,并生成實(shí)例化結(jié)果;
[0013]節(jié)點(diǎn)處理器執(zhí)行所述實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果;
[0014]節(jié)點(diǎn)處理器向所述節(jié)點(diǎn)消息總線發(fā)出所述執(zhí)行結(jié)果。
[0015]優(yōu)選的,在所述向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后還包括,
[0016]節(jié)點(diǎn)消息總線儲(chǔ)存所述執(zhí)行結(jié)果,和/或所述確認(rèn)后的活動(dòng)請(qǐng)求,和/或所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求;
[0017]用戶或自動(dòng)機(jī)向節(jié)點(diǎn)消息總線發(fā)出查詢處理情況請(qǐng)求;
[0018]節(jié)點(diǎn)消息總線在接收到所述查詢處理情況請(qǐng)求后,根據(jù)儲(chǔ)存的所述實(shí)例化結(jié)果,和/或所述確認(rèn)后的活動(dòng)請(qǐng)求,和/或所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求生成業(yè)務(wù)處理過(guò)程及狀態(tài)信息,所述業(yè)務(wù)處理過(guò)程及狀態(tài)信息包括活動(dòng)中的事務(wù)處理進(jìn)程及活動(dòng)中的事務(wù)處理過(guò)程;
[0019]節(jié)點(diǎn)消息總線向用戶或自動(dòng)機(jī)發(fā)出所述業(yè)務(wù)處理過(guò)程及狀態(tài)信息。
[0020]優(yōu)選的,在所述用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求前還包括,
[0021]用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求,所述獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求包括用戶或自動(dòng)機(jī)的身份信息;
[0022]節(jié)點(diǎn)授權(quán)管理器在接收到所述獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求后,在本地的數(shù)據(jù)庫(kù)中查找預(yù)先儲(chǔ)存的與所述用戶或自動(dòng)機(jī)的身份信息對(duì)應(yīng)的節(jié)點(diǎn)授權(quán)列表;
[0023]若找到所述節(jié)點(diǎn)授權(quán)列表,則向用戶或自動(dòng)機(jī)返回所述節(jié)點(diǎn)授權(quán)列表;
[0024]用戶或自動(dòng)機(jī)根據(jù)所述節(jié)點(diǎn)授權(quán)列表生成所述活動(dòng)請(qǐng)求。
[0025]優(yōu)選的,所述活動(dòng)請(qǐng)求中包括用戶或自動(dòng)機(jī)的身份信息;
[0026]所述若所述活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求包括,[0027]若與所述身份信息相對(duì)應(yīng)的操作權(quán)限出現(xiàn)在預(yù)存在本地的授權(quán)列表中,則標(biāo)記接收到的所述活動(dòng)請(qǐng)求為確認(rèn)后的活動(dòng)請(qǐng)求;
[0028]節(jié)點(diǎn)授權(quán)管理器向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求。
[0029]優(yōu)選的,節(jié)點(diǎn)處理器接收到所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷所述待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化還包括:
[0030]若否,則向節(jié)點(diǎn)消息總線發(fā)出表示待實(shí)例化事務(wù)已經(jīng)實(shí)例化的消息。
[0031]優(yōu)選的,在節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到所述確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后包括:
[0032]節(jié)點(diǎn)消息總線在本地?cái)?shù)據(jù)庫(kù)中記錄表示節(jié)點(diǎn)處理器的輪詢已經(jīng)被接收的信息,并且不再提供所述節(jié)點(diǎn)處理器的后續(xù)輪詢。
[0033]優(yōu)選的,所述節(jié)點(diǎn)處理器執(zhí)行所述實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果包括:
[0034]按照預(yù)設(shè)的順序逐一獲取未處理事務(wù),所述未處理事務(wù)是待處理事務(wù)實(shí)例化后生成的;
[0035]節(jié)點(diǎn)處理器判斷當(dāng)前獲取的未處理事務(wù)的前置條件是否滿足,
[0036]若是,則執(zhí)行當(dāng)前獲取的未處理事務(wù),并生成執(zhí)行結(jié)果;
[0037]若否,則等待,直到所述執(zhí)行的前置條件滿足。
[0038]優(yōu)選的,所述執(zhí)行結(jié)果包括提交后續(xù)節(jié)點(diǎn)請(qǐng)求或后續(xù)節(jié)點(diǎn)為終止信息;
[0039]在所述節(jié)點(diǎn)處理器發(fā)送所述執(zhí)行結(jié)果后還包括:
[0040]節(jié)點(diǎn)消息總線接收所述執(zhí)行結(jié)果;
[0041]若所述執(zhí)行結(jié)果包括所述提交后續(xù)節(jié)點(diǎn)請(qǐng)求,則在相應(yīng)的節(jié)點(diǎn)處理器輪詢時(shí),根據(jù)所述提交后續(xù)節(jié)點(diǎn)請(qǐng)求向指定的節(jié)點(diǎn)處理器發(fā)出指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求的信息,所述指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求是與所述指定的節(jié)點(diǎn)處理器相對(duì)應(yīng)的;
[0042]若所述執(zhí)行結(jié)果包括后續(xù)節(jié)點(diǎn)為終止信息,則活動(dòng)完成。
[0043]優(yōu)選的,還包括:
[0044]用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器提交新增或調(diào)整節(jié)點(diǎn)請(qǐng)求,所述新增或調(diào)整節(jié)點(diǎn)請(qǐng)求包括與所述用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的活動(dòng)信息和用戶信息,所述活動(dòng)信息包括一個(gè)或多個(gè)事務(wù)信息,并且每個(gè)事務(wù)信息與一個(gè)用戶信息相對(duì)應(yīng)的;每一個(gè)節(jié)點(diǎn)即為一個(gè)節(jié)點(diǎn)處理器,每個(gè)節(jié)點(diǎn)處理器只對(duì)應(yīng)一個(gè)用戶和一個(gè)活動(dòng),同一個(gè)活動(dòng)可以對(duì)應(yīng)不同的用戶生成不同節(jié)點(diǎn)處理器,但同一個(gè)活動(dòng)對(duì)應(yīng)同一個(gè)用戶只能生成一個(gè)節(jié)點(diǎn)處理器,同一個(gè)活動(dòng)針對(duì)同一個(gè)用戶重復(fù)生成節(jié)點(diǎn)處理器視同是原節(jié)點(diǎn)處理器的更新版本;
[0045]節(jié)點(diǎn)配置器向用戶配置器提交用戶配置請(qǐng)求,所述提交用戶配置請(qǐng)求包括與所述用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的用戶信息;
[0046]用戶配置器根據(jù)所述用戶配置請(qǐng)求配置用戶參數(shù),并生成用戶配置結(jié)果,所述用戶配置結(jié)果是與所述事務(wù)信息相對(duì)應(yīng)的;
[0047]用戶配置器向所述節(jié)點(diǎn)配置器返回所述用戶配置結(jié)果;
[0048]節(jié)點(diǎn)配置器向活動(dòng)配置器提交活動(dòng)配置請(qǐng)求,所述活動(dòng)配置請(qǐng)求包括所述用戶或自動(dòng)機(jī)發(fā)出的所述事務(wù)信息和與所述事務(wù)信息相對(duì)應(yīng)的用戶配置結(jié)果;
[0049]活動(dòng)配置器根據(jù)接收到的提交活動(dòng)配置請(qǐng)求,按照預(yù)設(shè)的順序配置活動(dòng)中的事務(wù),并生成事務(wù)配置結(jié)果請(qǐng)求,所述事務(wù)配置結(jié)果請(qǐng)求包括已配置事務(wù)和待配置事務(wù);[0050]活動(dòng)配置器向事務(wù)定義管理員群發(fā)出所述事務(wù)配置結(jié)果請(qǐng)求;
[0051]事務(wù)定義管理員群向活動(dòng)配置器返回事務(wù)配置申請(qǐng),所述事務(wù)配置申請(qǐng)是根據(jù)所述事務(wù)配置結(jié)果請(qǐng)求生成的,所述事務(wù)配置申請(qǐng)包括事務(wù)配置參數(shù)和事務(wù)流向參數(shù),所述事務(wù)配置參數(shù)是與所述已配置事務(wù)或所述待配置事務(wù)相對(duì)應(yīng)的;
[0052]活動(dòng)配置器根據(jù)所述事務(wù)配置申請(qǐng)配置已配置事務(wù)的參數(shù)和事務(wù)流向,或根據(jù)所述事務(wù)配置申請(qǐng)配置未配置事務(wù)的參數(shù)和事務(wù)流向,并生成待組裝節(jié)點(diǎn),所述待組裝節(jié)點(diǎn)是已配置事務(wù)的參數(shù)再次經(jīng)過(guò)配置后得到的,或所述待組裝節(jié)點(diǎn)是未配置事務(wù)的參數(shù)經(jīng)過(guò)配置后得到的;
[0053]活動(dòng)配置器根據(jù)事務(wù)和流向配置的結(jié)果生成活動(dòng)配置結(jié)果請(qǐng)求,所述配置結(jié)果請(qǐng)求包括一個(gè)待組裝的節(jié)點(diǎn);
[0054]活動(dòng)配置器向節(jié)點(diǎn)配置器返回所述活動(dòng)配置結(jié)果請(qǐng)求;
[0055]節(jié)點(diǎn)配置器將所述配置結(jié)果請(qǐng)求中包括的一個(gè)待組裝的節(jié)點(diǎn)進(jìn)行組裝,并生成更新節(jié)點(diǎn)配置文件和更新版本文件;
[0056]用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器發(fā)出提交節(jié)點(diǎn)終止請(qǐng)求,所述節(jié)點(diǎn)終止終止請(qǐng)求包括預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件;
[0057]節(jié)點(diǎn)配置器根據(jù)生成的所述更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件對(duì)本地的節(jié)點(diǎn)配置文件和版本進(jìn)行更新;
[0058]節(jié)點(diǎn)配置器根據(jù)生成的所述更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件生成新節(jié)點(diǎn)授權(quán)列表及參數(shù),并向節(jié)點(diǎn)授權(quán)管理器發(fā)出新節(jié)點(diǎn)授權(quán)列表及參數(shù);
[0059]節(jié)點(diǎn)授權(quán)管理器在接收到所述新節(jié)點(diǎn)授權(quán)列表及參數(shù)更新預(yù)先存儲(chǔ)在本地的節(jié)點(diǎn)授權(quán)列表;
[0060]節(jié)點(diǎn)授權(quán)管理器將更新后的節(jié)點(diǎn)授權(quán)列表標(biāo)記為待激活狀態(tài),并進(jìn)行存儲(chǔ),同時(shí)生成已更新節(jié)點(diǎn)授權(quán)列表信息;
[0061]節(jié)點(diǎn)授權(quán)管理器向用戶或自動(dòng)機(jī)發(fā)出所述已更新節(jié)點(diǎn)授權(quán)列表信息。
[0062]優(yōu)選的,在所述節(jié)點(diǎn)授權(quán)管理器將更新后的節(jié)點(diǎn)授權(quán)列表標(biāo)記為待激活狀態(tài),并生成已更新節(jié)點(diǎn)授權(quán)列表信息后還包括:
[0063]節(jié)點(diǎn)管理器動(dòng)態(tài)監(jiān)控節(jié)點(diǎn)配置器,若節(jié)點(diǎn)配置器生成更新節(jié)點(diǎn)配置文件,則節(jié)點(diǎn)管理器向節(jié)點(diǎn)配置器發(fā)出獲取所述更新節(jié)點(diǎn)配置文件的信息;
[0064]節(jié)點(diǎn)配置器在接收到所述獲取所述更新節(jié)點(diǎn)配置文件的信息后,向節(jié)點(diǎn)管理器發(fā)出更新節(jié)點(diǎn)配置文件;
[0065]節(jié)點(diǎn)管理器在接收到所述更新節(jié)點(diǎn)配置文件后,根據(jù)所述更新節(jié)點(diǎn)配置文件創(chuàng)建新的節(jié)點(diǎn)處理器并生成節(jié)點(diǎn)處理器創(chuàng)建結(jié)果,所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果包括指定的更新節(jié)點(diǎn)信息;
[0066]節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果;
[0067]節(jié)點(diǎn)授權(quán)管理器根據(jù)所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果中包括的指定的更新節(jié)點(diǎn)信息,將存儲(chǔ)在本地的所述標(biāo)記為待激活狀態(tài)的授權(quán)列表更改為激活狀態(tài);
[0068]若存在舊版本或需要關(guān)閉的節(jié)點(diǎn)處理器,節(jié)點(diǎn)授權(quán)管理器判斷是否存在舊版本節(jié)點(diǎn)或需要關(guān)閉的節(jié)點(diǎn)中的事務(wù)未處理完成;[0069]若是,則等待,直到舊版本事務(wù)處理完成;
[0070]若否,則關(guān)閉舊版本的節(jié)點(diǎn)處理器,并生成關(guān)閉結(jié)果,所述舊版本節(jié)點(diǎn)用于處理舊版本事務(wù);
[0071]節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出關(guān)閉結(jié)果;
[0072]節(jié)點(diǎn)授權(quán)管理器在接收到所述關(guān)閉結(jié)果后,將舊版本節(jié)點(diǎn)處理器標(biāo)示為卸載狀態(tài)。
[0073]本發(fā)明實(shí)施例提供的流程引擎處理方法,與現(xiàn)有技術(shù)中的流程引擎處理方法在處理多維度流程時(shí),需要同時(shí)將相關(guān)聯(lián)的全部流程同時(shí)實(shí)例化,加重了流程引擎的處理壓力,拖緩了流程引擎的處理速度相比,其通過(guò)預(yù)先設(shè)定了待實(shí)例化事務(wù)是屬于用戶或自動(dòng)機(jī)的一個(gè)節(jié)點(diǎn)處理器在一個(gè)活動(dòng)中所需要處理的全部事務(wù),使得用戶在實(shí)例化和出待實(shí)例化事務(wù)時(shí),能夠根據(jù)具體情況的需要,只實(shí)例化活動(dòng)中的一部分,可以通過(guò)節(jié)點(diǎn)處理器獨(dú)立的實(shí)例化和處理活動(dòng)中的事務(wù),進(jìn)而在處理多維度復(fù)雜流程的時(shí)候能夠減少同時(shí)實(shí)例化活動(dòng)的數(shù)量,減輕了流程引擎的處理壓力加快了流程引擎的處理速度,從而解決了現(xiàn)有技術(shù)中的不足。
【專利附圖】

【附圖說(shuō)明】
[0074]圖1示出了本發(fā)明【背景技術(shù)】中的模型示意圖;
[0075]圖2示出了本發(fā)明實(shí)施例的流程引擎處理方法的基本流程圖;
[0076]圖3示出了本發(fā)明實(shí)施例的流程引擎處理方法的查詢業(yè)務(wù)處理過(guò)程流程圖;
[0077]圖4示出了本發(fā)明實(shí)施例的流程引擎處理方法的獲取授權(quán)列表流程圖;
[0078]圖5示出了本發(fā)明實(shí)施例的流程引擎處理方法的流程引擎的配置時(shí)序圖;
[0079]圖6示出了本發(fā)明實(shí)施例的流程引擎處理方法的具體實(shí)例方框圖。
【具體實(shí)施方式】
[0080]下面通過(guò)具體的實(shí)施例子并結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
[0081]如圖2所示,本發(fā)明實(shí)施例1提供了流程引擎處理方法的流程,包括如下步驟:
[0082]S201,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求,活動(dòng)請(qǐng)求包括用戶或自動(dòng)機(jī)所要實(shí)例化的待實(shí)例化事務(wù)的信息,待實(shí)例化事務(wù)是屬于用戶或自動(dòng)機(jī)的一個(gè)節(jié)點(diǎn)處理器在一個(gè)活動(dòng)中所需要處理的全部事務(wù),節(jié)點(diǎn)處理器是用于實(shí)例化和處理屬于節(jié)點(diǎn)處理器的事務(wù)的應(yīng)用系統(tǒng);
[0083]S202,節(jié)點(diǎn)授權(quán)管理器在接收到活動(dòng)請(qǐng)求后,若活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求;
[0084]S203,節(jié)點(diǎn)處理器輪詢節(jié)點(diǎn)消息總線;
[0085]S204,節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求,節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求包括與節(jié)點(diǎn)消息總線相對(duì)應(yīng)的待實(shí)例化事務(wù);
[0086]S205,節(jié)點(diǎn)處理器接收到節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化,若否,則執(zhí)行步驟S206 ;
[0087]S206,節(jié)點(diǎn)處理器將待實(shí)例化事務(wù)進(jìn)行實(shí)例化,并生成實(shí)例化結(jié)果;[0088]S207,節(jié)點(diǎn)處理器執(zhí)行實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果;
[0089]S208,節(jié)點(diǎn)處理器向節(jié)點(diǎn)消息總線發(fā)出執(zhí)行結(jié)果。
[0090]具體的,在步驟S201中,用戶或者自動(dòng)機(jī)根據(jù)需要向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求,活動(dòng)請(qǐng)求中包括用戶或自動(dòng)機(jī)需要進(jìn)行實(shí)例化和處理的事務(wù)的參數(shù)。
[0091]在步驟S202中,節(jié)點(diǎn)授權(quán)管理器需要根據(jù)預(yù)設(shè)的條件對(duì)接收到活動(dòng)請(qǐng)求進(jìn)行確認(rèn),以確保安全。由于不同的用戶的使用權(quán)限可能是不同的,如果沒(méi)有指定權(quán)限的用戶或者自動(dòng)機(jī)發(fā)出了不屬于自己活動(dòng)的請(qǐng)求,可能就是對(duì)流程引擎的入侵行為,所以節(jié)點(diǎn)授權(quán)管理器應(yīng)對(duì)接收到活動(dòng)請(qǐng)求進(jìn)行驗(yàn)證,其驗(yàn)證的內(nèi)容可以是接收到的活動(dòng)請(qǐng)求所對(duì)應(yīng)的用戶或自動(dòng)機(jī)的活動(dòng)權(quán)限是否與活動(dòng)請(qǐng)求中的內(nèi)容相符,該活動(dòng)權(quán)限是查詢預(yù)先存儲(chǔ)在節(jié)點(diǎn)授權(quán)管理器中的節(jié)點(diǎn)授權(quán)表后得到的;也可以是節(jié)點(diǎn)授權(quán)管理器接收到的活動(dòng)請(qǐng)求中的信息是否能夠被節(jié)點(diǎn)授權(quán)管理器所讀?。贿€可以是節(jié)點(diǎn)授權(quán)管理器接收到的活動(dòng)請(qǐng)求中是否含有病毒或其他能夠破壞節(jié)點(diǎn)授權(quán)管理器、節(jié)點(diǎn)消息總線、節(jié)點(diǎn)處理器等相關(guān)機(jī)構(gòu)的數(shù)據(jù)。
[0092]步驟S203,節(jié)點(diǎn)處理器輪詢節(jié)點(diǎn)消息總線,需要說(shuō)明的是,節(jié)點(diǎn)處理器的輪詢并不是在步驟S202完成之后才開(kāi)始的,而是任何時(shí)候均可以開(kāi)始輪詢,時(shí)間順序上,步驟S203并不一定在步驟S202或者步驟S201之后。
[0093]步驟S204,節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢之后,如果節(jié)點(diǎn)消息總線已經(jīng)接收到了確認(rèn)后的活動(dòng)請(qǐng)求,那么就向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)的請(qǐng)求,此處的確認(rèn)后的活動(dòng)請(qǐng)求是與進(jìn)行輪詢的節(jié)點(diǎn)處理器相對(duì)應(yīng)的。確認(rèn)后的活動(dòng)請(qǐng)求和用戶或自動(dòng)機(jī)發(fā)出的活動(dòng)請(qǐng)求的內(nèi)容可以是相同的,二者均包括輪詢節(jié)點(diǎn)處理器需要實(shí)例化和處理的事務(wù)。也就是只有在節(jié)點(diǎn)消息總線接收到確認(rèn)后的活動(dòng)請(qǐng)求后,在接收到節(jié)點(diǎn)處理器的輪詢后才會(huì)發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求。
[0094]步驟S205,在節(jié)點(diǎn)處理器接收到活動(dòng)請(qǐng)求后,需要判斷該節(jié)點(diǎn)處理器需要實(shí)例化的事務(wù)是否已經(jīng)實(shí)例化,此處的實(shí)例化可以是同一個(gè)活動(dòng)中的多個(gè)事務(wù),也可以是同一個(gè)活動(dòng)中的一個(gè)事務(wù),此處的多個(gè)事務(wù)或者一個(gè)事務(wù)需要根據(jù)預(yù)先設(shè)置的用戶與活動(dòng)中的事務(wù)的對(duì)應(yīng)關(guān)系相應(yīng)的,一個(gè)用戶在一個(gè)活動(dòng)中處理的全部活動(dòng)是由一個(gè)節(jié)點(diǎn)處理器進(jìn)行實(shí)例化和處理的,如10個(gè)用戶均參加到了 10活動(dòng)中,那么節(jié)點(diǎn)處理器的數(shù)量應(yīng)是100個(gè),也就是不同的用戶在每一個(gè)的活動(dòng)中均有一個(gè)獨(dú)立的節(jié)點(diǎn)處理器,用于該用戶處理這一個(gè)活動(dòng)中的事務(wù)。節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后節(jié)點(diǎn)處理器還需要判斷節(jié)點(diǎn)處理器所需要實(shí)例化的事務(wù)是否已經(jīng)實(shí)例化,如果該實(shí)例化活動(dòng)需要依據(jù)前置條件中設(shè)置的多個(gè)節(jié)點(diǎn)處理器的活動(dòng)請(qǐng)求來(lái)執(zhí)行,那么執(zhí)行第一個(gè)節(jié)點(diǎn)處理器的活動(dòng)請(qǐng)求時(shí),節(jié)點(diǎn)處理器所需要實(shí)例化的事務(wù)已經(jīng)實(shí)例化,那么后續(xù)節(jié)點(diǎn)處理器的活動(dòng)請(qǐng)求就不需要節(jié)點(diǎn)處理器再次實(shí)例化該事務(wù);如果節(jié)點(diǎn)處理器所需要實(shí)例化的事務(wù)還沒(méi)有實(shí)例化,那么執(zhí)行步驟S206。
[0095]步驟S206,節(jié)點(diǎn)處理器將需要實(shí)例化的活動(dòng)進(jìn)行實(shí)例化,并且得到實(shí)例化結(jié)果。活動(dòng)進(jìn)行實(shí)例化包括,獲取該活動(dòng)的數(shù)據(jù)和相關(guān)參數(shù),組裝成執(zhí)行環(huán)境。之后才可以根據(jù)需要處理已經(jīng)實(shí)例化的活動(dòng),此處的用戶指的是一個(gè)用戶。實(shí)例化只是活動(dòng)或事務(wù)執(zhí)行前由節(jié)點(diǎn)處理器加載相應(yīng)的活動(dòng)或事務(wù)數(shù)據(jù),形成其特定的活動(dòng)或事務(wù)編號(hào)及執(zhí)行環(huán)境的一個(gè)過(guò)程,實(shí)例化完成后才能提供執(zhí)行。其中,實(shí)例化后的活動(dòng),處理的事務(wù)可以是多件,也可以是一件,這是根據(jù)預(yù)設(shè)的活動(dòng)中,指定的用戶或者自動(dòng)機(jī)所需要處理事務(wù)的數(shù)量所決定的。
[0096]步驟S207,節(jié)點(diǎn)處理器執(zhí)行實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果;節(jié)點(diǎn)處理器在步驟S206實(shí)例化的基礎(chǔ)上,對(duì)實(shí)例化后的事務(wù)進(jìn)行執(zhí)行,并且生成執(zhí)行結(jié)果,需要說(shuō)明的是,此處的執(zhí)行實(shí)例化結(jié)果,是指用戶或者自動(dòng)機(jī)在生成實(shí)例化結(jié)果的基礎(chǔ)上進(jìn)一步對(duì)事務(wù)進(jìn)行處理。此處的執(zhí)行結(jié)果可以分為兩種,一種是后需要有其他節(jié)點(diǎn)處理器需要處理活動(dòng)中的事務(wù),那么執(zhí)行結(jié)果中包括的信息應(yīng)是后續(xù)節(jié)點(diǎn)請(qǐng)求信息,該信息指明了后續(xù)還應(yīng)由哪個(gè)節(jié)點(diǎn)處理器繼續(xù)處理事務(wù);另一種是不需要其他節(jié)點(diǎn)處理器處理活動(dòng)中的事務(wù),那么執(zhí)行結(jié)果中包括的信息應(yīng)是活動(dòng)完成或流程終止。
[0097]步驟S208,節(jié)點(diǎn)處理器向節(jié)點(diǎn)消息總線發(fā)出步驟S206所得到的執(zhí)行結(jié)果,也就完成了整個(gè)活動(dòng)的處理。由步驟S207可以了解到,節(jié)點(diǎn)處理器所生成的執(zhí)行結(jié)果可能是有兩種,那么節(jié)點(diǎn)消息總線再根據(jù)接收到的執(zhí)行結(jié)果選擇向其他的節(jié)點(diǎn)處理器發(fā)送實(shí)例化的請(qǐng)求,經(jīng)過(guò)多次,多個(gè)節(jié)點(diǎn)處理器的實(shí)例化和處理,就完成了一個(gè)活動(dòng);當(dāng)然,如果接收到的執(zhí)行結(jié)果中包括的是活動(dòng)完成或流程終止,那么就說(shuō)明該流程已經(jīng)完成,不需要有后續(xù)的處理了。
[0098]本發(fā)明所提供的流程引擎處理方法,具有如下優(yōu)點(diǎn):
[0099]1,將現(xiàn)有的不穩(wěn)定的業(yè)務(wù)建模和復(fù)雜的解析活動(dòng),盡可能交由人工進(jìn)行協(xié)作處理,而將計(jì)算機(jī)的運(yùn)行處理集中在穩(wěn)定的和數(shù)量規(guī)模上的領(lǐng)域,也就是對(duì)大量的節(jié)點(diǎn)處理器進(jìn)行管理,如此來(lái)應(yīng)對(duì)業(yè)務(wù)活動(dòng)的多樣化、變化多及用戶的個(gè)性化的應(yīng)用領(lǐng)域。
[0100]2,現(xiàn)有以流程為核心的業(yè)務(wù)建模技術(shù)只能以流程為單位進(jìn)行協(xié)作,即不同流程可以同時(shí)管理,但同一流程只能同時(shí)由一個(gè)人進(jìn)行管理;而本發(fā)明可以做到同一流程甚至同一活動(dòng)也可以由多人同時(shí)配置,這是通過(guò)預(yù)先設(shè)置的每次實(shí)例化的最小單位是,一個(gè)用戶在一個(gè)活動(dòng)中所需要處理事務(wù),同時(shí)該事務(wù)是通過(guò)獨(dú)立的,一個(gè)節(jié)點(diǎn)處理器完成的。
[0101]3,現(xiàn)有技術(shù)的用戶權(quán)限控制非常復(fù)雜,需要使用大量的流程-用戶,流程-活動(dòng),流程-用戶,用戶-角色等管理權(quán)限表格來(lái)限制使用者的操作權(quán)限;本發(fā)明只需要通過(guò)維護(hù)節(jié)點(diǎn)授權(quán)管理器中的節(jié)點(diǎn)授權(quán)表即可實(shí)現(xiàn),處理過(guò)程異常簡(jiǎn)單。
[0102]4,現(xiàn)有以“流程-角色”為核心的流程處理過(guò)程,需要解析流程的活動(dòng)和角色;而本發(fā)明由于直接形成基于“活動(dòng)-用戶”的運(yùn)行節(jié)點(diǎn),不需要解析活動(dòng)和角色,減化了流程的處理過(guò)程,提高了流程引擎的處理效率。
[0103]5,現(xiàn)有以流程為核心的流程處理在流向控制上難以適應(yīng)多維度的業(yè)務(wù)處理;而本發(fā)明通過(guò)節(jié)點(diǎn)消息總線方式和獨(dú)立節(jié)點(diǎn)處理器運(yùn)行方式,在節(jié)點(diǎn)處理器執(zhí)行完某一活動(dòng)后,將執(zhí)行結(jié)果返回給節(jié)點(diǎn)消息總線,進(jìn)而使節(jié)點(diǎn)消息總線根據(jù)接收到的實(shí)例化結(jié)果選擇其他的節(jié)點(diǎn)處理器處理后續(xù)的活動(dòng),或者活動(dòng)已經(jīng)處理已經(jīng)完成,后續(xù)活動(dòng)是否屬于多個(gè)流程以及他們的處理已經(jīng)與當(dāng)前節(jié)點(diǎn)處理器的活動(dòng)無(wú)關(guān)了,也就是本發(fā)明所提供的流程引擎處理方法可以處理復(fù)雜多維的業(yè)務(wù)模型。
[0104]本發(fā)明實(shí)施例3提供了流程引擎處理方法的細(xì)節(jié)流程,在實(shí)施例1的基礎(chǔ)上,
[0105]如圖3所示,示出了查詢業(yè)務(wù)處理過(guò)程的方法,包括如下步驟,
[0106]S301,節(jié)點(diǎn)消息總線儲(chǔ)存執(zhí)行結(jié)果,和/或確認(rèn)后的活動(dòng)請(qǐng)求,和/或節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求;
[0107]S302,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)消息總線發(fā)出查詢待實(shí)例化事務(wù)處理情況請(qǐng)求;
[0108]S303,節(jié)點(diǎn)消息總線根據(jù)儲(chǔ)存的實(shí)例化結(jié)果,和/或確認(rèn)后的活動(dòng)請(qǐng)求,和/或節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求生成業(yè)務(wù)處理過(guò)程及狀態(tài)信息;[0109]S304,節(jié)點(diǎn)消息總線向用戶或自動(dòng)機(jī)發(fā)出業(yè)務(wù)處理過(guò)程及狀態(tài)信息。
[0110]步驟S301,是由節(jié)點(diǎn)消息總線儲(chǔ)存接收到的,或者發(fā)出的實(shí)例化結(jié)果,和/或確認(rèn)后的活動(dòng)請(qǐng)求,和/或節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求。當(dāng)然,此處的儲(chǔ)存,是指節(jié)點(diǎn)消息總線儲(chǔ)存接收到的,或者發(fā)出的所有信息。
[0111]步驟S302,用戶在需要查詢實(shí)例化業(yè)務(wù)的處理情況時(shí),需要向節(jié)點(diǎn)消息總線發(fā)出查詢的指令。
[0112]步驟S303,節(jié)點(diǎn)消息總線在接收到查詢的指令后,根據(jù)儲(chǔ)存的所有信息,也就是執(zhí)行結(jié)果,和/或確認(rèn)后的活動(dòng)請(qǐng)求,和/或節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求生成業(yè)務(wù)處理過(guò)程及狀態(tài)信息,業(yè)務(wù)處理過(guò)程信息包括該筆業(yè)務(wù)經(jīng)過(guò)哪些節(jié)點(diǎn)處理器,當(dāng)前處在哪個(gè)節(jié)點(diǎn)處理器,各節(jié)點(diǎn)處理器接收和完成的時(shí)間等。如,儲(chǔ)存的只有確認(rèn)后的活動(dòng)請(qǐng)求,那么就說(shuō)明節(jié)點(diǎn)處理器未接收到節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求。
[0113]步驟S304,節(jié)點(diǎn)消息總線在生成業(yè)務(wù)處理過(guò)程信息后,向用戶或自動(dòng)機(jī)發(fā)出待實(shí)例化業(yè)務(wù)的實(shí)例化狀態(tài)信息,以便用戶或自動(dòng)機(jī)查詢事務(wù)的處理過(guò)程和狀態(tài)。
[0114]如圖4所示,示出了用戶獲取授權(quán)列表的方法,包括如下步驟,
[0115]S401,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求,節(jié)點(diǎn)獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求包括用戶或自動(dòng)機(jī)的身份信息;
[0116]S402,節(jié)點(diǎn)授權(quán)管理器在接收到獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求后,在本地的數(shù)據(jù)庫(kù)中查找預(yù)先儲(chǔ)存的與用戶或自動(dòng)機(jī)的身份信息對(duì)應(yīng)的節(jié)點(diǎn)授權(quán)列表;
[0117]S403,若找到節(jié)點(diǎn)授權(quán)列表,則向用戶或自動(dòng)機(jī)返回節(jié)點(diǎn)授權(quán)列表;
[0118]S404,用戶或自動(dòng)機(jī)根據(jù)節(jié)點(diǎn)授權(quán)列表生成活動(dòng)請(qǐng)求。
[0119]其中,在實(shí)行步驟S201之前,用戶或自動(dòng)機(jī)需要根據(jù)授權(quán)列表來(lái)選擇自己有權(quán)利做的操作。步驟S401中,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求,這一步驟也可以理解為用戶或自動(dòng)機(jī)登陸活動(dòng)門(mén)戶。
[0120]步驟S402,節(jié)點(diǎn)授權(quán)管理器在接收到請(qǐng)求后,在本地查找授權(quán)列表,如果沒(méi)有找至IJ,則說(shuō)明發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求的用戶或自動(dòng)機(jī)是非法的,此時(shí)可以根據(jù)情況發(fā)出警告,或者不理會(huì)該用戶或自動(dòng)機(jī)。
[0121]步驟S403,如果找到與發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求的用戶或自動(dòng)機(jī)相對(duì)應(yīng)的節(jié)點(diǎn)授權(quán)列表,就返回該用戶或自動(dòng)機(jī)找到的節(jié)點(diǎn)授權(quán)列表。
[0122]步驟S404,用戶或自動(dòng)機(jī)根據(jù)節(jié)點(diǎn)授權(quán)列表生成活動(dòng)請(qǐng)求。此處的根據(jù)可以理解為,用戶或者自動(dòng)機(jī)參考授權(quán)列表生成活動(dòng)請(qǐng)求,是為了用戶或自動(dòng)機(jī)方便發(fā)送活動(dòng)請(qǐng)求,如果用戶或自動(dòng)機(jī)不知道自己的權(quán)限,很有可能發(fā)錯(cuò)活動(dòng)請(qǐng)求,此時(shí),節(jié)點(diǎn)授權(quán)管理器在接收到授權(quán)請(qǐng)求之后就可能理解為,該用戶或自動(dòng)機(jī)是非法入侵,導(dǎo)致不必要的麻煩,同時(shí)也使了用戶或自動(dòng)機(jī)能夠減少必須要的操作。
[0123]其中,在步驟202中,節(jié)點(diǎn)授權(quán)管理器提交確認(rèn)后的活動(dòng)請(qǐng)求前還需要經(jīng)過(guò)確認(rèn)的過(guò)程,以保證提交的活動(dòng)請(qǐng)求是與提交活動(dòng)請(qǐng)求的用戶或自動(dòng)機(jī)的身份是相符合的。具體的,活動(dòng)請(qǐng)求中包括用戶或自動(dòng)機(jī)的身份信息;
[0124]若活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求包括,若與身份信息相對(duì)應(yīng)的操作權(quán)限出現(xiàn)在預(yù)存在本地的授權(quán)列表中,則標(biāo)記接收到的活動(dòng)請(qǐng)求為確認(rèn)后的活動(dòng)請(qǐng)求;節(jié)點(diǎn)授權(quán)管理器向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求。[0125]需要說(shuō)明的是,節(jié)點(diǎn)授權(quán)管理器所發(fā)出的確認(rèn)后的活動(dòng)請(qǐng)求,可以是直接轉(zhuǎn)發(fā)節(jié)點(diǎn)授權(quán)管理器所接收到的活動(dòng)請(qǐng)求,并且在活動(dòng)請(qǐng)求中加蓋確認(rèn)章;也可以是根據(jù)接收到的活動(dòng)請(qǐng)求生成一個(gè)新的活動(dòng)請(qǐng)求,此處的新的活動(dòng)請(qǐng)求可以理解為按照便于節(jié)點(diǎn)消息總線處理的消息類(lèi)型進(jìn)行編寫(xiě)的請(qǐng)求。
[0126]在步驟S205中,節(jié)點(diǎn)處理器接收到節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化,如果判斷的結(jié)果為是,那么就說(shuō)明節(jié)點(diǎn)處理器不需要再次對(duì)同一事務(wù)進(jìn)行實(shí)例化。
[0127]當(dāng)然,在步驟S204節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,還可以包括節(jié)點(diǎn)消息總線在本地?cái)?shù)據(jù)庫(kù)中記錄表示節(jié)點(diǎn)處理器的輪詢已經(jīng)被接收的信息,以免重復(fù)進(jìn)行操作。
[0128]具體的,在節(jié)點(diǎn)處理器在進(jìn)行實(shí)例化之后,按照預(yù)設(shè)的順序逐一獲取未處理事務(wù),未處理事務(wù)是待處理事務(wù)實(shí)例化后生成的;節(jié)點(diǎn)處理器判斷當(dāng)前獲取的未處理事務(wù)的前置條件是否滿足,若是,則執(zhí)行當(dāng)前獲取的未處理事務(wù),并生成執(zhí)行結(jié)果;若否,則等待,直到執(zhí)行的前置條件滿足,執(zhí)行結(jié)果包括事務(wù)的處理結(jié)果或事務(wù)后續(xù)節(jié)點(diǎn)流向信息。
[0129]節(jié)點(diǎn)處理器在處理實(shí)例化后的業(yè)務(wù)時(shí),通常有多個(gè)未處理事務(wù)需要處理,可以按照預(yù)設(shè)的前置條件分別處理多個(gè)未處理事務(wù)每個(gè)事務(wù)生成的各自的執(zhí)行結(jié)果和后續(xù)節(jié)點(diǎn)處理請(qǐng)求,也就是指明了是否需要后續(xù)的其他節(jié)點(diǎn)處理,或者是否已經(jīng)完全處理完成。
[0130]在步驟S207之后,還包括了節(jié)點(diǎn)消息總線對(duì)接收到的后續(xù)節(jié)點(diǎn)處理請(qǐng)求信息進(jìn)行處理的過(guò)程,具體為執(zhí)行結(jié)果包括提交后續(xù)節(jié)點(diǎn)請(qǐng)求或后續(xù)節(jié)點(diǎn)為終止信息;
[0131]在節(jié)點(diǎn)處理器發(fā)送執(zhí)行結(jié)果后還包括:節(jié)點(diǎn)消息總線接收?qǐng)?zhí)行結(jié)果;若執(zhí)行結(jié)果包括提交后續(xù)節(jié)點(diǎn)請(qǐng)求,則在相應(yīng)節(jié)點(diǎn)處理器輪詢時(shí),根據(jù)提交后續(xù)節(jié)點(diǎn)請(qǐng)求向指定的節(jié)點(diǎn)處理器發(fā)出指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求的信息,指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求是與指定的節(jié)點(diǎn)處理器相對(duì)應(yīng)的;若執(zhí)行結(jié)果包括后續(xù)節(jié)點(diǎn)為終止信息,則活動(dòng)完成。
[0132]通過(guò)多次的節(jié)點(diǎn)消息總線與不同的節(jié)點(diǎn)處理器進(jìn)行交流進(jìn)而可以完成一個(gè)復(fù)雜業(yè)務(wù)流程的處理,每次節(jié)點(diǎn)處理器只實(shí)例化當(dāng)前節(jié)點(diǎn)需要執(zhí)行的業(yè)務(wù)活動(dòng),而不是如現(xiàn)有技術(shù)中每次實(shí)例化就需要實(shí)例化全部的和需要處理的流程相關(guān)的全部流程,大大降低的流程處理引擎的處理量和處理壓力。
[0133]如圖5,示出了流程引擎的配置時(shí)序圖,包括,
[0134]501提交節(jié)點(diǎn)新增或調(diào)整請(qǐng)求,具體的,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器提交新增或調(diào)整節(jié)點(diǎn)請(qǐng)求,新增或調(diào)整節(jié)點(diǎn)請(qǐng)求包括與用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的活動(dòng)信息和用戶信息,活動(dòng)信息包括一個(gè)或多個(gè)事務(wù)信息,并且每個(gè)事務(wù)信息與一個(gè)用戶信息相對(duì)應(yīng)的;每一個(gè)節(jié)點(diǎn)即為一個(gè)節(jié)點(diǎn)處理器,每個(gè)節(jié)點(diǎn)處理器只對(duì)應(yīng)一個(gè)用戶和一個(gè)活動(dòng),同一個(gè)活動(dòng)可以對(duì)應(yīng)不同的用戶生成不同節(jié)點(diǎn)處理器,但同一個(gè)活動(dòng)對(duì)應(yīng)同一個(gè)用戶只能生成一個(gè)節(jié)點(diǎn)處理器,同一個(gè)活動(dòng)針對(duì)同一個(gè)用戶重復(fù)生成節(jié)點(diǎn)處理器視同是原節(jié)點(diǎn)處理器的更新版本。
[0135]502提交用戶配置申請(qǐng),節(jié)點(diǎn)配置器向用戶配置器提交用戶配置請(qǐng)求,提交用戶配置請(qǐng)求包括與用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的用戶信息;
[0136]503配置用戶參數(shù),用戶配置器根據(jù)用戶配置請(qǐng)求配置用戶參數(shù),并生成用戶配置結(jié)果,用戶配置結(jié)果是與事務(wù)信息相對(duì)應(yīng)的;
[0137]504返回用戶配置結(jié)果,用戶配置器向節(jié)點(diǎn)配置器返回用戶配置結(jié)果;
[0138]505提交活動(dòng)配置申請(qǐng),節(jié)點(diǎn)配置器向活動(dòng)配置器提交活動(dòng)配置請(qǐng)求,活動(dòng)配置請(qǐng)求包括用戶或自動(dòng)機(jī)發(fā)出的事務(wù)信息和與事務(wù)信息相對(duì)應(yīng)的用戶配置結(jié)果;
[0139]506啟用下一事務(wù)配置,活動(dòng)配置器根據(jù)接收到的提交活動(dòng)配置請(qǐng)求,按照預(yù)設(shè)的順序配置活動(dòng)中的事務(wù),并生成事務(wù)配置結(jié)果請(qǐng)求,事務(wù)配置結(jié)果請(qǐng)求包括已配置事務(wù)和待配置事務(wù);
[0140]507發(fā)出事務(wù)配置消息,活動(dòng)配置器向事務(wù)定義管理員群發(fā)出事務(wù)配置結(jié)果請(qǐng)求;
[0141]508返回事務(wù)配置申請(qǐng),事務(wù)定義管理員群向活動(dòng)配置器返回事務(wù)配置申請(qǐng),提交事務(wù)配置申請(qǐng)是根據(jù)事務(wù)配置結(jié)果請(qǐng)求生成的,事務(wù)配置申請(qǐng)包括事務(wù)配置參數(shù)和事務(wù)流向參數(shù),事務(wù)配置參數(shù)是與已配置事務(wù)或待配置事務(wù)相對(duì)應(yīng)的,事務(wù)流向參數(shù)包括事務(wù)處理的前置條件參數(shù)和后續(xù)節(jié)點(diǎn)流向參數(shù);通過(guò)507和508兩個(gè)步驟可以使多個(gè)用戶參與到對(duì)事務(wù)的配置中。
[0142]509配置事務(wù)參數(shù),510配置事務(wù)流向參數(shù),509和510兩步驟具體是,活動(dòng)配置器根據(jù)事務(wù)配置申請(qǐng)配置已配置事務(wù)的執(zhí)行參數(shù)和事務(wù)流向參數(shù),或根據(jù)提交事務(wù)配置請(qǐng)求配置未配置事務(wù)的執(zhí)行參數(shù)和事務(wù)流向參數(shù),并生成待組裝節(jié)點(diǎn),待組裝節(jié)點(diǎn)是已配置事務(wù)的參數(shù)再次經(jīng)過(guò)配置后得到的,或待組裝節(jié)點(diǎn)是未配置事務(wù)的參數(shù)經(jīng)過(guò)配置后得到的;事務(wù)流向參數(shù)包括事務(wù)處理的前置條件參數(shù)和后續(xù)節(jié)點(diǎn)流向參數(shù)。
[0143]511返回活動(dòng)配置結(jié)果,活動(dòng)配置器根據(jù)事務(wù)和流向配置的結(jié)果生成活動(dòng)配置結(jié)果請(qǐng)求,一個(gè)配置結(jié)果請(qǐng)求包括一個(gè)待組裝的節(jié)點(diǎn);活動(dòng)配置器向節(jié)點(diǎn)配置器返回活動(dòng)配置結(jié)果請(qǐng)求
[0144]512組裝節(jié)點(diǎn),節(jié)點(diǎn)配置器將配置結(jié)果請(qǐng)求中待組裝的節(jié)點(diǎn)進(jìn)行組裝,形成可供節(jié)點(diǎn)管理器生成節(jié)點(diǎn)處理器的可加載數(shù)據(jù),并生成更新節(jié)點(diǎn)配置文件和更新版本文件;
[0145]513更新節(jié)點(diǎn)配置文件,并更新版本,節(jié)點(diǎn)配置器根據(jù)生成的更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件對(duì)本地的節(jié)點(diǎn)配置文件和版本進(jìn)行更新;本發(fā)明中是采用版本控制方式對(duì)節(jié)點(diǎn)進(jìn)行,將調(diào)整后的節(jié)點(diǎn)形成新的版本,處理過(guò)程同新增一樣。但新增節(jié)點(diǎn)完成后,會(huì)在更新請(qǐng)求中增加對(duì)舊版節(jié)點(diǎn)的終止請(qǐng)求。
[0146]514提交授權(quán)更新請(qǐng)求和參數(shù),節(jié)點(diǎn)配置器根據(jù)生成的更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件生成新節(jié)點(diǎn)授權(quán)列表及參數(shù),并向節(jié)點(diǎn)授權(quán)管理器發(fā)出新節(jié)點(diǎn)授權(quán)列表及參數(shù)
[0147]515更新節(jié)點(diǎn)授權(quán)表,節(jié)點(diǎn)授權(quán)管理器在接收到新節(jié)點(diǎn)授權(quán)列表及參數(shù)更新預(yù)先存儲(chǔ)在本地的節(jié)點(diǎn)授權(quán)列表;
[0148]516標(biāo)識(shí)新節(jié)點(diǎn)為待激活,節(jié)點(diǎn)授權(quán)管理器將更新后的節(jié)點(diǎn)授權(quán)列表標(biāo)記為待激活狀態(tài),并進(jìn)行存儲(chǔ),同時(shí)生成已更新節(jié)點(diǎn)授權(quán)列表信息;所有調(diào)整完成后,會(huì)將更新信息發(fā)送到節(jié)點(diǎn)授權(quán)管理器,變更授權(quán)表。但新增節(jié)點(diǎn)會(huì)暫時(shí)標(biāo)記為“待激活”,此狀態(tài)表示節(jié)點(diǎn)在授權(quán)表中可見(jiàn),但不可用。需要通過(guò)節(jié)點(diǎn)管理器加載節(jié)點(diǎn)配置文件,運(yùn)行并創(chuàng)建新的節(jié)點(diǎn)處理器后,狀態(tài)才會(huì)變更為“已激活”
[0149]517返回結(jié)果信息,節(jié)點(diǎn)授權(quán)管理器向用戶或自動(dòng)機(jī)發(fā)出已更新節(jié)點(diǎn)授權(quán)列表信肩、O
[0150]同時(shí),如果用戶或自動(dòng)機(jī)想要直接停止節(jié)點(diǎn)的運(yùn)行,則可以執(zhí)行步驟518提交節(jié)點(diǎn)終止請(qǐng)求,用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器發(fā)出提交節(jié)點(diǎn)終止請(qǐng)求,節(jié)點(diǎn)終止請(qǐng)求包括預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件,之后順序執(zhí)行步驟S513至步驟S517,同樣能夠由人工操作的方式直接停止節(jié)點(diǎn)的運(yùn)行。
[0151]為了能夠?qū)⒋せ畹墓?jié)點(diǎn)授權(quán)列表變?yōu)榧せ顮顟B(tài),還包括如下步驟,節(jié)點(diǎn)管理器動(dòng)態(tài)監(jiān)控節(jié)點(diǎn)配置器,若節(jié)點(diǎn)配置器生成更新節(jié)點(diǎn)配置文件,則節(jié)點(diǎn)管理器向節(jié)點(diǎn)配置器發(fā)出獲取更新節(jié)點(diǎn)配置文件的信息;
[0152]節(jié)點(diǎn)配置器在接收到獲取更新節(jié)點(diǎn)配置文件的信息后,向節(jié)點(diǎn)管理器發(fā)出更新節(jié)點(diǎn)配置文件;
[0153]節(jié)點(diǎn)管理器在接收到更新節(jié)點(diǎn)配置文件后,根據(jù)更新節(jié)點(diǎn)配置文件創(chuàng)建新的節(jié)點(diǎn)處理器并生成節(jié)點(diǎn)處理器創(chuàng)建結(jié)果,節(jié)點(diǎn)處理器創(chuàng)建結(jié)果包括指定的更新節(jié)點(diǎn)信息;
[0154]節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出節(jié)點(diǎn)處理器創(chuàng)建結(jié)果;
[0155]節(jié)點(diǎn)授權(quán)管理器根據(jù)節(jié)點(diǎn)處理器創(chuàng)建結(jié)果中包括的指定的更新節(jié)點(diǎn)信息,將存儲(chǔ)在本地的標(biāo)記為“待激活”狀態(tài)的授權(quán)列表更改為“激活”狀態(tài);
[0156]若存在舊版本或需要關(guān)閉的節(jié)點(diǎn),節(jié)點(diǎn)授權(quán)管理器判斷是否存在舊版本節(jié)點(diǎn)或需要關(guān)閉的節(jié)點(diǎn)中的事務(wù)未處理完成;
[0157]若是,則等待,直到舊版本事務(wù)處理完成;
[0158]若否,則關(guān)閉舊版本事務(wù)處理節(jié)點(diǎn),并生成關(guān)閉結(jié)果,舊版本節(jié)點(diǎn)用于處理舊版本事務(wù);
[0159]節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出關(guān)閉結(jié)果;
[0160]節(jié)點(diǎn)授權(quán)管理器在接收到關(guān)閉請(qǐng)求后,將舊版本節(jié)點(diǎn)標(biāo)示為“卸載”狀態(tài)。
[0161]經(jīng)過(guò)上述步驟的處理,使節(jié)點(diǎn)授權(quán)管理器中的待激活節(jié)點(diǎn)變?yōu)橐鸭せ畹臓顟B(tài),也就可以在后續(xù)的活動(dòng)中使用了。
[0162]為了便于說(shuō)明說(shuō)明本發(fā)明所描述的方案,使用下實(shí)例進(jìn)行實(shí)際說(shuō)明,如圖6所示的合同審批流程,合同審批流程共有三個(gè)活動(dòng)組成,分別為合同起草、合同審核、合同審批。
[0163]整個(gè)業(yè)務(wù)過(guò)程描述如下:A用戶起草合同并提交,B用戶對(duì)合同進(jìn)行審核。
[0164]如果該類(lèi)合同屬于新的類(lèi)型,B用戶將此合同文檔作為合同模板提交標(biāo)準(zhǔn)化人員D進(jìn)行審批,審批完成后由E發(fā)布。
[0165]同時(shí),由于該類(lèi)型合同是新的類(lèi)型,在合同文本中可能存在不確定的風(fēng)險(xiǎn)點(diǎn),B用戶也可以發(fā)起風(fēng)險(xiǎn)控制提醒,交由風(fēng)險(xiǎn)管理員F進(jìn)行評(píng)估,評(píng)估后由用戶G進(jìn)行確定后,發(fā)回給用戶B。合同審核活動(dòng)必須等待風(fēng)險(xiǎn)控制流程完成后,才流向后續(xù)的合同審批活動(dòng)。
[0166]C用戶對(duì)合同進(jìn)行審批。
[0167]依據(jù)此活動(dòng)描述,在活動(dòng)處理器中的處理過(guò)程如下(省略前面的用戶授權(quán)活動(dòng)):
[0168]A用戶點(diǎn)擊【A用戶的合同起草節(jié)點(diǎn)】授權(quán)功能發(fā)送請(qǐng)求到消息總線;
[0169]【A用戶的合同起草節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取該請(qǐng)求;實(shí)例化;執(zhí)行合同起草事務(wù);提交【B用戶的合同審核】請(qǐng)求到消息總線。
[0170]【B用戶的合同 審核節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取該請(qǐng)求;實(shí)例化三個(gè)事務(wù);B用戶處理第一事務(wù)合同審核;B用戶處理第二事務(wù)合同模板提交出用戶處理第三事務(wù)風(fēng)險(xiǎn)控制點(diǎn)提醒。處理完成,提交后續(xù)節(jié)點(diǎn)請(qǐng)求。
[0171]由于第一事務(wù)要求等待第三事務(wù)處理結(jié)果,因此第一事務(wù)的后續(xù)節(jié)點(diǎn)請(qǐng)求處理于等待狀態(tài);
[0172]第二事務(wù)無(wú)需要等待,因此由第二事務(wù)提交【D用戶的合同模板審批節(jié)點(diǎn)】請(qǐng)求到消息總線。
[0173]第三事務(wù)無(wú)需要待等,由第三事務(wù)提交【F用戶的風(fēng)險(xiǎn)評(píng)估節(jié)點(diǎn)】到消息總線。
[0174][D用戶的合同模板審批節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取相應(yīng)請(qǐng)求,并執(zhí)行;然后再提交后續(xù)【E用戶的合同審批節(jié)點(diǎn)】。E節(jié)點(diǎn)處理完成,向消息總線提交流程終止請(qǐng)求。
[0175]【F用戶的風(fēng)險(xiǎn)評(píng)估節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取相應(yīng)請(qǐng)求,并執(zhí)行;然后再提交后續(xù)【G用戶的風(fēng)險(xiǎn)確認(rèn)節(jié)點(diǎn)】。G節(jié)點(diǎn)處理完成,向消息總線提交【B用戶的合同審核節(jié)點(diǎn)】。
[0176]【B用戶的合同審核節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取該請(qǐng)求。因該活動(dòng)已經(jīng)實(shí)例化,因此不再實(shí)例化。第三事務(wù)在風(fēng)險(xiǎn)確認(rèn)結(jié)果后,第一事務(wù)取消等待,完成整個(gè)活動(dòng),并向消息總線發(fā)送活動(dòng)完成消息和【C用戶的合同審批節(jié)點(diǎn)】請(qǐng)求。
[0177]【C用戶的合同審批節(jié)點(diǎn)】監(jiān)聽(tīng)消息總線,獲取該請(qǐng)求;實(shí)例化;執(zhí)行完成;提交流程終止消息到消息總線。
[0178]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可實(shí)例化的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)實(shí)例 化,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0179]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.流程引擎處理方法,其特征在于,包括: 用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求,所述活動(dòng)請(qǐng)求包括用戶或自動(dòng)機(jī)所要實(shí)例化的待實(shí)例化事務(wù)的信息,所述待實(shí)例化事務(wù)是屬于用戶或自動(dòng)機(jī)的一個(gè)節(jié)點(diǎn)處理器在一個(gè)活動(dòng)中所需要處理的全部事務(wù),節(jié)點(diǎn)處理器是用于實(shí)例化和處理屬于所述節(jié)點(diǎn)處理器的事務(wù)的應(yīng)用系統(tǒng); 節(jié)點(diǎn)授權(quán)管理器在接收到所述活動(dòng)請(qǐng)求后,若所述活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求; 節(jié)點(diǎn)處理器輪詢節(jié)點(diǎn)消息總線; 節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到所述確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求,所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求包括與節(jié)點(diǎn)消息總線相對(duì)應(yīng)的待實(shí)例化事務(wù); 節(jié)點(diǎn)處理器接收到所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷所述待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化; 若否,則節(jié)點(diǎn)處理器將待實(shí)例化事務(wù)進(jìn)行實(shí)例化,并生成實(shí)例化結(jié)果; 節(jié)點(diǎn)處理器執(zhí)行所述實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果; 節(jié)點(diǎn)處理器向所述節(jié)點(diǎn)消息總線發(fā)出所述執(zhí)行結(jié)果。
2.根據(jù)權(quán)利要求1所述的流程引擎處理方法,其特征在于,在所述向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后還包括, 節(jié)點(diǎn)消息總線儲(chǔ)存所述執(zhí)行結(jié)果,和/或所述確認(rèn)后的活動(dòng)請(qǐng)求,和/或所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求; 用戶或自動(dòng)機(jī)向節(jié)點(diǎn)消息總線發(fā)出查詢處理情況請(qǐng)求; 節(jié)點(diǎn)消息總線在接收到所述查詢處理情況請(qǐng)求后,根據(jù)儲(chǔ)存的所述實(shí)例化結(jié)果,和/或所述確認(rèn)后的活動(dòng)請(qǐng)求,和/或所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求生成業(yè)務(wù)處理過(guò)程及狀態(tài)信息,所述業(yè)務(wù)處理過(guò)程及狀態(tài)信息包括活動(dòng)中的事務(wù)處理進(jìn)程及活動(dòng)中的事務(wù)處理過(guò)程; 節(jié)點(diǎn)消息總線向用戶或自動(dòng)機(jī)發(fā)出所述業(yè)務(wù)處理過(guò)程及狀態(tài)信息。
3.根據(jù)權(quán)利要求1所述的流程引擎處理方法,其特征在于,在所述用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器提交活動(dòng)請(qǐng)求前還包括, 用戶或自動(dòng)機(jī)向節(jié)點(diǎn)授權(quán)管理器發(fā)出獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求,所述獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求包括用戶或自動(dòng)機(jī)的身份信息; 節(jié)點(diǎn)授權(quán)管理器在接收到所述獲取節(jié)點(diǎn)授權(quán)列表請(qǐng)求后,在本地的數(shù)據(jù)庫(kù)中查找預(yù)先儲(chǔ)存的與所述用戶或自動(dòng)機(jī)的身份信息對(duì)應(yīng)的節(jié)點(diǎn)授權(quán)列表; 若找到所述節(jié)點(diǎn)授權(quán)列表,則向用戶或自動(dòng)機(jī)返回所述節(jié)點(diǎn)授權(quán)列表; 用戶或自動(dòng)機(jī)根據(jù)所述節(jié)點(diǎn)授權(quán)列表生成所述活動(dòng)請(qǐng)求。
4.根據(jù)權(quán)利要求3所述的流程引擎處理方法,其特征在于, 所述活動(dòng)請(qǐng)求中包括用戶或自動(dòng)機(jī)的身份信息; 所述若所述活動(dòng)請(qǐng)求通過(guò)確認(rèn)則向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求包括, 若與所述身份信息相對(duì)應(yīng)的操作權(quán)限出現(xiàn)在預(yù)存在本地的授權(quán)列表中,則標(biāo)記接收到的所述活動(dòng)請(qǐng)求為確認(rèn)后的活動(dòng)請(qǐng)求;節(jié)點(diǎn)授權(quán)管理器向節(jié)點(diǎn)消息總線提交確認(rèn)后的活動(dòng)請(qǐng)求。
5.根據(jù)權(quán)利要求1所述的流程引擎處理方法,其特征在于,節(jié)點(diǎn)處理器接收到所述節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后,判斷所述待實(shí)例化事務(wù)是否已經(jīng)實(shí)例化還包括: 若否,則向節(jié)點(diǎn)消息總線發(fā)出表示待實(shí)例化事務(wù)已經(jīng)實(shí)例化的消息。
6.根據(jù)權(quán)利要求1所述的流程引擎處理方法,其特征在于, 在節(jié)點(diǎn)消息總線在接收到節(jié)點(diǎn)處理器的輪詢后,若節(jié)點(diǎn)消息總線已經(jīng)接收到所述確認(rèn)后的活動(dòng)請(qǐng)求,則向節(jié)點(diǎn)處理器發(fā)出節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求后包括: 節(jié)點(diǎn)消息總線在本地?cái)?shù)據(jù)庫(kù)中記錄表示節(jié)點(diǎn)處理器的輪詢已經(jīng)被接收的信息,并且不再提供所述節(jié)點(diǎn)處理器的后續(xù)輪詢。
7.根據(jù)權(quán)利要求6所述的流程引擎處理方法,其特征在于,所述節(jié)點(diǎn)處理器執(zhí)行所述實(shí)例化結(jié)果,并生成執(zhí)行結(jié)果包括: 按照預(yù)設(shè)的順序逐一獲取未處理事務(wù),所述未處理事務(wù)是待處理事務(wù)實(shí)例化后生成的; 節(jié)點(diǎn)處理器判斷當(dāng)前獲取的未處理事務(wù)的前置條件是否滿足, 若是,則執(zhí)行當(dāng)前獲取的未處理事務(wù),并生成執(zhí)行結(jié)果; 若否,則等待,直到所述執(zhí)行的前置條件滿足。
8.根據(jù)權(quán)利要求1所述的流程引擎處理方法,其特征在于, 所述執(zhí)行結(jié)果包括提交后續(xù)節(jié)點(diǎn)請(qǐng)求或后續(xù)節(jié)點(diǎn)為終止信息; 在所述節(jié)點(diǎn)處理器發(fā)送所述執(zhí)行結(jié)果后還包括: 節(jié)點(diǎn)消息總線接收所述執(zhí)行結(jié)果; 若所述執(zhí)行結(jié)果包括所述提交后續(xù)節(jié)點(diǎn)請(qǐng)求,則在相應(yīng)的節(jié)點(diǎn)處理器輪詢時(shí),根據(jù)所述提交后續(xù)節(jié)點(diǎn)請(qǐng)求向指定的節(jié)點(diǎn)處理器發(fā)出指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求的信息,所述指定節(jié)點(diǎn)處理器獲取活動(dòng)請(qǐng)求是與所述指定的節(jié)點(diǎn)處理器相對(duì)應(yīng)的; 若所述執(zhí)行結(jié)果包括后續(xù)節(jié)點(diǎn)為終止信息,則活動(dòng)完成。
9.根據(jù)權(quán)利要求3所述的流程引擎處理方法,其特征在于,還包括: 用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器提交新增或調(diào)整節(jié)點(diǎn)請(qǐng)求,所述新增或調(diào)整節(jié)點(diǎn)請(qǐng)求包括與所述用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的活動(dòng)信息和用戶信息,所述活動(dòng)信息包括一個(gè)或多個(gè)事務(wù)信息,并且每個(gè)事務(wù)信息與一個(gè)用戶信息相對(duì)應(yīng)的;每一個(gè)節(jié)點(diǎn)即為一個(gè)節(jié)點(diǎn)處理器,每個(gè)節(jié)點(diǎn)處理器只對(duì)應(yīng)一個(gè)用戶和一個(gè)活動(dòng),同一個(gè)活動(dòng)可以對(duì)應(yīng)不同的用戶生成不同節(jié)點(diǎn)處理器,但同一個(gè)活動(dòng)對(duì)應(yīng)同一個(gè)用戶只能生成一個(gè)節(jié)點(diǎn)處理器,同一個(gè)活動(dòng)針對(duì)同一個(gè)用戶重復(fù)生成節(jié)點(diǎn)處理器視同是原節(jié)點(diǎn)處理器的更新版本; 節(jié)點(diǎn)配置器向用戶配置器提交用戶配置請(qǐng)求,所述提交用戶配置請(qǐng)求包括與所述用戶或自動(dòng)機(jī)相對(duì)應(yīng)的新增或調(diào)整節(jié)點(diǎn)的用戶信息; 用戶配置器根據(jù)所述用戶配置請(qǐng)求配置用戶參數(shù),并生成用戶配置結(jié)果,所述用戶配置結(jié)果是與所述事務(wù)信息相對(duì)應(yīng)的; 用戶配置器向所述節(jié)點(diǎn)配置器返回所述用戶配置結(jié)果; 節(jié)點(diǎn)配置器向活動(dòng)配置器提交活動(dòng)配置請(qǐng)求,所述活動(dòng)配置請(qǐng)求包括所述用戶或自動(dòng)機(jī)發(fā)出的所述事務(wù)信息和與所述事務(wù)信息相對(duì)應(yīng)的用戶配置結(jié)果; 活動(dòng)配置器根據(jù)接收到的提交活動(dòng)配置請(qǐng)求,按照預(yù)設(shè)的順序配置活動(dòng)中的事務(wù),并生成事務(wù)配置結(jié)果請(qǐng)求,所述事務(wù)配置結(jié)果請(qǐng)求包括已配置事務(wù)和待配置事務(wù); 活動(dòng)配置器向事務(wù)定義管理員群發(fā)出所述事務(wù)配置結(jié)果請(qǐng)求; 事務(wù)定義管理員群向活動(dòng)配置器返回事務(wù)配置申請(qǐng),所述事務(wù)配置申請(qǐng)是根據(jù)所述事務(wù)配置結(jié)果請(qǐng)求生成的,所述事務(wù)配置申請(qǐng)包括事務(wù)配置參數(shù)和事務(wù)流向參數(shù),所述事務(wù)配置參數(shù)是與所述已配置事務(wù)或所述待配置事務(wù)相對(duì)應(yīng)的; 活動(dòng)配置器根據(jù)所述事務(wù)配置申請(qǐng)配置已配置事務(wù)的參數(shù)和事務(wù)流向,或根據(jù)所述事務(wù)配置申請(qǐng)配置未配置事務(wù)的參數(shù)和事務(wù)流向,并生成待組裝節(jié)點(diǎn),所述待組裝節(jié)點(diǎn)是已配置事務(wù)的參數(shù)再次經(jīng)過(guò)配置后得到的,或所述待組裝節(jié)點(diǎn)是未配置事務(wù)的參數(shù)經(jīng)過(guò)配置后得到的; 活動(dòng)配置器根據(jù)事務(wù)和流向配置的結(jié)果生成活動(dòng)配置結(jié)果請(qǐng)求,所述配置結(jié)果請(qǐng)求包括一個(gè)待組裝的節(jié)點(diǎn); 活動(dòng)配置器向節(jié)點(diǎn)配置器返回所述活動(dòng)配置結(jié)果請(qǐng)求; 節(jié)點(diǎn)配置器將所述配置結(jié)果請(qǐng)求中包括的一個(gè)待組裝的節(jié)點(diǎn)進(jìn)行組裝,并生成更新節(jié)點(diǎn)配置文件和更新版本文件; 用戶或自動(dòng)機(jī)向節(jié)點(diǎn)配置器發(fā)出提交節(jié)點(diǎn)終止請(qǐng)求,所述節(jié)點(diǎn)終止終止請(qǐng)求包括預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件; 節(jié)點(diǎn)配置器根據(jù)生成的所述更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件對(duì)本地的節(jié)點(diǎn)配置文件和版本進(jìn)行更新; 節(jié)點(diǎn)配置器根據(jù)生成的所述更新節(jié)點(diǎn)配置文件、更新版本文件,或預(yù)設(shè)的更新節(jié)點(diǎn)配置文件和更新版本文件生成新`節(jié)點(diǎn)授權(quán)列表及參數(shù),并向節(jié)點(diǎn)授權(quán)管理器發(fā)出新節(jié)點(diǎn)授權(quán)列表及參數(shù); 節(jié)點(diǎn)授權(quán)管理器在接收到所述新節(jié)點(diǎn)授權(quán)列表及參數(shù)更新預(yù)先存儲(chǔ)在本地的節(jié)點(diǎn)授權(quán)列表; 節(jié)點(diǎn)授權(quán)管理器將更新后的節(jié)點(diǎn)授權(quán)列表標(biāo)記為待激活狀態(tài),并進(jìn)行存儲(chǔ),同時(shí)生成已更新節(jié)點(diǎn)授權(quán)列表信息; 節(jié)點(diǎn)授權(quán)管理器向用戶或自動(dòng)機(jī)發(fā)出所述已更新節(jié)點(diǎn)授權(quán)列表信息。
10.根據(jù)權(quán)利要求9所述的流程引擎處理方法,其特征在于,在所述節(jié)點(diǎn)授權(quán)管理器將更新后的節(jié)點(diǎn)授權(quán)列表標(biāo)記為待激活狀態(tài),并生成已更新節(jié)點(diǎn)授權(quán)列表信息后還包括:節(jié)點(diǎn)管理器動(dòng)態(tài)監(jiān)控節(jié)點(diǎn)配置器,若節(jié)點(diǎn)配置器生成更新節(jié)點(diǎn)配置文件,則節(jié)點(diǎn)管理器向節(jié)點(diǎn)配置器發(fā)出獲取所述更新節(jié)點(diǎn)配置文件的信息; 節(jié)點(diǎn)配置器在接收到所述獲取所述更新節(jié)點(diǎn)配置文件的信息后,向節(jié)點(diǎn)管理器發(fā)出更新節(jié)點(diǎn)配置文件; 節(jié)點(diǎn)管理器在接收到所述更新節(jié)點(diǎn)配置文件后,根據(jù)所述更新節(jié)點(diǎn)配置文件創(chuàng)建新的節(jié)點(diǎn)處理器并生成節(jié)點(diǎn)處理器創(chuàng)建結(jié)果,所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果包括指定的更新節(jié)點(diǎn)信息; 節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果; 節(jié)點(diǎn)授權(quán)管理器根據(jù)所述節(jié)點(diǎn)處理器創(chuàng)建結(jié)果中包括的指定的更新節(jié)點(diǎn)信息,將存儲(chǔ)在本地的所述標(biāo)記為待激活狀態(tài)的授權(quán)列表更改為激活狀態(tài); 若存在舊版本或需要關(guān)閉的節(jié)點(diǎn)處理器,節(jié)點(diǎn)授權(quán)管理器判斷是否存在舊版本節(jié)點(diǎn)或需要關(guān)閉的節(jié)點(diǎn)中的事務(wù)未處理完成; 若是,則等待,直到舊版本事務(wù)處理完成; 若否,則關(guān)閉舊版本的節(jié)點(diǎn)處理器,并生成關(guān)閉結(jié)果,所述舊版本節(jié)點(diǎn)用于處理舊版本事務(wù); 節(jié)點(diǎn)管理器向節(jié)點(diǎn)授權(quán)管理器發(fā)出關(guān)閉結(jié)果; 節(jié)點(diǎn)授權(quán)管理 器在接收到所述關(guān)閉結(jié)果后,將舊版本節(jié)點(diǎn)處理器標(biāo)示為卸載狀態(tài)。
【文檔編號(hào)】G06F9/46GK103870325SQ201410142807
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2014年4月10日 優(yōu)先權(quán)日:2014年4月10日
【發(fā)明者】張戰(zhàn) 申請(qǐng)人:張戰(zhàn)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1