国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法和裝置制造方法

      文檔序號(hào):6509784閱讀:286來源:國知局
      一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法和裝置制造方法
      【專利摘要】本發(fā)明公開一種內(nèi)嵌腳本的方法,在所述應(yīng)用系統(tǒng)中配置預(yù)先設(shè)定的腳本配置文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型;根據(jù)腳本配置文件中的配置信息,獲取各腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫;根據(jù)所述各轉(zhuǎn)換模型,對(duì)各動(dòng)態(tài)鏈接庫完成初始化后,各動(dòng)態(tài)鏈接庫按照各腳本語言程序包的存放路徑找到與其對(duì)應(yīng)的腳本語言程序包,并對(duì)所述腳本語言程序包進(jìn)行解析;根據(jù)所述各轉(zhuǎn)換模型和所述腳本配置文件中的配置信息,在所述各動(dòng)態(tài)鏈接庫中植入與其相應(yīng)的方法名和參數(shù);所述應(yīng)用系統(tǒng)調(diào)用所述動(dòng)態(tài)鏈接庫,執(zhí)行所述動(dòng)態(tài)鏈接庫中植入的方法名和參數(shù),返回執(zhí)行結(jié)果。
      【專利說明】一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法和裝置

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及一種內(nèi)嵌腳本的方法和裝置,具體地涉及一種應(yīng)用系統(tǒng)內(nèi)嵌外部腳本 的方法和裝置。

      【背景技術(shù)】
      [0002] 近年IT業(yè)迅猛發(fā)展,多種大型綜合軟件在各行業(yè)中涌現(xiàn),大型綜合軟件會(huì)承載多 種業(yè)務(wù),為了方便用戶根據(jù)自身業(yè)務(wù)特點(diǎn)撰寫不同的業(yè)務(wù)邏輯,提高系統(tǒng)靈活性,很多大型 綜合軟件提供了對(duì)外的API接口,專供用戶調(diào)用,可執(zhí)行用戶自己編寫不同業(yè)務(wù)邏輯的外 部腳本。所謂外部腳本,就是在系統(tǒng)既定的業(yè)務(wù)范圍外,用戶還需要其他輔助業(yè)務(wù)需要處 理,或者針對(duì)系統(tǒng)處理的內(nèi)部數(shù)據(jù),還需要精細(xì)加工或者特殊處理,而自行編寫的程序化腳 本。該腳本能夠獨(dú)立依賴自身的腳本語言執(zhí)行。當(dāng)系統(tǒng)調(diào)用這些外部腳本后,根據(jù)腳本植 入系統(tǒng)配置的位置而依次調(diào)用。這樣結(jié)合系統(tǒng)的業(yè)務(wù)功能和邏輯,就可以實(shí)現(xiàn)這種靈活的 功能或者業(yè)務(wù)擴(kuò)展。內(nèi)嵌方式不僅僅可以實(shí)現(xiàn)用戶的自增邏輯擴(kuò)展,同時(shí)也實(shí)現(xiàn)系統(tǒng)對(duì)外 部腳本的可控化,同時(shí)從性能角度出發(fā),提升的效率也非??捎^。
      [0003] 這種給用戶提供調(diào)用自編腳本接口的方式,極大提高了系統(tǒng)的靈活性,但同時(shí)也 帶來了一系列問題。其一由于用戶編程語言習(xí)慣的不同可能會(huì)采用不同的語言撰寫腳本, 當(dāng)用戶調(diào)用API接口試圖運(yùn)行這些腳本語言時(shí),會(huì)調(diào)用系統(tǒng)資源執(zhí)行其腳本,直接導(dǎo)致系 統(tǒng)處理效率降低,影響系統(tǒng)性能。其二,現(xiàn)有系統(tǒng)運(yùn)行這些用戶自編外部腳本的方式為通過 系統(tǒng)C程序調(diào)用SHELL腳本語言,SHELL語言再指向用戶自編腳本程序包,這樣幾層調(diào)用關(guān) 系,會(huì)導(dǎo)致系統(tǒng)多語言混亂調(diào)用,降低系統(tǒng)處理能力,且調(diào)用語言腳本運(yùn)行不可控,也無法 跟蹤腳本程序包的運(yùn)行情況。


      【發(fā)明內(nèi)容】

      [0004] 本發(fā)明提供了一種將用戶根據(jù)業(yè)務(wù)需求自撰的腳本語言程序包內(nèi)嵌入應(yīng)用系統(tǒng) 執(zhí)行的方法,提高了應(yīng)用系統(tǒng)執(zhí)行外部程序包的效率和可控性,同時(shí)避免了多重語言調(diào)用 出現(xiàn)的復(fù)雜易出錯(cuò)的弊端。
      [0005] -種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法,其特征在于,所述方法包括:
      [0006] 根據(jù)已編寫好的外部各腳本語言程序包在所述應(yīng)用系統(tǒng)中配置預(yù)先設(shè)定的腳本 配置文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型;
      [0007] 所述應(yīng)用系統(tǒng)加載所述腳本配置文件,根據(jù)所述腳本配置文件中的配置信息,獲 取各腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語言類型相應(yīng) 的動(dòng)態(tài)鏈接庫;
      [0008] 根據(jù)所述各轉(zhuǎn)換模型,對(duì)與轉(zhuǎn)換模型相同腳本語言類型的動(dòng)態(tài)鏈接庫完成初始化 后,所述各動(dòng)態(tài)鏈接庫按照所述各腳本語言程序包的存放路徑找到與其對(duì)應(yīng)的腳本語言程 序包,并對(duì)所述腳本語言程序包進(jìn)行解析;
      [0009] 根據(jù)所述各轉(zhuǎn)換模型和所述腳本配置文件中的配置信息,在所述各動(dòng)態(tài)鏈接庫中 植入與其相應(yīng)的方法名和參數(shù);
      [0010] 所述應(yīng)用系統(tǒng)調(diào)用所述動(dòng)態(tài)鏈接庫,執(zhí)行所述動(dòng)態(tài)鏈接庫中植入的方法名和參 數(shù),返回執(zhí)行結(jié)果。
      [0011] 優(yōu)選的,在所述通用語言動(dòng)態(tài)鏈接庫執(zhí)行所述解析后的與其對(duì)應(yīng)的腳本語言程序 包后,所述方法還包括:
      [0012] 清除所述動(dòng)態(tài)鏈接庫本次解析的內(nèi)容,釋放其所占系統(tǒng)資源。
      [0013] 具體的,所述配置預(yù)先設(shè)定的腳本配置文件的方法具體為:
      [0014] 在所述腳本配置文件中配置各腳本語言程序包的編寫語言類型、存放路徑、方法 名和執(zhí)行該方法所需的參數(shù),將每個(gè)腳本語言程序包的信息配置為一條記錄。
      [0015] 具體的:在每個(gè)所述轉(zhuǎn)換模型中配置一種腳本語言類型的轉(zhuǎn)換規(guī)則,所述轉(zhuǎn)換規(guī) 則包括與該腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫初始化方法、生成解析器方法、外部傳遞參數(shù) 方法、返回值方法。
      [0016] 優(yōu)選的,在所述動(dòng)態(tài)鏈接庫初始化之前,所述方法還包括:
      [0017] 根據(jù)所述腳本配置文件中配置各腳本語言程序包的方法名,與所述腳本程序包中 的所有方法名進(jìn)行比對(duì)校驗(yàn),如有方法名錯(cuò)誤或未找到則提示錯(cuò)誤報(bào)告并退出步驟。
      [0018] 具體的,根據(jù)所述轉(zhuǎn)換規(guī)則中記載的動(dòng)態(tài)鏈接庫初始化方法對(duì)與該轉(zhuǎn)換規(guī)則腳本 語言類型相應(yīng)的動(dòng)態(tài)鏈接庫進(jìn)行初始化;
      [0019] 讀取所述腳本配置文件中記載的所述該腳本語言類型方法名和執(zhí)行該方法所需 的參數(shù),通過所述轉(zhuǎn)換規(guī)則中的外部傳遞參數(shù)方法,將所述方法名和執(zhí)行該方法所需的參 數(shù)植入相應(yīng)的動(dòng)態(tài)鏈接庫。
      [0020] 具體的,所述腳本語言類型包括PERL語言、SHELL語言、PYTHON語言、LUA語言;
      [0021 ] 在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫。
      [0022] 優(yōu)選的,當(dāng)出現(xiàn)新的腳本語言程序包時(shí),可在腳本配置文件中增加新的記錄,所述 應(yīng)用系統(tǒng)周期性讀取所述腳本配置文件中的信息,可根據(jù)實(shí)際操作需求設(shè)定應(yīng)用系統(tǒng)的讀 取周期。
      [0023] 本發(fā)明還公開一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的裝置,其特征在于,所述裝置包括:
      [0024] 配置模塊,用于根據(jù)已編寫好的外部各腳本語言程序包在應(yīng)用系統(tǒng)中預(yù)置腳本配 置文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型;
      [0025] 獲取模塊,用于加載所述配置模塊預(yù)置的腳本配置文件,根據(jù)所述腳本配置文件 中的配置信息,獲取各腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各 腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫;
      [0026] 解析模塊,用于根據(jù)所述配置模塊配置的轉(zhuǎn)換模型,對(duì)所述獲取模塊獲取的與轉(zhuǎn) 換模型相同腳本語言類型的動(dòng)態(tài)鏈接庫完成初始化后,所述各動(dòng)態(tài)鏈接庫按照所述各腳本 語言程序包的存放路徑找到與其對(duì)應(yīng)的腳本語言程序包,并對(duì)所述腳本語言程序包進(jìn)行解 析;
      [0027] 植入模塊,用于根據(jù)所述配置模塊配置的轉(zhuǎn)換模型和所述腳本配置文件中的配置 信息,在所述解析模塊中對(duì)腳本語言程序包進(jìn)行解析后的動(dòng)態(tài)鏈接庫中植入與其相應(yīng)的方 法名和參數(shù);
      [0028] 執(zhí)行模塊,用于調(diào)用所述解析模塊中的動(dòng)態(tài)鏈接庫,執(zhí)行植入模塊在所述動(dòng)態(tài)鏈 接庫中植入的方法名和參數(shù)。
      [0029] 優(yōu)選的,所述裝置還包括:
      [0030] 資源釋放模塊,用于在執(zhí)行模塊執(zhí)行完成后,清除所述解析模塊中本次解析的內(nèi) 容。
      [0031] 具體的,所述配置模塊在所述腳本配置文件中配置各腳本語言程序包的編寫語言 類型、存放路徑、方法名和執(zhí)行該方法所需的參數(shù),將每個(gè)腳本語言程序包的信息配置為一 條記錄。
      [0032] 具體的,所述配置模塊在每個(gè)所述轉(zhuǎn)換模型中配置一種腳本語言類型的轉(zhuǎn)換規(guī) 貝1J,所述轉(zhuǎn)換規(guī)則包括與該腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫初始化方法、生成解析器方法、 外部傳遞參數(shù)方法、返回值方法。
      [0033] 優(yōu)選的,所述裝置還包括:
      [0034] 校驗(yàn)?zāi)K,用于在解析模塊對(duì)動(dòng)態(tài)鏈接庫進(jìn)行初始化之前,根據(jù)所述腳本配置文 件中配置各腳本語言程序包的方法名,與所述腳本程序包中的所有方法名進(jìn)行比對(duì)校驗(yàn), 如有方法名錯(cuò)誤或未找到則提示錯(cuò)誤報(bào)告并退出步驟。
      [0035] 具體的,所述解析模塊根據(jù)所述轉(zhuǎn)換規(guī)則中記載的動(dòng)態(tài)鏈接庫初始化方法對(duì)與該 轉(zhuǎn)換規(guī)則腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫進(jìn)行初始化;
      [0036] 所述植入模塊讀取所述腳本配置文件中記載的所述該腳本語言類型方法名和執(zhí) 行該方法所需的參數(shù),通過所述轉(zhuǎn)換規(guī)則中的外部傳遞參數(shù)方法,將所述方法名和執(zhí)行該 方法所需的參數(shù)植入相應(yīng)的動(dòng)態(tài)鏈接庫。
      [0037] 具體的,當(dāng)出現(xiàn)新的腳本語言程序包時(shí),所述配置模塊可在腳本配置文件中增加 新的記錄;
      [0038] 所述獲取模塊周期性讀取所述腳本配置文件中的信息,可根據(jù)實(shí)際操作需求設(shè)定 應(yīng)用系統(tǒng)的讀取周期。
      [0039] 本發(fā)明通過腳本配置文件,將用戶自撰不同腳本語言類型的腳本語言程序在應(yīng)用 系統(tǒng)中記載,通過預(yù)先設(shè)定的轉(zhuǎn)換模型調(diào)用應(yīng)用系統(tǒng)中與各腳本語言類型的動(dòng)態(tài)鏈接庫, 通過動(dòng)態(tài)鏈接庫執(zhí)行與其相應(yīng)的腳本語言程序包中的方法,將外部腳本語言程序包內(nèi)嵌到 應(yīng)用系統(tǒng)中來,這種方式摒棄了不同腳本語言類型的腳本語言程序包在系統(tǒng)中的差異,系 統(tǒng)直接調(diào)用自身的動(dòng)態(tài)鏈接庫,即可完成對(duì)外部腳本語言的執(zhí)行,避免系統(tǒng)經(jīng)過C程序調(diào) 用SHELL腳本,SHELL再指向用戶自編程序包復(fù)雜的調(diào)用過程,在不改變使用者編寫習(xí)慣的 同時(shí)提高了應(yīng)用系統(tǒng)對(duì)外部腳本語言包的處理能力;應(yīng)用系統(tǒng)通過自身動(dòng)態(tài)鏈接庫執(zhí)行解 析好的腳本語言程序包,不用占用系統(tǒng)內(nèi)部資源去直接執(zhí)行外部腳本語言程序包,節(jié)約了 應(yīng)用系統(tǒng)寶貴的資源;同時(shí)還可在腳本配置文件中設(shè)定各語言程序包中本次需要執(zhí)行的方 法名,不用將腳本配置文件中所有的方法執(zhí)行一遍,提高了效率的同時(shí)也增強(qiáng)了應(yīng)用系統(tǒng) 對(duì)外部腳本運(yùn)行的可控性,使用者能清楚獲知本次執(zhí)行的方法名稱、數(shù)量等,進(jìn)而提高應(yīng)用 系統(tǒng)對(duì)自撰腳本語言程序包的可執(zhí)行性。

      【專利附圖】

      【附圖說明】
      [0040] 圖1為本發(fā)明實(shí)施例 種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法流程圖;
      [0041] 圖2為本發(fā)明實(shí)施例二的方法流程圖;
      [0042]圖3為本發(fā)明實(shí)施例三一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的裝置結(jié)構(gòu)示意圖;

      【具體實(shí)施方式】
      [0043] 以下將配合圖式及實(shí)施例來詳細(xì)說明本發(fā)明的實(shí)施方式,藉此對(duì)本發(fā)明如何應(yīng)用 技術(shù)手段來解決技術(shù)問題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。
      [0044] 在現(xiàn)有的大型應(yīng)用系統(tǒng)中,由于接入系統(tǒng)的不同廠家設(shè)備多樣化,業(yè)務(wù)的復(fù)雜化, 為了方便用戶根據(jù)自身業(yè)務(wù)特點(diǎn)靈活的實(shí)現(xiàn)不同的業(yè)務(wù)邏輯,很多廠家都開放了可供用戶 調(diào)用的接口,用戶可根據(jù)各自的業(yè)務(wù)邏輯運(yùn)用其熟悉的編程語言撰寫腳本,來實(shí)現(xiàn)業(yè)務(wù)邏 輯,這些腳本語言程序包即稱為外部腳本。本發(fā)明的關(guān)鍵點(diǎn)在于,將這些不同編程語言撰 寫的腳本語言程序包通過預(yù)先配置、應(yīng)用系統(tǒng)讀取并解析、加載執(zhí)行的方式完成應(yīng)用系統(tǒng) 內(nèi)嵌腳本的過程,腳本語言程序包完成內(nèi)嵌后,應(yīng)用系統(tǒng)調(diào)用其自身的動(dòng)態(tài)鏈接庫對(duì)其進(jìn) 行執(zhí)行,占用較少的系統(tǒng)資源,且在執(zhí)行過程中不用通過多種語言層層調(diào)用的方式,安全迅 速,提高了系統(tǒng)執(zhí)行腳本語言程序包的效率和可控性。
      [0045] 如圖1所示,本發(fā)明實(shí)施例一公開一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法,包括以下步驟。 [0046] 步驟S101 :根據(jù)已編寫好的外部各腳本語言程序包在所述應(yīng)用系統(tǒng)中配置預(yù)先 設(shè)定的腳本配置文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型。
      [0047] 預(yù)先設(shè)定的腳本配置文件是用來描述在應(yīng)用系統(tǒng)中內(nèi)嵌腳本語言程序包的文件, 通過腳本配置文件,相當(dāng)于把將要內(nèi)嵌在應(yīng)用系統(tǒng)中的腳本語言程序包的一些信息通知給 應(yīng)用系統(tǒng)。
      [0048] 在所述腳本配置文件中配置各腳本語言程序包的編寫語言類型、存放路徑、方法 名和執(zhí)行該方法所需的參數(shù),將每個(gè)腳本語言程序包的信息配置為一條記錄,當(dāng)有新的腳 本語言程序包需要內(nèi)嵌時(shí),只需要在腳本配置文件中增加一條記錄即可。
      [0049] 為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型,由于不同腳本語言類型的編程語法、 方法名、參數(shù)等都不相同,因此需要為每種腳本語言類型設(shè)置轉(zhuǎn)換模型,以便應(yīng)用系統(tǒng)能夠 為不同的腳本語言類型配置與其相應(yīng)的動(dòng)態(tài)鏈接庫。
      [0050] 在每個(gè)轉(zhuǎn)換模型中配置一種腳本語言類型的轉(zhuǎn)換規(guī)則,所述轉(zhuǎn)換規(guī)則包括與該腳 本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫初始化方法、生成解析器方法、外部傳遞參數(shù)方法、返回值方 法。
      [0051] 如果出現(xiàn)了新的腳本語言類型,只需要為新的腳本語言類型設(shè)置相應(yīng)的轉(zhuǎn)換模型 即可完成轉(zhuǎn)換。
      [0052] 步驟S102 :所述應(yīng)用系統(tǒng)加載所述腳本配置文件,根據(jù)所述腳本配置文件中的配 置信息,獲取各腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語 言類型相應(yīng)的動(dòng)態(tài)鏈接庫。
      [0053] 腳本配置文件中的配置信息,主要包含腳本語言程序包的腳本語言類型、腳本語 言程序包的存放路徑、本次需要執(zhí)行的腳本語言程序包中的方法名稱(簡(jiǎn)稱方法名)、以及 執(zhí)行這些方法所需要用到的參數(shù)名稱(簡(jiǎn)稱參數(shù))。
      [0054] 現(xiàn)在常用的腳本語言包括perl、python、lua、shell等。
      [0055] 在腳本配置文件配置好后,應(yīng)用系統(tǒng)加載腳本配置文件,即可獲得其中包含的信 息,包括腳本語言程序包的編寫語言類型、各腳本語言包的存放路徑、本次需要執(zhí)行的方法 名、以及執(zhí)行方法所需的參數(shù)信息等。
      [0056] 動(dòng)態(tài)鏈接庫英文為DLL,是DynamicLinkLibrary的縮寫形式,是一個(gè)包含可由多 個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫。動(dòng)態(tài)鏈接提供了一種方法,使進(jìn)程可以調(diào)用不屬于其 可執(zhí)行代碼的函數(shù)。是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫。
      [0057] 在應(yīng)用系統(tǒng)中,對(duì)于現(xiàn)有技術(shù)中常用的這些腳本語言類型,均有與其對(duì)應(yīng)的動(dòng)態(tài) 鏈接庫,如perl動(dòng)態(tài)鏈接庫、shell動(dòng)態(tài)鏈接庫、python動(dòng)態(tài)鏈接庫、lua動(dòng)態(tài)鏈接庫,這些 動(dòng)態(tài)鏈接庫中包含著與腳本語言類型方法對(duì)應(yīng)的函數(shù)。
      [0058] 步驟S103 :根據(jù)所述各轉(zhuǎn)換模型,對(duì)與轉(zhuǎn)換模型相同腳本語言類型的動(dòng)態(tài)鏈接庫 完成初始化后,所述各動(dòng)態(tài)鏈接庫按照所述各腳本語言程序包的存放路徑找到與其對(duì)應(yīng)的 腳本語言程序包,并對(duì)所述腳本語言程序包進(jìn)行解析。
      [0059] 對(duì)動(dòng)態(tài)鏈接庫完成初始化的過程,即為該動(dòng)態(tài)鏈接庫生成解析器,按照與動(dòng)態(tài)鏈 接庫相同腳本語言類型的轉(zhuǎn)換模型中描述的初始化方法、生成解析器方法,完成生成解析 器的工作。動(dòng)態(tài)鏈接庫按照腳本配置文件中所示的各腳本語言程序包的存放路徑,找到與 其對(duì)應(yīng)的腳本語言程序包,解析器根據(jù)動(dòng)態(tài)鏈接庫中記載的該腳本語言類型方法對(duì)應(yīng)的函 數(shù),對(duì)腳本語言程序包中的各個(gè)方法進(jìn)行解析,其解析的過程就是翻譯的過程,將腳本語言 程序包中的各個(gè)方法按照動(dòng)態(tài)鏈接庫中對(duì)應(yīng)的函數(shù),翻譯成應(yīng)用系統(tǒng)可識(shí)別的方法。
      [0060] 步驟S104:根據(jù)所述各轉(zhuǎn)換模型和所述腳本配置文件中的配置信息,在所述各動(dòng) 態(tài)鏈接庫中植入與其相應(yīng)的方法名和參數(shù)。
      [0061] 在腳本配置文件中的配置信息里,記載了執(zhí)行腳本語言程序包中的方法名以及執(zhí) 行該方法名所需要的參數(shù),根據(jù)轉(zhuǎn)換模型中記載的外部傳遞參數(shù)方法將這些信息植入到動(dòng) 態(tài)鏈接中,以便應(yīng)用系統(tǒng)調(diào)用動(dòng)態(tài)鏈接庫執(zhí)行相應(yīng)方法。
      [0062] 步驟S105:所述應(yīng)用系統(tǒng)調(diào)用所述動(dòng)態(tài)鏈接庫,執(zhí)行所述動(dòng)態(tài)鏈接庫中植入的方 法名和參數(shù),返回執(zhí)行結(jié)果。
      [0063]應(yīng)用系統(tǒng)調(diào)用動(dòng)態(tài)鏈接庫,執(zhí)行動(dòng)態(tài)鏈接庫中植入的方法名和參數(shù),根據(jù)轉(zhuǎn)換模 型中設(shè)置的返回值的方法,返回執(zhí)行結(jié)果。
      [0064]本發(fā)明通過系統(tǒng)調(diào)用自身內(nèi)部的動(dòng)態(tài)鏈接庫執(zhí)行用戶自撰腳本語言程序包,省去 了現(xiàn)有技術(shù)中通過C程序調(diào)用SHELL腳本語言,然后再通過SHELL語言指向其他語言程序 包的復(fù)雜調(diào)用過程,使應(yīng)用系統(tǒng)省去了多語言的混亂調(diào)用;通過動(dòng)態(tài)鏈接庫執(zhí)行內(nèi)嵌腳本 語言程序包的方式提高了系統(tǒng)的處理性能;執(zhí)行動(dòng)態(tài)鏈接庫中植入的方法名和參數(shù),提高 了對(duì)腳本語言程序包的運(yùn)行過程可控性。
      [0065]為進(jìn)一步提高應(yīng)用系統(tǒng)執(zhí)行效率和準(zhǔn)確率,節(jié)約系統(tǒng)資源,特給出本發(fā)明的實(shí)施 例二,以具體的perl語言程序包pm說明其內(nèi)嵌的過程,如圖2所示,包括步驟:
      [0066] 步驟S201 :根據(jù)已編寫好的外部各腳本語言程序包在所述應(yīng)用系統(tǒng)中配置預(yù)先 設(shè)定的腳本配置文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型。
      [0067]下述為腳本配置文件模板實(shí)例,腳本配置文件可以.Xml文件形式存在,也可以應(yīng) 用系統(tǒng)可識(shí)別的其他形式存在。
      [0068]

      【權(quán)利要求】
      1. 一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的方法,其特征在于,所述方法包括: 根據(jù)已編寫好的外部各腳本語言程序包在所述應(yīng)用系統(tǒng)中配置預(yù)先設(shè)定的腳本配置 文件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型; 所述應(yīng)用系統(tǒng)加載所述腳本配置文件,根據(jù)所述腳本配置文件中的配置信息,獲取各 腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語言類型相應(yīng)的動(dòng) 態(tài)鏈接庫; 根據(jù)所述各轉(zhuǎn)換模型,對(duì)與轉(zhuǎn)換模型相同腳本語言類型的動(dòng)態(tài)鏈接庫完成初始化后, 所述各動(dòng)態(tài)鏈接庫按照所述各腳本語言程序包的存放路徑找到與其對(duì)應(yīng)的腳本語言程序 包,并對(duì)所述腳本語言程序包進(jìn)行解析; 根據(jù)所述各轉(zhuǎn)換模型和所述腳本配置文件中的配置信息,在所述各動(dòng)態(tài)鏈接庫中植入 與其相應(yīng)的方法名和參數(shù); 所述應(yīng)用系統(tǒng)調(diào)用所述動(dòng)態(tài)鏈接庫,執(zhí)行所述動(dòng)態(tài)鏈接庫中植入的方法名和參數(shù),返 回執(zhí)行結(jié)果。
      2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述通用語言動(dòng)態(tài)鏈接庫執(zhí)行所述解 析后的與其對(duì)應(yīng)的腳本語言程序包后,所述方法還包括: 清除所述動(dòng)態(tài)鏈接庫本次解析的內(nèi)容,釋放其所占系統(tǒng)資源。
      3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述配置預(yù)先設(shè)定的腳本配置文件的方 法具體為: 在所述腳本配置文件中配置各腳本語言程序包的編寫語言類型、存放路徑、方法名和 執(zhí)行該方法所需的參數(shù),將每個(gè)腳本語言程序包的信息配置為一條記錄。
      4. 根據(jù)權(quán)利要求1-3中任一所述的方法,其特征在于: 在每個(gè)所述轉(zhuǎn)換模型中配置一種腳本語言類型的轉(zhuǎn)換規(guī)則,所述轉(zhuǎn)換規(guī)則包括與該腳 本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫初始化方法、生成解析器方法、外部傳遞參數(shù)方法、返回值方 法。
      5. 根據(jù)權(quán)利要求4之一所述的方法,其特征在于,在所述動(dòng)態(tài)鏈接庫初始化之前,所述 方法還包括: 根據(jù)所述腳本配置文件中配置各腳本語言程序包的方法名,與所述腳本程序包中的所 有方法名進(jìn)行比對(duì)校驗(yàn),如有方法名錯(cuò)誤或未找到則提示錯(cuò)誤報(bào)告并退出步驟。
      6. 根據(jù)權(quán)利要求5所述的方法,其特征在于: 根據(jù)所述轉(zhuǎn)換規(guī)則中記載的動(dòng)態(tài)鏈接庫初始化方法對(duì)與該轉(zhuǎn)換規(guī)則腳本語言類型相 應(yīng)的動(dòng)態(tài)鏈接庫進(jìn)行初始化; 讀取所述腳本配置文件中記載的所述該腳本語言類型方法名和執(zhí)行該方法所需的參 數(shù),通過所述轉(zhuǎn)換規(guī)則中的外部傳遞參數(shù)方法,將所述方法名和執(zhí)行該方法所需的參數(shù)植 入相應(yīng)的動(dòng)態(tài)鏈接庫。
      7. 根據(jù)權(quán)利要求5所述的方法,其特征在于: 所述腳本語言類型包括PERL語言、SHELL語言、PYTHON語言、LUA語言; 在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫。
      8. 根據(jù)權(quán)利要求6所述的方法,其特征在于: 當(dāng)出現(xiàn)新的腳本語言程序包時(shí),可在腳本配置文件中增加新的記錄,所述應(yīng)用系統(tǒng)周 期性讀取所述腳本配置文件中的信息,可根據(jù)實(shí)際操作需求設(shè)定應(yīng)用系統(tǒng)的讀取周期。
      9. 一種應(yīng)用系統(tǒng)內(nèi)嵌腳本的裝置,其特征在于,所述裝置包括: 配置模塊,用于根據(jù)已編寫好的外部各腳本語言程序包在應(yīng)用系統(tǒng)中預(yù)置腳本配置文 件,以及為每種腳本語言類型配置相應(yīng)的轉(zhuǎn)換模型; 獲取模塊,用于加載所述配置模塊預(yù)置的腳本配置文件,根據(jù)所述腳本配置文件中的 配置信息,獲取各腳本語言程序包的存放路徑,并在所述應(yīng)用系統(tǒng)內(nèi)部獲取與所述各腳本 語言類型相應(yīng)的動(dòng)態(tài)鏈接庫; 解析模塊,用于根據(jù)所述配置模塊配置的轉(zhuǎn)換模型,對(duì)所述獲取模塊獲取的與轉(zhuǎn)換模 型相同腳本語言類型的動(dòng)態(tài)鏈接庫完成初始化后,所述各動(dòng)態(tài)鏈接庫按照所述各腳本語言 程序包的存放路徑找到與其對(duì)應(yīng)的腳本語言程序包,并對(duì)所述腳本語言程序包進(jìn)行解析; 植入模塊,用于根據(jù)所述配置模塊配置的轉(zhuǎn)換模型和所述腳本配置文件中的配置信 息,在所述解析模塊中對(duì)腳本語言程序包進(jìn)行解析后的動(dòng)態(tài)鏈接庫中植入與其相應(yīng)的方法 名和參數(shù); 執(zhí)行模塊,用于調(diào)用所述解析模塊中的動(dòng)態(tài)鏈接庫,執(zhí)行植入模塊在所述動(dòng)態(tài)鏈接庫 中植入的方法名和參數(shù)。
      10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 資源釋放模塊,用于在執(zhí)行模塊執(zhí)行完成后,清除所述解析模塊中本次解析的內(nèi)容。
      11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于: 所述配置模塊在所述腳本配置文件中配置各腳本語言程序包的編寫語言類型、存放路 徑、方法名和執(zhí)行該方法所需的參數(shù),將每個(gè)腳本語言程序包的信息配置為一條記錄。
      12. 據(jù)權(quán)利要求9-11中任一所述的裝置,其特征在于: 所述配置模塊在每個(gè)所述轉(zhuǎn)換模型中配置一種腳本語言類型的轉(zhuǎn)換規(guī)則,所述轉(zhuǎn)換規(guī) 則包括與該腳本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫初始化方法、生成解析器方法、外部傳遞參數(shù) 方法、返回值方法。
      13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 校驗(yàn)?zāi)K,用于在解析模塊對(duì)動(dòng)態(tài)鏈接庫進(jìn)行初始化之前,根據(jù)所述腳本配置文件中 配置各腳本語言程序包的方法名,與所述腳本程序包中的所有方法名進(jìn)行比對(duì)校驗(yàn),如有 方法名錯(cuò)誤或未找到則提示錯(cuò)誤報(bào)告并退出步驟。
      14. 根據(jù)權(quán)利要求13所述的裝置,其特征在于: 所述解析模塊根據(jù)所述轉(zhuǎn)換規(guī)則中記載的動(dòng)態(tài)鏈接庫初始化方法對(duì)與該轉(zhuǎn)換規(guī)則腳 本語言類型相應(yīng)的動(dòng)態(tài)鏈接庫進(jìn)行初始化; 所述植入模塊讀取所述腳本配置文件中記載的所述該腳本語言類型方法名和執(zhí)行該 方法所需的參數(shù),通過所述轉(zhuǎn)換規(guī)則中的外部傳遞參數(shù)方法,將所述方法名和執(zhí)行該方法 所需的參數(shù)植入相應(yīng)的動(dòng)態(tài)鏈接庫。
      15. 根據(jù)權(quán)利要求14所述的裝置,其特征在于: 當(dāng)出現(xiàn)新的腳本語言程序包時(shí),所述配置模塊可在腳本配置文件中增加新的記錄; 所述獲取模塊周期性讀取所述腳本配置文件中的信息,可根據(jù)實(shí)際操作需求設(shè)定應(yīng)用 系統(tǒng)的讀取周期。
      【文檔編號(hào)】G06F9/445GK104423986SQ201310390995
      【公開日】2015年3月18日 申請(qǐng)日期:2013年9月2日 優(yōu)先權(quán)日:2013年9月2日
      【發(fā)明者】陳丹, 張濤, 張彥文 申請(qǐng)人:北京億陽信通科技有限公司, 億陽信通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1