法:行為索引
[0086]},
[0087]{
[0088]彳丁為名稱:“訂房和訂票”,
[0089]行為執(zhí)行前提條件:“確定旅游目的地行為成功結(jié)束”,
[0090]行為開始時(shí)間:“2015-6-12”,
[0091]行為結(jié)束時(shí)間:“2015-6-13”,
[0092]行為發(fā)起者:〃XXX〃,
[0093]行為執(zhí)行者:〃XXX〃,
[0094]行為審核:〃XXX〃,
[0095]行為結(jié)束處理:{成功處理:繼續(xù),
[0096]失敗處理:延遲},
[0097]行為執(zhí)行方式:并行,
[0098]行為方法:[
[0099]{行為名稱:“訂票”,
[0100]行為執(zhí)行前提條件:“確定旅游目的地行為成功結(jié)束”,
[0101]行為開始時(shí)間:“2015-6-12”,
[0102]行為結(jié)束時(shí)間:“2015-6-13”,
[0103]行為發(fā)起者:〃XXX〃,
[0104]行為執(zhí)行者:〃XXX〃,
[0105]行為審核:〃XXX〃,
[0106]行為結(jié)束處理:{成功處理:繼續(xù),
[0107]失敗處理:終止流程},
[0108]行為執(zhí)行方式:簡單行為,
[0109]行為方法:行為索引
[0110]},
[0111]{
[0112]行為名稱訂房”,
[0113]行為執(zhí)行前提條件:“確定旅游目的地行為成功結(jié)束”,
[0114]行為開始時(shí)間:“2015-6-12”,
[0115]行為結(jié)束時(shí)間:“2015-6-13”,
[0116]行為發(fā)起者:〃XXX〃,
[0117]行為執(zhí)行者:〃XXX〃,
[0118]行為審核:〃XXX〃,
[0119]行為結(jié)束處理:{成功處理:繼續(xù),
[0120]失敗處理:終止流程},
[0121]行為執(zhí)行方式:簡單行為,
[0122]行為方法:行為索引
[0123]}
[0124]]
[0125]},
[0126]{
[0127]行為名稱出行”,
[0128]行為執(zhí)行前提條件:“確定旅游目的地、安排觀光行程、訂票、訂房行為全部成功結(jié)束”,
[0129]行為開始時(shí)間:“2015-6-15”,
[0130]行為結(jié)束時(shí)間:“2015-6-19”,
[0131]行為發(fā)起者:〃XXX〃,
[0132]行為執(zhí)行者:〃XXX〃,
[0133]行為審核:〃XXX〃,
[0134]行為結(jié)束處理:{成功處理:繼續(xù),
[0135]失敗處理:終止流程},
[0136]行為執(zhí)行方式:簡單行為,
[0137]行為方法:行為索引
[0138]}
[0139]]
[0140]}
[0141]從上面的例子可以得出,“外出旅游”為一個(gè)總的行為集合,即一個(gè)最大的行為節(jié)點(diǎn),其包括多個(gè)子行為節(jié)點(diǎn)?!巴獬雎糜巍睘檎麄€(gè)行為集合的開始,不需要設(shè)置執(zhí)行前提條件,而其中的子行為節(jié)點(diǎn),例如“安排觀光形成”這一行為則需要在“確定旅游目的地”行為結(jié)束后才能開始執(zhí)行。每個(gè)行為節(jié)點(diǎn)均有其開始時(shí)間和結(jié)束時(shí)間,根據(jù)開始時(shí)間和結(jié)束時(shí)間生成相應(yīng)的定時(shí)器,到達(dá)定時(shí)器的開始時(shí)間才能開始執(zhí)行該行為,如果到達(dá)定時(shí)器的結(jié)束時(shí)間該行為還沒執(zhí)行結(jié)束,則該行為也被認(rèn)為是失敗的執(zhí)行。
[0142]在執(zhí)行一個(gè)行為時(shí),需要根據(jù)其定義的行為執(zhí)行方式按照相應(yīng)的規(guī)則執(zhí)行,例子中的“外出旅游”的行為執(zhí)行方式為“串行”,則表示其中的子行為節(jié)點(diǎn)“確定旅游目的地”、“安排觀光行程”、“訂房和訂票”和“出行”是按順序執(zhí)行的;例子中的“訂房和訂票”的行為執(zhí)行方式為“并行”,則表示其中的子行為節(jié)點(diǎn)“訂票”和“訂房”是并列執(zhí)行的;例子中的“訂票”的行為執(zhí)行方式為簡單行為,則其根據(jù)行為索引調(diào)用對應(yīng)的處理函數(shù)或者處理程序執(zhí)行,例如根據(jù)“訂票”的索引可以調(diào)用一個(gè)名為orderTicketO的程序,其功能就是系統(tǒng)中預(yù)定義好的一個(gè)訂票功能程序。
[0143]在執(zhí)行完一個(gè)行為節(jié)點(diǎn)時(shí),會根據(jù)該行為當(dāng)前的狀態(tài)執(zhí)行不同的行為結(jié)束處理,例如,例子中的“確定旅游目的地”,如果當(dāng)前的行為狀態(tài)為成功,則可以繼續(xù)執(zhí)行下一行為節(jié)點(diǎn),如果當(dāng)前的行為狀態(tài)為失敗,則整個(gè)行為被終止。
[0144]本發(fā)明的復(fù)合行為驅(qū)動方法的優(yōu)點(diǎn)在于:通過預(yù)定義好一套完整的行為描述模式,根據(jù)每個(gè)行為的描述執(zhí)行不同的動作,根據(jù)前面行為的執(zhí)行狀態(tài)觸發(fā)后面的行為,使行為與行為之間具有關(guān)聯(lián)性,通過組合和嵌套的關(guān)系便可以將多個(gè)簡單行為組合成一個(gè)復(fù)雜行為,實(shí)現(xiàn)一個(gè)結(jié)構(gòu)清晰和邏輯控制強(qiáng)的行為驅(qū)動集合。
[0145]本發(fā)明還公開了一種復(fù)合行為驅(qū)動裝置,包括以下模塊:
[0146]定時(shí)器生成模塊,用于讀取行為驅(qū)動集合文件,根據(jù)每個(gè)行為節(jié)點(diǎn)的開始時(shí)間和結(jié)束時(shí)間生成相應(yīng)的定時(shí)器;
[0147]定時(shí)器觸發(fā)模塊,用于當(dāng)觸發(fā)某個(gè)行為節(jié)點(diǎn)的定時(shí)器的開始時(shí)間,則解析該行為節(jié)點(diǎn)的執(zhí)行前提條件,若執(zhí)行前提條件未設(shè)定或者滿足執(zhí)行前提條件,則執(zhí)行方法執(zhí)行模塊;否則,更新該行為節(jié)點(diǎn)的行為狀態(tài)為失敗,執(zhí)行結(jié)束處理模塊;
[0148]方法執(zhí)行模塊,用于根據(jù)該行為節(jié)點(diǎn)中的執(zhí)行方式執(zhí)行其中的行為方法,執(zhí)行結(jié)束后更新該行為節(jié)點(diǎn)的行為狀態(tài)為成功;
[0149]結(jié)束處理模塊,用于根據(jù)該行為節(jié)點(diǎn)的行為狀態(tài)執(zhí)行對應(yīng)的結(jié)束處理方法,并退出該節(jié)點(diǎn)。
[0150]優(yōu)選的,在方法執(zhí)行模塊中,若該行為節(jié)點(diǎn)中的執(zhí)行方式為串行執(zhí)行,則按先后順序執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為并行執(zhí)行,則同時(shí)執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為簡單執(zhí)行,則根據(jù)執(zhí)行行為方法中的行為索引執(zhí)行相應(yīng)的方法。
[0151]優(yōu)選的,所述行為索引為預(yù)定義的函數(shù)或者邏輯程序封裝后所生成的索引值。
[0152]優(yōu)選的,所述行為驅(qū)動集合文件為由JSON對象描述格式對一個(gè)或多個(gè)行為節(jié)點(diǎn)進(jìn)行描述的文件。
[0153]對本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種復(fù)合行為驅(qū)動方法,其特征在于,包括以下步驟: S1:讀取行為驅(qū)動集合文件,根據(jù)每個(gè)行為節(jié)點(diǎn)的開始時(shí)間和結(jié)束時(shí)間生成相應(yīng)的定時(shí)器; S2:當(dāng)觸發(fā)某個(gè)行為節(jié)點(diǎn)的定時(shí)器的開始時(shí)間,則解析該行為節(jié)點(diǎn)的執(zhí)行前提條件,若執(zhí)行前提條件未設(shè)定或者滿足執(zhí)行前提條件,則執(zhí)行步驟S3 ;否則,更新該行為節(jié)點(diǎn)的行為狀態(tài)為失敗,執(zhí)行步驟S4 ; 53:根據(jù)該行為節(jié)點(diǎn)中的執(zhí)行方式執(zhí)行其中的行為方法,執(zhí)行結(jié)束后更新該行為節(jié)點(diǎn)的行為狀態(tài)為成功; 54:根據(jù)該行為節(jié)點(diǎn)的行為狀態(tài)執(zhí)行對應(yīng)的結(jié)束處理方法,并退出該節(jié)點(diǎn)。2.根據(jù)權(quán)利要求1所述的復(fù)合行為驅(qū)動方法,其特征在于,在步驟S3中,若該行為節(jié)點(diǎn)中的執(zhí)行方式為串行執(zhí)行,則按先后順序執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為并行執(zhí)行,則同時(shí)執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為簡單執(zhí)行,則根據(jù)執(zhí)行行為方法中的行為索引執(zhí)行相應(yīng)的方法。3.根據(jù)權(quán)利要求2所述的復(fù)合行為驅(qū)動方法,其特征在于,所述行為索引為預(yù)定義的函數(shù)或者邏輯程序封裝后所生成的索引值。4.根據(jù)權(quán)利要求1所述的復(fù)合行為驅(qū)動方法,其特征在于,所述行為驅(qū)動集合文件為由JSON對象描述格式對一個(gè)或多個(gè)行為節(jié)點(diǎn)進(jìn)行描述的文件。5.一種復(fù)合行為驅(qū)動裝置,其特征在于,包括以下模塊: 定時(shí)器生成模塊,用于讀取行為驅(qū)動集合文件,根據(jù)每個(gè)行為節(jié)點(diǎn)的開始時(shí)間和結(jié)束時(shí)間生成相應(yīng)的定時(shí)器; 定時(shí)器觸發(fā)模塊,用于當(dāng)觸發(fā)某個(gè)行為節(jié)點(diǎn)的定時(shí)器的開始時(shí)間,則解析該行為節(jié)點(diǎn)的執(zhí)行前提條件,若執(zhí)行前提條件未設(shè)定或者滿足執(zhí)行前提條件,則執(zhí)行方法執(zhí)行模塊;否貝1J,更新該行為節(jié)點(diǎn)的行為狀態(tài)為失敗,執(zhí)行結(jié)束處理模塊; 方法執(zhí)行模塊,用于根據(jù)該行為節(jié)點(diǎn)中的執(zhí)行方式執(zhí)行其中的行為方法,執(zhí)行結(jié)束后更新該行為節(jié)點(diǎn)的行為狀態(tài)為成功; 結(jié)束處理模塊,用于根據(jù)該行為節(jié)點(diǎn)的行為狀態(tài)執(zhí)行對應(yīng)的結(jié)束處理方法,并退出該節(jié)點(diǎn)。6.根據(jù)權(quán)利要求5所述的復(fù)合行為驅(qū)動裝置,其特征在于,在方法執(zhí)行模塊中,若該行為節(jié)點(diǎn)中的執(zhí)行方式為串行執(zhí)行,則按先后順序執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為并行執(zhí)行,則同時(shí)執(zhí)行行為方法中的子行為節(jié)點(diǎn);若該行為節(jié)點(diǎn)中的執(zhí)行方式為簡單執(zhí)行,則根據(jù)執(zhí)行行為方法中的行為索引執(zhí)行相應(yīng)的方法。7.根據(jù)權(quán)利要求6所述的復(fù)合行為驅(qū)動裝置,其特征在于,所述行為索引為預(yù)定義的函數(shù)或者邏輯程序封裝后所生成的索引值。8.根據(jù)權(quán)利要求5所述的復(fù)合行為驅(qū)動裝置,其特征在于,所述行為驅(qū)動集合文件為由JSON對象描述格式對一個(gè)或多個(gè)行為節(jié)點(diǎn)進(jìn)行描述的文件。
【專利摘要】本發(fā)明公開了一種復(fù)合行為驅(qū)動方法和裝置,方法包括:S1:讀取行為驅(qū)動集合文件,根據(jù)每個(gè)行為節(jié)點(diǎn)的開始時(shí)間和結(jié)束時(shí)間生成相應(yīng)的定時(shí)器;S2:當(dāng)觸發(fā)某個(gè)行為節(jié)點(diǎn)的定時(shí)器的開始時(shí)間,則解析該行為節(jié)點(diǎn)的執(zhí)行前提條件,若執(zhí)行前提條件未設(shè)定或者滿足執(zhí)行前提條件,則執(zhí)行步驟S3;否則,更新該行為節(jié)點(diǎn)的行為狀態(tài)為失敗,執(zhí)行步驟S4;S3:根據(jù)該行為節(jié)點(diǎn)中的執(zhí)行方式執(zhí)行其中的行為方法,執(zhí)行結(jié)束后更新該行為節(jié)點(diǎn)的行為狀態(tài)為成功;S4根據(jù)該行為節(jié)點(diǎn)的行為狀態(tài)執(zhí)行對應(yīng)的結(jié)束處理方法,并退出該節(jié)點(diǎn)。本發(fā)明既可以很好地繼承事件驅(qū)動的優(yōu)點(diǎn),又可以解決現(xiàn)有技術(shù)中多個(gè)事件組成部分結(jié)構(gòu)松散和邏輯控制弱的問題。
【IPC分類】G06F9/44
【公開號】CN105045580
【申請?zhí)枴緾N201510382794
【發(fā)明人】苗青
【申請人】廣州支點(diǎn)網(wǎng)絡(luò)科技有限公司
【公開日】2015年11月11日
【申請日】2015年6月30日