專利名稱:應(yīng)用軟件的開發(fā)平臺(tái)、生成方法及運(yùn)行平臺(tái)、運(yùn)行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,特別涉及一種應(yīng)用軟件的開發(fā)平臺(tái)、生成方法及運(yùn)行平臺(tái)、運(yùn)行方法。
背景技術(shù):
目前我國(guó)商業(yè)銀行的各種業(yè)務(wù)發(fā)展迅速,尤其是為了輔助柜面處理繁重的現(xiàn)金流通和各種中間代理業(yè)務(wù),自助設(shè)備的發(fā)展尤為顯著。
自助設(shè)備包括由銀行提供的各種由客戶自行操作即可完成銀行業(yè)務(wù)交易的自動(dòng)柜員機(jī),其具體包括自動(dòng)取款機(jī)、自動(dòng)存款機(jī)和現(xiàn)金循環(huán)機(jī)等。自助設(shè)備上運(yùn)行的應(yīng)用程序提供了人機(jī)交互的界面。隨著銀行各種業(yè)務(wù)的展開和升級(jí),需要對(duì)自助設(shè)備應(yīng)用程序進(jìn)行調(diào)整,以支持和完善自助交易的各項(xiàng)功能。能夠?qū)ψ灾O(shè)備應(yīng)用程序進(jìn)行怎樣的調(diào)整,與該應(yīng)用程序的開發(fā)方法和平臺(tái)有著緊密的聯(lián)系。
現(xiàn)有的自助設(shè)備應(yīng)用程序是由各個(gè)自助設(shè)備廠商提供的。各廠商在開發(fā)自助設(shè)備應(yīng)用程序時(shí),往往是通過直接編寫C代碼的方式,將該設(shè)備支持的應(yīng)用程序開發(fā)成為一個(gè)單一的業(yè)務(wù)流程,其運(yùn)行機(jī)制也是針對(duì)該單一的業(yè)務(wù)流程。
這樣,一方面,當(dāng)銀行業(yè)務(wù)人員執(zhí)行維護(hù)流程的操作時(shí)或當(dāng)銀行網(wǎng)點(diǎn)人員執(zhí)行監(jiān)控流程的操作時(shí),不能同時(shí)運(yùn)行其它業(yè)務(wù)流程;另一方面,對(duì)自助設(shè)備應(yīng)用程序進(jìn)行調(diào)整時(shí),盡管只是需要對(duì)流程中的某一操作進(jìn)行微小的調(diào)整,都需要對(duì)應(yīng)用程序進(jìn)行大量的修改和反復(fù)的測(cè)試,還有當(dāng)銀行開展和普及新的業(yè)務(wù)時(shí),需要召集各個(gè)自助設(shè)備廠商對(duì)應(yīng)用程序進(jìn)行升級(jí),整個(gè)過程工程浩大,還需要相關(guān)人員具有較高的專業(yè)技能,不利于銀行業(yè)務(wù)的迅速開展和普及。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種應(yīng)用軟件的開發(fā)平臺(tái)、生成方法及運(yùn)行平臺(tái)、運(yùn)行方法,以克服現(xiàn)有技術(shù)中的應(yīng)用程序同時(shí)只能運(yùn)行單一的業(yè)務(wù)流程和對(duì)應(yīng)用程序進(jìn)行調(diào)整和升級(jí)時(shí)需要進(jìn)行大量修改和測(cè)試的缺點(diǎn)。
為解決上述技術(shù)問題,本發(fā)明提供一種應(yīng)用軟件的開發(fā)平臺(tái)、生成方法及運(yùn)行平臺(tái)、運(yùn)行方法是這樣實(shí)現(xiàn)的一種應(yīng)用軟件的開發(fā)平臺(tái),包括,業(yè)務(wù)類型模塊,用于保存至少一個(gè)業(yè)務(wù)類型及其包含的工作單元組中的工作單元;狀態(tài)機(jī)流程模塊,用于創(chuàng)建并保存至少一個(gè)狀態(tài)機(jī)流程;狀態(tài)點(diǎn)建立模塊,用于判斷需求的操作對(duì)應(yīng)的業(yè)務(wù)類型中工作單元組內(nèi)的工作單元,并將該工作單元置為所述狀態(tài)機(jī)流程中的狀態(tài)點(diǎn);遷移關(guān)系建立模塊,用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系;編譯模塊,用于將經(jīng)過遷移關(guān)系建立模塊處理的狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
所述狀態(tài)點(diǎn)建立模塊包括工作單元對(duì)應(yīng)模塊和狀態(tài)點(diǎn)設(shè)置模塊,其中,工作單元對(duì)應(yīng)模塊用于將需求的操作對(duì)應(yīng)為業(yè)務(wù)類型中工作單元組內(nèi)的工作單元;狀態(tài)點(diǎn)設(shè)置模塊用于將經(jīng)對(duì)應(yīng)后的工作單元置為狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
所述遷移關(guān)系建立模塊包括動(dòng)作觸發(fā)關(guān)系建立模塊和通信關(guān)系建立模塊,其中,動(dòng)作觸發(fā)關(guān)系建立模塊用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的動(dòng)作觸發(fā)關(guān)系;通信關(guān)系建立模塊用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的通信關(guān)系。
該平臺(tái)基于Windows開發(fā)系統(tǒng)架構(gòu)/可擴(kuò)展金融服務(wù)。
該平臺(tái)提供圖形化界面。
一種應(yīng)用軟件的生成方法,預(yù)先設(shè)置不同功能的業(yè)務(wù)類型,該業(yè)務(wù)類型包含各自的工作單元組,包括創(chuàng)建至少一個(gè)狀態(tài)機(jī)流程;該狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)類型;
判斷需求的操作對(duì)應(yīng)的業(yè)務(wù)類型中工作單元組內(nèi)的工作單元,并將該工作單元置為所述狀態(tài)機(jī)流程中的狀態(tài)點(diǎn);根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系;將所述狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
還包括增加、減少和/或更改所述業(yè)務(wù)類型。
還包括增加、減少、和/或更改所述業(yè)務(wù)類型中工作單元組內(nèi)的工作單元。
所述根據(jù)各工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系由以下方式實(shí)現(xiàn)根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立同一狀態(tài)機(jī)流程內(nèi)各狀態(tài)點(diǎn)之間的遷移關(guān)系,和/或根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立不同狀態(tài)機(jī)流程的各狀態(tài)點(diǎn)之間的遷移關(guān)系。
所述遷移關(guān)系包括各狀態(tài)點(diǎn)之間的動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系。
所述動(dòng)作由腳本語言描述。
所述動(dòng)作觸發(fā)關(guān)系和/或所述通信關(guān)系采用配置文件的方式存儲(chǔ)。
一種應(yīng)用軟件的運(yùn)行平臺(tái),包括解析模塊和狀態(tài)機(jī)引擎,其中,解析模塊用于將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程;狀態(tài)機(jī)引擎用于按照狀態(tài)點(diǎn)的遷移關(guān)系從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,并在遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
所述狀態(tài)機(jī)引擎包括至少一個(gè)狀態(tài)機(jī)流程遍歷模塊和與之對(duì)應(yīng)的狀態(tài)點(diǎn)操作執(zhí)行模塊,其中,狀態(tài)機(jī)流程遍歷模塊用于按照狀態(tài)點(diǎn)的遷移關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的遷移關(guān)系觸發(fā)其它狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn);狀態(tài)點(diǎn)操作執(zhí)行模塊,用于遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
所述狀態(tài)機(jī)流程遍歷模塊包括動(dòng)作觸發(fā)關(guān)系遍歷模塊和通信關(guān)系遍歷模塊,其中,
動(dòng)作觸發(fā)關(guān)系遍歷模塊用于按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn);通信關(guān)系遍歷模塊用于按照狀態(tài)點(diǎn)的通信關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的通信關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn)。
一種應(yīng)用軟件的運(yùn)行方法,包括將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程;從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始,按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn),并在遍歷到每一狀態(tài)點(diǎn)時(shí)完成該狀態(tài)點(diǎn)對(duì)應(yīng)工作單元包含的操作。
所述按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)由以下方式實(shí)現(xiàn)按照狀態(tài)點(diǎn)的遷移關(guān)系完成同一狀態(tài)機(jī)流程內(nèi)和/或不同狀態(tài)機(jī)流程間各狀態(tài)點(diǎn)之間的遍歷。
所述按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)由以下方式實(shí)現(xiàn)按照狀態(tài)點(diǎn)遷移關(guān)系中的動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系遍歷各狀態(tài)點(diǎn)。
由以上本發(fā)明提供的技術(shù)方案可見,本發(fā)明在自助設(shè)備應(yīng)用程序開發(fā)過程中引入狀態(tài)機(jī)機(jī)制,每個(gè)狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)流程,這樣,自助設(shè)備可以同時(shí)運(yùn)行多個(gè)業(yè)務(wù)流程,且各個(gè)業(yè)務(wù)流程之間相互獨(dú)立。本發(fā)明將每個(gè)操作設(shè)置為一個(gè)工作單元,將該工作單元置為狀態(tài)機(jī)流程中的一個(gè)狀態(tài)點(diǎn),在這些狀態(tài)點(diǎn)之間建立遷移關(guān)系,則在對(duì)應(yīng)用軟件進(jìn)行調(diào)整和升級(jí)時(shí)可以只針對(duì)相應(yīng)的模塊,升級(jí)方便,且不影響其他模塊。
圖1為各種業(yè)務(wù)類型及其工作單元的流程圖;圖2為本發(fā)明開發(fā)平臺(tái)的框圖;圖3為應(yīng)用本發(fā)明的開發(fā)平臺(tái)生成應(yīng)用程序的流程圖;圖4為本發(fā)明運(yùn)行平臺(tái)的框圖;
圖5為由本發(fā)明運(yùn)行平臺(tái)運(yùn)行自助設(shè)備應(yīng)用程序的原理圖;圖6為本發(fā)明運(yùn)行方法的流程圖。
具體實(shí)施例方式
本發(fā)明的核心是提供一種應(yīng)用軟件的開發(fā)平臺(tái)、生成方法及運(yùn)行平臺(tái)、運(yùn)行方法,在應(yīng)用程序開發(fā)過程中引入狀態(tài)機(jī)機(jī)制,每個(gè)狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)流程,并將各個(gè)操作設(shè)置為一個(gè)工作單元,將該工作單元置為狀態(tài)機(jī)流程中的一個(gè)狀態(tài)點(diǎn),在這些狀態(tài)點(diǎn)之間建立遷移關(guān)系;對(duì)應(yīng)的,在自助設(shè)備應(yīng)用程序運(yùn)行過程中引入狀態(tài)機(jī)引擎,執(zhí)行各個(gè)狀態(tài)機(jī)流程,完成狀態(tài)點(diǎn)的操作并完成狀態(tài)點(diǎn)的遷移。
計(jì)算機(jī)編譯原理中提出了“有限狀態(tài)機(jī)”的概念,可以實(shí)現(xiàn)多狀態(tài)機(jī)同時(shí)運(yùn)行,并且多個(gè)狀態(tài)機(jī)之間可以交互。每個(gè)狀態(tài)中包含多個(gè)狀態(tài)點(diǎn),表明該狀態(tài)機(jī)的運(yùn)行狀態(tài)。本發(fā)明正是采用了這種多狀態(tài)機(jī)原理。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
首先介紹自助設(shè)備應(yīng)用程序的開發(fā)平臺(tái)。
本領(lǐng)域技術(shù)人員知道,自助業(yè)務(wù)的各項(xiàng)應(yīng)用需求復(fù)雜,如果單純的設(shè)計(jì)在一個(gè)業(yè)務(wù)流程中,則實(shí)現(xiàn)各種功能時(shí)相互關(guān)系非常繁瑣。本發(fā)明首先按照業(yè)務(wù)的功能進(jìn)行分類,例如可以分為交易業(yè)務(wù)類、監(jiān)控業(yè)務(wù)類和管理員業(yè)務(wù)類等。每個(gè)業(yè)務(wù)類型中包含各種操作,例如交易業(yè)務(wù)類包含等待插卡、讀卡、輸入密碼、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等操作,并且各種操作之間需要進(jìn)行切換。圖1示出了各種業(yè)務(wù)類型及其工作單元的一個(gè)流程圖。
本發(fā)明的實(shí)施例中預(yù)先設(shè)置的每個(gè)不同功能業(yè)務(wù)類型中包含一系列的工作單元,這些工作單元構(gòu)成該業(yè)務(wù)類型中的工作單元組。這些工作單元對(duì)應(yīng)的是某個(gè)操作,這些工作單元具有屬性即是該操作的條件、過程和/或產(chǎn)生的結(jié)果,例如顯示哪些頁面和執(zhí)行那些動(dòng)作。開發(fā)過程中,可以根據(jù)需要增加、減少和/或更改業(yè)務(wù)類型。也可以根據(jù)需要增加、減少、和/或更改所述業(yè)務(wù)類型中工作單元組內(nèi)的工作單元。
以下介紹本發(fā)明的自助設(shè)備應(yīng)用程序的開發(fā)平臺(tái)。圖2示出了本發(fā)明開發(fā)平臺(tái)的框圖。
自助設(shè)備應(yīng)用程序開發(fā)平臺(tái)包括業(yè)務(wù)類型模塊21、狀態(tài)機(jī)流程模塊22、狀態(tài)點(diǎn)建立模塊23、遷移關(guān)系建立模塊24和編譯模塊25。其中業(yè)務(wù)類型模塊21,用于保存至少一個(gè)業(yè)務(wù)類型及其包含的工作單元組中的工作單元。
狀態(tài)機(jī)流程模塊22,用于創(chuàng)建并保存至少一個(gè)狀態(tài)機(jī)流程。
狀態(tài)點(diǎn)建立模塊23,與業(yè)務(wù)類型模塊21和狀態(tài)機(jī)流程模塊22相連,用于判斷需求的操作對(duì)應(yīng)的業(yè)務(wù)類型中工作單元組內(nèi)的工作單元,并將該工作單元置為所述創(chuàng)建的狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
狀態(tài)點(diǎn)建立模塊23包括工作單元對(duì)應(yīng)模塊231和狀態(tài)點(diǎn)設(shè)置模塊232,其中,工作單元對(duì)應(yīng)模塊231,與業(yè)務(wù)類型模塊21相連,用于將需求的操作對(duì)應(yīng)為業(yè)務(wù)類型中工作單元組內(nèi)的工作單元。
狀態(tài)點(diǎn)設(shè)置模塊232,與工作單元對(duì)應(yīng)模塊231和狀態(tài)機(jī)流程創(chuàng)建模塊32相連,用于將經(jīng)對(duì)應(yīng)后的工作單元置為創(chuàng)建的狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
遷移關(guān)系建立模塊24,與狀態(tài)機(jī)流程模塊22,用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系。
遷移關(guān)系建立模塊24包括動(dòng)作觸發(fā)關(guān)系建立模塊241和通信關(guān)系建立模塊242,其中,動(dòng)作觸發(fā)關(guān)系建立模塊241,與狀態(tài)機(jī)流程模塊22相連,用于根據(jù)所述狀態(tài)機(jī)流程模塊22中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的動(dòng)作觸發(fā)關(guān)系。
通信關(guān)系建立模塊242,與狀態(tài)機(jī)流程模塊22相連,用于根據(jù)所述狀態(tài)機(jī)流程模塊22中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的通信關(guān)系。
編譯模塊25,與遷移關(guān)系建立模塊24相連,用于將經(jīng)過遷移關(guān)系建立模塊處理的狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
現(xiàn)有的自助設(shè)備有很多種,這些自助設(shè)備及其應(yīng)用程序由不同的廠商開發(fā)。往往不同廠商開發(fā)手段不同,大部分是基于IBM的OS2,有一小部分是基于Windows,而IBM已宣布不再對(duì)OS2操作系統(tǒng)進(jìn)行支持,并且各個(gè)廠商開發(fā)的應(yīng)用程序與其自助設(shè)備聯(lián)系很緊密,導(dǎo)致不同廠商之間的應(yīng)用程序不能通用,甚至同一廠商的不同型號(hào)自助設(shè)備上的應(yīng)用程序都不能通用。因此,在本發(fā)明實(shí)施例提供的開發(fā)平臺(tái)中,可以統(tǒng)一采用Windows開發(fā)系統(tǒng)架構(gòu)(Windows Open System Architecture,WOSA)/可擴(kuò)展金融服務(wù)(eXtension forFinancial Service,XFS)的國(guó)際標(biāo)準(zhǔn),具體的,在開發(fā)平臺(tái)提供WOSA/XFS的應(yīng)用程序接口(Application Programming Interface,API),使得應(yīng)用本發(fā)明開發(fā)平臺(tái)生成的應(yīng)用程序可以通用于各種自助設(shè)備,解決了通用性的問題。
另外,本發(fā)明的開發(fā)平臺(tái)適于提供圖形化的開發(fā)界面,即將預(yù)先設(shè)置的業(yè)務(wù)流程及其工作單元以圖形顯示在開發(fā)平臺(tái)中,開發(fā)人員只需要簡(jiǎn)單的拖動(dòng)工作單元到狀態(tài)機(jī)流程中,并設(shè)置相應(yīng)的屬性和遷移關(guān)系即可生成應(yīng)用程序,從而極大的加快了開發(fā)速度,并保證了開發(fā)質(zhì)量。并且,由該方式生成的應(yīng)用程序界面統(tǒng)一,客戶在交易過程中易于掌握各種操作,能提高客戶的滿意度。
當(dāng)需要生成一套應(yīng)用程序時(shí),應(yīng)用上述開發(fā)平臺(tái)即可實(shí)現(xiàn)。圖3示出了利用該開發(fā)平臺(tái)生成應(yīng)用程序的流程。
步驟301創(chuàng)建狀態(tài)機(jī)流程。
本步驟由狀態(tài)機(jī)流程模塊創(chuàng)建至少一個(gè)狀態(tài)機(jī)流程,以滿足不同功能的業(yè)務(wù)類型需求。每個(gè)狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)類型需求。
步驟302判斷操作對(duì)應(yīng)的工作單元并設(shè)置該工作單元為狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
由于在業(yè)務(wù)類型模塊中預(yù)先設(shè)置了不同類的業(yè)務(wù)類型,且在每一業(yè)務(wù)類型中設(shè)置了包含不同工作單元的工作單元組,因此,當(dāng)一個(gè)業(yè)務(wù)類型所在的狀態(tài)機(jī)流程中需要增加一個(gè)操作時(shí),即在狀態(tài)機(jī)流程中增加一個(gè)狀態(tài)點(diǎn)時(shí),可以首先根據(jù)需要操作的方式和內(nèi)容得到工作單元組中對(duì)應(yīng)的工作單元,例如由狀態(tài)點(diǎn)建立模塊中的工作單元對(duì)應(yīng)模塊得到該操作對(duì)應(yīng)的工作單元組中的工作單元,再由狀態(tài)點(diǎn)設(shè)置模塊將該工作單元設(shè)置為該狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
步驟303根據(jù)各狀態(tài)點(diǎn)對(duì)應(yīng)工作單元的屬性建立狀態(tài)點(diǎn)間的遷移關(guān)系。
一個(gè)業(yè)務(wù)類型中的不同操作之間是互相有關(guān)聯(lián)的,例如交易業(yè)務(wù)類中插卡之后才執(zhí)行讀卡操作,讀卡成功后才執(zhí)行輸入密碼操作,進(jìn)一步的,不同業(yè)務(wù)類型也是相互關(guān)聯(lián)的,一個(gè)業(yè)務(wù)類型中的某個(gè)操作可以觸發(fā)其它業(yè)務(wù)類型中的某個(gè)操作,或者是一個(gè)業(yè)務(wù)類型中的某個(gè)操作的結(jié)果通知給其它業(yè)務(wù)類型中的某個(gè)操作。
由前面提到的,每個(gè)操作對(duì)應(yīng)一個(gè)工作單元,該工作單元具有表明與該操作相關(guān)的特定的屬性,而每個(gè)設(shè)置的狀態(tài)點(diǎn)是一個(gè)工作單元,這樣,各個(gè)狀態(tài)點(diǎn)之間可以根據(jù)工作單元的屬性,即工作單元間動(dòng)作觸發(fā)和/或通信關(guān)系建立關(guān)系,這種關(guān)系即為遷移關(guān)系。而且,根據(jù)狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性,可以是由遷移關(guān)系建立模塊建立同一狀態(tài)機(jī)流程內(nèi)各狀態(tài)點(diǎn)之間的遷移關(guān)系,也可以由遷移關(guān)系建立模塊根據(jù)狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立不同狀態(tài)機(jī)流程的各狀態(tài)點(diǎn)之間的遷移關(guān)系。具體的,可以是由動(dòng)作觸發(fā)關(guān)系建立模塊和通信關(guān)系建立模塊實(shí)現(xiàn)。其中,每個(gè)工作單元對(duì)應(yīng)的動(dòng)作可以是由腳本語言編寫的代碼段描述,動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系可以存儲(chǔ)于配置文件中。
步驟304將狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
該步驟是編譯過程,編譯后可以在自助設(shè)備的運(yùn)行平臺(tái)上執(zhí)行該文件。
由以上實(shí)施例提供的開發(fā)平臺(tái)生成的應(yīng)用程序,不同的狀態(tài)機(jī)流程同時(shí)獨(dú)立的運(yùn)行,且不同狀態(tài)機(jī)之間可以實(shí)現(xiàn)交互,完成通信和動(dòng)作觸發(fā),更重要的是,當(dāng)對(duì)應(yīng)用程序進(jìn)行調(diào)整,例如修改業(yè)務(wù)流程中的某個(gè)操作時(shí),可以僅對(duì)該操作對(duì)應(yīng)的工作單元進(jìn)行改動(dòng)和測(cè)試,不需要對(duì)整個(gè)程序進(jìn)行修改;再如升級(jí)和完善功能時(shí),只需添加、減少和/或修改業(yè)務(wù)流程,或者是添加、減少和/或修改工作單元,即按照需求進(jìn)行,不需要對(duì)已有的工作單元或業(yè)務(wù)流程進(jìn)行大的改動(dòng)。
下面介紹本發(fā)明中自助設(shè)備應(yīng)用程序的運(yùn)行平臺(tái)。圖4示出了該平臺(tái)的框圖。
該運(yùn)行平臺(tái)包括解析模塊41和狀態(tài)機(jī)引擎42,其中,解析模塊41與用于將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程。
狀態(tài)機(jī)引擎42與解析模塊41相連,用于按照狀態(tài)點(diǎn)的遷移關(guān)系從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,并在遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
狀態(tài)機(jī)引擎42包括至少一個(gè)狀態(tài)機(jī)流程遍歷模塊421和與之對(duì)應(yīng)的狀態(tài)點(diǎn)操作執(zhí)行模塊422,其中,狀態(tài)機(jī)流程遍歷模塊421用于按照狀態(tài)點(diǎn)的遷移關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的遷移關(guān)系觸發(fā)其它狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn)。
狀態(tài)機(jī)流程遍歷模塊421包括動(dòng)作觸發(fā)關(guān)系遍歷模塊4211和通信關(guān)系遍歷模塊4212,其中,動(dòng)作觸發(fā)關(guān)系遍歷模塊4211用于按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn)。
通信關(guān)系遍歷模塊4212用于按照狀態(tài)點(diǎn)的通信關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的通信關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn)。
狀態(tài)點(diǎn)操作執(zhí)行模塊422與狀態(tài)機(jī)流程遍歷模塊421相連,用于遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
狀態(tài)機(jī)引擎負(fù)責(zé)每個(gè)工作單元具體操作動(dòng)作的執(zhí)行,工作單元之間的遷移,工作單元的頁面顯示,狀態(tài)機(jī)之間的交互,與自助P和自助V系統(tǒng)的報(bào)文收發(fā),以及與設(shè)備模塊的通信,是核心控制程序。圖5示出了一個(gè)由運(yùn)行平臺(tái)運(yùn)行的自助設(shè)備應(yīng)用程序的例子。如圖所示,狀態(tài)機(jī)引擎同時(shí)運(yùn)行三個(gè)業(yè)務(wù)流程,每個(gè)業(yè)務(wù)流程都是獨(dú)立運(yùn)行的,不同類的業(yè)務(wù)流程之間的交互都是通過狀態(tài)機(jī)引擎來完成的;每個(gè)業(yè)務(wù)流程運(yùn)行時(shí),不斷地在工作單元之間進(jìn)行遷移,執(zhí)行不同的動(dòng)作,顯示不同的頁面,而與硬件設(shè)備之間的通信,以及與外部系統(tǒng)的交互都是通過狀態(tài)機(jī)引擎來協(xié)調(diào)控制的。
下面介紹本發(fā)明中自助設(shè)備應(yīng)用程序的運(yùn)行方法。圖6示出了該方法的流程。
步驟601將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程。
該步驟是解析過程,將經(jīng)過編譯的狀態(tài)機(jī)文件解析為可執(zhí)行的狀態(tài)機(jī)流程。
步驟602執(zhí)行狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)對(duì)應(yīng)工作單元包含的操作。
步驟603按照該狀態(tài)點(diǎn)的遷移關(guān)系定位到下一狀態(tài)點(diǎn)。
步驟604執(zhí)行該狀態(tài)點(diǎn)對(duì)應(yīng)工作單元包含的操作后,返回步驟603。
實(shí)際上步驟602至604是從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始,按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn),并在遍歷到每一狀態(tài)點(diǎn)時(shí)完成該狀態(tài)點(diǎn)對(duì)應(yīng)工作單元包含的操作。
按照狀態(tài)點(diǎn)的遷移關(guān)系可以完成同一狀態(tài)機(jī)流程內(nèi)和/或不同狀態(tài)機(jī)流程間各狀態(tài)點(diǎn)之間的遍歷??梢园凑諣顟B(tài)點(diǎn)遷移關(guān)系中的動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系完成各狀態(tài)點(diǎn)間的遍歷。
由于本發(fā)明的開發(fā)平臺(tái)中引入了多狀態(tài)機(jī)機(jī)制,不同業(yè)務(wù)類型作為一個(gè)單獨(dú)的狀態(tài)機(jī)流程,可以彼此獨(dú)立的工作,而且各狀態(tài)機(jī)之間可以進(jìn)行交互。
本發(fā)明的開發(fā)平臺(tái)和運(yùn)行平臺(tái)都可以采用C++語言編寫,與外界系統(tǒng)的通信可以采用TCP/IP協(xié)議。
由以上實(shí)施例可見,本發(fā)明在自助設(shè)備應(yīng)用程序開發(fā)平臺(tái)中引入狀態(tài)機(jī)機(jī)制,每個(gè)狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)流程,這樣,自助設(shè)備可以同時(shí)運(yùn)行多個(gè)業(yè)務(wù)流程,且各個(gè)業(yè)務(wù)流程之間相互獨(dú)立。本發(fā)明將各個(gè)操作設(shè)置為一個(gè)工作單元,將該工作單元置為狀態(tài)機(jī)流程中的一個(gè)狀態(tài)點(diǎn),在這些狀態(tài)點(diǎn)之間建立遷移關(guān)系,則在調(diào)整和升級(jí)時(shí)可以只針對(duì)相應(yīng)的少量模塊,升級(jí)方便,且不影響其他業(yè)務(wù)。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權(quán)利要求
1.一種應(yīng)用軟件的開發(fā)平臺(tái),其特征在于,包括,業(yè)務(wù)類型模塊,用于保存至少一個(gè)業(yè)務(wù)類型及其包含的工作單元組中的工作單元;狀態(tài)機(jī)流程模塊,用于創(chuàng)建并保存至少一個(gè)狀態(tài)機(jī)流程;狀態(tài)點(diǎn)建立模塊,用于判斷需求的操作對(duì)應(yīng)的業(yè)務(wù)類型中工作單元組內(nèi)的工作單元,并將該工作單元置為所述狀態(tài)機(jī)流程中的狀態(tài)點(diǎn);遷移關(guān)系建立模塊,用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系;編譯模塊,用于將經(jīng)過遷移關(guān)系建立模塊處理的狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
2.如權(quán)利要求1所述平臺(tái),其特征在于,所述狀態(tài)點(diǎn)建立模塊包括工作單元對(duì)應(yīng)模塊和狀態(tài)點(diǎn)設(shè)置模塊,其中,工作單元對(duì)應(yīng)模塊用于將需求的操作對(duì)應(yīng)為業(yè)務(wù)類型中工作單元組內(nèi)的工作單元;狀態(tài)點(diǎn)設(shè)置模塊用于將經(jīng)對(duì)應(yīng)后的工作單元置為狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)。
3.如權(quán)利要求1所述平臺(tái),其特征在于,所述遷移關(guān)系建立模塊包括動(dòng)作觸發(fā)關(guān)系建立模塊和通信關(guān)系建立模塊,其中,動(dòng)作觸發(fā)關(guān)系建立模塊用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的動(dòng)作觸發(fā)關(guān)系;通信關(guān)系建立模塊用于根據(jù)所述狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立各工作單元之間的通信關(guān)系。
4.如權(quán)利要求1所述的平臺(tái),其特征在于,該平臺(tái)基于Windows開發(fā)系統(tǒng)架構(gòu)/可擴(kuò)展金融服務(wù)。
5.如權(quán)利要求1所述的平臺(tái),其特征在于,該平臺(tái)提供圖形化界面。
6.一種應(yīng)用軟件的生成方法,其特征在于,預(yù)先設(shè)置不同功能的業(yè)務(wù)類型,該業(yè)務(wù)類型包含各自的工作單元組,包括創(chuàng)建至少一個(gè)狀態(tài)機(jī)流程;該狀態(tài)機(jī)流程對(duì)應(yīng)一個(gè)業(yè)務(wù)類型;判斷需求的操作對(duì)應(yīng)的業(yè)務(wù)類型中工作單元組內(nèi)的工作單元,并將該工作單元置為所述狀態(tài)機(jī)流程中的狀態(tài)點(diǎn);根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系;將所述狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。
7.如權(quán)利要求6所述的方法,其特征在于,還包括增加、減少和/或更改所述業(yè)務(wù)類型。
8.如權(quán)利要求6或7所述的方法,其特征在于,還包括增加、減少、和/或更改所述業(yè)務(wù)類型中工作單元組內(nèi)的工作單元。
9.如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)各工作單元的屬性建立狀態(tài)點(diǎn)之間的遷移關(guān)系由以下方式實(shí)現(xiàn)根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立同一狀態(tài)機(jī)流程內(nèi)各狀態(tài)點(diǎn)之間的遷移關(guān)系,和/或根據(jù)所述狀態(tài)機(jī)流程中各狀態(tài)點(diǎn)包含的工作單元的屬性建立不同狀態(tài)機(jī)流程的各狀態(tài)點(diǎn)之間的遷移關(guān)系。
10.如權(quán)利要求6或9中所述的方法,其特征在于,所述遷移關(guān)系包括各狀態(tài)點(diǎn)之間的動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系。
11.如權(quán)利要求10所述的方法,其特征在于,所述動(dòng)作由腳本語言描述。
12.如權(quán)利要求10所述的方法,其特征在于,所述動(dòng)作觸發(fā)關(guān)系和/或所述通信關(guān)系采用配置文件的方式存儲(chǔ)。
13.一種應(yīng)用軟件的運(yùn)行平臺(tái),其特征在于,包括解析模塊和狀態(tài)機(jī)引擎,其中,解析模塊用于將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程;狀態(tài)機(jī)引擎用于按照狀態(tài)點(diǎn)的遷移關(guān)系從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,并在遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
14.如權(quán)利要求13所述的平臺(tái),其特征在于,所述狀態(tài)機(jī)引擎包括至少一個(gè)狀態(tài)機(jī)流程遍歷模塊和與之對(duì)應(yīng)的狀態(tài)點(diǎn)操作執(zhí)行模塊,其中,狀態(tài)機(jī)流程遍歷模塊用于按照狀態(tài)點(diǎn)的遷移關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的遷移關(guān)系觸發(fā)其它狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn);狀態(tài)點(diǎn)操作執(zhí)行模塊,用于遍歷到每個(gè)狀態(tài)點(diǎn)時(shí)執(zhí)行該狀態(tài)點(diǎn)包含的操作。
15.如權(quán)利要求14所述的平臺(tái),其特征在于,所述狀態(tài)機(jī)流程遍歷模塊包括動(dòng)作觸發(fā)關(guān)系遍歷模塊和通信關(guān)系遍歷模塊,其中,動(dòng)作觸發(fā)關(guān)系遍歷模塊用于按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的動(dòng)作觸發(fā)關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn);通信關(guān)系遍歷模塊用于按照狀態(tài)點(diǎn)的通信關(guān)系從該狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始遍歷,和/或按照狀態(tài)點(diǎn)的通信關(guān)系觸發(fā)其對(duì)應(yīng)的狀態(tài)機(jī)遍歷模塊中狀態(tài)機(jī)流程的相關(guān)狀態(tài)點(diǎn)。
16.一種應(yīng)用軟件的運(yùn)行方法,其特征在于,包括將應(yīng)用軟件包含的狀態(tài)機(jī)文件解析為狀態(tài)機(jī)流程;從狀態(tài)機(jī)流程中的初始狀態(tài)點(diǎn)開始,按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn),并在遍歷到每一狀態(tài)點(diǎn)時(shí)完成該狀態(tài)點(diǎn)對(duì)應(yīng)工作單元包含的操作。
17.如權(quán)利要求16所述的方法,其特征在于,所述按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)由以下方式實(shí)現(xiàn)按照狀態(tài)點(diǎn)的遷移關(guān)系完成同一狀態(tài)機(jī)流程內(nèi)和/或不同狀態(tài)機(jī)流程間各狀態(tài)點(diǎn)之間的遍歷。
18.如權(quán)利要求16所述的方法,其特征在于,所述按照狀態(tài)點(diǎn)的遷移關(guān)系遍歷狀態(tài)機(jī)流程中的狀態(tài)點(diǎn)由以下方式實(shí)現(xiàn)按照狀態(tài)點(diǎn)遷移關(guān)系中的動(dòng)作觸發(fā)關(guān)系和/或通信關(guān)系遍歷各狀態(tài)點(diǎn)。
全文摘要
本發(fā)明提供了一種應(yīng)用軟件的開發(fā)平臺(tái),包括業(yè)務(wù)類型模塊,用于保存至少一個(gè)業(yè)務(wù)類型及其包含的工作單元組中的工作單元;狀態(tài)機(jī)流程模塊,用于創(chuàng)建并保存至少一個(gè)狀態(tài)機(jī)流程;狀態(tài)點(diǎn)建立模塊,用于判斷需求的操作對(duì)應(yīng)的工作單元,并將該工作單元置為狀態(tài)機(jī)流程中的狀態(tài)點(diǎn);遷移關(guān)系建立模塊,用于根據(jù)狀態(tài)機(jī)流程模塊中各狀態(tài)點(diǎn)包含的工作單元的屬性建立狀態(tài)點(diǎn)間的遷移關(guān)系;編譯模塊,用于將狀態(tài)機(jī)流程編譯為狀態(tài)機(jī)文件。本發(fā)明還提供應(yīng)用軟件的生成方法及運(yùn)行平臺(tái)、運(yùn)行方法。利用本發(fā)明,自助設(shè)備可以同時(shí)執(zhí)行多個(gè)業(yè)務(wù)流程,且各業(yè)務(wù)流程相互獨(dú)立,而且,在調(diào)整和升級(jí)時(shí)可以只針對(duì)相應(yīng)模塊,升級(jí)方便,且不影響其他模塊和業(yè)務(wù)。
文檔編號(hào)G07F19/00GK1987781SQ200610156428
公開日2007年6月27日 申請(qǐng)日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者蘇明源, 鄭小暉, 張濤, 楊衛(wèi)乾, 陳文極, 黃斌, 姜昆才, 信懷義 申請(qǐng)人:中國(guó)建設(shè)銀行股份有限公司