:: Site map:: Intranet
:: Research Areas:: Projects :: About CfPC:: News & Events:: Publications
  Pervasive Object Model Project  

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.

Pervasive optimization
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.

Activity-oriented GUI
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 applications:

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



   CfPC©, updated: 14-nov-05