專利名稱:一種命令管理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及網(wǎng)絡(luò)應(yīng)用領(lǐng)域,特別是涉及一種基于OSGi的命令動態(tài)和安全管理方 法、裝置及系統(tǒng)。
背景技術(shù):
OSGi技術(shù)規(guī)范是專為涉及動態(tài)模塊系統(tǒng)而設(shè)計(jì)的,在它出現(xiàn)之前,盡管提倡模塊 設(shè)計(jì)的高內(nèi)聚和低耦合,但實(shí)際中往往不盡如人意,實(shí)現(xiàn)起來也比較困難。各個開發(fā)者都有 一套自己的實(shí)現(xiàn),相互之間不兼容,如果把這些實(shí)現(xiàn)集成到一塊,難度相當(dāng)大。在OSGi技術(shù)規(guī)范出現(xiàn)之后,這個狀況得到徹底改變,因?yàn)榇蠹叶甲裱粋€標(biāo) 準(zhǔn),無論是單獨(dú)開發(fā)或者集成一起相對容易很多。不僅如此,OSGi規(guī)范有一套清晰的分層 架構(gòu),進(jìn)一步提高了開發(fā)效率。在這種情況下,迫切需要一種方式來管理這些不同來源的模 塊,而使用執(zhí)行命令的形式來管理應(yīng)用時一種常見的方式。當(dāng)新的模塊動態(tài)加入應(yīng)用后,可 以通過執(zhí)行命令來管理該模塊。但是如何實(shí)現(xiàn)命令可擴(kuò)展性和管理命令,以及怎樣賦予不 同的用戶不同的命令執(zhí)行權(quán)限成為一個必須解決的問題。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本申請實(shí)施例提供一種命令管理方法、裝置及系統(tǒng),對用于 管理新加入或者移除的模塊的命令進(jìn)行動態(tài)的管理和維護(hù),并對不同用戶賦予不同權(quán)限來 執(zhí)行不同的命令來實(shí)現(xiàn)安全管理。技術(shù)方案如下一種命令管理方法,包括獲取用戶注冊的命令并對所述命令進(jìn)行跟蹤;依據(jù)跟蹤到的所述命令的實(shí)例變化對所述命令執(zhí)行相應(yīng)操作;所述相應(yīng)操作包 括命令的注冊、命令的更新和命令的移除。上述的方法,優(yōu)選的,所述命令的實(shí)例變化過程為用戶依據(jù)確定的用戶權(quán)限對命令進(jìn)行獲取,所述獲取的命令包括已經(jīng)注冊過的 命令或命令組、命令組下的命令和所有命令組下名稱為特定值的命令列表;對獲取的命令執(zhí)行注冊、注銷或修改操作。上述的方法,優(yōu)選的,所述用戶權(quán)限的確定過程為獲取命令實(shí)例化對象中的用戶信息;解析所述用戶信息中用戶執(zhí)行的命令或命令組;將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功,則用戶具有 執(zhí)行命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。一種命令管理裝置,包括命令注冊器和命令跟蹤器;所述命令注冊器包括命令注冊單元、命令更新單元和命令移除單元;所述命令注冊器用于獲取用戶注冊的命令;
所述命令跟蹤器用于對所述命令注冊器注冊的命令進(jìn)行跟蹤,并將跟蹤到的所述 命令的實(shí)例變化返回至所述命令注冊器;所述命令注冊器依據(jù)所述命令跟蹤器返回的命令的實(shí)例變化,對所述命令執(zhí)行相 應(yīng)操作,所述相應(yīng)操作包括命令的注冊、命令的更新和命令的移除;所述命令注冊單元用于命令的注冊;所述命令更新單元用于命令的更新;所述命令移除單元用于命令的移除。上述的裝置,優(yōu)選的,還包括用戶權(quán)限管理單元;所述用戶權(quán)限管理單元用于對用戶執(zhí)行命令的權(quán)限進(jìn)行確定。上述的裝置,優(yōu)選的,所述用戶權(quán)限管理單元對用戶執(zhí)行命令權(quán)限的確定過程 為獲取命令實(shí)例化對象中的用戶信息;解析所述用戶信息中用戶執(zhí)行的命令或命令組;將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功,則用戶具有 執(zhí)行命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。一種命令管理系統(tǒng),包括客戶端、服務(wù)端及一種命令管理裝置。由以上本申請實(shí)施例提供的技術(shù)方案可見,本發(fā)明提供的一種命令管理方法、裝 置及系統(tǒng),對于用戶依據(jù)權(quán)限注冊的命令進(jìn)行實(shí)時跟蹤,若用于依據(jù)權(quán)限對已經(jīng)注冊的命 令進(jìn)行修改或移除,通過跟蹤用戶對命令進(jìn)行的操作后命令的實(shí)例變化,對已經(jīng)注冊的命 令進(jìn)行更新或移除,本申請實(shí)施例提供的命令管理方法、裝置及系統(tǒng),有效的實(shí)現(xiàn)了對命令 的可擴(kuò)展性,并能夠有效的對命令進(jìn)行管理,同時通過賦予用戶權(quán)限,使得不同用戶擁有不 同權(quán)限來執(zhí)行不同的命令,實(shí)現(xiàn)了命令的安全管理。
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請實(shí)施例提供的命令管理方法的流程圖;圖2為本申請實(shí)施例提供的用戶權(quán)限確定過程的流程圖;圖3為本申請實(shí)施例提供的命令管理裝置的結(jié)構(gòu)圖;圖4為本申請實(shí)施例提供的命令管理裝置的又一結(jié)構(gòu)示意圖;圖5為本申請實(shí)施例提供的命令管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案。下面將結(jié)合本申請實(shí)施例中的 附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
本申請實(shí)施例提供的命令管理方法的流程圖如圖1所示,包括步驟SlOl 獲取用戶注冊的命令并對所述命令進(jìn)行跟蹤;步驟S102 依據(jù)跟蹤到的所述命令的實(shí)例變化對所述命令執(zhí)行相應(yīng)操作;所述相 應(yīng)操作包括命令的注冊、命令的更新和命令的移除。在執(zhí)行上述方法前,首先建立實(shí)現(xiàn)命令管理所涉及的類和接口 實(shí)現(xiàn)命令的接口 =Command接口,通過通過getName方法可以獲得命令名稱; getGroup方法取得命令所屬的組;getUsage方法獲得命令的慣用法,是命令后面跟著的參 數(shù)或選項(xiàng)的順序和個數(shù);getShortDescription方法得到對命令的簡短功能和使用描述; 最后excute方法用來執(zhí)行,完成特定的功能,這是個核心的方法,它有兩個參數(shù),第一個參 數(shù)是字符串?dāng)?shù)組,存儲的是一系列的選項(xiàng)和參數(shù),而第二個參數(shù)是OSGi框架傳進(jìn)來的必要 屬性,這些屬性包括如執(zhí)行命令的用戶,命令所在的組和當(dāng)前系統(tǒng)目錄等信息,返回類型是 字符串,該字符串最終顯示在控制臺或其他管理界面上。實(shí)現(xiàn)命令跟蹤器用于跟蹤命令的響應(yīng)操作,例如當(dāng)一個命令注冊到OSGi框架 中,該操作事件被監(jiān)測到,并經(jīng)過相應(yīng)的過程將該命令注冊到命令注冊器實(shí)例中,并保存。 當(dāng)用戶更新命令時,命令跟蹤器監(jiān)測到該操作,將命令注冊器中存儲的命令進(jìn)行更新。當(dāng)用 戶注銷命令時,命令跟蹤器監(jiān)測到該操作,將命令注冊器中存儲的命令進(jìn)行移除。命令的實(shí)例變化過程為用戶依據(jù)確定的用戶權(quán)限對命令進(jìn)行獲取,所述獲取的命令包括已經(jīng)注冊過的 命令或命令組、命令組下的命令和所有命令組下名稱為特定值的命令列表;對獲取的命令執(zhí)行注冊、注銷或修改操作。根據(jù)命令跟蹤器跟蹤到的命令實(shí)例變化來執(zhí)行相應(yīng)的操作例如,如果有命令注 冊,就將該命令存儲起來,反之,如果注銷,則移除該命令;同時本申請實(shí)施例提供多種獲取 注冊命令的方式。對命令執(zhí)行操作中的相關(guān)信息進(jìn)行初始化,如命令的組的列表和命令跟蹤器的實(shí) 例化,命令的存儲Map等等。用戶可以獲得已經(jīng)注冊過的命令,獲得所有已經(jīng)注冊過的命令 組,或是根據(jù)某個組,獲得該組下所有的命令或其中的某一個命令,同時也可以獲得所有組 下名稱為某個值的命令列表。在接口建立結(jié)束后對接口實(shí)例化,激活跟蹤器,跟蹤命令的相應(yīng)事件;將命令注冊到OSGi框架中;一旦命令注冊到框架中,會馬上被監(jiān)測到,進(jìn)行命令的動態(tài)管理獲取已經(jīng)注冊的所有命令,將所有命令的服務(wù)引用進(jìn)行保存。命令跟蹤器獲取服務(wù)引用,如果事件操作是命令注冊,判斷該服務(wù)引用是否已經(jīng) 被添加,如沒有,判斷該服務(wù)引用是否在被添加的過程中,如果不在,對該服務(wù)引用進(jìn)行添 加,并獲取該服務(wù)引用對應(yīng)的真實(shí)對象,調(diào)用命令注冊器的添加方法,將命令進(jìn)行保存或添 加到命令所在的組列表中。如果事件操作是修改命令,調(diào)用命令注冊器的更新方法,查看該方法中服務(wù)引用 是否已經(jīng)被添加過,如果沒有,返回,如果有,對服務(wù)引用對應(yīng)的服務(wù)對象進(jìn)行更新。如果事件操作時注銷命令,調(diào)用命令注冊器的注銷方法,從已添加過的注冊命令 中將該服務(wù)引用對應(yīng)的服務(wù)對象進(jìn)行刪除。
由以上過程可知,命令的生命周期得到很好的控制,用戶無論何時添加、修改和移 除命令,命令管理框架對應(yīng)做相應(yīng)操作,有效的管理命令。用戶不需要擔(dān)心添加了命令無法 執(zhí)行,或刪除了命令,命令依然可以執(zhí)行等多種情況。本申請實(shí)施例提供的用戶權(quán)限確定過程的流程圖如圖2所示,包括步驟S201 獲取命令實(shí)例化對象中的用戶信息;步驟S202 解析所述用戶信息中用戶執(zhí)行的命令或命令組;步驟S203 將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功, 則用戶具有執(zhí)行命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。命令執(zhí)行前,獲取命令的實(shí)例化對象,從該實(shí)例化對象中獲取保存的用戶相關(guān)信 息;解析上述相關(guān)信息,如“*”代表用戶可以執(zhí)行所有命令,root/help表示用戶可以 執(zhí)行命令組root下面的help命令,root/*則表示用戶可以執(zhí)行命令組root下面的所有 命令等。看傳進(jìn)來的命令組和命令是否匹配解析過的信息,如果匹配,表明該用戶有執(zhí)行 該命令的權(quán)利,否則拒絕訪問。通過以上方法,實(shí)現(xiàn)對用戶的授權(quán)操作,以及對用戶執(zhí)行某個命令權(quán)利的判決,保 證不同級別的用戶執(zhí)行不同的命令,實(shí)現(xiàn)了對命令的安全管理。本申請實(shí)施例提供的命令管理裝置的結(jié)構(gòu)圖如圖3所示,包括命令注冊器301和 命令跟蹤器302 ;命令注冊器301包括命令注冊單元303、命令更新單元304和命令移除單元305 ;命令注冊器301用于獲取用戶注冊的命令;命令跟蹤器302用于對命令注冊器301注冊的命令進(jìn)行跟蹤,并將跟蹤到的所述 命令的實(shí)例變化返回至命令注冊器301 ;所述命令注冊器301依據(jù)命令跟蹤器302返回的命令的實(shí)例變化,對所述命令執(zhí) 行相應(yīng)操作,所述相應(yīng)操作包括命令的注冊、命令的更新和命令的移除;命令注冊單元303用于命令的注冊;命令更新單元304用于命令的更新;命令移除單元305用于命令的移除。本申請實(shí)施例提供的命令管理裝置的又一結(jié)構(gòu)示意圖如圖4所示,還包括用戶權(quán) 限管理單元306 ;用戶權(quán)限管理單元306用于對用戶執(zhí)行命令的權(quán)限進(jìn)行確定。用戶權(quán)限管理單元306對用戶執(zhí)行命令權(quán)限的確定過程為獲取命令實(shí)例化對象中的用戶信息;解析所述用戶信息中用戶執(zhí)行的命令或命令組;將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功,則用戶具有 執(zhí)行命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。本申請實(shí)施例提供的命令管理系統(tǒng)的結(jié)構(gòu)示意圖,包括客戶端401、服務(wù)端403 及一種命令管理裝置402 ;客戶端401用于為用戶提供可操作平臺;
命令管理裝置402用于對命令進(jìn)行管理;服務(wù)端403用于對命令管理裝置402對命令進(jìn)行管理過程的具體化實(shí)施。本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部 分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。以上所述僅是本 申請的具體實(shí)施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請?jiān)?理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。
權(quán)利要求
一種命令管理方法,其特征在于,包括獲取用戶注冊的命令并對所述命令進(jìn)行跟蹤;依據(jù)跟蹤到的所述命令的實(shí)例變化對所述命令執(zhí)行相應(yīng)操作;所述相應(yīng)操作包括命令的注冊、命令的更新和命令的移除。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述命令的實(shí)例變化過程為用戶依據(jù)確定的用戶權(quán)限對命令進(jìn)行獲取,所述獲取的命令包括已經(jīng)注冊過的命令 或命令組、命令組下的命令和所有命令組下名稱為特定值的命令列表; 對獲取的命令執(zhí)行注冊、注銷或修改操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述用戶權(quán)限的確定過程為 獲取命令實(shí)例化對象中的用戶信息;解析所述用戶信息中用戶執(zhí)行的命令或命令組;將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功,則用戶具有執(zhí)行 命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。
4.一種命令管理裝置,其特征在于,包括命令注冊器和命令跟蹤器; 所述命令注冊器包括命令注冊單元、命令更新單元和命令移除單元; 所述命令注冊器用于獲取用戶注冊的命令;所述命令跟蹤器用于對所述命令注冊器注冊的命令進(jìn)行跟蹤,并將跟蹤到的所述命令 的實(shí)例變化返回至所述命令注冊器;所述命令注冊器依據(jù)所述命令跟蹤器返回的命令的實(shí)例變化,對所述命令執(zhí)行相應(yīng)操 作;所述相應(yīng)操作包括命令的注冊、命令的更新和命令的移除; 所述命令注冊單元用于命令的注冊; 所述命令更新單元用于命令的更新; 所述命令移除單元用于命令的移除。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,還包括用戶權(quán)限管理單元; 所述用戶權(quán)限管理單元用于對用戶執(zhí)行命令的權(quán)限進(jìn)行確定。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述用戶權(quán)限管理單元對用戶執(zhí)行命令 權(quán)限的確定過程為獲取命令實(shí)例化對象中的用戶信息; 解析所述用戶信息中用戶執(zhí)行的命令或命令組;將解析得到的命令或命令組與所述用戶信息進(jìn)行匹配,若匹配成功,則用戶具有執(zhí)行 命令的權(quán)限,否則,不具有執(zhí)行命令的權(quán)限。
7.一種命令管理系統(tǒng),其特征在于,包括客戶端、服務(wù)端及權(quán)利要求4 6任一項(xiàng)所 述的一種命令管理裝置。
全文摘要
本申請公開了一種命令管理方法,包括獲取用戶注冊的命令并對命令進(jìn)行跟蹤;依據(jù)跟蹤到的命令的實(shí)例變化對所述命令執(zhí)行相應(yīng)操作;所述相應(yīng)操作包括命令的注冊、命令的更新和命令的移除。本發(fā)明還提供了一種命令管理裝置及系統(tǒng);本發(fā)明提供的方法、裝置及系統(tǒng)對于用戶依據(jù)權(quán)限注冊的命令進(jìn)行實(shí)時跟蹤,若用戶依據(jù)權(quán)限對已經(jīng)注冊的命令進(jìn)行修改或移除,通過跟蹤用戶對命令進(jìn)行的操作后命令的實(shí)例變化,對已經(jīng)注冊的命令進(jìn)行更新或移除,本申請實(shí)施例提供的命令管理方法、裝置及系統(tǒng),有效的實(shí)現(xiàn)了對命令的可擴(kuò)展性,并能夠有效的對命令進(jìn)行管理,同時通過賦予用戶權(quán)限,使得不同用戶擁有不同權(quán)限來執(zhí)行不同的命令,實(shí)現(xiàn)了命令的安全管理。
文檔編號H04L29/06GK101958905SQ20101050514
公開日2011年1月26日 申請日期2010年9月29日 優(yōu)先權(quán)日2010年9月29日
發(fā)明者劉民, 景新海, 許顯月 申請人:山東中創(chuàng)軟件工程股份有限公司;山東中創(chuàng)軟件商用中間件股份有限公司