據(jù)配置文件中的定義按 順序調(diào)用響應(yīng)功能集模塊120中的功能,每個(gè)功能可以在數(shù)據(jù)池130中存取共享數(shù)據(jù)。
[0050] 圖4是根據(jù)本發(fā)明一實(shí)施例的狀態(tài)機(jī)實(shí)例。參考圖4所示,狀態(tài)機(jī)400可包含多 個(gè)狀態(tài),例如父狀態(tài)1和父狀態(tài)2。每一父狀態(tài)下還可包含一個(gè)或多個(gè)子狀態(tài),例如父狀態(tài) 2下的子狀態(tài)2-1和子狀態(tài)2-2。在特定的事件觸發(fā)下,狀態(tài)機(jī)在這些狀態(tài)間轉(zhuǎn)換,并執(zhí)行 相應(yīng)的響應(yīng)功能。例如父狀態(tài)1在事件1觸發(fā)下,執(zhí)行響應(yīng)功能1-1并轉(zhuǎn)換到父狀態(tài)2 ;父 狀態(tài)2在事件2的觸發(fā)下,執(zhí)行響應(yīng)功能1-2并轉(zhuǎn)換到父狀態(tài)1。在父狀態(tài)2內(nèi)部,子狀態(tài) 2-1在事件3觸發(fā)下,執(zhí)行響應(yīng)功能2-1并轉(zhuǎn)換到子狀態(tài)2-2。父狀態(tài)1向響應(yīng)功能集模塊 1調(diào)用響應(yīng)功能1-1。父狀態(tài)2向響應(yīng)功能集模塊1調(diào)用響應(yīng)功能1-2。子狀態(tài)2-1向響應(yīng) 功能集模塊2調(diào)用響應(yīng)功能2-1。響應(yīng)功能集模塊1、2中被調(diào)用的各個(gè)響應(yīng)功能1-1、1-2 和2-1可以在數(shù)據(jù)池130中存取共享數(shù)據(jù)。
[0051 ] 圖8是根據(jù)本發(fā)明一實(shí)施例的狀態(tài)機(jī)實(shí)現(xiàn)方法流程圖。參考圖8所示,此方法800 包括狀態(tài)機(jī)生成流程810,并具體包括以下步驟:
[0052] 步驟811,獲取用于生成狀態(tài)機(jī)的配置文件;
[0053] 步驟812,根據(jù)該配置文件生成狀態(tài)機(jī);
[0054] 步驟813,提供一響應(yīng)功能集模塊,該響應(yīng)功能集模塊包含該狀態(tài)機(jī)中的響應(yīng)信息 所對(duì)應(yīng)的響應(yīng)功能。
[0055] 需要指出的是,此實(shí)施例的方法既可以在圖1所示的裝置中實(shí)施,也可以在其它 裝置中實(shí)施。當(dāng)在圖1所示的裝置中實(shí)施時(shí),步驟811和812是在狀態(tài)機(jī)引擎110中執(zhí)行, 狀態(tài)機(jī)引擎110和響應(yīng)功能集模塊120相互獨(dú)立。
[0056] 圖9是根據(jù)本發(fā)明另一實(shí)施例的狀態(tài)機(jī)實(shí)現(xiàn)方法流程圖。參考圖9所示,此方法 900包括狀態(tài)機(jī)生成流程910,并具體包括以下步驟:
[0057] 步驟911,獲取用于生成狀態(tài)機(jī)的配置文件;
[0058] 步驟912,根據(jù)該配置文件生成狀態(tài)機(jī);
[0059] 步驟913,提供一響應(yīng)功能集模塊,該響應(yīng)功能集模塊包含該狀態(tài)機(jī)中的響應(yīng)信息 所對(duì)應(yīng)的響應(yīng)功能;
[0060] 步驟914,提供一數(shù)據(jù)池,該數(shù)據(jù)池包含該響應(yīng)功能集模塊的各響應(yīng)功能需要共享 的數(shù)據(jù)。
[0061] 需要指出的是,此實(shí)施例的方法既可以在圖1所示的裝置中實(shí)施,也可以在其它 裝置中實(shí)施。當(dāng)在圖1所示的裝置中實(shí)施時(shí),步驟911和912是在狀態(tài)機(jī)引擎110中執(zhí)行, 狀態(tài)機(jī)引擎110和響應(yīng)功能集模塊120相互獨(dú)立。
[0062] 除了狀態(tài)機(jī)引擎之外,本發(fā)明的實(shí)施例還提供了實(shí)時(shí)調(diào)試內(nèi)部數(shù)據(jù)和離線調(diào)試狀 態(tài)機(jī)的工具。
[0063] 圖5是根據(jù)本發(fā)明另一實(shí)施例的狀態(tài)機(jī)實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖。參考圖5所示,狀 態(tài)機(jī)實(shí)現(xiàn)裝置除了包含狀態(tài)機(jī)引擎510、響應(yīng)功能集模塊520和數(shù)據(jù)池530外,還包含離線 調(diào)試工具540和實(shí)時(shí)調(diào)試工具550。離線調(diào)試工具540連接狀態(tài)機(jī)引擎510。離線調(diào)試工 具540能夠打開指定的配置文件,調(diào)用狀態(tài)機(jī)引擎510配置為能夠生成需要調(diào)試的狀態(tài)機(jī), 呈現(xiàn)該配置文件中所記錄的事件以供調(diào)試者選擇,將調(diào)試者選擇的事件傳入該狀態(tài)機(jī),驅(qū) 動(dòng)該狀態(tài)機(jī)運(yùn)行,以及獲得及呈現(xiàn)當(dāng)前狀態(tài)的列表。當(dāng)需要時(shí),調(diào)試者選擇的事件可以添加 必要的參數(shù)。離線調(diào)試工具540提供一顯示界面,呈現(xiàn)前述的事件和狀態(tài),方便開發(fā)人員觀 察狀態(tài)變化。通過離線調(diào)試工具,開發(fā)人員便可以脫離系統(tǒng),調(diào)試狀態(tài)機(jī),提高開發(fā)效率。
[0064] 實(shí)時(shí)調(diào)試工具550連接數(shù)據(jù)池530。由于數(shù)據(jù)池530采用特定的形式存儲(chǔ)數(shù)據(jù), 常規(guī)的開發(fā)調(diào)試工具無法方便地查看數(shù)據(jù),數(shù)據(jù)池530出于調(diào)試的可能性和安全性,提供 了加密的數(shù)據(jù)讀取接口。實(shí)時(shí)調(diào)試工具550配置為能夠利用數(shù)據(jù)池530的加密接口從運(yùn)行 的狀態(tài)機(jī)中實(shí)時(shí)讀取出數(shù)據(jù),并在界面上展現(xiàn)給調(diào)試人員,調(diào)試人員能夠通過該工具方便 地查找、過濾關(guān)心的數(shù)據(jù),在狀態(tài)機(jī)離線運(yùn)行或在線運(yùn)行的狀態(tài)下通過實(shí)時(shí)調(diào)試工具查看 狀態(tài)機(jī)中的數(shù)據(jù)是否有異常,提高解決問題的效率。實(shí)時(shí)調(diào)試工具550可以"ID+類型+數(shù) 值"的列表形式展現(xiàn)上述數(shù)據(jù)。
[0065] 圖10是根據(jù)本發(fā)明又一實(shí)施例的狀態(tài)機(jī)實(shí)現(xiàn)方法流程圖。參考圖10所示,狀態(tài) 機(jī)實(shí)現(xiàn)方法1000除了包括狀態(tài)機(jī)生成流程1010外,還包括離線調(diào)試流程1020和實(shí)時(shí)調(diào)試 流程1030。狀態(tài)機(jī)生成流程1010可以類似于如圖8的流程810或如圖9的流程910,在此 不再展開。
[0066] 離線調(diào)試流程1020可包括以下步驟:
[0067] 步驟1021,打開指定的配置文件;
[0068] 步驟1022,生成需要調(diào)試的狀態(tài)機(jī);
[0069] 步驟1023,呈現(xiàn)該配置文件中所記錄的事件;
[0070] 步驟1024,將調(diào)試者選擇的事件傳入該狀態(tài)機(jī),驅(qū)動(dòng)該狀態(tài)機(jī)運(yùn)行;以及
[0071] 步驟1025,獲得及呈現(xiàn)當(dāng)前狀態(tài)的列表。
[0072] 實(shí)時(shí)調(diào)試流程1030包括以下步驟:
[0073] 步驟1031,從運(yùn)行的狀態(tài)機(jī)中實(shí)時(shí)讀取數(shù)據(jù);以及
[0074] 步驟1032,呈現(xiàn)所讀取的數(shù)據(jù)。
[0075] 可以理解的是,上述各流程1010、1020和1030并非按照固定的順序執(zhí)行,而是可 以根據(jù)需要選擇性的執(zhí)行。
[0076] 本發(fā)明上述實(shí)施例的方法和裝置具有以下優(yōu)點(diǎn):
[0077] 1、可動(dòng)態(tài)配置的狀態(tài)機(jī)架構(gòu),開發(fā)人員不需要通過使用對(duì)象來封裝狀態(tài)、事件和 轉(zhuǎn)換動(dòng)作,只需通過配置文件描述狀態(tài)機(jī)中的狀態(tài)結(jié)構(gòu),定義每個(gè)狀態(tài)的信息和轉(zhuǎn)換動(dòng)作。 根據(jù)配置文件能夠生成產(chǎn)生開發(fā)人員定義的狀態(tài)機(jī)。上述實(shí)施例解決了現(xiàn)有狀態(tài)機(jī)實(shí)現(xiàn)模 式的復(fù)雜度,提高了狀態(tài)機(jī)架構(gòu)的復(fù)用性和可維護(hù)性。
[0078] 2、提供狀態(tài)機(jī)的離線調(diào)試機(jī)制,使用統(tǒng)一的狀態(tài)機(jī)事件結(jié)構(gòu),能夠通過離線調(diào)試 工具啟動(dòng)狀態(tài)機(jī),并模擬狀態(tài)機(jī)事件驅(qū)動(dòng)狀態(tài)機(jī)運(yùn)行。使開發(fā)人員能夠在修改狀態(tài)機(jī)后立 即對(duì)狀態(tài)機(jī)進(jìn)行調(diào)試,查看狀態(tài)機(jī)的事件響應(yīng)和狀態(tài)轉(zhuǎn)換是否正確。
[0079] 3、提供狀態(tài)機(jī)運(yùn)行時(shí)內(nèi)部數(shù)據(jù)的實(shí)時(shí)調(diào)試機(jī)制,開發(fā)人員可以在在線調(diào)試或離線 調(diào)試的情況下直接查看狀態(tài)機(jī)內(nèi)部數(shù)據(jù)是否正確。
[0080] 雖然本發(fā)明已參照當(dāng)前的具體實(shí)施例來描述,但是本技術(shù)領(lǐng)域中的普通技術(shù)人員 應(yīng)當(dāng)認(rèn)識(shí)到,以上的實(shí)施例僅是用來說明本發(fā)明,在沒有脫離本發(fā)明精神的情況下還可作 出各種等效的變化或替換,因此,只要在本發(fā)明的實(shí)質(zhì)精神范圍內(nèi)對(duì)上述實(shí)施例的變化、變 型都將落在本申請的權(quán)利要求書的范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種狀態(tài)機(jī)的實(shí)現(xiàn)方法,包括狀態(tài)機(jī)生成流程,其包括以下步驟: 獲取用于生成狀態(tài)機(jī)的配置文件,該配置文件描述每個(gè)狀態(tài)的標(biāo)識(shí)以及對(duì)各個(gè)事件的 響應(yīng)信息和狀態(tài)轉(zhuǎn)換信息,且描述多個(gè)狀態(tài)間的層級(jí)關(guān)系; 根據(jù)該配置文件生成狀態(tài)機(jī);以及 提供一響應(yīng)功能集模塊,該響應(yīng)功能集模塊包含該狀態(tài)機(jī)中的響應(yīng)信息所對(duì)應(yīng)的響應(yīng) 功能。2. 如權(quán)利要求1所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,獲取用于生成狀態(tài)機(jī)的配置 文件和根據(jù)該配置文件生成狀態(tài)機(jī)的步驟是在一狀態(tài)機(jī)引擎中執(zhí)行,該狀態(tài)機(jī)引擎與該響 應(yīng)功能集模塊相互獨(dú)立。3. 如權(quán)利要求1所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,該狀態(tài)機(jī)生成流程還包括:提 供一數(shù)據(jù)池,該數(shù)據(jù)池包含該響應(yīng)功能集模塊的各響應(yīng)功能需要共享的數(shù)據(jù)。4. 如權(quán)利要求3所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,該數(shù)據(jù)池具有統(tǒng)一的數(shù)據(jù)訪 問接口。5. 如權(quán)利要求3所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,該數(shù)據(jù)池具有實(shí)時(shí)訪問的加 密接口。6. 如權(quán)利要求1所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,還包括離線調(diào)試流程,其包括 以下步驟: 打開指定的配置文件; 生成需要調(diào)試的狀態(tài)機(jī); 呈現(xiàn)該配置文件中所記錄的事件; 將調(diào)試者選擇的事件傳入該狀態(tài)機(jī),驅(qū)動(dòng)該狀態(tài)機(jī)運(yùn)行;以及 獲得及呈現(xiàn)當(dāng)前狀態(tài)的列表。7. 如權(quán)利要求1所述的狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于,還包括實(shí)時(shí)調(diào)試流程,其包括 以下步驟: 從運(yùn)行的狀態(tài)機(jī)中實(shí)時(shí)讀取數(shù)據(jù);以及 呈現(xiàn)所讀取的數(shù)據(jù)。8. -種狀態(tài)機(jī)的實(shí)現(xiàn)裝置,包括: 狀態(tài)機(jī)引擎,其配置為獲取用于生成狀態(tài)機(jī)的配置文件,及根據(jù)該配置文件生成狀態(tài) 機(jī),該配置文件描述每個(gè)狀態(tài)的標(biāo)識(shí)以及對(duì)各個(gè)事件的響應(yīng)信息和狀態(tài)轉(zhuǎn)換信息,且描述 多個(gè)狀態(tài)間的層級(jí)關(guān)系;以及 響應(yīng)功能集模塊,包含該狀態(tài)機(jī)中的響應(yīng)信息所對(duì)應(yīng)的響應(yīng)功能。9. 如權(quán)利要求8所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,該狀態(tài)機(jī)引擎與該響應(yīng)功能 集模塊相互獨(dú)立。10. 如權(quán)利要求8所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,還包括一數(shù)據(jù)池,該數(shù)據(jù)池 包含該響應(yīng)功能集模塊的各響應(yīng)功能需要共享的數(shù)據(jù)。11. 如權(quán)利要求10所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,該數(shù)據(jù)池具有統(tǒng)一的數(shù)據(jù) 訪問接口。12. 如權(quán)利要求10所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,該數(shù)據(jù)池具有實(shí)時(shí)訪問的 加密接口。13. 如權(quán)利要求8所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,還包括離線調(diào)試工具,其配 置為執(zhí)行以下步驟: 打開指定的配置文件; 生成需要調(diào)試的狀態(tài)機(jī); 呈現(xiàn)該配置文件中所記錄的事件; 將調(diào)試者選擇的事件傳入該狀態(tài)機(jī),驅(qū)動(dòng)該狀態(tài)機(jī)運(yùn)行;以及 獲得及呈現(xiàn)當(dāng)前狀態(tài)的列表。14. 如權(quán)利要求8所述的狀態(tài)機(jī)的實(shí)現(xiàn)裝置,其特征在于,還包括實(shí)時(shí)調(diào)試工具,其配 置為執(zhí)行以下步驟:從運(yùn)行的狀態(tài)機(jī)中實(shí)時(shí)讀取數(shù)據(jù);以及呈現(xiàn)所讀取的數(shù)據(jù)。
【專利摘要】本發(fā)明提供了一種狀態(tài)機(jī)的實(shí)現(xiàn)方法和裝置。該實(shí)現(xiàn)方法包括狀態(tài)機(jī)生成流程,其包括以下步驟:獲取用于生成狀態(tài)機(jī)的配置文件,該配置文件描述每個(gè)狀態(tài)的標(biāo)識(shí)以及對(duì)各個(gè)事件的響應(yīng)信息和狀態(tài)轉(zhuǎn)換信息,且描述多個(gè)狀態(tài)間的層級(jí)關(guān)系;根據(jù)該配置文件生成狀態(tài)機(jī);以及提供一響應(yīng)功能集模塊,該響應(yīng)功能集模塊包含該狀態(tài)機(jī)中的響應(yīng)信息所對(duì)應(yīng)的響應(yīng)功能。
【IPC分類】G06F9/44
【公開號(hào)】CN105138332
【申請?zhí)枴緾N201510530765
【發(fā)明人】鐘燦
【申請人】上海聯(lián)影醫(yī)療科技有限公司
【公開日】2015年12月9日
【申請日】2015年8月26日