C H A P T E R  1

Architecture Overview

This chapter introduces the runtime environment in the Connected Edition of the Java Card 3 Platform, including its hardware and connectivity, and describes how it achieves backward compatibility by emulating the Classic Edition’s runtime environment (RE).

The following components of the architecture are described in this chapter:


1.1 Hardware Overview

The Java Card 3 Platform, Connected Edition, is intended to run on a wide variety of smart card and secure token devices with constrained resources. The typical hardware configuration of the targeted devices is as follows:

FIGURE 1-1 depicts the connectivity layers and protocol stacks of the Java Card Platform, Connected Edition.

FIGURE 1-1 Connectivity Layers and Protocol Stacks


1.1.1 Physical Connectivity

The target devices for the Java Card Platform, Connected Edition, typically have a high-speed contacted physical interface. In addition, they may have additional I/O interfaces, including contactless physical interfaces.

The high-speed contacted interface is typically one of the following:

The contactless interface is typically an ISO 14443-compliant interface.

1.1.2 Logical Connectivity

A Java Card Platform implementation MUST provide to applications a logical network interface supporting the following network protocols:

This logical network interface MAY additionally support the following network protocol:

A Java Card Platform implementation is not required to support the TCP/IP or UDP/IP on card. Connections over HTTP, HTTPS, and TLS protocols and datagrams over the UDP protocol MAY be supported over IP, as well as non-IP protocols, by using a gateway on the terminal or hosting device. The TLS protocol MUST be supported on card.

Applications MUST NOT be required to know that a non-IP protocol is being used. Applications MUST only gain access to the logical network interface through the Generic Connection Framework (GCF) API and indirectly through the web application container, see Section 2.1, Web Application Model Overview and Chapter 3. A Java Card Platform implementation MUST recognize both IPv4 and IPv6 literal address formats, such as when passed inside URIs to the GCF API, but MAY only support such addresses according to the underlying supported protocols. See Section 2.3.3, Handling of URIs for details on the URI format that a Java Card Platform implementation MUST support.

A Java Card Platform implementation MUST provide access to the ISO 7816-4 interface to applet-based applications indirectly through the applet container, see Section 2.2, Applet-based Application Models Overview and Chapter 4.


1.2 High-level Architecture

The high-level architecture of the Java Card Platform, Connected Edition, is illustrated in FIGURE 1-2. For additional information on the new architecture in version 3.0.1, see Overview of New Features.

At the core of the Java Card Platform is the Java Card Virtual Machine (Java Card VM). The Java Card VM is implemented on top of the device’s operating system. The Java Card VM is based on a subset of the Connected Limited Device Configuration v1.1 Virtual Machine, which is itself compliant with the Java Virtual Machine Specification and Java Language Specification. The Java Card VM is described in the Virtual Machine Specification for the Java Card Platform, v3.0.1, Connected Edition.

On top of the Java Card VM are the Java Card Platform, Connected Edition libraries and Java Card Classic Edition libraries:

Not depicted on FIGURE 1-2 are libraries from standards bodies that MAY be installed on a Java Card Platform to extend its functionality. These libraries and the functionality they provide MUST be compliant with the specifications of the Java Card Platform, Connected Edition.

On top of the Java Card Platform, Connected Edition and Java Card Classic Edition libraries are the two application containers:

FIGURE 1-2 High-level Architecture



1.3 Runtime Environment for Classic Applet-based Applications

The Java Card Platform Connected Edition is backward compatible with Java Card Platform, Classic Edition, which is itself compatible with the release 2.2.2 of the Java Card Platform. The Java Card Platform, Connected Edition, MUST support running classic applet-based applications in a Java Card Platform, v2.2.2 runtime emulation environment, which enforces the Java Card RE v2.2.2 runtime requirements.

This Java Card Platform, v2.2.2 runtime emulation environment MUST guarantee the following:

Off-card compatibility tools MUST allow for Java applications programmed for the Java Card Platform, Version 2.2.2, to be deployed on both the Java Card 3 platform Connected Edition and on the Java Card 3 platform Classic Edition. These tools MUST also allow for Java applications packaged for the Java Card Platform, Version 2.2.2, to be transformed, through a process called normalization, and repackaged for deployment on both the Java Card 3 platform Connected and Classic Editions.

FIGURE 1-3 depicts the development and deployment process for classic applet-based applications that ensures for these applications the backward compatibility and interoperability with both the Java Card 3 platform Connected and Classic Editions.

FIGURE 1-3 Classic Application Development and Deployment Process for Backward Compatibility


See the Runtime Environment Specification for the Java Card Platform, v3.0.1, Classic Edition for an exhaustive list of the requirements for the classic Java Card RE.