The primary goal of the POM project is to facilitate development of pervasive computing systems. We
pursue this goal by defining an architecture for pervasive computing systems, integrating pervasive computing
technologies, and providing robust and efficient execution of pervasive applications.
Architecture for pervasive computing systems
At the base of the POMP architecture lies the POM virtual machine, which provides a uniform execution
environment for mobile, communicating entities referred to as systems. Multiple systems are combined
to form a single application, which allows applications to dynamically and incrementally move between
Our goal is to build a complete application framework for pervasive computing applications on top of
the POM virtual machine. We will initially design and implement a number of POM applications that are
useful in a pervasive computing environment, and then attempt to extract a framework for these applications.
As a minimum, such a framework should provide appropriate abstractions for resources (GUI, files, etc.).
Integration of pervasive computing technologies
The basic POM virtual machine provides basic services such as mobility and proxy objects. Nonetheless,
other technologies are also useful in a pervasive computing environment, and we aim to integrate any such
technology that we deem appropriate into the POM system. Later experimentation will reveal which technologies
turn out to be useful.
An example of a relevant technology is publish/subscribe. Publish/ subscribe provides decoupling of
both time and location, and is a promising technology for communicating in pervasive computing systems.
We aim to integrate publish/subscribe into the POM platform, and for example investigate the interaction
between publish/subscribe and mobility.
Efficient execution of pervasive applications
Mobile applications that communicate heavily across system boundaries and across different physical locations
provides unique implementation challenges. Just as virtual machines adaptively optimize the execution
of object-oriented programs, our goal is to enable POM to adaptively optimize the execution of pervasive
applications distributed across different physical locations. Similarly, we also aim to develop highly
aggressive program specialization techniques for pervasive applications, in the spirit of program specialization
for standard software.