两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種Java卡擴展庫更新方法、裝置和Java卡與流程

文檔序號:12008562閱讀:233來源:國知局
一種Java卡擴展庫更新方法、裝置和Java卡與流程
本發(fā)明涉及一種更新JavaCard擴展庫的方法,屬于數(shù)據(jù)業(yè)務領域。

背景技術:
Java卡是Sun公司為智能卡開發(fā)平臺制定的一個開放標準。使用Java卡平臺創(chuàng)建的智能卡上存有Javaapplet。在卡發(fā)行后也可以把applet加到卡上或修改卡上已有的applet。它們把數(shù)據(jù)存儲在一個集成的微處理器芯片里。然后applet被下載到微處理器的內(nèi)存里,由Java虛擬機來運行。類似于另一個智能卡的開發(fā)技術MULTOS,Java卡使多個應用程序被安裝并且各自獨立地共存。每個applet都被防火墻保護以維護其完整性以及防止干擾。應用程序可以動態(tài)地升級。如圖1所示,Java卡中包含標準庫(StandardLibrary)及擴展庫(ExtensionalLibrary),應用(Applet)通過引用可調(diào)用庫提供的API(ApplicationProgrammingInterface)接口,創(chuàng)建一個或多個實例(Instance),其中,圖2展現(xiàn)了一種標準的Java卡的構(gòu)成圖,其包括:卡硬件(SMARTCARDHWANDNATIVESYSTEM)、Java卡虛擬機(JavaCardVMBYTECODEINTERETER)、本地方法(NATIVEMETHOD)、系統(tǒng)庫(SYSTEMCLASSES)、安裝管理器(INSTALLER)、標準Java卡API(FRAMEWORKCLASSESAPIS)、擴展庫(INDUSTRYSPECIFICEXTENSIONS),其中,一般地,系統(tǒng)庫中存在著appletmanagement、transactionmanagement、I/Onetworkcommunication以及其他services,一般地,Java卡的API為智能卡指定了一個Java語言的特殊子集,同時由于Java虛擬機的使用,上述applet能夠得到跨平臺的運行。其中,Java虛擬機實現(xiàn)了卡接口的統(tǒng)一和編程語言的統(tǒng)一,其中,API接口主要負責執(zhí)行Java卡applet以及提供applet執(zhí)行所需要的環(huán)境,其中,擴展庫則是服務方提供的類,使得企業(yè)和公司能夠提供屬于自己的服務程序,這些類在本申請中簡稱方法(method),其在Java卡中存在對應的地址;而Java卡applet即是開發(fā)的應用,其中,每個applet與擴展庫中的方法具有一定的引用關系,且上述applet通過引用方法的地址信息執(zhí)行相關的方法,其中,Java卡的執(zhí)行環(huán)境并不支持多線程,所以一次只能執(zhí)行一個Applet,且每個applet之間都有防火墻的阻隔。目前,若要更新Java卡中的擴展庫,必須先刪除引用它的實例及應用。如圖3所示,如要更新擴展庫,必須先刪除實例(Instance),接下來刪除Applet2、Applet3,然后再刪除擴展庫;重新安裝擴展庫,安裝Applet2、Applet3,安裝Instance。其中,在庫的安裝過程中,需要設置一個引用關系表,將庫的名字轉(zhuǎn)換成引用項,將方法轉(zhuǎn)換成實際的調(diào)用地址;Java程序在更新庫時,需要刪除對應表項中的內(nèi)容。從上述描述中可以發(fā)現(xiàn),現(xiàn)有技術存在的問題:1)要更新擴展庫,必須先刪除引用該擴展庫的實例、應用/擴展庫;2)要刪除實例,必須先備份(遷出)實例數(shù)據(jù),待重新安裝實例后再恢復(遷入)實例數(shù)據(jù);當擴展庫被大量應用及實例引用時,這一操作將變得異常繁瑣,甚至不可執(zhí)行。

