Object Lifetimes in Java Card

Java Card promises the ease of programming in Java to the world of smart cards. Java's memory model however is resource intensive especially for smart card hardware. Hence, adapting Java's memory model to Java Card must retain the familiar programming paradigm while enabling Java Card applications to maximize the use of limited smart card memory. To this end, the Java Card 2.1 Draft Specification* relies on an ad hoc persistent memory model that presents an unnatural programming paradigm and an inherently limited API.
In this paper, we discuss memory model choices for Java Card in the context of persistent systems. We propose the concept of a transient and persistent environment for encapsulating the transient and persistent objects in Java Card applications. While offering a simple programming model, it allows efficient sharing of the memory resources among multiple applications and enables garbage collection for Java Card.

*Sun Microsystems Inc., Java Card API 2.1 Specification,
//java.sun.com/products/javacard/JavaCard21API.pdf

By: Marcus Oestreicher and Ksheerabdhi Krishna

Published in: USENIX Workshop on Smartcard Technology (Smartcard '99). , Berkeley, Usenix Association, p.129-37 in 1998

Please obtain a copy of this paper from your local library. IBM cannot distribute this paper externally.

Questions about this service can be mailed to reports@us.ibm.com .