Java智能卡基礎篇——未來Java平臺的新發展
摘要:
從本文開始,我們陸續刊登一系列在智能卡上進行Java開發的文章,以此把智能卡向您作一個基本的介紹。只要有一塊智能卡、一個讀卡機和一套可與智能卡通信的軟件,你就可以開始進行實用應用程序的開發了。本文介紹的內容包括:遵循ISO7816標準的智能卡管理軟件;如何使用Gemplus閱讀器和Gemplus智能卡從智能卡中讀寫內存;一些利用智能卡的存儲功能的應用程序。以后的文章將介紹不同廠家生產的智能卡,并且還將涉及智能卡的標準。
作為專題系列的第一篇,本文將主要為以后的討論作一個鋪墊工作。在此,我們將討論一個稱為OpenCard的新標準。以后的文章將涉及安全智能卡和電子錢包。最后,我們將向您介紹智能卡軟件的基本框架結構。
無論是在四月份的JavaOne大會上(與該技術有關的四次演講),還是在巨大的網絡新聞站或是CNN,智能卡掀起了軒然大波。在本文里,我們將以實用智能卡實例向您展示真正的智能卡。這里的技術將允許你開發智能卡Java應用程序。
我們的討論焦點主要集中在兩種智能卡之上:存儲智能卡,它可以被看作帶有可選安全級別的小型可讀寫磁盤;處理器卡,它可以被看作帶有一個輸入輸出端口的迷你型計算機。以后的文章將更為深入的介紹處理器卡。
本文的精華之處在于,我們將為讀寫智能卡創立一個簡單的原形。我們要討論一種醫藥處方卡,它將替你保存所有的藥方清單,并檢查保險、處方計劃等等有用的信息。并且我們將圍繞處方卡擴展開去。
在這一系列的文章之中,你會注意到伴隨智能卡的一個常見主題,那就是安全性問題。這里所說的安全,主要是防止通過卡的濫插入或ActiveX組件等手段非法獲取數據。為此目的,本文中關于讀寫智能卡中數據的范例將給你提供一個安全、一致且具可移植性的存儲。
智能卡是什么
你可以把智能卡當作一個帶有大腦的信用卡。其大腦就是一個小的嵌入式計算機芯片。這種芯片可以被編程執行某項任務或是存儲一些數據,但應時刻牢記:該種芯片只不過是小型的,它的處理能力絕對比不上你的桌面計算機。
目前,智能卡僅僅用于電話、運輸、銀行和保健等行業,但是感謝眾多的開發者,在不久的將來,我們就會看到智能卡應用于Internet應用程序之中。智能卡已經在日本和歐洲廣為應用,并且在美國受到了歡迎。事實上,在美國的智能卡業界最近共發生了三件頗具意義的事件:
PC/SC
Microsoft聯合其它幾家公司推出了稱為PC/SC的智能卡應用程序標準,用于Win32平臺的個人計算機與智能卡之間實現互通信。PC/SC目前不支持非Win32的系統平臺,或許Microsoft 永遠也不會那樣做。稍后我們將對此詳加討論。
OpenCard框架
OpenCard是一個開放式的標準,它支持智能卡應用程序在網絡計算機、POS、桌面和膝上計算機等平臺之上實現互操作。OpenCard許諾提供100%純Java的智能卡應用程序。通常智能卡應用程序不能完全借助于純Java,因為它們必需與外設互通信或是利用客戶之上的程序庫。(當然,沒有OpenCard,我們仍然能夠使用100%的純Java,但是,智能卡的開發者必需從頭定制一個接口。)OpenCard還提供了一個到PC/SC的接口,使得開發者得以使用現有Win32 平臺上的設備。
JavaCard
JavaCard最初由Schlumberger提出,目前已被JavaSoft制定為一項標準。Schlumberger 目前在市場上只提供Java智能卡,而且該公司是第一個獲得JavaCard許可的廠商。作為一項極有潛力占踞統治地位的智能卡標準,JavaCard包括了標準的類庫和API,使得Java小應用能夠直接運行在遵循ISO7816標準的智能卡之上。JavaCard對不同的應用程序提供安全和與芯片無關的運行環境。
注意:
盡管本文集中于智能卡主題,但更為重要的是你決不應囿于這一種設備之上。從我個 人角度將,我更為偏愛Dallas Semiconductor生產的“Ibutton”設備。它象一個小型便攜的 信用卡一樣,但是更為易用。為什么呢?因為你不再需要拿出錢包從幾張卡中選出要用的 那一張,Ibutton就在你的手中。對了,它是一枚指環。
盡管存在無接觸型的智能卡(關于這方面的信息見下文),我認為Ibutton這樣象珠寶 飾品一樣的產品一定會有利可圖。關于Ibutton詳情請見參考資料。順便說一句,八月份在 紐約的Java Internet Business Expo(JIBE)展會上,Java Commerce Team展示了“JavaRing”。
從本文開始,我們陸續刊登一系列在智能卡上進行Java開發的文章,以此把智能卡向您作一個基本的介紹。只要有一塊智能卡、一個讀卡機和一套可與智能卡通信的軟件,你就可以開始進行實用應用程序的開發了。本文介紹的內容包括:遵循ISO7816標準的智能卡管理軟件;如何使用Gemplus閱讀器和Gemplus智能卡從智能卡中讀寫內存;一些利用智能卡的存儲功能的應用程序。以后的文章將介紹不同廠家生產的智能卡,并且還將涉及智能卡的標準。
作為專題系列的第一篇,本文將主要為以后的討論作一個鋪墊工作。在此,我們將討論一個稱為OpenCard的新標準。以后的文章將涉及安全智能卡和電子錢包。最后,我們將向您介紹智能卡軟件的基本框架結構。
無論是在四月份的JavaOne大會上(與該技術有關的四次演講),還是在巨大的網絡新聞站或是CNN,智能卡掀起了軒然大波。在本文里,我們將以實用智能卡實例向您展示真正的智能卡。這里的技術將允許你開發智能卡Java應用程序。
我們的討論焦點主要集中在兩種智能卡之上:存儲智能卡,它可以被看作帶有可選安全級別的小型可讀寫磁盤;處理器卡,它可以被看作帶有一個輸入輸出端口的迷你型計算機。以后的文章將更為深入的介紹處理器卡。
本文的精華之處在于,我們將為讀寫智能卡創立一個簡單的原形。我們要討論一種醫藥處方卡,它將替你保存所有的藥方清單,并檢查保險、處方計劃等等有用的信息。并且我們將圍繞處方卡擴展開去。
在這一系列的文章之中,你會注意到伴隨智能卡的一個常見主題,那就是安全性問題。這里所說的安全,主要是防止通過卡的濫插入或ActiveX組件等手段非法獲取數據。為此目的,本文中關于讀寫智能卡中數據的范例將給你提供一個安全、一致且具可移植性的存儲。
智能卡是什么
你可以把智能卡當作一個帶有大腦的信用卡。其大腦就是一個小的嵌入式計算機芯片。這種芯片可以被編程執行某項任務或是存儲一些數據,但應時刻牢記:該種芯片只不過是小型的,它的處理能力絕對比不上你的桌面計算機。
目前,智能卡僅僅用于電話、運輸、銀行和保健等行業,但是感謝眾多的開發者,在不久的將來,我們就會看到智能卡應用于Internet應用程序之中。智能卡已經在日本和歐洲廣為應用,并且在美國受到了歡迎。事實上,在美國的智能卡業界最近共發生了三件頗具意義的事件:
PC/SC
Microsoft聯合其它幾家公司推出了稱為PC/SC的智能卡應用程序標準,用于Win32平臺的個人計算機與智能卡之間實現互通信。PC/SC目前不支持非Win32的系統平臺,或許Microsoft 永遠也不會那樣做。稍后我們將對此詳加討論。
OpenCard框架
OpenCard是一個開放式的標準,它支持智能卡應用程序在網絡計算機、POS、桌面和膝上計算機等平臺之上實現互操作。OpenCard許諾提供100%純Java的智能卡應用程序。通常智能卡應用程序不能完全借助于純Java,因為它們必需與外設互通信或是利用客戶之上的程序庫。(當然,沒有OpenCard,我們仍然能夠使用100%的純Java,但是,智能卡的開發者必需從頭定制一個接口。)OpenCard還提供了一個到PC/SC的接口,使得開發者得以使用現有Win32 平臺上的設備。
JavaCard
JavaCard最初由Schlumberger提出,目前已被JavaSoft制定為一項標準。Schlumberger 目前在市場上只提供Java智能卡,而且該公司是第一個獲得JavaCard許可的廠商。作為一項極有潛力占踞統治地位的智能卡標準,JavaCard包括了標準的類庫和API,使得Java小應用能夠直接運行在遵循ISO7816標準的智能卡之上。JavaCard對不同的應用程序提供安全和與芯片無關的運行環境。
注意:
盡管本文集中于智能卡主題,但更為重要的是你決不應囿于這一種設備之上。從我個 人角度將,我更為偏愛Dallas Semiconductor生產的“Ibutton”設備。它象一個小型便攜的 信用卡一樣,但是更為易用。為什么呢?因為你不再需要拿出錢包從幾張卡中選出要用的 那一張,Ibutton就在你的手中。對了,它是一枚指環。
盡管存在無接觸型的智能卡(關于這方面的信息見下文),我認為Ibutton這樣象珠寶 飾品一樣的產品一定會有利可圖。關于Ibutton詳情請見參考資料。順便說一句,八月份在 紐約的Java Internet Business Expo(JIBE)展會上,Java Commerce Team展示了“JavaRing”。