The IP.com Prior Art Database
Motorola, Inc. 08/20/2002
English (United States)
5 pages / 53.0 KB
Implementation of a Java Application Manager using a split architecture
Paul Su, Matt Long, Iris Plaxton, Paul Kline, Jim Lynch, and Amy Sootsman
Implementing the Java Application Manager (JAM) using a split architecture increases portability, performance, and allows for extension into areas such as implementation of the system GUI. This paper covers our implementation of the JAM and the areas where our split architecture allowed us to improve its functionality and performance. It also covers techniques for coping with the limited memory constraints of a J2ME device when attempting to install an application using the Java Application Installer and De-installer (JAID).
The specifications for MIDP 1.0a states that a JAM or Java Application Manager must be implemented for installation, management, and de-installation of a Java 2 Micro Edition (J2ME) MIDlet. However, it does not specify the exact methods used to implement the JAM. By using a combination of Java and native code to handle event communication between the kJava virtual machine (KVM) and the underlying system software, both the efficiency and portability of the JAM are increased.
JAID is a tool to install, maintain, and remove MIDP applications. Using JAID with J2ME on a device with limited memory requires careful allocation of system resources since both JAID and the KVM require relatively large amounts of memory.
JAM is responsible for management of MIDlets on a MIDP device. Management of MIDlet includes, but is not limited to, installing, uninstalling, invoking, suspending, stopping, and restricting access. JAM and a MIDlet communicate state changes through a standard API defined in the MIDP specification. Beyond the API for application state communication, the MIDP defines no standard for the JAM. A MIDP compliant embedded device therefore requires development and integration of the JAM with the existing system software.
JAID provides the ability to install and remove applications in a space-efficient manner. However, JAID requires a relatively large chunk of memory while it is first processing a set of class files on the device. Since MIDP devices are by nature limited in the amount of available memory, techniques must be employed to conserve and re-use the available resources.
A virtual machine provider would have a much more appealing offering if it provided a complete JAM solution. Most of the JAM components are the same across ports so it’s a waste of time to develop a completely new implementation for each product. The most portable solution would be to implement the JAM in Java with just a thin underlying native layer. However, this solution would not be very efficient on such limited devices. Portability is key but shouldn’t come at the expense of efficiency.
JAM can be implemented using a split-architecture application manager to allow for ...