
With the coming introduction of JSR 177, the Security and Trust Services API (SATSA) for J2ME, and the widespread adoption of J2ME devices, we can expect that a variety of host applications will be written using Java technology on mobile devices. Most cell phones deployed today integrate a smart card reader to access the SIM card bundled with it.
Traditionally, reader-side applications have been written in C, but the host program can be written in the Java programming language, or any other, as long as it's prepared to exchange valid ISO-7816 APDU commands with the applet. Recall that a host and an applet interact by way of a card reader or terminal, using ISO-7816 APDU commands. It resides on a terminal or card acceptance device such as a workstation, a point of sale (POS) terminal, a cell phone, or a set-top box. The host program accesses the services provided by your applet. The host application, on the client side, handles communication among the user, the Java Card applet, and the provider's back-end application. Writing a Host Application - Accessing Your Applet Note that before accessing the applet, the host application must supply credentials and authenticate itself.
On the card are the Java Card applet, and the Java Card framework.
The card reader, card terminal, or card acceptance device, provides the physical interface between the host application and on-card applets. Off the card, residing in a card terminal, the host application accesses applets on the smart card using one of a number of interfaces for card access, such as the Java Card RMI, the OpenCard Framework API, or the Security and Trust Services API (SATSA). How the back-end application is developed is outside the scope of this article. The back-end application that provides access to back-office services such as security or electronic-payment information stored in databases. Typical Components of a Java Card ApplicationĪ Java Card application typically comprises: Keep in mind that Java Card applications are not standalone, but rather part of an end-to-end application:įigure 1. The final part of this article will cover the development aspects of host applications for smart cards. Part 2 covered the development aspects of Java Card applets: the typical steps when developing a Java Card application, Sun's Java Card Development Kit, and the Java Card and Java Card RMI APIs. Part 1 of this article covered the high-level aspects of Java Card technology - what smart cards are, the elements of a Java Card application, communication aspects, and a summary of the various Java Card technology specifications.