C H A P T E R  1

Introduction

The Java Card 3 Platform consists of two editions, the Classic Edition and the Connected Edition.

This document and this development kit applies only to the Classic Edition. References to components, such as the Java Card runtime environment (RE), refer to the component as it exists in the Classic Edition.

You can, however, develop classic applets using the Connected Edition development kit, then bring the classic applets back to this Classic Edition development kit to double check that you have a strictly classic applet. The Connected Edition, when used in conjunction with the NetBeans IDE delivers very useful tools to simplify development and debugging and is highly recommended as your main development environment. Chapter 2 describes the development process in more detail.

The Java Card development kit ships in binary-only bundles or bundles with both binary and source versions of the kit. In addition, cryptography extensions are available in some bundles. All sections in this document pertain to all these types of bundles, except where noted. For the contents in the bundles, see Contents of All Releases. For more information on cryptography, see Chapter 13.


Java Card 3 Platform Architecture

Any implementation of a Java Card runtime environment (Java Card RE) contains a virtual machine (VM) for the Java Card platform (Java Card virtual machine), the Java Card Application Programming Interface (API) classes, and support services.

The Classic Edition architecture illustrated in FIGURE 1-1 is built on the classic Java Card VM, which is the same as the VM from previous releases of the Java Card development kit including version 2.2.2, 2.2.1, and so forth. Likewise, the classic APIs are very similar to the APIs from previous releases.

FIGURE 1-1 Classic Edition Architecture


This figure has already been described in text.

In contrast, the Connected Edition is built on a very different Java Card VM, unlike the Classic Edition VM. The high-level architecture of the Connected Edition is illustrated in FIGURE 1-2. Notice the classic APIs in a Connected Edition are built on smart cards that implement a view of the strictly classic Java Card VM, which supports only classic applet applications. This is why it is possible to use the Connected Edition development kit to develop classic applet applications.

However, the Connected Edition Java Card VM also supports extended applets and servlets. For more information on the Connected Edition, you must download a Connected Edition development kit separately, then see Development Kit User’s Guide, Java Card Platform, Version 3.0.1, Connected Edition.

FIGURE 1-2 Architecture of Connected Edition


This figure has already been described in text.

This classic development kit ships with a default Java Card RE that simulates a Java Card 3 Platform, Classic Edition as it would be implemented onto a smart card. The default Java Card RE is the reference implementation (RI), and is invoked on the command line with cref.bat. The RI implements the ISO 7816-4:2005 specification, including support for up to twenty logical channels, as well as the extended APDU extensions as defined in ISO 7816-3. For more information on the RI, see Chapter 9.

The RI was designed to simulate a dual T=1 contacted and T=CL contactless concurrent interface implementation of the Java Card runtime environment, with the capability to operate on both interfaces simultaneously. The development kit source code can be built and configured to support all the ISO 7816-3 and ISO 14443-4 smart card protocols, including T=0 single interface, T=1 single interface, T=CL single contactless interface and T=1/T=CL dual concurrent interface.


Java Card TCK

The Java Card Technology Compatibility Kit (Java Card TCK) is a portable, configurable automated test suite for verifying the compliance of your implementation with the applicable Java Card specification. To be in compliance, an implementation of the Java Card 3 platform, Classic Edition specification must pass the Java Card TCK 3.0.2 tests as described in Java Card Technology Compatibility Kit, Version 3.0.2, Classic Edition User’s Guide.