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 Java 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.