Object lifetimes in Java card
Abstract
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 easy programming paradigm while enabling Java Card applications to maximize the use of smart card memory. To this end, the Java Card 2.1 Specification [3] advocates an ad hoc persistent memory model that foists 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.