業(yè)務(wù)流生成方法及裝置制造方法
【專利摘要】本發(fā)明提供一種業(yè)務(wù)流生成方法及裝置,該方法包括:調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型;對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置;根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。通過本發(fā)明的技術(shù)方案,可以提升業(yè)務(wù)流引擎的通用性和可定制性,并且能夠方便地適應(yīng)于各種需求變更下的業(yè)務(wù)流開發(fā)與更新。
【專利說明】業(yè)務(wù)流生成方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及業(yè)務(wù)流生成方法及裝置。
【背景技術(shù)】
[0002]在系統(tǒng)開發(fā)前,需要了解該系統(tǒng)的應(yīng)用場景和實際需求,從而實現(xiàn)具有針對性的系統(tǒng)開發(fā)工作。當(dāng)不同應(yīng)用場景下的實際需求類似時,可以通過對已開發(fā)系統(tǒng)的借鑒,避免重復(fù)開發(fā),提升后續(xù)系統(tǒng)的開發(fā)效率;然而,當(dāng)實際需求差異較大,或已開發(fā)系統(tǒng)的實際需求發(fā)生變化時,相關(guān)技術(shù)中往往無法對已開發(fā)系統(tǒng)進行借鑒,甚至可能導(dǎo)致系統(tǒng)的重新開發(fā)。
[0003]以安防系統(tǒng)為例。隨著視頻監(jiān)控系統(tǒng)(video surveillance & control system)、出入口控制系統(tǒng)(access control system)、入侵報警系統(tǒng)(intruder alarm system)、防爆與安全檢查系統(tǒng)等安防子系統(tǒng)的迅速發(fā)展,安全管理系統(tǒng)(security managementsystem)軟件對各個子系統(tǒng)的集成化、統(tǒng)一管理的需求越來越高。
[0004]然而,不同行業(yè)對于安防系統(tǒng)的處理流程需求不同,導(dǎo)致安全管理系統(tǒng)的設(shè)計和開發(fā)成為難點,而隨著使用過程中的需求增加和變化,涉及的子系統(tǒng)越來越復(fù)雜且多樣,使得每次定制化開發(fā)都需要重新設(shè)計和部署,存在嚴(yán)重的時間和資源浪費。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種新的技術(shù)方案,可以解決相關(guān)技術(shù)中多樣化的需求導(dǎo)致系統(tǒng)重復(fù)開發(fā)的技術(shù)問題。
[0006]為實現(xiàn)上述目的,本發(fā)明提供技術(shù)方案如下:
[0007]根據(jù)本發(fā)明的第一方面,提出了一種業(yè)務(wù)流生成方法,包括:
[0008]調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型;
[0009]對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置;
[0010]根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
[0011]根據(jù)本發(fā)明的第二方面,提出了一種業(yè)務(wù)流生成裝置,包括:
[0012]調(diào)用單元,用于調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型;
[0013]設(shè)置單元,用于對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置;
[0014]生成單元,用于根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
[0015]由以上技術(shù)方案可見,本發(fā)明通過采用基于事件的業(yè)務(wù)流引擎,使得業(yè)務(wù)流的開發(fā)具有通用性,則實際需求發(fā)生變化時,僅需要調(diào)整觸發(fā)事件和業(yè)務(wù)流節(jié)點的數(shù)據(jù)信息即可,而核心的業(yè)務(wù)流引擎并未發(fā)生變化,從而實現(xiàn)了主體結(jié)構(gòu)的可重復(fù)利用,極大地降低了對時間和資源的浪費,有助于提升系統(tǒng)的開發(fā)效率。
【專利附圖】
【附圖說明】
[0016]圖1示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流生成方法的流程圖;
[0017]圖2示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流引擎的結(jié)構(gòu)示意圖;
[0018]圖3示出了根據(jù)本發(fā)明一示例性實施例的基于業(yè)務(wù)流引擎的系統(tǒng)結(jié)構(gòu)示意圖;
[0019]圖4示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流處理方法的流程圖;
[0020]圖5示出了根據(jù)本發(fā)明另一示例性實施例的業(yè)務(wù)流處理方法的流程圖;
[0021]圖6示出了根據(jù)本發(fā)明一示例性實施例的處理業(yè)務(wù)流的示意圖;
[0022]圖7示出了根據(jù)本發(fā)明另一示例性實施例的處理業(yè)務(wù)流的示意圖;
[0023]圖8示出了根據(jù)本發(fā)明另一示例性實施例的處理業(yè)務(wù)流的示意圖;
[0024]圖9示出了根據(jù)本發(fā)明另一示例性實施例的處理業(yè)務(wù)流的示意圖;
[0025]圖10示出了根據(jù)本發(fā)明另一示例性實施例的處理業(yè)務(wù)流的示意圖;
[0026]圖11示出了根據(jù)本發(fā)明一示例性實施例的電子設(shè)備的結(jié)構(gòu)示意圖;
[0027]圖12示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流生成裝置的流程圖。
【具體實施方式】
[0028]為對本發(fā)明進行進一步說明,提供下列實施例:
[0029]請參考圖1,圖1示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流生成方法,可以包括下述步驟:
[0030]步驟102,調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型;
[0031]在本實施例中,圖2示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流引擎,其中Process (或Procedure)即業(yè)務(wù)流的結(jié)構(gòu)模型,其具體可以由多種類型的節(jié)點構(gòu)成:Event (即事件模型)、BLU (Business Logic Unit,業(yè)務(wù)邏輯單元,即業(yè)務(wù)流邏輯模型)、Act1n(即動作模型,也可以由多個Act1n構(gòu)成一個Activity);其中,Process中的節(jié)點還可以包括Sub process (子流程,即子業(yè)務(wù)流),且Sub process的結(jié)構(gòu)與圖2所示的Process的結(jié)構(gòu)相同,也可以由Event、BLU和Act1n節(jié)點構(gòu)成,并且也可以進一步包含其他Sub process節(jié)點,即Sub process相當(dāng)于對其他Process的調(diào)用。
[0032]其中,Event節(jié)點用于定義業(yè)務(wù)流所屬系統(tǒng)(如安全管理系統(tǒng)等)內(nèi)部生成或連接至該系統(tǒng)的各子系統(tǒng)上報的事件,在系統(tǒng)內(nèi)具有唯一 ID和統(tǒng)一格式;Act1n節(jié)點用于定義一個或多個動作,每個動作為一項基礎(chǔ)業(yè)務(wù),其中“基礎(chǔ)業(yè)務(wù)”應(yīng)該理解為具體的不可再分的業(yè)務(wù);BLU節(jié)點用于定義業(yè)務(wù)流中的相鄰節(jié)點之間的轉(zhuǎn)移條件,該轉(zhuǎn)移條件可以為數(shù)值關(guān)系或邏輯關(guān)系等,比如:啟動、停止、掛起、使能、反向、計數(shù)、延遲、比較(比如大小比較、字符串模糊匹配、時間段匹配等)、輸入(比如用戶交互、添加流程數(shù)據(jù)、Π顯示等)。
[0033]步驟104,對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置;
[0034]在本實施例中,基于如圖2所示統(tǒng)一的業(yè)務(wù)流引擎結(jié)構(gòu),在執(zhí)行具體的業(yè)務(wù)流開發(fā)時,只需要參照該業(yè)務(wù)流引擎結(jié)構(gòu),對業(yè)務(wù)流所需的節(jié)點、每個節(jié)點的參數(shù)以及各節(jié)點之間的邏輯關(guān)系等進行設(shè)置即可,顯著降低了業(yè)務(wù)流的開發(fā)量。其中,每種類型的節(jié)點的數(shù)據(jù)結(jié)構(gòu),也在相應(yīng)的節(jié)點模型中予以定義,比如:
[0035]在Event模型中,詳細(xì)信息需要由各個子系統(tǒng)的接入模塊確定,具體可以包括:唯一 ID、類型、事件源、發(fā)生時間、事件參數(shù)列表信息等。
[0036]在Act1n模型中,具體可以包括:唯一 ID、執(zhí)行模式、參數(shù)數(shù)據(jù)列表信息,其中執(zhí)行模式是指該Act1n節(jié)點的執(zhí)行方式,即該Act1n節(jié)點所屬的系統(tǒng)與其他各個子系統(tǒng)之間業(yè)務(wù)調(diào)用的方式,該方式可以有多種類型,比如系統(tǒng)內(nèi)部定義的消息模式、sip/http等指定互通的協(xié)議模式、SDK調(diào)用模式等。
[0037]其中,若為Activity模型,則包括:該Activity節(jié)點下的Act1n數(shù)量和Act1n信息列表,其中包含每個Act1n的信息,且信息結(jié)構(gòu)同Act1n模型中的信息。
[0038]在BLU模型中,具體可以包括:名稱、執(zhí)行ID、執(zhí)行狀態(tài),以及輸入信息、輸出信息。其中,輸入信息可以包括:實例化模式、輸入數(shù)量和每個輸入的詳細(xì)信息,該詳細(xì)信息可以包含:輸入槽位使用標(biāo)識、輸入Node類型、輸入Node名稱、輸入BLU執(zhí)行ID和輸入的數(shù)據(jù)列表信息。輸出信息可以包括:輸出數(shù)量、是否輸出Event、Event信息(如果需要輸出的話)、具體輸出項信息,該具體輸出項信息可以包含:轉(zhuǎn)移條件列表信息(由下一個節(jié)點的轉(zhuǎn)移條件列表信息定義)、輸出的數(shù)據(jù)列表信息。
[0039]其中,在上述各類型的節(jié)點中,Act1n模型中的“參數(shù)數(shù)據(jù)列表信息”、BLU模型中的“輸入信息”中的“輸入的數(shù)據(jù)列表信息”和“輸出信息”中的“輸出的數(shù)據(jù)列表信息”的數(shù)據(jù)結(jié)構(gòu)相同,均可以包括:數(shù)據(jù)數(shù)量和具體數(shù)據(jù)信息,該具體數(shù)據(jù)信息可以包括:字段名、字段別名、字段值、字段類型、來源類型、來源名稱等。
[0040]步驟106,根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
[0041]在本實施例中,基于對上述各節(jié)點模型的選取和定義,則生成的“自定義業(yè)務(wù)流”即由上述Event節(jié)點、Act1n節(jié)點、BLU節(jié)點和Sub process節(jié)點構(gòu)成的Process。
[0042]Process和Sub process的數(shù)據(jù)結(jié)構(gòu)可以包括:名稱、數(shù)據(jù)列表信息、節(jié)點數(shù)量、節(jié)點信息、當(dāng)前執(zhí)行的節(jié)點序號和審計信息。其中,“名稱”是標(biāo)識該業(yè)務(wù)流的唯一 ID ;“數(shù)據(jù)列表信息”與Act1n模型中的“參數(shù)數(shù)據(jù)列表信息”等的數(shù)據(jù)結(jié)構(gòu)相同;“審計信息”為是否開始審計等;“節(jié)點信息”即該Process或Sub process包含的所有節(jié)點的信息,比如每個節(jié)點對應(yīng)的“節(jié)點信息”可以包括:
[0043]當(dāng)前節(jié)點的類型、名稱、詳細(xì)信息和下一個節(jié)點的信息。其中,“類型”即:Event節(jié)點、BLU節(jié)點、Act1n節(jié)點、Activity節(jié)點或Sub process節(jié)點;“名稱”即當(dāng)前節(jié)點在所屬Process或Sub process中的唯一標(biāo)識;“詳細(xì)信息”即上述各節(jié)點模型中包含的信息;“下一個節(jié)點的信息”可以包括:節(jié)點名稱、序號、轉(zhuǎn)移條件列表信息,該轉(zhuǎn)移條件列表信息具體可以包含:轉(zhuǎn)移條件數(shù)量、邏輯操作符(與、或、非)、轉(zhuǎn)移條件項列表,該轉(zhuǎn)移條件項信息具體可以包括:轉(zhuǎn)移條件項名稱、關(guān)系操作符(等于、不等于、大于、等于、大于或等于、小于或等于、在集合中、不在集合中、包含某字符串、不包含字符串等)、左/右字段信息(字段源類型、字段輸入序號、字段名、字段值、字段數(shù)據(jù)類型)等,從而通過在當(dāng)前節(jié)點的“節(jié)點信息”中包含“下一個節(jié)點的信息”,以確定節(jié)點之間的相互邏輯關(guān)系。
[0044]由上述實施例可知,本發(fā)明的業(yè)務(wù)流基于事件的觸發(fā)而執(zhí)行,則基于該業(yè)務(wù)流引擎進行業(yè)務(wù)流的開發(fā)時,不同業(yè)務(wù)流之間僅觸發(fā)事件等節(jié)點的參數(shù)發(fā)生變化,而作為核心結(jié)構(gòu)的業(yè)務(wù)流引擎無需變化,使得業(yè)務(wù)需求發(fā)生變化時,只需要對業(yè)務(wù)流引擎中各節(jié)點進行重新定義即可,極大地提高了業(yè)務(wù)流開發(fā)過程中的代碼重復(fù)利用,有助于節(jié)省開發(fā)資源、提升開發(fā)效率。
[0045]基于上述業(yè)務(wù)流引擎,本發(fā)明進一步提出了圖3所示的系統(tǒng)結(jié)構(gòu),該系統(tǒng)以如圖2所示的業(yè)務(wù)流引擎為核心,通過各接口連接至多個功能模塊,從而實現(xiàn)與中心數(shù)據(jù)庫、子系統(tǒng)以及外部設(shè)備等的數(shù)據(jù)交互。下面基于系統(tǒng)內(nèi)的各功能模塊,對該系統(tǒng)的工作原理進行詳細(xì)說明:
[0046]1)WEB/H流程定制配置模塊
[0047]WEB/UI流程定制配置模塊通過接口 I與業(yè)務(wù)流引擎相連,則用戶可以通過該模塊訪問業(yè)務(wù)流引擎,并基于如圖1所示的業(yè)務(wù)流生成方法,對具體的業(yè)務(wù)流進行自定義,還可以對業(yè)務(wù)流的配置信息進行保存與查詢等操作。
[0048]具體地,用戶可以通過WEB頁面或客戶端的Π界面中對業(yè)務(wù)流進行配置和生成等操作。在WEB頁面或Π界面上,用戶可以通過拖拽等圖形化操作完成業(yè)務(wù)流的流程圖繪制;通過雙擊每個節(jié)點模型調(diào)出參數(shù)輸入框并輸入對應(yīng)的配置參數(shù),比如對于“聯(lián)動攝像機的實況”這一業(yè)務(wù)流,可以輸入如攝像機ID、預(yù)置位、聯(lián)動時間、立即觸發(fā)還是延遲觸發(fā)、反向、使能等配置參數(shù);配置完成后,用戶可以通過接口 5調(diào)用系統(tǒng)數(shù)據(jù)中心交互模塊,從而將生成的業(yè)務(wù)流的所有信息保存至中心數(shù)據(jù)庫,并且可以隨時對該業(yè)務(wù)流執(zhí)行調(diào)用和查詢等操作。
[0049]可見,WEB/UI流程定制配置模塊實際上是業(yè)務(wù)流的定制工具,可以采用基于B/S (Browser/Server,瀏覽器/服務(wù)器端)模式的WEB配置界面或C/S (Client/Server,客戶端/服務(wù)器端)模式的單獨客戶端配置界面,對于前者可采用VML(The Vector MarkupLanguage,矢量可標(biāo)記語言)實畫圖+JavaScript實現(xiàn)拖拽,后者客戶端自行實現(xiàn)畫圖與拖拽,兩者都可以使用XML(Extensible Markup Language,擴展性標(biāo)識語言)實現(xiàn)業(yè)務(wù)流的信息保存與解析。
[0050]2)WEB/H顯示或系統(tǒng)監(jiān)控模塊
[0051]WEB/UI顯示或系統(tǒng)監(jiān)控模塊通過接口 2與業(yè)務(wù)流引擎相連,用于完成系統(tǒng)對業(yè)務(wù)流的過程監(jiān)控與實例運行時狀態(tài)顯示,提供業(yè)務(wù)流的權(quán)限優(yōu)先級控制模型。比如某個業(yè)務(wù)流總共有13個節(jié)點,則當(dāng)該業(yè)務(wù)流執(zhí)行到第6個節(jié)點時,即可通過WEB/Π顯示或系統(tǒng)監(jiān)控模塊展示為“當(dāng)前執(zhí)行進度:6/13”。
[0052]3)用戶交互輸入/輸出模塊
[0053]用戶交互輸入/輸出模塊通過接口 3與業(yè)務(wù)流引擎相連,主要是在業(yè)務(wù)流的實例化過程中實現(xiàn)WEB網(wǎng)頁(基于B/S模式)或客戶端(基于C/S模式)與用戶的交互;同時,還可以用于對服務(wù)器端對應(yīng)的信息進行解析與保存等。
[0054]4)具體業(yè)務(wù)模塊
[0055]具體業(yè)務(wù)模塊連接至各子系統(tǒng)模塊,通過接口 4與業(yè)務(wù)流引擎相連,用于實現(xiàn)與各子系統(tǒng)之間的業(yè)務(wù)調(diào)用和交互。
[0056]5)系統(tǒng)數(shù)據(jù)中心交互模塊
[0057]系統(tǒng)數(shù)據(jù)中心交互模塊通過接口 5與業(yè)務(wù)流引擎相連,用于與系統(tǒng)的中心數(shù)據(jù)庫交互,從而獲取與解析業(yè)務(wù)流的信息、記錄與查詢業(yè)務(wù)流執(zhí)行的日志信息等。
[0058]基于上述功能模塊,則業(yè)務(wù)流引擎可以完成對自定義業(yè)務(wù)流的解析,業(yè)務(wù)流實例化的控制(創(chuàng)建、激活、掛起、終止等),業(yè)務(wù)流中業(yè)務(wù)的次序、內(nèi)容導(dǎo)航,以及與用戶和子系統(tǒng)的交互,并提供管理與審查功能。
[0059]同時,圖3還示出了系統(tǒng)內(nèi)的數(shù)據(jù)類型,包括:控制數(shù)據(jù)、流程數(shù)據(jù)、應(yīng)用業(yè)務(wù)數(shù)據(jù)。其中,控制數(shù)據(jù)為:業(yè)務(wù)流引擎內(nèi)部的狀態(tài)、控制等通用數(shù)據(jù),與具體的業(yè)務(wù)流和應(yīng)用業(yè)務(wù)無關(guān);流程數(shù)據(jù)為:當(dāng)前業(yè)務(wù)流的定制信息、實例化運行時上下文傳遞用于流程控制的數(shù)據(jù)(這部分?jǐn)?shù)據(jù)最終可能來自應(yīng)用數(shù)據(jù),但是在流程定制時就可以確定其名值對中的名,值未知,故歸為流程數(shù)據(jù));應(yīng)用業(yè)務(wù)數(shù)據(jù)為:本業(yè)務(wù)流中具體應(yīng)用業(yè)務(wù)的數(shù)據(jù),業(yè)務(wù)流引擎不可訪問系統(tǒng)的應(yīng)用數(shù)據(jù),一般需訪問系統(tǒng)的中心數(shù)據(jù)庫。
[0060]請參考圖4,圖4示出了根據(jù)本發(fā)明一示例性實施例的業(yè)務(wù)流處理方法,該方法可以包括下述步驟:
[0061]步驟402,根據(jù)檢測到的用戶觸發(fā)操作,確定相應(yīng)的被觸發(fā)的事件;
[0062]步驟404,根據(jù)所述被觸發(fā)的事件的數(shù)據(jù)信息,以及預(yù)配置的事件與業(yè)務(wù)流之間的數(shù)據(jù)信息的映射關(guān)系,查詢與所述被觸發(fā)的事件相匹配的自定義業(yè)務(wù)流;
[0063]在本實施例中,通過事先在Event (事件)與Process (業(yè)務(wù)流)之間建立映射關(guān)系,則配置的自定義業(yè)務(wù)流可以在不同場景下被重復(fù)使用,有助于降低開發(fā)量。其中,僅需要將該自定義業(yè)務(wù)流與所需的Event之間建立映射關(guān)系,即可通過該Event方便地實現(xiàn)對該自定義業(yè)務(wù)流的調(diào)用。
[0064]步驟406,在加載所述自定義業(yè)務(wù)流時,將所述被觸發(fā)的事件的數(shù)據(jù)傳遞至查詢到的自定義業(yè)務(wù)流;
[0065]在本實施例中,通過將被觸發(fā)的事件的數(shù)據(jù)傳遞至自定義業(yè)務(wù)流,使得自定義業(yè)務(wù)流中可以通過對該事件的解析,觸發(fā)其包含的其他節(jié)點。
[0066]步驟408,根據(jù)所述被觸發(fā)的事件的數(shù)據(jù),執(zhí)行所述自定義業(yè)務(wù)流。
[0067]由上述實施例可知,本發(fā)明的業(yè)務(wù)流基于事件的觸發(fā)而執(zhí)行,則基于該業(yè)務(wù)流引擎進行業(yè)務(wù)流的開發(fā)時,不同業(yè)務(wù)流之間僅觸發(fā)事件等節(jié)點的參數(shù)發(fā)生變化,而作為核心結(jié)構(gòu)的業(yè)務(wù)流引擎無需變化,使得業(yè)務(wù)需求發(fā)生變化時,只需要對業(yè)務(wù)流引擎中各節(jié)點進行重新定義即可,極大地提高了業(yè)務(wù)流開發(fā)過程中的代碼重復(fù)利用,有助于節(jié)省開發(fā)資源、提升開發(fā)效率。
[0068]下面結(jié)合圖5對本發(fā)明的業(yè)務(wù)流處理方法進行詳細(xì)描述。其中,圖5示出了根據(jù)本發(fā)明另一示例性實施例的業(yè)務(wù)流處理方法,該方法可以包括下述步驟:
[0069]步驟502,系統(tǒng)接收到訂閱的Event消息;
[0070]在本實施例中,作為一示例性實施方式,用戶可以在系統(tǒng)中進行Event消息的訂閱,相當(dāng)于只有接收到訂閱的Event消息時,才觸發(fā)后續(xù)步驟。當(dāng)然,作為另一示例性實施方式,也可以不執(zhí)行Event消息的訂閱,而是針對接收到的每條Event消息,均執(zhí)行后續(xù)步驟。
[0071]步驟504,查詢相匹配的Process ;
[0072]在本實施例中,對相匹配的Process進行查詢之前,接收到的Event消息應(yīng)當(dāng)于某個Process之間存在匹配關(guān)系。比如可以通過下述方式,事先建立該匹配關(guān)系:
[0073]步驟502’,基于用戶需求,在Event消息與Process業(yè)務(wù)流之間建立映射關(guān)系,比如針對Event消息Ea和Process業(yè)務(wù)流Pa,可以在該Ea與Pa之間進行映射關(guān)系的配置;
[0074]其中,建立映射關(guān)系具體是指在Event的數(shù)據(jù)信息和Process的數(shù)據(jù)信息之間建立映射關(guān)系。
[0075]步驟504’,將Ea-Pa映射關(guān)系存儲至系統(tǒng)的中心數(shù)據(jù)庫,比如通過圖3所示的系統(tǒng)數(shù)據(jù)中心交互模塊實現(xiàn)該存儲操作;
[0076]進一步地,假定步驟502中接收到的Event消息即Ea,則當(dāng)步驟504中查詢到匹配于Ea的Process為Pa時,可以由上述的系統(tǒng)數(shù)據(jù)中心交互模塊返回查詢結(jié)果。
[0077]步驟506,記載Pa,并根據(jù)Ea與Pa之間的映射關(guān)系,將Ea的數(shù)據(jù)信息全部傳遞至Pa,可以對Pa對應(yīng)的“來源類型”、“來源名稱”等進行填充,以標(biāo)識這些數(shù)據(jù)來自Ea。
[0078]步驟508,依次解析和執(zhí)行Pa下的每個Node (節(jié)點)。
[0079]對于Process下的每個節(jié)點,會基于節(jié)點的具體類型來實現(xiàn)相應(yīng)的執(zhí)行方式,包括:
[0080]I) Event 節(jié)點
[0081]Event節(jié)點為Process業(yè)務(wù)流的觸發(fā)節(jié)點,比如圖5所示的Ea,用于觸發(fā)Pa中后續(xù)節(jié)點的執(zhí)行。
[0082]2) Act1n 節(jié)點
[0083]Act1n節(jié)點主要是執(zhí)行來自不同子系統(tǒng)的業(yè)務(wù),并將Process中的數(shù)據(jù)傳遞給對應(yīng)的子系統(tǒng);其中,針對不同的子系統(tǒng)時,需要采用對應(yīng)的通信方式。
[0084]3) BLU 節(jié)點
[0085]BLU節(jié)點的執(zhí)行包括兩個方面,即輸入的判斷與執(zhí)行、輸出的判斷與執(zhí)行。
[0086]a.輸入的判斷與執(zhí)行:
[0087]需要根據(jù)輸入信息中的實例化模式判斷,以進入對應(yīng)BLU實例。實例化模式一般有:
[0088]單輸入-單實例模式:當(dāng)BLU實例僅有一個輸入時,如果已初始化過一個Node名稱一樣的BLU實例,那么將該BLU實例的輸入使用現(xiàn)在的輸入覆蓋,然后對該BLU實例的輸出進行判斷;
[0089]單輸入-多實例模式:當(dāng)BLU實例僅有一個輸入時,如果已初始化過一個Node名稱一樣的BLU實例,那么就再初始化一個BLU實例,直接對輸出進行判斷;
[0090]多輸入-順序輸入-單實例模式:對于已初始化的BLU實例,如果輸入沒有滿,則該輸入占用該BLU實例的空余槽位,并判斷是否有效輸入已滿(可能有些輸入因為定時器的限制,導(dǎo)致已無效),如滿則進行輸出判斷;如果輸入已滿,則替換掉第一個槽位;
[0091]多輸入-順序滿-多實例模式:多輸入-順序滿-多實例模式與多輸入-順序輸入-單實例模式的區(qū)別在于,如果輸入已滿,則再初始化一個BLU實例。
[0092]多輸入-不同-單實例模式:如果已有BLU實例的輸入被占用,則直接替換該輸入,如果輸入滿,則進行輸出的判斷執(zhí)行;
[0093]多輸入-不同-多實例模式:如果已有BLU實例的輸入被占用,則新初始化一個BLU實例,若該BLU實例輸入滿,則進行輸出的判斷執(zhí)行。
[0094]b.輸出的判斷與執(zhí)行:
[0095]對于每一個輸出,將輸入信息或Process數(shù)據(jù)信息填充至輸出字段,然后判斷是否滿足輸出條件,如果滿足則輸出,并將BLU實例的狀態(tài)置位為Enable,否則不輸出。對于需要輸出Event的,按照用戶配置的輸出Event的內(nèi)容,將對應(yīng)Process數(shù)據(jù)——填充至Event信息。對于輸出字段是定時器的,啟動對應(yīng)定時器,超時后將BLU實例的狀態(tài)置位為Disable。
[0096]此外,當(dāng)步驟508中的最后一個節(jié)點執(zhí)行完成后,若存在與預(yù)配置的審計信息相匹配的信息,則生成審計報告,否則不生成;其中,審計信息是用戶在定制Process時配置的。
[0097]基于圖5所示的業(yè)務(wù)流處理方法,下面結(jié)合一典型應(yīng)用場景進行詳細(xì)描述。請參考圖6,圖6示出了一示例性實施例的請求開啟銀行金庫大門的業(yè)務(wù)流:
[0098]圖6所示的業(yè)務(wù)流包括5個節(jié)點,分別為Event節(jié)點1:刷卡事件I ;Event節(jié)點2:刷卡事件2 ;BLU節(jié)點I:BLU-1,J.BLU節(jié)點I的輸入端連接至Event節(jié)點I和Event節(jié)點
2、輸出端連接至BLU節(jié)點2 ;BLU節(jié)點2:BLU_2。
[0099]其中,BLU節(jié)點I為單輸入-多實例模式,因而為刷卡事件I和刷卡事件2分別建立一個BLU-1實例;其中,BLU節(jié)點I的輸出轉(zhuǎn)移條件中有10秒定時器,S卩刷卡事件的觸發(fā)時間不超過十秒時輸出卡ID,否則輸出無效。
[0100]BLU節(jié)點2為多輸入-順序滿-多實例模式,輸入是兩個BLU-1的輸出,輸出是請求開門事件,輸出的條件為:①兩個輸入取“并”邏輯且均有效;②兩個輸入的卡的ID不同。因此,如果任何一個輸入超過10秒后狀態(tài)被置為無效或者兩次刷卡時同一 ID,則輸出判斷失敗,即不會認(rèn)為是請求開門事件,從而對兩次刷卡事件進行了關(guān)聯(lián)和匯聚。
[0101]在圖6所示的業(yè)務(wù)流基礎(chǔ)上,如果對應(yīng)用需求提出了修改,比如要求刷卡時的卡ID在{A,B,C}范圍內(nèi),才允許開門。相應(yīng)地,圖7示出了滿足上述條件的業(yè)務(wù)流,該業(yè)務(wù)流只需要在圖6實施例的基礎(chǔ)上,對BLU節(jié)點I的業(yè)務(wù)邏輯進行修改即可,即為BLU節(jié)點I的輸出轉(zhuǎn)移條件添加“卡ID在指定范圍內(nèi)”,則使得刷卡事件I或刷卡事件2輸入的卡ID不滿足該條件時,不會觸發(fā)請求開門事件,從而不僅對兩次刷卡事件進行了關(guān)聯(lián)和匯聚,還對Event的內(nèi)容進行了過濾。
[0102]同時,基于圖6所示的已開發(fā)的業(yè)務(wù)流,僅需要對BLU節(jié)點I進行配置調(diào)整,而可以重復(fù)利用其他節(jié)點及處理邏輯,即可得到圖7所示的業(yè)務(wù)流,從而有效提升了業(yè)務(wù)流的開發(fā)效率。
[0103]在圖7所示的業(yè)務(wù)流基礎(chǔ)上,如果對應(yīng)用需求提出了修改,比如要求在指定時間段(比如8:00-11:30和13:00-17:00,即上班時間)才能夠正常觸發(fā)請求開門事件,否則需要經(jīng)理值班室打開一個預(yù)設(shè)開關(guān)。相應(yīng)地,圖8示出了滿足上述條件的業(yè)務(wù)流,該業(yè)務(wù)流在圖7所示實施例的基礎(chǔ)上添加了下述節(jié)點:
[0104]BLU節(jié)點3,在BLU節(jié)點2對應(yīng)的BLU-2實例有效時,對時間條件進行判斷;當(dāng)處于指定時間段內(nèi)時,則BLU節(jié)點3對應(yīng)的BLU-3實例的輸出將作為BLU節(jié)點6 (對應(yīng)于BLU-6實例)的輸入;當(dāng)處于其他時間時,則BLU-3實例的輸出將作為BLU節(jié)點5 (對應(yīng)于BLU-5實例)的輸入。
[0105]其中,BLU-5的輸入還包括BLU節(jié)點4對應(yīng)的BLU-4實例,該BLU-4實例由Event節(jié)點3 “經(jīng)理值班室的開關(guān)按下”觸發(fā),并當(dāng)判斷該事件的觸發(fā)時間點處于“其他時間”時,向BLU-5實例進行輸出;而BLU-5實例將來自BLU-3實例和BLU-4實例的輸入取“并”邏輯作為輸出轉(zhuǎn)移條件,BLU-6實例在滿足“經(jīng)理值班室的開關(guān)按下”觸發(fā)事件時,也可以觸發(fā)“請求開門事件”。
[0106]可見,上述實施例通過BLU節(jié)點對子系統(tǒng)的刷卡事件進行了過濾、關(guān)聯(lián)與匯聚,最終形成對用戶來說合規(guī)且有效的事件信息,提高了信息度,節(jié)省了人工查看多個事件后再由操作員用戶做出判斷的工作量,實現(xiàn)了事件定制化與處理自動化。
[0107]下面結(jié)合另一典型實施例進行說明。請參考圖9,圖9示出了另一示例性實施例的請求開啟銀行金庫大門的業(yè)務(wù)流,該業(yè)務(wù)流在系統(tǒng)接收到請求開門事件時觸發(fā),包括:
[0108]步驟902,在Activity業(yè)務(wù)活動中,對刷卡信息與持卡人信息進行對比;
[0109]在本實施例中,上述對比操作具體如圖10所示:
[0110]步驟902A,獲取刷卡信息;
[0111]步驟902B,展示聯(lián)動實時窗格;
[0112]步驟902C,執(zhí)行用戶交互,提示抓拍操作;
[0113]步驟902D,用戶手動執(zhí)行抓拍操作;
[0114]步驟902E,執(zhí)行用戶交互,確認(rèn)抓拍操作;
[0115]步驟902F,值班操作員初步對比。
[0116]步驟904,在Act1n活動I中,由領(lǐng)導(dǎo)進行核實與授權(quán);
[0117]步驟906,在Act1n活動2中,值班員執(zhí)行開門操作,然后結(jié)束業(yè)務(wù)流。
[0118]圖11示出了根據(jù)本申請的一示例性實施例的電子設(shè)備的示意結(jié)構(gòu)圖。請參考圖11,在硬件層面,該電子設(shè)備包括處理器、內(nèi)部總線、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲器中讀取對應(yīng)的計算機程序到內(nèi)存中然后運行,在邏輯層面上形成業(yè)務(wù)流生成裝置。當(dāng)然,除了軟件實現(xiàn)方式之外,本申請并不排除其他實現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說以下處理流程的執(zhí)行主體并不限定于各個邏輯單元,也可以是硬件或邏輯器件。
[0119]請參考圖12,在軟件實施方式中,該業(yè)務(wù)流生成裝置可以包括調(diào)用單元、設(shè)置單元和生成單元。其中:
[0120]調(diào)用單元,用于調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型;
[0121]設(shè)置單元,用于對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置;
[0122]生成單元,用于根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
[0123]可選的,所述事件模型用于定義業(yè)務(wù)流所屬系統(tǒng)內(nèi)部生成或連接至該系統(tǒng)的各子系統(tǒng)上報的事件;
[0124]所述動作模型用于定義一個或多個動作,每個動作為一項基礎(chǔ)業(yè)務(wù);
[0125]所述業(yè)務(wù)邏輯模型用于定義業(yè)務(wù)流中的相鄰節(jié)點之間的轉(zhuǎn)移條件。
[0126]可選的,所述節(jié)點模型還包括:
[0127]子業(yè)務(wù)流模型,所述子業(yè)務(wù)流模型用于對已生成的業(yè)務(wù)流進行調(diào)用。
[0128]可選的,還包括:
[0129]選取單元,用于選取事件;
[0130]映射單元,用于將被選取的事件的數(shù)據(jù)信息與所述自定義業(yè)務(wù)流的數(shù)據(jù)信息進行映射配置操作;
[0131]存儲單元,用于存儲配置的映射關(guān)系,以使得當(dāng)所述被選取的事件被觸發(fā)時,根據(jù)所述映射關(guān)系調(diào)用所述自定義業(yè)務(wù)流。
[0132]因此,本發(fā)明通過采用基于事件的業(yè)務(wù)流引擎,使得業(yè)務(wù)流的開發(fā)具有通用性,則實際需求發(fā)生變化時,僅需要調(diào)整觸發(fā)事件和業(yè)務(wù)流節(jié)點的數(shù)據(jù)信息即可,而核心的業(yè)務(wù)流引擎并未發(fā)生變化,從而實現(xiàn)了主體結(jié)構(gòu)的可重復(fù)利用,極大地降低了對時間和資源的浪費,有助于提升系統(tǒng)的開發(fā)效率。
[0133]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種業(yè)務(wù)流生成方法,其特征在于,包括: 調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型; 對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置; 根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述事件模型用于定義業(yè)務(wù)流所屬系統(tǒng)內(nèi)部生成或連接至該系統(tǒng)的各子系統(tǒng)上報的事件; 所述動作模型用于定義一個或多個動作,每個動作為一項基礎(chǔ)業(yè)務(wù); 所述業(yè)務(wù)邏輯模型用于定義業(yè)務(wù)流中的相鄰節(jié)點之間的轉(zhuǎn)移條件。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點模型還包括: 子業(yè)務(wù)流模型,所述子業(yè)務(wù)流模型用于對已生成的業(yè)務(wù)流進行調(diào)用。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 選取事件; 將被選取的事件的數(shù)據(jù)信息與所述自定義業(yè)務(wù)流的數(shù)據(jù)信息進行映射配置操作;存儲配置的映射關(guān)系,以使得當(dāng)所述被選取的事件被觸發(fā)時,根據(jù)所述映射關(guān)系調(diào)用所述自定義業(yè)務(wù)流。
5.一種業(yè)務(wù)流生成裝置,其特征在于,包括: 調(diào)用單元,用于調(diào)用預(yù)配置的業(yè)務(wù)流引擎,該業(yè)務(wù)流引擎包含業(yè)務(wù)流的結(jié)構(gòu)模型以及用于構(gòu)成業(yè)務(wù)流的節(jié)點模型;其中,所述節(jié)點模型包括事件模型、動作模型和業(yè)務(wù)邏輯模型; 設(shè)置單元,用于對每個節(jié)點模型執(zhí)行相應(yīng)的參數(shù)設(shè)置; 生成單元,用于根據(jù)完成參數(shù)設(shè)置后的節(jié)點模型以及配置的各節(jié)點模型之間的邏輯關(guān)系,生成自定義業(yè)務(wù)流。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于, 所述事件模型用于定義業(yè)務(wù)流所屬系統(tǒng)內(nèi)部生成或連接至該系統(tǒng)的各子系統(tǒng)上報的事件; 所述動作模型用于定義一個或多個動作,每個動作為一項基礎(chǔ)業(yè)務(wù); 所述業(yè)務(wù)邏輯模型用于定義業(yè)務(wù)流中的相鄰節(jié)點之間的轉(zhuǎn)移條件。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述節(jié)點模型還包括: 子業(yè)務(wù)流模型,所述子業(yè)務(wù)流模型用于對已生成的業(yè)務(wù)流進行調(diào)用。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括: 選取單元,用于選取事件; 映射單元,用于將被選取的事件的數(shù)據(jù)信息與所述自定義業(yè)務(wù)流的數(shù)據(jù)信息進行映射配置操作; 存儲單元,用于存儲配置的映射關(guān)系,以使得當(dāng)所述被選取的事件被觸發(fā)時,根據(jù)所述映射關(guān)系調(diào)用所述自定義業(yè)務(wù)流。
【文檔編號】G06F9/44GK104239052SQ201410466192
【公開日】2014年12月24日 申請日期:2014年9月12日 優(yōu)先權(quán)日:2014年9月12日
【發(fā)明者】張磊, 楊利彪 申請人:浙江宇視科技有限公司