国产精品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>

      插件虛擬機(jī)實(shí)現(xiàn)方法

      文檔序號(hào):6402212閱讀:150來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):插件虛擬機(jī)實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于信息系統(tǒng)技術(shù)領(lǐng)域,具體地說(shuō),是涉及一種插件虛擬機(jī)實(shí)現(xiàn)方法。
      背景技術(shù)
      目前信息系統(tǒng)的軟件開(kāi)發(fā),程序復(fù)用層面集中在“控件”層面,尤其基于NetWinForm的信息系統(tǒng)開(kāi)發(fā),控件間缺少邏輯關(guān)聯(lián),控件更多的集中于自身功能邏輯的實(shí)現(xiàn)上,面向程序邏輯、功能內(nèi)聚,系統(tǒng)缺少對(duì)控件間的邏輯管理,以及控件間缺少邏輯關(guān)聯(lián)。目前,企業(yè)信息系統(tǒng)一般以功能模塊構(gòu)成,模塊內(nèi)根據(jù)業(yè)務(wù)邏輯、用戶(hù)的操作邏輯組織控件實(shí)現(xiàn)客戶(hù)需求,因此要實(shí)現(xiàn)企業(yè)信息系統(tǒng)的功能模塊,還需要在控件的基礎(chǔ)上,對(duì)控件間的邏輯編寫(xiě)大量的代碼,致使開(kāi)發(fā)工作量的增大,導(dǎo)致軟件開(kāi)發(fā)成本增加?;诖?,如何發(fā)明一種插件虛擬機(jī),無(wú)需對(duì)控件間的邏輯編寫(xiě)大量的代碼,有效減小開(kāi)發(fā)工作量,降低軟件開(kāi)發(fā)成本。

      發(fā)明內(nèi)容
      本發(fā)明為了解決現(xiàn)有信息系統(tǒng)開(kāi)發(fā)缺少對(duì)控件間的邏輯管理、導(dǎo)致需要另外編寫(xiě)大量代碼以實(shí)現(xiàn)控件間相互調(diào)用的問(wèn)題,通過(guò)在控件和功能模塊間再次抽象一層“插件”層,通過(guò)配置文件定義插件間的邏輯關(guān)系,對(duì)插件進(jìn)行統(tǒng)一定義和管理,提供一種插件虛擬機(jī)用于解釋執(zhí)行該配置文件,減少插件間的邏輯代碼的編寫(xiě)量。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
      一種插件虛擬機(jī)實(shí)現(xiàn)方法,包括以下步驟:
      (I )、加載單元加載并讀取配置文件信息,根據(jù)配置文件創(chuàng)建子系統(tǒng),加載單元調(diào)用插件管理器執(zhí)行步驟(2),所述的子系統(tǒng)包括:參數(shù)封裝單元、共享數(shù)據(jù)堆、消息管理器、插件管理器、插件執(zhí)行器、路由規(guī)則器;
      (2)、插件管理器加載配置文件中涉及到的插件;
      (3)、路由規(guī)則器根據(jù)插件執(zhí)行器調(diào)用插件后返回的結(jié)果或者根據(jù)加載單元提供的插件調(diào)用入口點(diǎn)確定插件執(zhí)行器需要執(zhí)行的插件編碼,并將該插件編碼傳遞給插件執(zhí)行器;
      (4)、插件執(zhí)行器接收路由規(guī)則器傳入的插件編碼,并從參數(shù)封裝單元獲得和本插件相關(guān)的參數(shù);插件執(zhí)行器通過(guò)調(diào)用插件的約定方法并在調(diào)用時(shí)傳入從參數(shù)封裝單元獲得的參數(shù)來(lái)執(zhí)行插件。進(jìn)一步的,還包括步驟(5)、插件間通過(guò)消息管理器接收/發(fā)送消息。進(jìn)一步的,步驟(2)中插件管理器查找到所有的配置文件中涉及到的插件后,確認(rèn)可用的插件然后加載,插件管理器加載完畢后,等待插件執(zhí)行器調(diào)用。進(jìn)一步的,步驟(2)中插件管理器加載配置文件中涉及到的插件時(shí),由所述的加載單元通過(guò)net環(huán)境調(diào)用操作系統(tǒng),在操作系統(tǒng)下查找插件。進(jìn)一步的,步驟(2 )中加載配置文件中所涉及到的插件后,將插件加載至插件管理器中。
      進(jìn)一步的,步驟(4)中插件執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù),存儲(chǔ)至共享數(shù)據(jù)堆中,以供其他插件調(diào)用。進(jìn)一步的,步驟(5)中,所述的消息管理器包括消息隊(duì)列和消息派發(fā)器,所述的消息隊(duì)列接收消息,并將其隊(duì)列,所述的消息派發(fā)器按照隊(duì)列順序?qū)⑾⑴砂l(fā)給該消息所指定的插件。進(jìn)一步的,步驟(5)中若插件管理器中沒(méi)有加載所述的所指定的插件,則由插件管理器重新加載,以供插件執(zhí)行器執(zhí)行。進(jìn)一步的,步驟(3)中插件執(zhí)行器執(zhí)行完畢當(dāng)前的插件后,還將當(dāng)前插件的執(zhí)行結(jié)果也即插件返回的數(shù)據(jù)轉(zhuǎn)發(fā)至路由規(guī)則器中,所述的路由規(guī)則器根據(jù)插件執(zhí)行器返回的數(shù)據(jù)確定下一個(gè)需要執(zhí)行的的插件的編碼,并將該插件編碼發(fā)送給插件執(zhí)行器,由插件執(zhí)行器執(zhí)行該編碼對(duì)應(yīng)的插件。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明的插件虛擬機(jī)實(shí)現(xiàn)方法,通過(guò)在功能模塊與控件、組件之間再抽象一層“插件”,使用XML作為插件配置文件的描述語(yǔ)言,表達(dá)插件間的邏輯,也即將插件間的邏輯關(guān)系表達(dá)成配置文件的形式,供插件虛擬機(jī)使用,驅(qū)動(dòng)插件虛擬機(jī)在合適的場(chǎng)景、環(huán)境中調(diào)用插件,將原本用程序代碼實(shí)現(xiàn)的邏輯轉(zhuǎn)變成描述性的文本語(yǔ)言;同時(shí),同一插件可以被多個(gè)模塊配置文件使用,達(dá)到插件復(fù)用的目的,因此無(wú)需對(duì)控件間的邏輯編寫(xiě)大量的代碼,有效減小開(kāi)發(fā)工作量,降低軟件開(kāi)發(fā)成本。結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。


      圖1是本發(fā)明所提出的一種插件虛擬機(jī)實(shí)現(xiàn)方法的一種實(shí)施例方框圖。
      具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
      作進(jìn)一步詳細(xì)地說(shuō)明。實(shí)施例一,本實(shí)施例提供了一種插件虛擬機(jī)實(shí)現(xiàn)方法,其中,參見(jiàn)圖1所示,插件虛擬機(jī)包括:
      加載單元,用于加載并讀取配置文件信息;
      參數(shù)封裝單元,用于對(duì)傳入?yún)?shù)的封裝以及存儲(chǔ);
      共享數(shù)據(jù)堆,用于存儲(chǔ)插件間的共享數(shù)據(jù);
      消息管理器,用于提供插件間的消息發(fā)送功能;
      插件管理器,用于查找,加載,緩存插件;
      插件執(zhí)行器,用于執(zhí)行插件;
      路由規(guī)則器,用于確定下一個(gè)需要執(zhí)行的插件的編碼,并將插件編碼發(fā)送給插件執(zhí)行器,由插件執(zhí)行器運(yùn)行編碼對(duì)應(yīng)的插件;
      本實(shí)施例中的插件虛擬機(jī)運(yùn)行時(shí),包括以下步驟:
      S1、加載單元加載并讀取配置文件信息,根據(jù)配置文件創(chuàng)建子系統(tǒng),加載單元調(diào)用插件管理器執(zhí)行步驟S2,所述的子系統(tǒng)包括:參數(shù)封裝單元、共享數(shù)據(jù)堆、消息管理器、插件管理器、插件執(zhí)行器、路由規(guī)則器、線(xiàn)程管理器; 52、插件管理器加載配置文件中涉及到的插件;
      53、路由規(guī)則器根據(jù)插件執(zhí)行器調(diào)用插件后返回的結(jié)果或者根據(jù)加載單元提供的插件調(diào)用入口點(diǎn)確定插件執(zhí)行器需要執(zhí)行的插件編碼,并將該插件編碼傳遞給插件執(zhí)行器;
      54、插件執(zhí)行器接收路由規(guī)則器傳入的插件編碼,并從參數(shù)封裝單元獲得和本插件相關(guān)的參數(shù);插件執(zhí)行器通過(guò)調(diào)用插件的約定方法并在調(diào)用時(shí)傳入從參數(shù)封裝單元獲得的參數(shù)來(lái)執(zhí)行插件。步驟S2中插件管理器查找到所有的配置文件中涉及到的插件后,確認(rèn)可用的插件然后加載,插件管理器加載完畢后,等待插件執(zhí)行器調(diào)用。步驟S2中插件管理器加載配置文件中涉及到的插件時(shí),由加載單元通過(guò)net環(huán)境調(diào)用操作系統(tǒng),在操作系統(tǒng)下查找插件。插件虛擬機(jī)運(yùn)行時(shí)包含在名為pluginvmcore.dll的動(dòng)態(tài)鏈接庫(kù)中,為插件提供面向操作系統(tǒng)和Net環(huán)境的基礎(chǔ)服務(wù)。具體包括:
      1)文件操作及路徑查找服務(wù);
      2)唯一主機(jī)碼創(chuàng)建(包含CPU-網(wǎng)卡);也即密碼驗(yàn)證服務(wù),通過(guò)讀取主機(jī)唯一的CPU序列號(hào)以及網(wǎng)卡的序列號(hào),按照相應(yīng)的公式計(jì)算出驗(yàn)證碼,與軟件中存儲(chǔ)的密碼相匹配,保障了軟件安裝合法性,可以有效防止盜版。3)加密解密;
      4)面向Window操作系統(tǒng)API的托管封裝;
      5)解釋模塊配置文件,根據(jù)模塊配置文件創(chuàng)建各種子系統(tǒng)。步驟S2中加載配置文件中所涉及到的插件后,將插件加載至插件管理器中,由插件管理器統(tǒng)一管理加載的插件,并且將參數(shù)存儲(chǔ)至參數(shù)封裝單元中。參數(shù)封裝單元提供對(duì)運(yùn)行插件虛擬機(jī)傳入的參數(shù)的封裝,具體為一個(gè)面向?qū)ο蟮墓1?。進(jìn)一步的,步驟S4中插件執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù),存儲(chǔ)至共享數(shù)據(jù)堆中,以供其他插件調(diào)用。不同的插件可以將需要共享的數(shù)據(jù)放入共享數(shù)據(jù)堆中,插件虛擬機(jī)退出后共享數(shù)據(jù)堆可以自動(dòng)回收。插件虛擬機(jī)維護(hù)共享數(shù)據(jù)堆中的數(shù)據(jù)的引用計(jì)數(shù),當(dāng)數(shù)據(jù)引用計(jì)數(shù)為0的時(shí)候,共享數(shù)據(jù)將被自動(dòng)回收。本實(shí)施例中還包括步驟S5,插件間還可以通過(guò)插件虛擬機(jī)發(fā)送/接收消息。消息管理器包括消息隊(duì)列和消息派發(fā)器,消息隊(duì)列接收消息,并將其隊(duì)列,消息派發(fā)器按照隊(duì)列順序?qū)⑾⑴砂l(fā)給該消息所指定的插件。消息中攜帶有需要執(zhí)行插件的信息,消息管理器向插件管理器中的需要執(zhí)行的插件派發(fā)該消息,由插件管理器將該插件的編碼傳給插件執(zhí)行器,最終插件執(zhí)行器根據(jù)該插件的編碼執(zhí)行該插件。消息管理器的功能還有:消息隊(duì)列,負(fù)責(zé)存儲(chǔ)插件發(fā)送過(guò)來(lái)的消息,并按照先后順序排成隊(duì)列的形式。其中,需要說(shuō)明的是,插件需要實(shí)現(xiàn)AcceptRunMsg (RunMessage msg)接口接收插件管理器發(fā)送的消息。步驟S5中若插件管理器中沒(méi)有加載所述的需要執(zhí)行的插件,則由插件管理器重新加載,然后由插件執(zhí)行器執(zhí)行。具體過(guò)程與初始加載插件時(shí)一致:由加載單元通過(guò)net環(huán)境調(diào)用操作系統(tǒng),在操作系統(tǒng)下查找插件。加載后的插件存儲(chǔ)至插件管理器中,然后由插件執(zhí)行器可以調(diào)用。步驟S4種插件執(zhí)行器執(zhí)行插件時(shí),同時(shí)從參數(shù)封裝單元調(diào)用該插件的參數(shù)。插件執(zhí)行器負(fù)責(zé)從插件管理器中取出插件,調(diào)用插件的特定方法ExcutePlugin (PluginParamparam)執(zhí)行插件;插件執(zhí)行器還負(fù)責(zé)處理插件異常信息,如果遇到需要退出插件虛擬機(jī)的異常則直接調(diào)用插件虛擬機(jī)提供的退出函數(shù)ExitVm(Excption ecode)退出插件虛擬機(jī)。步驟S4中插件執(zhí)行器執(zhí)行完畢當(dāng)前插件后,還將當(dāng)前插件運(yùn)行完畢后返回的數(shù)據(jù)轉(zhuǎn)發(fā)至路由規(guī)則器中,所述的路由規(guī)則器根據(jù)插件執(zhí)行器返回的數(shù)據(jù)確定下一個(gè)需要執(zhí)行的插件的編碼,并將插件編碼發(fā)送給插件執(zhí)行器,由插件執(zhí)行器運(yùn)行編碼對(duì)應(yīng)的插件。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明的插件虛擬機(jī)實(shí)現(xiàn)方法,通過(guò)在功能模塊與控件、組件之間再抽象一層“插件”,使用XML作為插件配置文件的描述語(yǔ)言,表達(dá)插件間的邏輯,也即將插件間的邏輯關(guān)系表達(dá)成配置文件的形式,供插件虛擬機(jī)使用,驅(qū)動(dòng)插件虛擬機(jī)在合適的場(chǎng)景、環(huán)境中調(diào)用插件,將原本用程序代碼實(shí)現(xiàn)的邏輯轉(zhuǎn)變成描述性的文本語(yǔ)言;同時(shí),同一插件可以被多個(gè)模塊配置文件使用,達(dá)到插件復(fù)用的目的。當(dāng)然,上述說(shuō)明并非是對(duì)本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的普通技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      1.一種插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,包括以下步驟: (1)、加載單元加載并讀取配置文件信息,根據(jù)配置文件創(chuàng)建子系統(tǒng),創(chuàng)建的子系統(tǒng)包括:參數(shù)封裝單元、共享數(shù)據(jù)堆、消息管理器、插件管理器、插件執(zhí)行器;加載單元隨后調(diào)用插件管理器執(zhí)行步驟(2); (2)、插件管理器加載配置文件中涉及到的插件; (3)、路由規(guī)則器根據(jù)插件執(zhí)行器調(diào)用插件后返回的結(jié)果或者根據(jù)加載單元提供的插件調(diào)用入口點(diǎn)確定插件執(zhí)行器需要執(zhí)行的插件編碼,并將該插件編碼傳遞給插件執(zhí)行器; (4)、插件執(zhí)行器接收路由規(guī)則器傳入的插件編碼,并從參數(shù)封裝單元獲得和本插件相關(guān)的參數(shù);插件執(zhí)行器通過(guò)調(diào)用插件的約定方法并在調(diào)用時(shí)傳入從參數(shù)封裝單元獲得的參數(shù)來(lái)執(zhí)行插件。
      2.根據(jù)權(quán)利要求1所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,還包括步驟(5),插件間通過(guò)消息管理器發(fā)送/接收消息。
      3.根據(jù)權(quán)利要求2所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(2)中插件管理器查找到所有的配置文件中涉及到的插件后,確認(rèn)可用的插件然后加載,插件管理器加載完畢后,等待插件執(zhí)行器調(diào)用。
      4.根據(jù)權(quán)利要求3所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(2)中插件管理器加載配置文件中涉及到的插件時(shí),由所述的加載單元通過(guò)net環(huán)境調(diào)用操作系統(tǒng),在操作系統(tǒng)下查找插件。
      5.根據(jù)權(quán)利要求4所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(2)中插件管理器加載配置文件中所涉及到的插件后,將插件加載至插件管理器中。
      6.根據(jù)權(quán)利要求5所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(4)中插件執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù),存儲(chǔ)至共享數(shù)據(jù)堆中,以供其他插件調(diào)用。
      7.根據(jù)權(quán)利要求6所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(5)中,所述的消息管理器包括消息隊(duì)列和消息派發(fā)器,所述的消息隊(duì)列接收消息,并將其隊(duì)列,所述的消息派發(fā)器按照隊(duì)列順序?qū)⑾⑴砂l(fā)給該消息所指定的插件。
      8.根據(jù)權(quán)利要求7所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(5)中若插件管理器中沒(méi)有加載所述的所指定的插件,則由插件管理器重新加載,以供插件執(zhí)行器執(zhí)行。
      9.根據(jù)權(quán)利要求8所述的插件虛擬機(jī)實(shí)現(xiàn)方法,其特征在于,步驟(3)中插件執(zhí)行器執(zhí)行完畢當(dāng)前的插件后,還將當(dāng)前插件的執(zhí)行結(jié)果也即插件返回的數(shù)據(jù)轉(zhuǎn)發(fā)至路由規(guī)則器中,所述的路由規(guī)則器根據(jù)插件執(zhí)行器返回的數(shù)據(jù)確定下一個(gè)需要執(zhí)行的的插件的編碼,并將該插件編碼發(fā)送給插件執(zhí)行器,由插件執(zhí)行器執(zhí)行該編碼對(duì)應(yīng)的插件。
      全文摘要
      本發(fā)明公開(kāi)了一種插件虛擬機(jī)實(shí)現(xiàn)方法,包括以下步驟(1)加載單元加載并讀取配置文件信息,根據(jù)配置文件創(chuàng)建子系統(tǒng);(2)插件管理器加載配置文件中涉及到的插件;(3)路由規(guī)則器確定插件執(zhí)行器需要執(zhí)行的插件編碼,并將該插件編碼傳遞給插件執(zhí)行器;(4)插件執(zhí)行器接收路由規(guī)則器傳入的插件編碼,并執(zhí)行插件。本發(fā)明的插件虛擬機(jī)實(shí)現(xiàn)方法,通過(guò)在模塊-控件、組件之間再抽象一層“插件”,將插件間的邏輯關(guān)系表達(dá)成配置文件的形式,供插件虛擬機(jī)使用,驅(qū)動(dòng)插件虛擬機(jī)在合適的場(chǎng)景、環(huán)境中調(diào)用插件,將原本用程序代碼實(shí)現(xiàn)的邏輯轉(zhuǎn)變成描述性的文本語(yǔ)言。因此無(wú)需對(duì)控件間的邏輯編寫(xiě)大量的代碼,有效減小開(kāi)發(fā)工作量,降低軟件開(kāi)發(fā)成本。
      文檔編號(hào)G06F9/455GK103197950SQ20131013692
      公開(kāi)日2013年7月10日 申請(qǐng)日期2013年4月19日 優(yōu)先權(quán)日2013年4月19日
      發(fā)明者侯瑞春, 丁香乾, 周志明, 石碩, 宮會(huì)麗, 于樹(shù)松, 井潤(rùn)環(huán), 丁英姿, 王魯升, 錢(qián)正峰 申請(qǐng)人:中國(guó)海洋大學(xué)
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1