版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
(19)國家知識產(chǎn)權(quán)局(12)發(fā)明專利王彤輝付闖闖胡紹勇所(普通合伙)34124權(quán)利要求書3頁說明書12頁附圖3頁本發(fā)明公開一種基于流程化配置的信息采每一流程節(jié)點(diǎn)采用與流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行21.一種基于流程化配置的信息采集方法,其特征在于,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述方法包括:獲取所述信息采集任務(wù);按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例;在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果;所述預(yù)先定義的業(yè)務(wù)流程文件的信息包括流程基礎(chǔ)定義、流程節(jié)點(diǎn)、節(jié)點(diǎn)執(zhí)行命令列表和目標(biāo)節(jié)點(diǎn),所述流程基礎(chǔ)定義包括節(jié)點(diǎn)參數(shù)列表,所述節(jié)點(diǎn)類型包括開始節(jié)點(diǎn)、登錄類節(jié)點(diǎn)、執(zhí)行類節(jié)點(diǎn)、網(wǎng)關(guān)類節(jié)點(diǎn)、子流程類節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);所述網(wǎng)關(guān)類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為根據(jù)所述目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的所述節(jié)點(diǎn)參數(shù)列表;所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為遍歷所述節(jié)點(diǎn)執(zhí)行命令列表或所述節(jié)點(diǎn)參數(shù)列表,生成執(zhí)行命令以根據(jù)所述執(zhí)行命令調(diào)用執(zhí)行器得到執(zhí)行結(jié)果;所述子流程類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為掛起主流程,根據(jù)所述子流程類節(jié)點(diǎn)綁定的流程ID新建與所述子流程類節(jié)點(diǎn)對應(yīng)的子任務(wù)實(shí)例,并在所述子任務(wù)實(shí)例全部執(zhí)行結(jié)束時(shí)喚醒主所述主流程;在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例之前,還包括:判斷當(dāng)前所述流程節(jié)點(diǎn)是否配置有節(jié)點(diǎn)執(zhí)行前置處理器;若是,則調(diào)用所述節(jié)點(diǎn)執(zhí)行前置處理器對當(dāng)前所述流程節(jié)點(diǎn)的屬性進(jìn)行二次定義;若否,則采用與當(dāng)前所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例。2.如權(quán)利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述方法,還包預(yù)加載所述業(yè)務(wù)流程文件,生成流程定義對象并加入到緩存列表;啟動(dòng)熱加載監(jiān)聽線程,監(jiān)聽所述業(yè)務(wù)流程文件,并在監(jiān)聽到所述業(yè)務(wù)流程文件變化時(shí),熱加載所述業(yè)務(wù)流程文件。3.如權(quán)利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述流程節(jié)點(diǎn)的屬性信息包括所述節(jié)點(diǎn)類型;所述執(zhí)行類節(jié)點(diǎn)包括循環(huán)節(jié)點(diǎn)和普通節(jié)點(diǎn),所述網(wǎng)關(guān)類節(jié)點(diǎn)包括普通網(wǎng)關(guān)節(jié)點(diǎn)和排他網(wǎng)關(guān)節(jié)點(diǎn),所述子流程類節(jié)點(diǎn)包括登錄子流程節(jié)點(diǎn)、普通子流程節(jié)點(diǎn)和并行子流程節(jié)點(diǎn);其中,所述開始節(jié)點(diǎn)對應(yīng)的執(zhí)行策略為直接流轉(zhuǎn)至下一流程節(jié)點(diǎn);所述登錄類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為構(gòu)建目標(biāo)登錄鏈接;所述結(jié)束節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為標(biāo)記所述任務(wù)實(shí)例為結(jié)束狀態(tài)。4.如權(quán)利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述流程節(jié)點(diǎn)的屬性還包括結(jié)果解析api路徑,在采用與所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到所述執(zhí)行結(jié)果時(shí),還包括:根據(jù)當(dāng)前節(jié)點(diǎn)配置的所述結(jié)果解析api路徑,工具代理調(diào)用與所述結(jié)果解析api路徑對應(yīng)的方法對所述執(zhí)行結(jié)果進(jìn)行處理,得到符合業(yè)務(wù)需要的結(jié)構(gòu)化結(jié)果。35.如權(quán)利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述獲取所述信判斷所述信息采集任務(wù)的運(yùn)行狀態(tài);在所述信息采集任務(wù)的類別為停止任務(wù)時(shí),設(shè)置所述信息采集任務(wù)為停止?fàn)顟B(tài);在所述信息采集任務(wù)的類別為執(zhí)行任務(wù)時(shí),確定所述信息采集任務(wù)為有效任務(wù);按照與所述有效任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述有效任務(wù)對用的流程實(shí)將所述流程實(shí)例加入緩存列表,將所述有效任務(wù)插入數(shù)據(jù)庫。6.如權(quán)利要求5所述的基于流程化配置的信息采集方法,其特征在于,所述方法還包監(jiān)控所述數(shù)據(jù)庫中的所述有效任務(wù)的運(yùn)行時(shí)間,確定所述有效任務(wù)中是否存在超時(shí)任務(wù)和未超時(shí)任務(wù);若存在未超時(shí)任務(wù),則恢復(fù)所述未超時(shí)任務(wù);若存在超時(shí)任務(wù),則清除所述超時(shí)任務(wù)。7.如權(quán)利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述流程節(jié)點(diǎn)的屬性還包括執(zhí)行異常處理策略,所述方法還包括:確定所述執(zhí)行命令異常;調(diào)用所述執(zhí)行異常處理策略進(jìn)行處理。8.如權(quán)利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述方法還包根據(jù)所述命令的內(nèi)容和所述命令的執(zhí)行類型,通過模板模式循環(huán)匹配對應(yīng)類型的命令執(zhí)行實(shí)現(xiàn)類,調(diào)用所述執(zhí)行器得到所述執(zhí)行結(jié)果;9.一種基于流程化配置的信息采集裝置,其特征在于,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述裝置包括:獲取模塊,用于獲取所述信息采集任務(wù);生成模塊,用于按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例;執(zhí)行模塊,用于在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果;所述預(yù)先定義的業(yè)務(wù)流程文件的信息包括流程基礎(chǔ)定義、流程節(jié)點(diǎn)、節(jié)點(diǎn)執(zhí)行命令列表和目標(biāo)節(jié)點(diǎn),所述流程基礎(chǔ)定義包括節(jié)點(diǎn)參數(shù)列表,所述節(jié)點(diǎn)類型包括開始節(jié)點(diǎn)、登錄類所述網(wǎng)關(guān)類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為根據(jù)所述目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的所述節(jié)點(diǎn)參數(shù)列表;所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為遍歷所述節(jié)點(diǎn)執(zhí)行命令列表或所述節(jié)點(diǎn)參數(shù)列表,生成執(zhí)行命令以根據(jù)所述執(zhí)行命令調(diào)用執(zhí)行器得到執(zhí)行結(jié)果;所述子流程類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為掛起主流程,根據(jù)所述子流程類節(jié)點(diǎn)綁定的流程ID新建與所述子流程類節(jié)點(diǎn)對應(yīng)的子任務(wù)實(shí)例,并在所述子任務(wù)實(shí)例全部執(zhí)行結(jié)束時(shí)CN114185535B4喚醒主所述主流程;在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例之前,還包括:判斷當(dāng)前所述流程節(jié)點(diǎn)是否配置有節(jié)點(diǎn)執(zhí)行前置處理器;若是,則調(diào)用所述節(jié)點(diǎn)執(zhí)行前置處理器對當(dāng)前所述流程節(jié)點(diǎn)的屬性進(jìn)行二次定義;若否,則采用與當(dāng)前所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例。5基于流程化配置的信息采集方法及裝置技術(shù)領(lǐng)域[0001]本發(fā)明屬于軟件技術(shù)領(lǐng)域,具體涉及一種基于流程化配置的信息采集方法及裝背景技術(shù)[0002]建設(shè)安全資產(chǎn)管理平臺,實(shí)現(xiàn)對資產(chǎn)全生命周期的可視化安全管理,建立企業(yè)全面動(dòng)態(tài)的資產(chǎn)清單庫是信息安全的基礎(chǔ),優(yōu)秀的資產(chǎn)信息采集工具是建立健全的資產(chǎn)庫的必要條件。中采集工具開發(fā)工作量巨大;(2)采集工具高度制定化,靈活性差,擴(kuò)展性低;(3)異常情況難以排查。[0004]如申請?zhí)?02011314586.0的發(fā)明專利申請公開的一種基于電力系統(tǒng)的多源異構(gòu)數(shù)據(jù)采集匯聚系統(tǒng)及方法,但該方案面向于電力系統(tǒng)場景,通過提供多源異構(gòu)數(shù)據(jù)源配置界面,通過界面方式靈活快捷配置異構(gòu)數(shù)據(jù)源,簡化數(shù)據(jù)源開發(fā)工作,其主要針對非實(shí)時(shí)性數(shù)據(jù)、日志數(shù)據(jù)以及互聯(lián)網(wǎng)數(shù)據(jù)的采集匯聚,以及不同數(shù)據(jù)源之間的存儲(chǔ),并未涉及操作系發(fā)明內(nèi)容[0005]本發(fā)明旨在提供一種基于流程化配置的信息采集方法、裝置、工具及存儲(chǔ)介質(zhì),以降低程序耦合性,提高信息采集工具的開發(fā)效率。[0006]本發(fā)明通過以下技術(shù)手段實(shí)現(xiàn)解決上述技術(shù)問題的:[0007]一方面,本發(fā)明實(shí)施例提供了一種基于流程化配置的信息采集方法,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述方法包括:[0009]按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例;[0010]在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果。[0011]通過采用工作流的思想,預(yù)先定義每一種信息采集任務(wù)對應(yīng)的業(yè)務(wù)流程文件,由業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,在獲取到信息采集任務(wù)時(shí),利用對應(yīng)的業(yè)務(wù)流程文件生成與信息采集任務(wù)對應(yīng)的任務(wù)實(shí)例,在任務(wù)實(shí)例運(yùn)行時(shí),根據(jù)運(yùn)行數(shù)據(jù)動(dòng)態(tài)流轉(zhuǎn)工作節(jié)點(diǎn),達(dá)到僅通過修改業(yè)務(wù)流程文件即可實(shí)現(xiàn)大多數(shù)通用信息的采集。在任務(wù)實(shí)例運(yùn)行時(shí)動(dòng)態(tài)調(diào)用用戶自定義的實(shí)現(xiàn)內(nèi)容,將用戶行為與公共行為解耦合,最大化達(dá)到對采集任務(wù)運(yùn)行流轉(zhuǎn)的控制,極大的降低了因適配業(yè)務(wù)修改帶來的硬編碼工作,提高了信息采集工具的開發(fā)效[0012]進(jìn)一步地,所述預(yù)先定義的業(yè)務(wù)流程文件的信息包括流程基礎(chǔ)定義、流程節(jié)點(diǎn)、節(jié)6點(diǎn)執(zhí)行命令列表和目標(biāo)節(jié)點(diǎn);[0013]所述流程基礎(chǔ)定義的屬性包括流程ID、版本號、超時(shí)時(shí)長和節(jié)點(diǎn)參數(shù)列表;[0014]所述流程節(jié)點(diǎn)的屬性包括節(jié)點(diǎn)類型、節(jié)點(diǎn)ID、結(jié)果解析api路徑、執(zhí)行命令列表和目標(biāo)節(jié)點(diǎn)列表;[0015]所述節(jié)點(diǎn)執(zhí)行命令列表的屬性包括命令I(lǐng)D、命令內(nèi)容和命令執(zhí)行類型;[0016]所述目標(biāo)節(jié)點(diǎn)的屬性包括目標(biāo)節(jié)點(diǎn)ID和連線表達(dá)式。[0018]預(yù)加載所述業(yè)務(wù)流程文件,生成流程定義對象并加入到緩存列表;[0019]啟動(dòng)熱加載監(jiān)聽線程,監(jiān)聽所述業(yè)務(wù)流程文件,并在監(jiān)聽到所述業(yè)務(wù)流程文件變化時(shí),熱加載所述業(yè)務(wù)流程文件。流程類節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);[0021]所述執(zhí)行類節(jié)點(diǎn)包括循環(huán)節(jié)點(diǎn)和普通節(jié)點(diǎn),所述網(wǎng)關(guān)類節(jié)點(diǎn)包括普通網(wǎng)關(guān)節(jié)點(diǎn)和排他網(wǎng)關(guān)節(jié)點(diǎn),所述子流程類節(jié)點(diǎn)包括登錄子流程節(jié)點(diǎn)、普通子流程節(jié)點(diǎn)和并行子流程節(jié)[0022]進(jìn)一步地,所述開始節(jié)點(diǎn)對應(yīng)的執(zhí)行策略為直接流轉(zhuǎn)至下一流程節(jié)點(diǎn);[0023]所述登錄類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為構(gòu)建目標(biāo)登錄鏈接;[0024]所述網(wǎng)關(guān)類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為根據(jù)所述目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的所述節(jié)點(diǎn)參數(shù)列表;[0025]所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為遍歷所述節(jié)點(diǎn)執(zhí)行命令列表或所述節(jié)點(diǎn)參數(shù)列表,生成執(zhí)行命令以根據(jù)所述執(zhí)行命令調(diào)用執(zhí)行器得到執(zhí)行結(jié)果;[0026]所述子流程類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為掛起主流程,根據(jù)所述子流程節(jié)點(diǎn)綁定的流程ID新建與所述子流程節(jié)點(diǎn)對應(yīng)的子任務(wù)實(shí)例,并在所述子任務(wù)實(shí)例全部執(zhí)行結(jié)束時(shí)喚醒主所述主流程;[0027]所述結(jié)束節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為標(biāo)記所述任務(wù)實(shí)例為結(jié)束狀態(tài)。[0028]進(jìn)一步地,所述在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所[0029]判斷當(dāng)前所述流程節(jié)點(diǎn)是否配置有節(jié)點(diǎn)執(zhí)行前置處理器;[0030]若是,則調(diào)用所述節(jié)點(diǎn)執(zhí)行前置處理器對當(dāng)前所述流程節(jié)點(diǎn)的屬性進(jìn)行二次定[0031]若否,則采用與當(dāng)前所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例。[0032]進(jìn)一步地,在采用與所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到所[0033]根據(jù)當(dāng)前節(jié)點(diǎn)配置的所述結(jié)果解析api路徑,工具代理調(diào)用與所述結(jié)果解析api路徑對應(yīng)的方法對所述執(zhí)行結(jié)果進(jìn)行處理,得到符合業(yè)務(wù)需要的結(jié)構(gòu)化結(jié)果。[0035]判斷所述信息采集任務(wù)的運(yùn)行狀態(tài);[0036]在所述信息采集任務(wù)的類別為停止任務(wù)時(shí),設(shè)置所述信息采集任務(wù)為停止?fàn)顟B(tài);[0037]在所述信息采集任務(wù)的類別為執(zhí)行任務(wù)時(shí),確定所述信息采集任務(wù)為有效任務(wù);7[0038]按照與所述有效任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述有效任務(wù)對用的流程[0039]將所述流程實(shí)例加入緩存列表,將所述有效任務(wù)插入數(shù)據(jù)庫。[0041]監(jiān)控所述數(shù)據(jù)庫中的所述有效任務(wù)的運(yùn)行時(shí)間,確定所述有效任務(wù)中存在超時(shí)任務(wù)和未超時(shí)任務(wù);[0042]恢復(fù)所述未超時(shí)任務(wù),清除所述超時(shí)任務(wù)。[0043]進(jìn)一步地,所述流程節(jié)點(diǎn)的屬性還包括執(zhí)行異常處理策略,所述方法還包括:[0044]確定所述執(zhí)行命令異常;[0045]調(diào)用所述執(zhí)行異常處理策略進(jìn)行處理。[0047]根據(jù)所述命令內(nèi)容和所述命令執(zhí)行類型,通過模板模式循環(huán)匹配對應(yīng)類型的命令執(zhí)行實(shí)現(xiàn)類,調(diào)用所述執(zhí)行器得到所述執(zhí)行結(jié)果;[0049]第二方面,本發(fā)明實(shí)施例還提供了一種基于流程化配置的信息采集裝置,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述裝置包括:[0051]生成模塊,用于按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例;[0052]執(zhí)行模塊,用于在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果。[0053]第三發(fā)面,本發(fā)明實(shí)施例還提供了一種信息采集[0054]第四方面,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)如上所述的方法。[0056](1)通過采用工作流的思想,預(yù)先定義每一種信息采集任務(wù)對應(yīng)的業(yè)務(wù)流程文件,由業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,在獲取到信息采集任務(wù)時(shí),利用對應(yīng)的業(yè)務(wù)流程文件生成與信息采集任務(wù)對應(yīng)的任務(wù)實(shí)例,在任務(wù)實(shí)例運(yùn)行時(shí),根據(jù)運(yùn)行數(shù)據(jù)動(dòng)態(tài)流轉(zhuǎn)工作節(jié)點(diǎn),達(dá)到僅通過修改業(yè)務(wù)流程文件即可實(shí)現(xiàn)大多數(shù)通用信息的采集。在任務(wù)實(shí)例運(yùn)行時(shí)動(dòng)態(tài)調(diào)用用戶自定義的實(shí)現(xiàn)內(nèi)容,將用戶行為與公共行為解耦合,最大化達(dá)到對采集任務(wù)運(yùn)行流轉(zhuǎn)的控制,極大的降低了因適配業(yè)務(wù)修改帶來的硬編碼工作,提高了信息采集工具的開發(fā)[0057](2)通過設(shè)置熱加載監(jiān)聽線程,監(jiān)聽到業(yè)務(wù)流程文件有修改變化時(shí),對變化的業(yè)務(wù)[0058](3)通過配置節(jié)點(diǎn)執(zhí)行前置處理器,可用于對流程定義進(jìn)行修改,使用靈活,進(jìn)一步提高了軟件可擴(kuò)展性,并且保證了信息采集的安全性。[0059](4)在得到信息采集任務(wù)的執(zhí)行結(jié)果后,調(diào)用結(jié)果解析流程對執(zhí)行結(jié)果進(jìn)行解析,可得到符合用戶自定義數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。[0060](5)通過提供配置化的節(jié)點(diǎn)執(zhí)行異常處理策略,在確定執(zhí)行命令異常時(shí),對異常命8令進(jìn)行處理,避免以往異常后問題難以排查的問題,也控制了異常對任務(wù)執(zhí)行影響。[0061]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。附圖說明[0062]圖1是本發(fā)明一實(shí)施例中一種基于流程化配置的信息采集方法的流程圖;[0063]圖2是本發(fā)明一實(shí)施例中一種基于流程化配置的信息采集方法的整體流程圖;[0064]圖3是本發(fā)明一實(shí)施例中一種基于流程化配置的信息采集裝置的結(jié)構(gòu)圖。具體實(shí)施方式[0065]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0066]如圖1所示,本實(shí)施例公開了一種基于流程化配置的信息采集方法,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述方法包括如下步驟:[0068]S120、按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例。[0069]需要說明的是,本實(shí)施例中獲取的信息采集任務(wù)可以是來自第三方平臺,在獲取到信息采集任務(wù)后先對參數(shù)進(jìn)行校驗(yàn),校驗(yàn)通過后獲取該信息采集任務(wù)對應(yīng)的業(yè)務(wù)流程文件,生成與信息采集任務(wù)對應(yīng)的流程實(shí)例,將流程實(shí)例加入緩存,將信息采集任務(wù)信息插入嵌入式數(shù)據(jù)庫,然后從流程開始節(jié)點(diǎn)執(zhí)行。[0070]應(yīng)當(dāng)理解的是,本實(shí)施例中對參數(shù)進(jìn)行校驗(yàn)指的是對目標(biāo)ip和任務(wù)流程編碼進(jìn)行[0071]S30、在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果。[0072]需要說明的是,本實(shí)施例通過采用工作流的思想,預(yù)先定義業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,在任務(wù)實(shí)例運(yùn)行時(shí),根據(jù)運(yùn)行數(shù)據(jù)動(dòng)態(tài)流轉(zhuǎn)工作節(jié)點(diǎn),達(dá)到僅通過修改業(yè)務(wù)流程文件即可實(shí)現(xiàn)大多數(shù)通用信息的采集,降低了信息采集工具的開發(fā)工作量,提高開發(fā)效率。在任務(wù)實(shí)例運(yùn)行時(shí)動(dòng)態(tài)調(diào)用用戶自定義的實(shí)現(xiàn)內(nèi)容,將用戶行為與公共行為解耦合,最大化達(dá)到對采集任務(wù)運(yùn)行流轉(zhuǎn)的控制,極大的降低了因適配業(yè)務(wù)修改帶來的硬編碼工作,應(yīng)[0073]應(yīng)當(dāng)理解的是,本實(shí)施例可以直觀的從流程定義文件中看到信息采集流程的業(yè)務(wù)邏輯,無需將邏輯都耦合到代碼里??梢缘统杀旧踔亮愠杀镜男薷牧鞒踢壿?,無需像相關(guān)技術(shù)中修改一些邏輯就要到處重構(gòu)代碼。通過預(yù)先定義業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,降低步驟執(zhí)行、結(jié)果解析、結(jié)果返回等模塊間的耦合,使用方僅需要關(guān)注業(yè)務(wù)[0074]在一實(shí)施例中,所述預(yù)先定義的業(yè)務(wù)流程文件的信息包括流程基礎(chǔ)定義(process)、流程節(jié)點(diǎn)(node)、節(jié)點(diǎn)執(zhí)行命令列表(cmdInfo)以及目標(biāo)節(jié)點(diǎn)(targetRef);9[0075]所述流程基礎(chǔ)定義的屬性包括流程ID、版本號、超時(shí)時(shí)長和節(jié)點(diǎn)參數(shù)列表;標(biāo)節(jié)點(diǎn)列表、是否需要緩存連接和節(jié)點(diǎn)執(zhí)行前置處理器name;[0077]所述節(jié)點(diǎn)執(zhí)行命令列表的屬性包括命令I(lǐng)D、是否加密傳輸、命令內(nèi)容和命令執(zhí)行類型,其中,所述命令內(nèi)容支持springEL表達(dá)式動(dòng)態(tài)解析命令,代入任務(wù)實(shí)例和節(jié)點(diǎn)執(zhí)行結(jié)[0078]所述目標(biāo)節(jié)點(diǎn)的屬性包括目標(biāo)節(jié)點(diǎn)ID和連線表達(dá)式,其中,連線表達(dá)式可采用SpringEL表達(dá)式,代入任務(wù)執(zhí)行結(jié)果變量后得出節(jié)點(diǎn)是否成立。[0079]需要說明的是,本實(shí)施例中用戶可靈活定義信息采集和結(jié)果解析流程,做到業(yè)務(wù)功能的輕松靈活擴(kuò)展。[0081]預(yù)加載所述業(yè)務(wù)流程文件,生成流程定義對象并加入到緩存列表;[0082]啟動(dòng)熱加載監(jiān)聽線程,監(jiān)聽所述業(yè)務(wù)流程文件,并在監(jiān)聽到所述業(yè)務(wù)流程文件變[0083]需要說明的是,本實(shí)施例在啟動(dòng)信息采集任務(wù)時(shí),利用加載組件通過java反射的方式獲取流程定義加載實(shí)現(xiàn)類,根據(jù)配置文件中的servicesJcDefFilePath屬性,掃描并加載此配置文件夾下的業(yè)務(wù)流程文件,生成流程定義對象加入緩存,并啟動(dòng)熱加載監(jiān)聽線程,監(jiān)聽到業(yè)務(wù)流程文件變化時(shí),對變化的業(yè)務(wù)流程文件熱加載,實(shí)現(xiàn)對業(yè)務(wù)流程文件的修改。[0084]在一實(shí)施例中,在啟動(dòng)信息采集任務(wù)時(shí),利用掃描組件通過java反射,掃描被@ExecResolverMapping標(biāo)記的類和方法,預(yù)加載并構(gòu)建結(jié)果解析流程對象,加入到內(nèi)存緩存列表中。[0085]在一實(shí)施例中,所述流程節(jié)點(diǎn)的類型包括開始節(jié)點(diǎn)、登錄類節(jié)點(diǎn)、執(zhí)行類節(jié)點(diǎn)、網(wǎng)關(guān)類節(jié)點(diǎn)、子流程類節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);[0086]所述執(zhí)行類節(jié)點(diǎn)包括循環(huán)節(jié)點(diǎn)和普通節(jié)點(diǎn),所述網(wǎng)關(guān)類節(jié)點(diǎn)包括普通網(wǎng)關(guān)節(jié)點(diǎn)和排他網(wǎng)關(guān)節(jié)點(diǎn),所述子流程類節(jié)點(diǎn)包括登錄子流程節(jié)點(diǎn)、普通子流程節(jié)點(diǎn)和并行子流程節(jié)[0088](1)登錄類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為構(gòu)建目標(biāo)登錄鏈接。[0089]需要說明的是,通過登錄類節(jié)點(diǎn)構(gòu)造目標(biāo)對象的登錄鏈接,而且可以復(fù)用登錄類[0090](2)網(wǎng)關(guān)類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為根據(jù)所述目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的所述節(jié)點(diǎn)參數(shù)列表。[0091]其中,普通網(wǎng)關(guān)節(jié)點(diǎn)會(huì)將連線表達(dá)式代入任務(wù)變量后判斷目標(biāo)節(jié)點(diǎn)是否成立,并基于成立的目標(biāo)節(jié)點(diǎn)得到下一步執(zhí)行的節(jié)點(diǎn)參數(shù)列表;排他網(wǎng)關(guān)則基于第一個(gè)成立的目標(biāo)節(jié)點(diǎn)得到下一步執(zhí)行的節(jié)點(diǎn)參數(shù)列表。[0092](3)執(zhí)行類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為遍歷所述節(jié)點(diǎn)執(zhí)行命令列表或所述節(jié)點(diǎn)參數(shù)列表,生成執(zhí)行命令以根據(jù)所述執(zhí)行命令調(diào)用執(zhí)行器得到執(zhí)行結(jié)果。[0093]其中,普通節(jié)點(diǎn)會(huì)遍歷命令列表,代入任務(wù)變量生成最終執(zhí)行命令調(diào)用對應(yīng)類型的執(zhí)行器,異步得到結(jié)果通過反射統(tǒng)一調(diào)用用戶自定義解析后繼續(xù)下一步。[0094]需要說明的是,若配置了碎片化返回,工具會(huì)通過事件模式將結(jié)果上報(bào)給上游平[0095]循環(huán)節(jié)點(diǎn)會(huì)遍歷節(jié)點(diǎn)參數(shù)列表,生成多組命令列表循環(huán)調(diào)用命令執(zhí)行器,異步得到結(jié)果后通過反射統(tǒng)一調(diào)用用戶自定義的結(jié)果解析流程。[0096](4)子流程類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為掛起主流程,根據(jù)所述子流程節(jié)點(diǎn)綁定的流程ID新建與所述子流程節(jié)點(diǎn)對應(yīng)的子任務(wù)實(shí)例,并在所述子任務(wù)實(shí)例全部執(zhí)行結(jié)束時(shí)喚醒主所述主流程。[0097](5)結(jié)束節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為標(biāo)記所述任務(wù)實(shí)例為結(jié)束狀態(tài)。[0098]在一實(shí)施例中,在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例之前,還包括:[0099]判斷當(dāng)前所述流程節(jié)點(diǎn)是否配置有節(jié)點(diǎn)執(zhí)行前置處理器;[0100]若是,則調(diào)用所述節(jié)點(diǎn)執(zhí)行前置處理器對當(dāng)前所述流程節(jié)點(diǎn)的屬性進(jìn)行二次定[0101]若否,則采用與當(dāng)前所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例。[0102]需要說明的是,本實(shí)施例通過配置節(jié)點(diǎn)執(zhí)行前置處理器,可用于對流程定義進(jìn)行修改,使用靈活,提高了軟件可擴(kuò)展性,并且保證了信息采集的安全性,為提供一種業(yè)務(wù)開發(fā)人員在運(yùn)行中對流程二次定義的鉤子,保證靈活性[0103]需要說明的是,節(jié)點(diǎn)執(zhí)行前置處理器是在節(jié)點(diǎn)執(zhí)行策略之前被調(diào)用的,之后節(jié)點(diǎn)執(zhí)行策略需要正常調(diào)用的,可以對流程節(jié)點(diǎn)的定義進(jìn)行后置處理,只對當(dāng)前任務(wù)流程實(shí)例產(chǎn)生影響。[0104]在一實(shí)施例中,在采用與所述執(zhí)行類節(jié)點(diǎn)對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到所述執(zhí)行結(jié)果時(shí),還包括:[0105]根據(jù)當(dāng)前節(jié)點(diǎn)配置的所述結(jié)果解析api路徑,工具代理調(diào)用與所述結(jié)果解析api路徑對應(yīng)的方法對所述執(zhí)行結(jié)果進(jìn)行處理,得到符合業(yè)務(wù)需要的結(jié)構(gòu)化結(jié)果。[0106]需要說明的是,結(jié)果解析流程為用戶自定義內(nèi)容,在得到信息采集任務(wù)的執(zhí)行結(jié)果后,調(diào)用結(jié)果解析流程對執(zhí)行結(jié)果進(jìn)行解析,可得到符合用戶自定義數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。[0107]在一實(shí)施例中,所述獲取所述信息采集任務(wù)之后,還包括:[0108]判斷所述信息采集任務(wù)的運(yùn)行狀態(tài);[0109]在所述信息采集任務(wù)的類別為停止任務(wù)時(shí),設(shè)置所述信息采集任務(wù)為停止?fàn)顟B(tài);[0110]在所述信息采集任務(wù)的類別為執(zhí)行任務(wù)時(shí),確定所述信息采集任務(wù)為有效任務(wù);[0111]按照與所述有效任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述有效任務(wù)對用的流程實(shí)例;[0112]將所述流程實(shí)例加入緩存列表,將所述有效任務(wù)插入數(shù)據(jù)庫。[0113]需要說明的是,通過合理使用緩存,提高了命令執(zhí)行的效率,如:以往一個(gè)linux4A主機(jī)資產(chǎn)信息的采集需要10分鐘,本實(shí)施例則僅需要1分30秒,效果提升明顯。[0114]在一實(shí)施例中,所述方法還包括:[0115]監(jiān)控所述數(shù)據(jù)庫中的所述有效任務(wù)的運(yùn)行時(shí)間,確定所述有效任務(wù)中存在超時(shí)任務(wù)和未超時(shí)任務(wù);11[0116]恢復(fù)所述未超時(shí)任務(wù),清除所述超時(shí)任務(wù)。[0117]需要說明的是,本實(shí)施例可通過設(shè)置監(jiān)控組件查詢嵌入式數(shù)據(jù)庫job_info表中的[0118]在一實(shí)施例中,所述流程節(jié)點(diǎn)的屬性還包括執(zhí)行異常處理策略,所述方法還包括:[0119]確定所述執(zhí)行命令異常;[0120]調(diào)用所述執(zhí)行異常處理策略進(jìn)行處理。[0121]需要說明的是,本實(shí)施例通過提供配置化的節(jié)點(diǎn)執(zhí)行異常處理策略,在確定執(zhí)行命令異常時(shí),支持的異常處理策略包括跳過當(dāng)前節(jié)點(diǎn)、結(jié)束當(dāng)前任務(wù)、遞歸結(jié)束任務(wù)或支持配置自定義異常處理策略。發(fā)生異常時(shí)會(huì)觸發(fā)事件上報(bào)節(jié)點(diǎn)異常信息,更合理的監(jiān)控任務(wù)執(zhí)行。[0122]需要說明的是,本實(shí)施例中異常處理策略可缺省,缺省時(shí)為不影響流程繼續(xù)執(zhí)行,需自定義節(jié)點(diǎn)執(zhí)行前置處理器。[0124]根據(jù)所述命令內(nèi)容和所述命令執(zhí)行類型,通過模板模式循環(huán)匹配對應(yīng)類型的命令執(zhí)行實(shí)現(xiàn)類,調(diào)用所述執(zhí)行器得到所述執(zhí)行結(jié)果;[0126]需要說明的是,本實(shí)施例在任務(wù)執(zhí)行時(shí),可任務(wù)執(zhí)行工具內(nèi)置命令執(zhí)行工具,對不同執(zhí)行類型和協(xié)議類型組合出的命令提供命令執(zhí)行和結(jié)果回調(diào)功能;工具提供的命令執(zhí)行telnet。通過模板模式保證執(zhí)行和協(xié)議類型的靈活擴(kuò)展。[0127]在一實(shí)施例中,信息采集任務(wù)結(jié)束后會(huì)關(guān)閉執(zhí)行器緩存的連接,移除緩存的任務(wù)實(shí)例,刪除入庫的任務(wù)信息,觸發(fā)上報(bào)任務(wù)結(jié)果事件,第三方平臺用戶使用事件監(jiān)聽的方式獲取任務(wù)執(zhí)行的采集結(jié)果,如平臺服務(wù)啟動(dòng)時(shí)注冊指定類型的事件到本軟件工具,任務(wù)執(zhí)[0128]以下通過幾個(gè)具體實(shí)例對本實(shí)施例方案進(jìn)行說明:[0129]示例1:網(wǎng)絡(luò)內(nèi)linux主機(jī)設(shè)備信息登錄采集[0130](1)、第一步節(jié)點(diǎn)通過自定義登錄連接節(jié)點(diǎn)執(zhí)行前置處理器鉤子接口實(shí)現(xiàn)類(connPostProcessor)的方式,構(gòu)造登錄連接對象,執(zhí)行器登錄后緩存連接并執(zhí)行sh命令獲取系統(tǒng)信息,得到執(zhí)行的原始結(jié)果后工具調(diào)用節(jié)點(diǎn)配置的自定義解析方法,得到符合業(yè)務(wù)需求的數(shù)據(jù)結(jié)構(gòu),由工具根據(jù)節(jié)點(diǎn)配置進(jìn)行數(shù)據(jù)上報(bào);若執(zhí)行異常則根據(jù)配置的異常策略[0132](3)、第三步為并行網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)上一步得到的服務(wù)組件信息,根據(jù)不同目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的節(jié)點(diǎn)列表;如目標(biāo)資產(chǎn)有mysql、Nginx、Oracle的服務(wù)組件時(shí),網(wǎng)關(guān)節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)連線表達(dá)式會(huì)通過springEL表達(dá)式解析得到true/false;如mysql目標(biāo)節(jié)點(diǎn)連線表達(dá)式為[#{#ponentMaps.containsKey('mysql’)}],解析得到結(jié)果為true則會(huì)執(zhí)行mysql節(jié)點(diǎn)[0133](4)、第四步為并行循環(huán)節(jié)點(diǎn)的執(zhí)行,多個(gè)被命中的循環(huán)節(jié)點(diǎn)會(huì)并發(fā)調(diào)用執(zhí)行器,得到組件詳細(xì)的runpath、version等信息,此步驟全部節(jié)點(diǎn)執(zhí)行完畢后,繼續(xù)下一節(jié)點(diǎn)的執(zhí)[0134](5)、第五步調(diào)用自定義解析方法對上一步獲取的組件詳情進(jìn)行封裝,得到符合業(yè)務(wù)需求的數(shù)據(jù)結(jié)構(gòu)。[0135](6)、此步驟為end節(jié)點(diǎn),任務(wù)結(jié)束,上報(bào)整體任務(wù)數(shù)據(jù)[0136]該示例流程尤其是組件信息獲取擴(kuò)展可能性較大,步驟間多有牽連,該工具均提供的良好支持。[0137]示例2:網(wǎng)絡(luò)內(nèi)基于指定網(wǎng)絡(luò)設(shè)備的登錄發(fā)現(xiàn)網(wǎng)絡(luò)拓?fù)湫畔⒉杉痆0138](1)、第一步節(jié)點(diǎn)通過自定義登錄連接節(jié)點(diǎn)執(zhí)行前置處理器鉤子接口實(shí)現(xiàn)類(connPostProcessor)的方式,構(gòu)造登錄連接對象,執(zhí)行命令獲取系統(tǒng)信息,調(diào)用解析后獲取廠商信息;執(zhí)行異常時(shí)根據(jù)配置的異常策略使任務(wù)短路,異常結(jié)束。[0139](2)、第二步是排他網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)第一步得到廠商信息得到有且只有一個(gè)目標(biāo)節(jié)點(diǎn),繼續(xù)下一步執(zhí)行;如第一步得到廠商信息為'HuaWei’,經(jīng)此步驟處理后路由到對應(yīng)的節(jié)點(diǎn)[0140](3)、第三步是具體廠商的arp表獲取節(jié)點(diǎn),執(zhí)行對應(yīng)命令得到原始結(jié)果,解析后得到設(shè)備的arp表,根據(jù)節(jié)點(diǎn)配置像平臺用戶上報(bào)數(shù)據(jù)后,繼續(xù)下一節(jié)點(diǎn)[0141](4)、第四步為排他網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)流程定義配置的開關(guān)參數(shù)和第三步的arp表信息,經(jīng)過表達(dá)式解析后得到目標(biāo)節(jié)點(diǎn)(nmap探測、結(jié)束)[0142](5)、第五步為循環(huán)節(jié)點(diǎn),循環(huán)arp列表的ip進(jìn)行nmap探測,并發(fā)執(zhí)行得到結(jié)果后向平臺用戶返回整體數(shù)據(jù)。[0143]該示例因?yàn)樵O(shè)備廠商較多且需要循環(huán)動(dòng)態(tài)參數(shù)進(jìn)行詳情信息探測,傳統(tǒng)的后端編碼非常不利于擴(kuò)展,本工具提供的網(wǎng)關(guān)和子流程組件對該需求提供了良好支持。[0144]示例3:指定ip范圍和端口范圍的互聯(lián)網(wǎng)暴露面資產(chǎn)掃描[0145](1)、第一步是網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)任務(wù)參數(shù)(快速掃描+ip是ipV4),滿足條件后執(zhí)行目標(biāo)節(jié)點(diǎn)‘masscan掃描’,不滿足條件路由到‘nmap掃描'節(jié)點(diǎn)。[0146](2)、masscan掃描,通過命令探測到目標(biāo)ip的存活端口,結(jié)果解析后得到端口列表,設(shè)置流程實(shí)例上下文中。[0147](3)、nmap掃描,通過命令掃描目標(biāo)ip的存活端口列表詳情(命令代入流程實(shí)例變量解析后得到最終執(zhí)行命令)。[0148](4)、第四步為網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)流程配置的開關(guān)參數(shù)和nmap掃描的端口列表信息,滿足條件時(shí)執(zhí)行并行子流程節(jié)點(diǎn)進(jìn)行web指紋信息的探測;否則流程結(jié)束[0149](5)、并行子流程節(jié)點(diǎn),進(jìn)行端口web指紋信息的探測。掛起主流程,節(jié)點(diǎn)對nmap掃描出的端口信息進(jìn)行遍歷,使用線程池的方式,一次生成8個(gè)任務(wù)(可配置),并行執(zhí)行子流程任務(wù)進(jìn)行指紋探測,一批子流程任務(wù)執(zhí)行完成后,判斷是否有待執(zhí)行任務(wù),直到執(zhí)行完成后,喚醒主流程,繼續(xù)下一節(jié)點(diǎn)。[0150](6)、流程結(jié)束,調(diào)用流程配置的結(jié)果解析方法,對數(shù)據(jù)結(jié)構(gòu)進(jìn)行重構(gòu),得到符合業(yè)務(wù)格式的數(shù)據(jù)后返回給平臺用戶。[0151]該示例因?yàn)樘綔y的端口信息量上限較高,傳統(tǒng)方式的執(zhí)行方式不利于擴(kuò)展和流量控制,本工具的并行子流程和對子流程并發(fā)的池化控制良好的解決了上述問題。[0152]此外,參照圖3,本發(fā)明實(shí)施例還提出一種基于流程化配置的信息采集裝置,對每一信息采集任務(wù)預(yù)先定義對應(yīng)的業(yè)務(wù)流程文件,所述裝置包括:[0153]獲取模塊10,用于獲取所述信息采集任務(wù)。[0154]生成模塊20,用于按照與所述信息采集任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述信息采集任務(wù)對應(yīng)的流程實(shí)例。[0155]執(zhí)行模塊30,用于在所述流程實(shí)例運(yùn)行時(shí),在每一流程節(jié)點(diǎn)采用與所述流程節(jié)點(diǎn)類型對應(yīng)的執(zhí)行策略執(zhí)行所述流程實(shí)例,得到信息采集結(jié)果。[0156]需要說明的是,本實(shí)施例通過采用工作流的思想,預(yù)先定義業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,在任務(wù)實(shí)例運(yùn)行時(shí),根據(jù)運(yùn)行數(shù)據(jù)動(dòng)態(tài)流轉(zhuǎn)工作節(jié)點(diǎn),達(dá)到僅通過修改業(yè)務(wù)流程文件即可實(shí)現(xiàn)大多數(shù)通用信息的采集。在任務(wù)實(shí)例運(yùn)行時(shí)動(dòng)態(tài)調(diào)用用戶自定義的實(shí)現(xiàn)內(nèi)容,將用戶行為與公共行為解耦合,最大化達(dá)到對采集任務(wù)運(yùn)行流轉(zhuǎn)的控制,極大的降低了因適配業(yè)務(wù)修改帶來的硬編碼工作,應(yīng)用靈活,且擴(kuò)展性較強(qiáng)。[0157]應(yīng)當(dāng)理解的是,本實(shí)施例可以直觀的從流程定義文件中看到信息采集流程的業(yè)務(wù)邏輯,無需將邏輯都耦合到代碼里??梢缘统杀旧踔亮愠杀镜男薷牧鞒踢壿?,無需像相關(guān)技術(shù)中修改一些邏輯就要到處重構(gòu)代碼。通過預(yù)先定義業(yè)務(wù)流程文件來提供業(yè)務(wù)能力,降低步驟執(zhí)行、結(jié)果解析、結(jié)果返回等模塊間的耦合,使用方僅需要關(guān)注業(yè)務(wù)相關(guān)的編碼。在一實(shí)施例中,所述預(yù)先定義的業(yè)務(wù)流程文件的信息包括流程基礎(chǔ)定義(process)、流程節(jié)點(diǎn)[0158]所述流程基礎(chǔ)定義的屬性包括流程ID、版本號、超時(shí)時(shí)長和節(jié)點(diǎn)參數(shù)列表;標(biāo)節(jié)點(diǎn)列表、是否需要緩存連接和節(jié)點(diǎn)執(zhí)行前置處理器name;[0160]所述節(jié)點(diǎn)執(zhí)行命令列表的屬性包括命令I(lǐng)D、是否加密傳輸、命令內(nèi)容和命令執(zhí)行類型,其中,所述命令內(nèi)容支持springEL表達(dá)式動(dòng)態(tài)解析命令,代入任務(wù)實(shí)例和節(jié)點(diǎn)執(zhí)行結(jié)[0161]所述目標(biāo)節(jié)點(diǎn)的屬性包括目標(biāo)節(jié)點(diǎn)ID和連線表達(dá)式,其中,連線表達(dá)式可采用SpringEL表達(dá)式,代入任務(wù)執(zhí)行結(jié)果變量后得出節(jié)點(diǎn)是否成立。[0162]需要說明的是,本實(shí)施例中用戶可靈活定義信息采集和結(jié)果解析流程,做到業(yè)務(wù)功能的輕松靈活擴(kuò)展。[0164]加載組件,用于通過java反射的方式獲取流程定義加載實(shí)現(xiàn)類,根據(jù)配置文件中的servicesJcDefFilePath屬性,掃描并加載此配置文件夾下的業(yè)務(wù)流程文件,生成流程定義對象加入緩存,并啟動(dòng)熱加載監(jiān)聽線程,監(jiān)聽到業(yè)務(wù)流程文件變化時(shí),對變化的業(yè)務(wù)流程文件熱加載,實(shí)現(xiàn)對業(yè)務(wù)流程文件的修改。加載并構(gòu)建結(jié)果解析流程對象,加入到內(nèi)存緩存列表中。[0166]需要說明的是,通過合理使用緩存,提高了命令執(zhí)行的效率,如:以往一個(gè)linux4A主機(jī)資產(chǎn)信息的采集需要10分鐘,本實(shí)施例則僅需要1分30秒,效果提升明顯。[0167]在一實(shí)施例中,所述流程節(jié)點(diǎn)的類型包括開始節(jié)點(diǎn)、登錄類節(jié)點(diǎn)、執(zhí)行類節(jié)點(diǎn)、網(wǎng)關(guān)類節(jié)點(diǎn)、子流程類節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);[0168]所述執(zhí)行類節(jié)點(diǎn)包括循環(huán)節(jié)點(diǎn)和普通節(jié)點(diǎn),所述網(wǎng)關(guān)類節(jié)點(diǎn)包括普通網(wǎng)關(guān)節(jié)點(diǎn)和排他網(wǎng)關(guān)節(jié)點(diǎn),所述子流程類節(jié)點(diǎn)包括登錄子流程節(jié)點(diǎn)、普通子流程節(jié)點(diǎn)和并行子流程節(jié)[0170](1)登錄類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為構(gòu)建目標(biāo)登錄鏈接。[0171]需要說明的是,通過登錄類節(jié)點(diǎn)構(gòu)造目標(biāo)對象的登錄鏈接,而且可以復(fù)用登錄類[0172](2)網(wǎng)關(guān)類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為根據(jù)所述目標(biāo)節(jié)點(diǎn)的成立條件,得到下一步執(zhí)行的所述節(jié)點(diǎn)參數(shù)列表。[0173]其中,普通網(wǎng)關(guān)節(jié)點(diǎn)會(huì)將連線表達(dá)式代入任務(wù)變量后判斷目標(biāo)節(jié)點(diǎn)是否成立,并基于成立的目標(biāo)節(jié)點(diǎn)得到下一步執(zhí)行的節(jié)點(diǎn)參數(shù)列表;排他網(wǎng)關(guān)則基于第一個(gè)成立的目標(biāo)節(jié)點(diǎn)得到下一步執(zhí)行的節(jié)點(diǎn)參數(shù)列表。[0174](3)執(zhí)行類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為遍歷所述節(jié)點(diǎn)執(zhí)行命令列表或所述節(jié)點(diǎn)參數(shù)列表,生成執(zhí)行命令以根據(jù)所述執(zhí)行命令調(diào)用執(zhí)行器得到執(zhí)行結(jié)果。[0175]其中,普通節(jié)點(diǎn)會(huì)遍歷命令列表,代入任務(wù)變量生成最終執(zhí)行命令調(diào)用對應(yīng)類型的執(zhí)行器,異步得到結(jié)果通過反射統(tǒng)一調(diào)用用戶自定義解析后繼續(xù)下一步。[0176]需要說明的是,若配置了碎片化返回,工具會(huì)通過事件模式將結(jié)果上報(bào)給上游平[0177]循環(huán)節(jié)點(diǎn)會(huì)遍歷節(jié)點(diǎn)參數(shù)列表,生成多組命令列表循環(huán)調(diào)用命令執(zhí)行器,異步得到結(jié)果后通過反射統(tǒng)一調(diào)用用戶自定義的結(jié)果解析流程。[0178](4)子流程類節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為掛起主流程,根據(jù)所述子流程節(jié)點(diǎn)綁定的流程ID新建與所述子流程節(jié)點(diǎn)對應(yīng)的子任務(wù)實(shí)例,并在所述子任務(wù)實(shí)例全部執(zhí)行結(jié)束時(shí)喚醒主所述主流程。[0179](5)結(jié)束節(jié)點(diǎn)對應(yīng)的所述執(zhí)行策略為標(biāo)記所述任務(wù)實(shí)例為結(jié)束狀態(tài)。[0180]在一實(shí)施例中,所述流程節(jié)點(diǎn)屬性中若配置有節(jié)點(diǎn)執(zhí)行前置處理器,則調(diào)用所述節(jié)點(diǎn)執(zhí)行前置處理器對當(dāng)前所述流程節(jié)點(diǎn)的屬性進(jìn)行二次定義,本實(shí)施例通過配置節(jié)點(diǎn)執(zhí)行前置處理器,可用于對流程定義進(jìn)行修改,使用靈活,提高了軟件可擴(kuò)展性,并且保證了信息采集的安全性。[0182]結(jié)果解析模塊,用于根據(jù)當(dāng)前節(jié)點(diǎn)配置的所述結(jié)果解析api路徑,工具代理調(diào)用與所述結(jié)果解析api路徑對應(yīng)的方法對所述執(zhí)行結(jié)果進(jìn)行處理,得到符合業(yè)務(wù)需要的結(jié)構(gòu)化[0183]需要說明的是,解析方法為用戶自定義內(nèi)容,在得到信息采集任務(wù)的執(zhí)行結(jié)果后,調(diào)用結(jié)果解析方法對執(zhí)行結(jié)果進(jìn)行解析,可得到符合用戶自定義數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。[0185]判斷所述信息采集任務(wù)的運(yùn)行狀態(tài);[0186]在所述信息采集任務(wù)的類別為停止任務(wù)時(shí),設(shè)置所述信息采集任務(wù)為停止?fàn)顟B(tài);[0187]在所述信息采集任務(wù)的類別為執(zhí)行任務(wù)時(shí),確定所述信息采集任務(wù)為有效任務(wù);[0188]按照與所述有效任務(wù)對應(yīng)的所述業(yè)務(wù)流程文件,生成與所述有效任務(wù)對用的流程實(shí)例;[0189]將所述流程實(shí)例加入緩存列表,將所述有效任務(wù)插入數(shù)據(jù)庫。[0190]在一實(shí)施例中,所述裝置包括監(jiān)控組件,用于:[0191]監(jiān)控所述數(shù)據(jù)庫中的所述有效任務(wù)的運(yùn)行時(shí)間,確定所述有效任務(wù)中存在超時(shí)任務(wù)和未超時(shí)任務(wù);[0192]恢復(fù)所述未超時(shí)任務(wù),清除所述超時(shí)任務(wù)。[0193]需要說明的是,本實(shí)施例可通過設(shè)置監(jiān)控組件查詢嵌入式數(shù)據(jù)庫job_info表中的未超時(shí)任務(wù),并重新啟動(dòng)任務(wù);開啟定時(shí)任務(wù),定時(shí)掃描是否有超時(shí)任務(wù),并清除超時(shí)任務(wù)。[0194]在一實(shí)施例中,所述流程節(jié)點(diǎn)的屬性還包括執(zhí)行異常處理策略,所述裝置還包括異常處理模塊,具體用于:[0195]確定所述執(zhí)行命令異常;[0196]調(diào)用所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GBT 13025.1-2012制鹽工業(yè)通 用試驗(yàn)方法 粒度的測定專題研究報(bào)告
- 《GB-T 39436-2020病媒生物防制操作規(guī)程 地鐵》專題研究報(bào)告
- 《GB-T 10987-2009光學(xué)系統(tǒng) 參數(shù)的測定》專題研究報(bào)告
- 云安全運(yùn)維服務(wù)協(xié)議
- 智能家居行業(yè)智能家電測試工程師崗位招聘考試試卷及答案
- 2025年10月12日蕪湖弋江社區(qū)工作者面試真題及答案解析
- 2025年柔性制造單元(FMC)合作協(xié)議書
- 腸道菌群與免疫健康的關(guān)系
- 2025年食品冷凍機(jī)械項(xiàng)目發(fā)展計(jì)劃
- 風(fēng)濕病的康復(fù)指導(dǎo)
- 2025四川航天川南火工技術(shù)有限公司招聘考試題庫及答案1套
- 2025年度皮膚科工作總結(jié)及2026年工作計(jì)劃
- 冠狀動(dòng)脈微血管疾病診斷和治療中國專家共識(2023版)
- 2024年春季學(xué)期中國文學(xué)基礎(chǔ)#期末綜合試卷-國開(XJ)-參考資料
- 軍隊(duì)物資工程服務(wù)采購產(chǎn)品分類目錄
- 廣西柳州市2023-2024學(xué)年八年級上學(xué)期期末質(zhì)量監(jiān)測地理試卷
- 《天文教學(xué)設(shè)計(jì)》教學(xué)設(shè)計(jì)
- 大學(xué)通用俄語1
- GB/T 24002.1-2023環(huán)境管理體系針對環(huán)境主題領(lǐng)域應(yīng)用GB/T 24001管理環(huán)境因素和應(yīng)對環(huán)境狀況的指南第1部分:通則
- GB/T 16938-2008緊固件螺栓、螺釘、螺柱和螺母通用技術(shù)條件
- C語言課程設(shè)計(jì)-商品信息管理系統(tǒng)
評論
0/150
提交評論