技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是更新擴展庫時無需先刪除引用它的實例及應用,并且,該方法不會因為更新擴展庫造成Java卡出現(xiàn)工作異常。其中,根據(jù)本發(fā)明的一個目的,本發(fā)明提供了一種Java卡擴展庫更新方法,包括:A、獲取待更新的擴展庫與應用和/或?qū)嵗?或第二擴展庫的引用關系;獲取所述待更新的擴展庫中的所有方法及其存儲地址的第一映射關系;B、更新所述擴展庫,根據(jù)更新后的擴展庫的存儲狀態(tài)建立更新后的擴展庫中的所有方法和其存儲地址之間的第二映射關系;C、根據(jù)所述引用關系和第二映射關系,更新上述應用和/或?qū)嵗?或擴展庫中針對所述擴展庫中的方法所對應的存儲地址信息。其中,優(yōu)選的是,在步驟A中,還包括:禁用上述應用和/或?qū)嵗?或第二擴展庫在所述Java卡中的運行。其中,優(yōu)選的是,所述應用和/或?qū)嵗?或第二擴展庫直接或者間接引用所述擴展庫中的一個或者多個方法,其中,所述應用和/或?qū)嵗?或第二擴展庫通過引用所述方法的存儲地址信息執(zhí)行對應的方法。其中,優(yōu)選的是,步驟A中,具體包括:遍歷Java卡上以第一擴展庫為根的所有應用、擴展庫及實例,獲取并保存所述應用、第二擴展庫及實例與所述擴展庫之間的引用關系;根據(jù)第一擴展庫的存儲信息獲取第一擴展庫中的方法和其存儲地址之間的第一映射關系。其中,優(yōu)選的是,步驟C中,具體包括:根據(jù)所述引用關系獲取引用所述第一擴展庫的所有應用、擴展庫和實例;根據(jù)所述第二映射關系將所述應用、擴展庫和實例中引用的方法的舊的物理地址修改為新的物理地址,同時將這些應用、擴展庫及實例的狀態(tài)修改為啟用狀態(tài)。其中,優(yōu)選的是,進一步還包括:檢查應用和/或?qū)嵗?或第二擴展庫中對應的方法和更新后的第一擴展庫中的方法之間的對應關系;其中,當在所述更新后的第一擴展庫中不存在相應的方法時,發(fā)出提示Java擴展庫更新失敗的報警信息。其中,優(yōu)選的是,步驟C之中,在上述存儲地址信息更新完成后,還包括:所述應用和/或?qū)嵗?或第二擴展庫根據(jù)更新后的地址信息,進行對應的應用和/或?qū)嵗?或第二擴展庫在Java卡中的運行。本申請通過上述方法的引用關系,進而替換掉對應的方法的舊的地址信息,從而使得更新后的擴展庫能夠被原先的應用和/或?qū)嵗?或其他擴展庫所引用,該種方法克服了現(xiàn)有技術必須刪除舊有的應用、實例和擴展庫方可以更新擴展庫的缺點,具有很好的技術效果。此外,本發(fā)明還提供了一種Java卡中擴展庫更新裝置,包括:關聯(lián)關系管理單元,用于獲取待更新的第一擴展庫與應用和/或?qū)嵗?或第二擴展庫的引用關系;地址關系獲取單元,用于獲取第一擴展庫中的方法及其存儲地址之間的第一映射關系;擴展庫安裝單元,用于刪除舊的第一擴展庫并安裝新的第一擴展庫;所述地址關系獲取單元,還用于根據(jù)更新后的第一擴展庫的存儲信息建立更新后的第一擴展庫中的方法和其存儲地址之間的第二映射關系;地址信息更新單元,用于根據(jù)所述引用關系和第二映射關系,更新上述應用和/或?qū)嵗?或第二擴展庫中針對所述第一擴展庫中的方法所對應的存儲地址信息。其中,優(yōu)選的是,還包括:狀態(tài)管理單元,用于禁用或者啟動上述應用和/或?qū)嵗?或第二擴展庫的運行。其中,優(yōu)選的是,所述應用和/或?qū)嵗?或第二擴展庫直接或者間接引用所述第一擴展庫中的一個或者多個方法。其中,優(yōu)選的是,還包括:應用方法地址管理單元,用于保存所述應用和/或?qū)嵗?或第二擴展庫中包含有所述一個或者多個方法的存儲地址信息。其中,優(yōu)選的是,還包括:對應關系檢測單元,用于檢查應用和/或?qū)嵗?或第二擴展庫中對應的方法和更新后的第一擴展庫中的方法之間的對應關系;信息報警單元,用于當在所述更新后的第一擴展庫中不存在相應的方法時,發(fā)出提示Java擴展庫更新失敗的報警信息。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。附圖說明下面結(jié)合附圖對本發(fā)明進行詳細的描述,以使得本發(fā)明的上述優(yōu)點更加明確。圖1是現(xiàn)有技術中一個Java卡的示意圖;圖2是現(xiàn)有技術中一個Java卡的結(jié)構(gòu)示意圖圖3是現(xiàn)有技術中一個Java卡中擴展庫的更新示意圖;圖4是本發(fā)明Java卡中擴展庫更新方法的流程示意圖圖5是本發(fā)明一個實施例的Java卡中擴展庫的更新方法流程示意圖;圖6是本發(fā)明一個實施例中Java卡中擴展庫的更新裝置的結(jié)構(gòu)示意圖。具體實施方式以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細的說明。方法實施例一:圖4是本發(fā)明Java卡中擴展庫更新方法的流程示意圖;如圖4所示,所示Java卡中擴展庫更新方法,主要包括:S101:獲取待更新的擴展庫與應用和/或?qū)嵗?或第二擴展庫的引用關系;包括:遍歷Java卡上以第一擴展庫為根的所有應用、擴展庫及實例,獲取并保存所述應用、第二擴展庫及實例與所述擴展庫之間的引用關系;S102:獲取所述待更新的擴展庫中的所有方法及其存儲地址的第一映射關系;包括:根據(jù)擴展庫的存儲信息獲取第一擴展庫中的方法和其存儲地址之間的第一映射關系。S103:更新所述擴展庫,包括:刪除舊的擴展庫并用新的擴展庫替換掉舊有的擴展庫,其中,所述新的擴展庫具有舊的擴展庫所有的方法;S104:根據(jù)更新后的擴展庫的存儲狀態(tài)建立更新后的擴展庫中的所有方法和其存儲地址之間的第二映射關系;S105:根據(jù)所述引用關系和第二映射關系,更新上述應用和/或?qū)嵗?或擴展庫中針對所述擴展庫中的方法所對應的存儲地址信息。其中,本申請通過上述方法的引用關系,進而替換掉對應的方法的舊的地址信息,從而使得更新后的擴展庫能夠被原先的應用和/或?qū)嵗?或其他擴展庫所引用,該種方法克服了現(xiàn)有技術必須刪除舊有的應用、實例和擴展庫方可以更新擴展庫的缺點,具有很好的技術效果。其中,可以理解的是,在S101之前,需要禁用上述應用和/或?qū)嵗?或第二擴展庫在所述Java卡中的運行,以便于獲取和保存上述引用關系和/或地址和方法之間的對應關系。其中所述應用和/或?qū)嵗?或第二擴展庫直接或者間接引用所述擴展庫中的一個或者多個方法,其中,所述應用和/或?qū)嵗?或第二擴展庫通過引用所述方法的存儲地址信息執(zhí)行對應的方法。其中,S105中,具體包括:根據(jù)所述引用關系獲取引用所述第一擴展庫的所有應用、擴展庫和實例;根據(jù)所述第二映射關系將所述應用、擴展庫和實例中引用的方法的舊的物理地址修改為新的物理地址,同時將這些應用、擴展庫及實例的狀態(tài)修改為啟用狀態(tài)。此外,為了盡可能降低出錯的頻率,在更新完成以后或者在更新之前,需要檢查應用和/或?qū)嵗?或第二擴展庫中對應的方法和更新后的第一擴展庫中的方法之間的對應關系;其中,當在所述更新后的第一擴展庫中不存在相應的方法時,發(fā)出提示Java擴展庫更新失敗的報警信息。并且,上述存儲地址信息更改完成以后,所述應用和/或?qū)嵗?或第二擴展庫根據(jù)更新后的地址信息,進行對應的應用和/或?qū)嵗?或第二擴展庫在Java卡中的運行。其中,本發(fā)明采取了上述的更新方法以后,其更新擴展庫時無需先刪除引用它的實例及應用;并且,該發(fā)明不會因為更新擴展庫造成Java卡出現(xiàn)工作異常,具有很好的技術優(yōu)點。方法實施例二:其中,結(jié)合更具體的實施例對本發(fā)明進行詳細說明;圖5是本發(fā)明一個實施例的Java卡中擴展庫的更新方法流程示意圖。其中,所述方法包括兩個主要的步驟,其中,S101~S102主要涉及到更新擴展庫之前的操作,具體如下:修改狀態(tài):檢查卡上以該擴展庫為根的所有應用、擴展庫及實例,將這些應用、擴展庫及實例的狀態(tài)修改為禁用狀態(tài);也就是,S1011:保存庫中的方法和庫的實際地址之間的引用關系,即哪些應用、擴展庫引用了該擴展庫,并將上述信息放入到一個引用關系表中;S1022:保存該擴展庫的方法及舊真實地址的映射關系表,即:method—addressold的一個對應關系;刪除擴展庫。其中,所謂的原子操作,指上述操作要么全部執(zhí)行成功,要么不執(zhí)行,不會出現(xiàn)執(zhí)行一半無法恢復的情況,下同。步驟S103~S105涉及到更新擴展庫的主要步驟,其中,在一個具體的實施例中,主要執(zhí)行以下的原子操作:安裝擴展庫;形成該擴展庫中的方法及新真實地址的映射關系表,即:method—addressnew;根據(jù)之前保存的引用關系表,遍歷所有引用該擴展庫的應用及擴展庫,將addressold修改為addressnew;將這些應用、擴展庫及實例的狀態(tài)修改為啟用狀態(tài)。其中,同樣可以理解的是,為避免因更新庫而造成原有應用、擴展庫調(diào)用的方法出現(xiàn)更新或刪除的情況,必須在安裝庫之前執(zhí)行檢查操作,若出現(xiàn)上述情況則提示更新失敗。其中,本案改進了Java卡的庫的更新方法,無需刪除過多的應用和個人數(shù)據(jù),其解決了現(xiàn)有的Java程序中更新庫的機制,不按照現(xiàn)有樹形結(jié)構(gòu)的順序刪除機制,適用于特定場景,有很好的優(yōu)點。裝置實施例一:其中,本發(fā)明還公開了一種Java卡,其包括一個或多個擴展庫和應用和/或?qū)嵗?,并且,還設有一個擴展庫更新裝置,由于在不刪除應用的情況下更新Java卡中的一個或者多個擴展庫。其中,圖6是本發(fā)明一個實施例中Java卡中擴展庫的更新裝置的結(jié)構(gòu)示意圖;如圖6所示,所述更新裝置,具體包括:關聯(lián)關系管理單元,用于獲取待更新的第一擴展庫與應用和/或?qū)嵗?或第二擴展庫的引用關系;地址關系獲取單元,用于獲取第一擴展庫中的方法及其存儲地址之間的第一映射關系;擴展庫安裝單元,用于刪除舊的第一擴展庫并安裝新的第一擴展庫;所述地址關系獲取單元,還用于根據(jù)更新后的第一擴展庫的存儲信息建立更新后的第一擴展庫中的方法和其存儲地址之間的第二映射關系;地址信息更新單元,用于根據(jù)所述引用關系和第二映射關系,更新上述應用和/或?qū)嵗?或第二擴展庫中針對所述第一擴展庫中的方法所對應的存儲地址信息。其中,還包括:狀態(tài)管理單元,用于禁用或者啟動上述應用和/或?qū)嵗?或第二擴展庫的運行。其中,所述應用和/或?qū)嵗?或第二擴展庫直接或者間接引用所述第一擴展庫中的一個或者多個方法。其中,還包括:應用方法地址管理單元,用于保存所述應用和/或?qū)嵗?或第二擴展庫中包含有所述一個或者多個方法的存儲地址信息。其中,還包括:對應關系檢測單元,用于檢查應用和/或?qū)嵗?或第二擴展庫中對應的方法和更新后的第一擴展庫中的方法之間的對應關系;信息報警單元,用于當在所述更新后的第一擴展庫中不存在相應的方法時,發(fā)出提示Java擴展庫更新失敗的報警信息。其中,本發(fā)明采取了上述的更新裝置以后,其更新擴展庫時無需先刪除引用它的實例及應用;并且,該發(fā)明不會因為更新擴展庫造成Java卡出現(xiàn)工作異常,具有很好的技術優(yōu)點。其中,本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:只讀存儲器(ReadOnlyMemory,簡稱ROM)、隨機存取存儲器(RandomAccessMemory,簡稱RAM)、磁碟、終端手機軟件或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汽车| 陕西省| 德惠市| 贺州市| 泸西县| 奉贤区| 九龙坡区| 宁化县| 仙居县| 渝中区| 大埔区| 衡山县| 合川市| 晋中市| 文水县| 贵州省| 安福县| 凤翔县| 临夏县| 彰化市| 象山县| 秦皇岛市| 岳普湖县| 清水县| 墨竹工卡县| 吉水县| 葫芦岛市| 中西区| 建湖县| 彰化县| 长武县| 阳谷县| 新化县| 衢州市| 额敏县| 德江县| 富源县| 临洮县| 安吉县| 潼关县| 木里|