Electrical computers and digital processing systems: multicomput – Distributed data processing – Client/server
Reexamination Certificate
1999-06-15
2002-08-06
Chaki, Kakali (Department: 2122)
Electrical computers and digital processing systems: multicomput
Distributed data processing
Client/server
C709S241000
Reexamination Certificate
active
06430599
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of resource-constrained small footprint devices such as handheld computers, personal data assistants (PDAs), cellular phones, etc. More particularly, the present invention comprises a lightweight framework supporting shareable services in small footprint devices.
2. Description of the Related Art
The field of “smart” small footprint devices is growing and changing rapidly. Small footprint devices include handheld computers, personal data assistants (PDAs), cellular phones, global positioning system (GPS) receivers, game consoles, and many more such devices. These devices are becoming more intelligent and interconnected. Technologies such as Jini™ from Sun Microsystems, Inc. and initiatives such as the Open Service Gateway Initiative (OSGI) are expanding the traditional concepts of computer networks to include small footprint devices.
This increased device interconnection has introduced a need for both new types of computing services and new ways to integrate computing services, both inter-device-based and intra-device-based services. A “service” is an entity implemented within or accessible from a device that can be used by a person, an application, or another service. The concept of a service is broad and can be considered at many different scales. For example, services include familiar network-based services such as shared printing, email, telephony, etc. Services also include less familiar examples such as an energy management service which may control the power consumption of devices within a local network, a diagnostic service which allows a device to send information to a service technician when an error occurs, a health-monitoring service which immediately notifies health professionals of an emergency, etc.
Services also include modules or applications located and executable within a local machine or device. For example, local application programs may utilize a calendar service, a contact list service, a bookmark service, etc. In this example, an application program may use these services together to allow a user to select a person from the contact list, record an appointment time for a meeting with the person, and create a bookmark for easy access to the appointment entry.
It is becoming more common today to execute multiple services and applications together in a single small footprint device. However, since memory, processing power, and other resources are typically very limited in small footprint devices, a specialized lightweight software framework is necessary to achieve the desired integration of services and applications. It is also desirable that the framework be flexible and extendable enough to provide support for any types of services and applications for any kind of small footprint device. A further goal may be that the framework be compatible and integrated with off-device services such as services available to devices in a Jini™ network. A lightweight, extendable containment framework for applications/services running on a small footprint device is described herein.
SUMMARY OF THE INVENTION
The present invention comprises a system and method to contain and manage program modules in a small footprint device. As used herein, a module is an executable software component. The invention comprises a containment framework for shareable modules. One embodiment of this containment framework is referred to as York 1.1. The containment framework enables module registration, lookup, instance tracking, etc. Modules in the containment framework may be used by other modules as services. The containment framework may be dynamic, allowing modules to be registered and loaded as desired or needed.
Modules may be grouped into parcels and managed as a unit. Parcels may serve several purposes. For example, much of a module's runtime context may be determined by the parcel from which it originates. Also, applications may be managed by parcel, including installation and upgrade procedures. Also, the parcel system enables the support of multiple target development (i.e., development groups may use parcels to develop for different platforms or systems simultaneously without breaking reliance on common libraries).
As described above, a containment framework for a small footprint device should be lightweight. The present containment framework is able to function on a device with very little memory. For example, in one embodiment the containment framework may function on a device with only 300 KB writeable memory and still leave enough memory space for several modules to operate. In addition, the containment framework may be responsive on devices with low processing power, such as small footprint devices with 16 MHz-class chips.
One aspect of the containment framework which aids in achieving its lightweight status is that it is a non-hierarchical framework. Hierarchical containment can be a very useful feature in a framework, providing a standard way to group modules and allow them to discover and use each other's services. However, hierarchical containment is generally expensive to achieve in terms of the resources required to implement it. The present containment framework provides many of the advantages associated with a hierarchical framework, without the usual overhead. Modules may intercept module lookup requests by other modules, thereby allowing them to customize the requesting module's environment.
The containment framework may be based on common standards. For example, in one embodiment, the containment framework may be written in pure Java™ and may be fully compliant with and executed in the PersonalJava™ 3.0 application environment. PersonalJava™ is a Java™ application environment specifically designed for consumer devices for home, office, and mobile use. It comprises the Java™ virtual machine (JVM) and a subset of the Java™ Application Programming Interface (API), including core and optional APIs and class libraries. In addition, the PersonalJava™ API includes specific features required by consumer applications in resource-limited environments. It is noted that the containment framework may also be comprised in hardware ROM or be compiled into native code.
Because the containment framework may be based on common standards, it may be ported easily to different device types and to devices made by different vendors, which greatly reduces time-to-market and development costs. The extendable architecture of the framework may also allow new modules to be introduced into the framework as needed or desired for different devices or services. The architecture may also allow for customizable and scaleable user interfaces. For example, the user interface component of an application may be swapped out as appropriate to the display type for different devices.
As described in more detail below, the containment framework maintains a list of loaded modules, as well as related system data. Modules normally access the module list or the system data only indirectly, e.g., by calling methods of a central framework instance. However, certain modules, referred to as system modules, may have the ability to access or modify the system data themselves. This type of direct data access to core data helps to keep the containment framework lightweight. Since system modules have access to the core system data, any necessary or desired extended functionality beyond the basic module management performed by the central framework instance may be introduced to a system by adding an appropriate system module. Thus, the containment framework is also highly extendable.
A system may comprise a set of core service modules available for other modules to use. These core services may include services such as the calendar, contact list, and bookmark services described in an example above. Together with such core services, the containment framework provides a complete architecture for running an integrated suite of applications and services on a small footprint device. For example, the Personal Applicati
Baker Mark
Duggan Josh
Chaki Kakali
Conley Rose & Tayon PC
Kivlin B. Noäl
Sun Microsystems Inc.
LandOfFree
Just-in-time services for small footprint devices does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Just-in-time services for small footprint devices, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Just-in-time services for small footprint devices will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2961333