專利名稱:具有用于傳遞html數據的增強的性能的個人令牌的制作方法
技術領域:
本發明涉及當擁有(host)用于將HTML頁面傳遞至假想設備的Java卡 應用程序時的個人安全令牌。這樣的個人令牌通常一皮稱為包括web或HTML 服務器的個人令牌。
背景技術:
個人令牌用于當用戶訪問受限的或專用資源設備(如移動電信網絡、銀 行設備或網絡、存儲秘密數據的遠程服務器、或者甚至具有至其的受限的物 理訪問的受保護的區域)時、認證這樣的用戶。
大部分已知的這種類型的設備是諸如SIM卡(用戶識別模塊)或信用卡 之類的IC卡,但是,其還可以是USB密鑰、海量存儲卡或攜帶某些必要的 證書的任何種類的令牌。
這些令牌典型地符合國際標準IS07816。
假想設備典型地是移動電話網絡中的移動終端,但是,還可以是IT網絡 (因特網或公司內部網絡)中的主機PC或遠程終端。
Java卡是已知從Java衍生的語言和編程系統,即,由于智能卡的減少的 性能而導致其具有簡化的功能性,但是其保留了 Java的主要方面,諸如下 載.cap文件、實例化、注冊、使用應用程序Ids、以及更重要地,原始Java 語言指令的選定組,這些使得Java卡保持了原始Java的面向對象的特性。Java 卡功能的智能卡或USB加密狗是眾所周知的。
Java卡經常用于將HTML數據傳遞至主機設備,該主機設備運行HTML 引擎,該引擎讀取該傳遞的HTML數據并且取決于該傳遞的數據來構建 HTML頁面。所傳遞的HTML數據是用于描述要在HTML頁面中找到的內 容(即,靜態對象、動態對象、以及用于在頁面中組織靜態和動態對象的模 板)的足夠的數據。
Java卡應用程序無線地(over-the-air )或通過有線手段(即,在工廠當 定制該令牌時,或者甚至在銷售點通過使用具有某些專用連接的本地計算機和為了該目的的驅動器)被加載到安全性令牌中。
Java卡應用程序難以更新。已經存在在令牌中的一些Java卡數據經常不 可能修改,這意味著必須下載新的版本的整個應用程序,其涵蓋了經^修改的 數據。這還意味著令牌必須被帶回工廠或銷售點,或者意味著全部應用程序 (即.cap文件的)代碼的新的下載必須無線地進行,這對于操作者是長時間 的和苛求的,并且需要令牌中的困難的存儲器管理。
這對于當看起來必須修改HTML頁面時專用于傳遞HTML頁面數據的應 用程序代碼來說尤其成立。
例如,改變HTML頁面中的對象、或者修改HTML頁面的模板用于強調 特定對象而非另一對象,需要將Java卡應用程序再次下載到卡中、以及由該 卡以Java卡應用程序的修改的版本而再次解譯其。
發明內容
本發明的目的是解決此問題,即,提出一種在個人令牌中的Java卡應用 程序的實施方式,其使得當涉及個人令牌時修改要被顯示的HTML頁面的處 理容易。
本發明通過如所附權利要求書中所述的特征來實現這樣的目的。
本發明的其它方面、目標和優點將通過參考附圖而進行的下列描述而呈 現,在附圖中
圖1呈現了根據現有技術的裝載Java卡應用程序的SIM卡,
圖2呈現了根據本發明的實施例的裝載Java卡應用程序的SIM卡,
圖3是呈現由根據本發明的同一實施例的SIM卡執行的一系列任務的圖示。
具體實施例方式
如圖l呈現的,對于擁有諸如游戲、電子錢包或電話簿應用程序的Java 卡應用程序,根據現有技術的SIM卡10首先利用.cap文件11下載,該.cap 文件11是已經先前在遠程服務器內被編譯并被轉換的Java卡指令集。該.cap 文件11仍然需要解if,以i^更3皮呈現(render)為可執行的,即,該.cap文件11必須由Java卡虛擬機實例化,該Java卡虛擬機在下載之前存在于該卡中。 該.cap文件隨后變為如圖1中的參考符號12下面代表的被稱作Java卡小應用 程序(Javacard applet)的程序。
此Java卡小應用程序12由一系列指令組成,由于所執行的實例化步驟, 所述指令現在與參數結合(couple ),所述參數也被下載到.cap文件內部,但 最初不與相應指令結合。
Java卡小應用程序12的指令描述 一旦由最終用戶要求HTML頁面, 要凈皮傳送至擁有SIM卡的移動終端的HTML數據。這樣的HTML頁面可以 是當最終用戶開啟他的移動終端時的預期顯示的歡迎屏保、或者允許最終用 戶從SIM卡10中實現的一些功能中進行選擇的菜單。.
Java卡小應用程序中的這些HTML數據包括模板數據13,其描述HTML 頁面的總體形狀、以及一些對象必須在該頁面中具有的位置,即,在該頁面 中為靜態對象或動態對象預留的每個位置。
Java卡小應用程序還包括用于建立該頁面的動態對象的指令,這可以典 型地由計算產生,或者由在最終用戶請求該頁面時的Java卡小應用程序的特 定狀態產生。
Java卡小應用程序還包括靜態對象數據,即,描述在運行Java卡小應用 程序的過程中不預期改變或調整的對象的數據。 這些靜態對象是圖1中的參考符號14。
現在將參考圖2來描述根據本發明的實施例的運行Java卡應用程序的 SIM卡。
圖2的SIM卡擁有經實例化且注冊了的Java卡小應用程序12 。原始的.cap 文件11被呈現在圖2上,但是在實例化了 Java卡小應用程序之后,其不再 可4喿作地存在于卡10中。
Java卡小應用程序12被保存在SIM卡的存儲器的一部分中,該部分通 常是專用于Java卡小應用程序的。此專用部分位于該卡的存儲器的非易失性 部分內部,其通常被實現為EEPROM存儲器(電可擦除可編程只讀存儲器)。
在圖2的右側,呈現了非易失性存儲器的另一物理部分,其擁有一系列 連續文件17。這些文件中的每個是以TLV格式的,即,由三個部分組成。每 個TLV文件的第一部分為標簽(Tag)部分,接下來的部分是包括長度量的 長度(Length)部分,并且TLV文件的最后部分是包括值的值(Value )部分,該值的大小確定置于TLV文件的在前的長度部分中的長度。
存儲器的該部分的TLV文件通常用于在存儲電信標準中列出并要求的通 信參數。
除了這樣的目的之外,在這里,這些TLV文件用于存儲針對Java卡小應 用程序12并且意圖構建HTML頁面數據的數據。Java卡小應用程序12被編 程用于在執行小應用程序12的過程期間,在TLV文件中取這些HTML數據。
這里,存儲在TLV文件中的HTML數據具有兩種類型。 一些TLV文件 存儲HTML模板數據,即,描述頁面的形狀和總體構成的HTML數據。
其它TLV文件存儲描述HTML靜態對象的數據。
一個TLV文件描述一個才莫^1,在當前的情況下,當前在多個分別的TLV 文件中描述多個模板。此外, 一個TLV文件描述一個靜態對象,在當前情況 下,當前在多個分別的TLV文件中描述多個靜態對象。
在每個靜態對象TLV文件中,文件的每個值部分是描述靜態對象其自身 的內容的HTML字符串,每個長度部分存儲HTML字符串的實際長度,并且, 每個標簽部分存儲靜態對象其自身的標識符,該標識符用于檢索被尋求的正 確的靜態對象。
Java卡中的字符串是在"<,,與">"之間組成的一組字母數字式字符, 其描述視覺對象,如要被置于HTML頁面中的靜態對象。
文件的不同格式(從二進制到BER-TLV格式)可以被考慮用于HTML 模板和HTML靜態對象的存儲。BER-TLV是優選格式。標準輕量級 (lightweight)格式更通常受到偏愛。
為了檢索才莫板數據和靜態對象數據的目的,卡10擁有并運行參考符號為 18的API (應用程序編程接口 )。 API 18讀取模板數據,解析它們,并且取 決于要對所考慮的數據進行的處理而將數據傳送至移動終端或傳送回至Java 卡小應用程序。
例如,當該模板包括靜態數據、并且還通過標識符而識別到動態數據的 必然性時,由API18將靜態數據直接傳遞至移動終端,而將動態數據標識符 傳送至應用程序12,用于進一步處理和呈現這樣的動態數據。
在圖3中,表示了參考符號從A至E的步驟,它們對應于由移動終端、 Java卡小應用程序12、API 18執行的連續的任務。圖3還呈現了在采集HTML 頁面數據的 索到的數據。作為第一步驟A,移動終端對應用程序12進行HTTP請求。應用程序 12的代碼包括專用于處理HTTP請求的部分12a。作為步驟B,此HTTP請 求處理部分12a調用API 18。作為步驟C, API 18隨后讀取相應的TLV數據 文件中的模板文件,這里,該模板包括包含靜態字符串的靜態數據,靜態字 符串中的一些描述各個靜態對象,但是它們還可以識別其它TLV文件中的請爭 態數據,該靜態數據可以描述靜態對象。
模板API 18或模板引擎隨后將模板文件解析為靜態數據(作為步驟D ), 并且解析為識別要被創建的動態對象的動態標識符。API將靜態數據直接傳 遞至移動終端,并且將動態標識符傳遞至應用程序12。
應用程序12包括模板回調模塊12b,其當被模板API 18調用時產生經識 別的動態對象。這樣,應用程序12實施回調接口。為了調用回調才莫塊12b, 模板API 18將動態數據標識符以及HTTP請求對象傳遞至模板回調模塊12b (作為步驟E)。
在步驟F,模板回調模塊12b基于動態數據標識符并且基于HTTP請求 對象,并且在任何附加的應用程序特定的數據源的基礎上,產生經識別的動 態數據。換句話說,應用程序邏輯使用從API以及其自身的源接收的信息, 以便產生動態數據。動態數據隨后被自動添加至輸出HTML頁面。
已經在將靜態對象和模板存儲在未被嵌入在應用程序代碼中的位置的情 況下描述了本發明。
在本發明的框架中,Java卡應用程序代碼可以包括嵌入到其中的靜態對 象數據,僅模板數據被存儲在獨立的位置中。相反,仍在本發明的框架中, Java卡應用程序可以在用于檢索靜態對象數據的獨立的位置中取出數據,但 是將模板數據包含在應用程序代碼內部。
在此可替換的實施例中,由應用程序使用的靜態對象被存儲在專用于這 樣的字符串的一個或多個獨立的文件中,并且每個字符串由例如標量的標識 符來識別。類似于先前描述的API 18的Java卡API允許小應用程序12通過 使用這樣的字符串的標識符,來在以構成字符串的字節組的格式的獨立的文 件中檢索靜態對象數據。API打開包含這樣的靜態字符串源的文件,并且從 自該應用程序提取的字符串的標識符獲得字節組(bytearray )。
在這些不同的實施例中,優點是下列這些
構建動態HTML頁面先前需要大量的字符串操作和串接。動態web頁面中使用的大部分字符串實際上是靜態的。描述字符串的唯一可能性是應用程序代碼中的字節組。HTML頁面的靜態部分必須在靜態字節組中被描述,并 且在Java卡應用程序中被硬編碼。例如,用于構建HTML頁面的靜態字符串 被硬編碼在應用程序源代碼中,它們不能為了定制/國際化的目的而容易地被 更新。靜態字符串的定制對于用于修正缺陷的實例也是有用的。除了用更新常量(updatedconstant)來重新安裝新的".cap"文件之外, 也通過將不同語言的字符串硬編碼在小應用程序的代碼中、或者通過管理令 牌中的相同應用程序的多個版本,而實現國際化。Java卡并未提供用于串接靜態字符串以構建復雜HTML頁面的任何有效 的方法。因此,應用程序邏輯負責將字符串字節組與動態無素串接,以便構 建動態內容。由于在Java卡中缺乏對字節組串接的支持、并且不包含這里建 議的獨立的字符串對象,導致構建動態HTML頁面需要大量手動緩沖器 (buffer)操作,并且從而是非常慢的。在代碼大小和性能方面,所描述的取出字符串資源的API允許將字節組 操作限制在Java卡應用程序中。此外,恒定標量標識符代替靜態字節組字符 串而被用在應用程序中,這減小了代碼大小并且提高了性能。可以根據客戶需求而定制在獨立的資源文件中包含的字符串。例如,包 含操作者名稱的一個字符串可被容易地改變,而不需要修改應用程序代碼。可以通過傳統的遠程文件管理技術來遠程更新靜態字符串文件,以便修 正潛在的缺陷、或者稍微更新應用程序。多個國際化資源文件可以存在于卡上,對于每國語言存在一個國際化資 源文件。Java卡應用程序可以選擇適配于當前用戶語言偏好的一個。也可以 作為相應文件中的所下載的靜態對象的更新,而在發布后容易地部署新的語5 。由于將模板吞儲在獨立的文件位置中,可以通過使用本地服務而由API 內部地處理模板。這也減少在Java卡中的緩沖器操作的需要、并且提高了性 能。可以基于客戶需求而容易地定制模板,而不需要改變應用程序代碼。 可以通過傳統的遠程文件管理技術來遠程更新模板,以便修正潛在的缺 陷、或者稍微更新應用程序的外觀。多個4莫板可以存在于卡上,對于每國語言存在一個才莫板。Java卡應用程9序可以選擇適配于當前用戶語言偏好的一個。也可以作為相應文件中的所下 載的新語言才莫板,而在發布后容易地部署新的語言。
權利要求
1.一種存儲位于個人令牌的存儲器區域上的java卡應用程序代碼的個人令牌,該個人令牌能夠運行該java卡應用程序(12),以將HTML頁面數據傳遞至外部設備,以便該外部設備在傳遞的HTML頁面數據的基礎上顯示HTML頁面,所述個人令牌還存儲要被用作為該HTML頁面的組成部分的數據,其特征在于要被用作為該HTML頁面的構成部分的數據處于與該Java卡應用程序代碼所位于的存儲器區域獨立的至少一個文件(17)中,并且,該個人令牌被編程用于當所述數據被請求用于將所述HTML頁面數據傳遞至所述外部設備時,打開存儲該HTML頁面的構成部分的所述至少一個文件。
2. 如權利要求1所述的個人令牌,特征在于其包括API,所述API 響應于向所述API請求打開,打開并讀取存儲該構成部分的所述至少一個獨 立的文件(17)的內容。
3. 如權利要求1所述的個人令牌,特征在于該HTML頁面的構成部 分由要在要被呈現的HTML頁面中被引入的至少一個靜態對象(17)組成。
4. 如權利要求1所述的個人令牌,特征在于該HTML頁面的構成部 分(17 )由HTML頁面才莫板組成。
5. 如權利要求1所述的個人令牌,特征在于該HTML頁面的構成部 分(17 )包括該HTML頁面的模4反、以及要被引入到該HTML頁面中的至少 一個靜態對象兩者。
6. 如結合權利要求2和4所述的個人令牌,特征在于該應用程序包括 用于傳遞該HTML頁面的動態對象的回調模塊(12b ),并且,所述API被編 程用于在每次API識別到在所讀取的HTML模板中需要動態對象時,啟動該 回調模塊。
7. 如結合權利要求2、 5和6所述的個人令牌,特征在于該至少一個 獨立的文件至少包括用于該HTML頁面的所需要的動態對象的標識符,并且, 該API將存儲該模板的該至少一個獨立的文件解析為該至少一個靜態對象和 該至少一個動態對象標識符,該API將該至少一個靜態對象傳送至外部呈現 設備,并且將該至少一個動態對象標識符傳送至該應用程序的回調模塊。
8. 如權利要求7所述的個人令牌,特征在于該API將該至少一個靜 態對象傳送至該外部呈現i殳備,而不將其傳送至該應用程序。
9. 如權利要求1所述的個人令牌,特征在于存儲該構成部分的該至少 一個文件是TLV類型文件,即,標簽長度值類型文件。
10. 如權利要求4所述的個人令牌,特征在于該至少一個文件包括多 個模板,并且,該應用程序代碼包括用于要被用作該HTML頁面的構成部分 的正確的模板的標識符。
11. 一種用于在個人令牌中實施Java卡應用程序的方法,該Java卡應用 程序用來將HTML頁面數據傳遞至外部呈現設備,該實施方法包括下載應用 程序代碼(12)、以及要被用作該HTML頁面的構成部分的數據,特征在于 該方法包括下列步驟a) 將Java卡應用程序的代碼下載到該個人令牌的存儲器區域上,b) 將要^^皮用作該HTML頁面的構成部分的凄W居下載到至少一個文件 (17)中,該至少一個文件(17)獨立于該Java卡應用程序代碼被下載到的存儲器區域,c) 對該個人令牌編程,用于當該應用程序請求該HTML頁面的構成部 分時、打開存儲該構成部分的該至少一個文件。
12.法,特征在于在不同時間,將該Java卡應用程序^碼(12 )和該HTML頁 面的構成部分(17)下載到該個人令牌中。
13.法,特征在于其包括步驟通過下載該HTML頁面的更新的構成部分,來更 新該HTML頁面的構成部分(17),而不下載已經在所述存儲器區域上存儲 的任何更新的Java卡應用程序代碼(12 )。
全文摘要
本發明涉及一種存儲位于個人令牌的存儲器區域上的Java卡應用程序代碼的個人令牌,該個人令牌能夠運行這樣的Java卡應用程序,以便將HTML頁面數據傳遞至外部設備,用于該外部設備在這樣的傳遞的HTML頁面數據的基礎上顯示HTML頁面,所述個人令牌還存儲要被用作該HTML頁面的構成部分的數據,特征在于要被用作為該HTML頁面的構成部分的數據在獨立于該Java卡應用程序代碼所位于的存儲器區域的至少一個文件中,以及,該個人令牌被編程用于當該數據被請求用于將所述HTML頁面傳遞至所述外部設備時、打開存儲該HTML頁面的構成部分的所述至少一個文件。
文檔編號G06F17/30GK101663664SQ200880012965
公開日2010年3月3日 申請日期2008年1月22日 優先權日2007年2月21日
發明者勞倫特·卡斯蒂略, 弗蘭克·德林格, 西爾萬·蔡弗 申請人:金雅拓股份有限公司