Palm organizers are widely used in a multi-tasking fashion. Users switch from one application to another without losing the context established in either of them. Despite its obvious usefulness there is no automatic support for this convenience in the organizer's operating system, PalmOS. Programmers must implement event callbacks that use the PalmOS database API to save and reload specific application state. In this report we describe how this burden can be eliminated.
We enhanced the Spotless JavaTM virtual machine for the Palm organizer with transparent multi-tasking support that automates persistence.
As a consequence, running Java programs can be transfered between two Palm organizers using the infra-red link. A transfered program will resume on the receiving organizer in the exact same state as it had on the sender. In addition, a HotSync operation can effectively be used to establish a checkpoint for each Java program involved.
Originally, the address range available for running programs was restricted to a few tens of KB in the dynamic RAM area. By directly addressing the much larger static RAM area our modified VM supports address ranges of several MB.
We provide an easy-to-use protocol that leverages persistent threads for automatic life cycle control of external resources (e.g. windows, forms and databases). When applied at the library level, this protocol maintains complete persistence transparency for the application programmer.
[1]
Antero Taivalsaari,et al.
The Spotless System: Implementing a Java System for the Palm Connected Organizer
,
1999
.
[2]
Takashi Suezawa,et al.
Persistent execution state of a Java virtual machine
,
2000,
JAVA '00.
[3]
Malcolm P. Atkinson,et al.
A review of the rationale and architectures of PJama - a durable, flexible, evolvable and scalable orthogonally persistent programming platform
,
2000,
SMLI TR.
[4]
Malcolm P. Atkinson,et al.
Orthogonal Persistence for the Java[tm] Platform: Specification and Rationale
,
2000
.
[5]
William M. Waite,et al.
A Compaction Procedure for Variable-Length Storage Elements
,
1967,
Comput. J..
[6]
Rafael Dueire Lins,et al.
Garbage collection: algorithms for automatic dynamic memory management
,
1996
.