第 1部分 緒論
1.2.智慧卡應用開發中的挑戰
開發一個智慧卡應用傳統上是一個長期而困難的過程。儘管卡片在尺寸、外形,和通訊協定方面
被標準化了,但是它們的內部工作從一個製造商到另一個製造商是大不相同的。大多數智慧卡開發工
具是由智慧卡製造商利用普通的組合語言工具和從晶片商那裡獲得的專用硬體模擬器來建立的。對於
第三方來說,要獨立開發應用並將其賣給發卡商簡直是不可能的。因此,開發智慧卡應用只限於高技
能且專業化的程式員群體,他們具有較深的專門的智慧卡硬體和軟體知識。
因為在智慧卡業界還沒有標準的進階應用程式介面,應用開發人員需要處理很低級的通訊協定、儲存管
理,和其它由專門的智慧卡硬體所要求的瑣碎問題。當今流行中的大多數智慧卡應用都是從頭開發的
定製應用,這是一個很費時間的過程;通常要把一個產品推向市場得化一兩年的時間。要把軟體升級
或把應用移植到不同的平台上就特別困難,甚至不可能。
進而,因為所開發的智慧卡應用只能在專用平台上運行,所以來自於不同服務提供者的應用不能
在一張卡片上並存和運行。缺乏互通性和有限的卡片功能防礙了智慧卡應用的更加廣泛的推廣。
1.3.把 Java 用於智慧卡
Java CardTM
技術提供了一種克服智慧卡被廣泛接受的障礙的途徑。它允許智慧卡和其它儲存能
力有限的裝置運行用Java程式設計語言編寫的應用(稱為applets) 。實際上,Java卡技術定義了一個安全
的、可移植的,和多應用智慧卡平台,該平台採納了許多 Java 語言的主要優點。
1.3.1.Java 卡技術的好處
智慧卡應用開發人員可從 Java 卡技術獲得如下好處。
應用開發容易 - Java語言把智慧卡編程帶入軟體開發的主流,使開發人員免於曆經微處理器編程
的困境,例如以 6805 或 8951 組合語言編程。智慧卡開發人員還能從由諸如 Borland、 IBM、 Microsoft、
Sun,和 Symantec 等廠商提供的許多現成的整合 Java 開發環境獲益。另外,Java 卡技術提供了一
個開放的平台,它定義了標準的應用編程介面和運行時環境。該平台封裝了底層的複雜性和智慧卡系
統的細節。Applet 開發人員與進階編程介面打交道。他們可將其主要精力集中於應用的細節和支援擴充
與已由他人建立起來的庫。
安全性-在和智慧卡打交道時,安全性總是至高無上的關注。Java 的固有的安全性也適合智慧卡
環境。例如,對所有方法和變數的存取層級是被嚴格控制的,並且沒有辦法偽造指標使惡意編程得逞,
以窺視內部儲存空間中的內容。這種方法使系統能夠抵禦敵意應用破壞系統其它部分的企圖。
硬體獨立性-Java 卡技術是獨立於所採用的硬體類型的。它可在任何智慧卡處理器(8 位、16
位,或 32 位)上運行。Java 卡 applets 是在 Java 卡平台頂層編寫的並從而是與智慧卡硬體無關的。
已經可用的(Ready-to-use)applets不用重新編譯就可被裝入任何智慧卡之中。
儲存與管理多應用的能力-一張智慧卡能夠接納多個 applets,例如來自於不同服務提供者的電
子錢包、認證、會員優惠,或醫保程式。由於 Java 卡防火牆機制,這些 applets 不能相互訪問,除非
明確地允許這樣作。卡片一旦發行,它的用途並未固定。還能夠把更多的 applets 下載到卡片中。一
種 Java 智慧卡的功能可以不斷地用新的或修改的 applets 來升級,而無需發行新的或不同的卡。
1.2.智慧卡應用開發中的挑戰
開發一個智慧卡應用傳統上是一個長期而困難的過程。儘管卡片在尺寸、外形,和通訊協定方面
被標準化了,但是它們的內部工作從一個製造商到另一個製造商是大不相同的。大多數智慧卡開發工
具是由智慧卡製造商利用普通的組合語言工具和從晶片商那裡獲得的專用硬體模擬器來建立的。對於
第三方來說,要獨立開發應用並將其賣給發卡商簡直是不可能的。因此,開發智慧卡應用只限於高技
能且專業化的程式員群體,他們具有較深的專門的智慧卡硬體和軟體知識。
因為在智慧卡業界還沒有標準的進階應用程式介面,應用開發人員需要處理很低級的通訊協定、儲存管
理,和其它由專門的智慧卡硬體所要求的瑣碎問題。當今流行中的大多數智慧卡應用都是從頭開發的
定製應用,這是一個很費時間的過程;通常要把一個產品推向市場得化一兩年的時間。要把軟體升級
或把應用移植到不同的平台上就特別困難,甚至不可能。
進而,因為所開發的智慧卡應用只能在專用平台上運行,所以來自於不同服務提供者的應用不能
在一張卡片上並存和運行。缺乏互通性和有限的卡片功能防礙了智慧卡應用的更加廣泛的推廣。
1.3.把 Java 用於智慧卡
Java CardTM
技術提供了一種克服智慧卡被廣泛接受的障礙的途徑。它允許智慧卡和其它儲存能
力有限的裝置運行用Java程式設計語言編寫的應用(稱為applets) 。實際上,Java卡技術定義了一個安全
的、可移植的,和多應用智慧卡平台,該平台採納了許多 Java 語言的主要優點。
1.3.1.Java 卡技術的好處
智慧卡應用開發人員可從 Java 卡技術獲得如下好處。
應用開發容易 - Java語言把智慧卡編程帶入軟體開發的主流,使開發人員免於曆經微處理器編程
的困境,例如以 6805 或 8951 組合語言編程。智慧卡開發人員還能從由諸如 Borland、 IBM、 Microsoft、
Sun,和 Symantec 等廠商提供的許多現成的整合 Java 開發環境獲益。另外,Java 卡技術提供了一
個開放的平台,它定義了標準的應用編程介面和運行時環境。該平台封裝了底層的複雜性和智慧卡系
統的細節。Applet 開發人員與進階編程介面打交道。他們可將其主要精力集中於應用的細節和支援擴充
與已由他人建立起來的庫。
安全性-在和智慧卡打交道時,安全性總是至高無上的關注。Java 的固有的安全性也適合智慧卡
環境。例如,對所有方法和變數的存取層級是被嚴格控制的,並且沒有辦法偽造指標使惡意編程得逞,
以窺視內部儲存空間中的內容。這種方法使系統能夠抵禦敵意應用破壞系統其它部分的企圖。
硬體獨立性-Java 卡技術是獨立於所採用的硬體類型的。它可在任何智慧卡處理器(8 位、16
位,或 32 位)上運行。Java 卡 applets 是在 Java 卡平台頂層編寫的並從而是與智慧卡硬體無關的。
已經可用的(Ready-to-use)applets不用重新編譯就可被裝入任何智慧卡之中。
儲存與管理多應用的能力-一張智慧卡能夠接納多個 applets,例如來自於不同服務提供者的電
子錢包、認證、會員優惠,或醫保程式。由於 Java 卡防火牆機制,這些 applets 不能相互訪問,除非
明確地允許這樣作。卡片一旦發行,它的用途並未固定。還能夠把更多的 applets 下載到卡片中。一
種 Java 智慧卡的功能可以不斷地用新的或修改的 applets 來升級,而無需發行新的或不同的卡。
這本書說的很淺,如果你是開發人員,建議你直接到sun的網站上去下載jcvm/jcre的文檔和jcdk的手冊來看,那個要細緻的多。
http://www.oracle.com/technetwork/java/javame/javacard/download/devkit/index.html