Research and implementation efforts are currently being invested in implementing the POM platform efficiently
and developing applications for the POM platform. As the underlying foundation evolves, issues such as
language design will become more relevant.
Virtual machines for heterogeneous devices
A virtual machine abstracts over the physical hardware to provide a uniform platform across different
architectures. A lowest common denominator approach is often taken, as is visible in each of the "Micro
Edition" versions of Java. However, in a pervasive computing system, the lowest common denominator
may sometimes be an embedded system (perhaps with an LCD display). Nevertheless, pervasive computing applications
must still be able to take advantage of e.g. a standard workstation screen. Similarly, some physical machines
may provide special kinds of operations for manipulating specific hardware. We are currently researching
ways of allowing programs that execute on the POM virtual machine to take advantage of the specific features
found on each device while remaining mobile entities that can function across different devices.
Efficient, mobile computation
As a starting point, we are developing both a Java version and a native version of the POM virtual machine.
The Java version (e.g., a POM interpreter written in Java) provides portability to any machine where Java
is available. The native version provides more efficient execution through the various implementation
strategies normally used to execute Smalltalk programs efficiently. For both virtual machines, semantic-level
optimizations such as redundant proxy elimination are being investigated.
Although distributed programs literally have been in use for decades, and contemporary distributed systems
are of ever-increasing complexity, very little effort has been paid to systematically and automatically
optimizing distributed systems. One of the primary reasons is without a doubt the complexity of statically
analyzing and precisely determining the behavior of distributed systems. We are currently researching
techniques based on automatic program specialization for pervasively optimizing distributed programs
in general and POM-based pervasive computing programs specifically.
Mobile applications that use a GUI to interact with the user face special challenges when migrating between
devices with different displays and input devices. We are currently trying to reinvent the basic GUI components
to make the GUI framework aware of the state of the current interaction with the user, capturing the activity
the user is carrying out, and let it share and transform this state between different GUI models, for
example between a standard desktop and a hand-held device.
Pervasive applications and framework
As an extension of the activity-oriented GUI, we aim to develop a complete application framework for pervasive
computing applications. The current plan is to extract a first version of the framework from three different
- Calendar: the main challenges are synchronization and mobility-aware GUI
- Collaborative text editor: the main challenge here is communication
- Chat program: the main challenges here are mobility and communication
To evaluate the framework, we plan to implement similar applications in Java and compare the complexity
of their implementation.
Legacy application support
In addition to the pervasive applications listed above, we would like to support more standard applications,
for example for text editing. Such applications are not mobile and do not have adaptable GUIs, but the
documents that they operate on can still be moved between devices and displayed using appropriate applications.
Reification of pervasive computing elements
Concepts such as physical distance, network connection quality and capacity of each physical machine are
important when implementing applications for execution in a pervasive computing environment. To facilitate
programming applications for such environments, we want to make these elements explicitly accessible at
the language level, in the form of objects that the program can manipulate. Moreover, where appropriate,
such elements may even become part of the language design.
Language design and conceptual framework for pervasive computing
When language design becomes relevant for POMP the developed language constructs may point out fundamental
features of languages for pervasive computing applications. If so we want to extend the conceptual framework
for object oriented programming to include the explanation of these essential features, thus providing
the means by which to understand the language constructs.