:: Site map:: Intranet
:: Research Areas:: Projects :: About CfPC:: News & Events:: Publications
  Object Technology
in a Pervasive Computing Context
    Research themes  

The main research themes within object technology are:


Architecture of pervasive computing systems
Pervasive computing creates new requirements for the architecture of software seen from almost all perspectives.

Traditionally computer middleware has focused on synchronous communication mechanisms between applications based upon assumptions of high bandwidth, high reliability, and low latency, exemplified by the well-known client-server paradigm. In contrast, pervasive computing scenarios typically include small, mobile, devices where these assumptions are fundamentally not fulfilled. In a pervasive computing context, terminals may be mobile and wireless and they may temporarily be disconnected, which requires middleware for supporting synchronization of data, and asynchronous communication patterns.

Traditionally computer applications have been designed to be used by a single user at a single workstation. With pervasive computing, the same application may be accessed via a large variety of terminals from handheld devices, mobile phones, laptops, and PCs to computers with large wall screens. The user will expect to be able to access his/her applications and data from whatever device is available. This means that applications and data are no longer necessarily associated with a single computer but have to be available on several computers in the network.

Traditionally computer applications have made fundamental assumptions about the devices available for human interaction, such as mouse, keyboard, large screen, etc. With pervasive computing, any given application may take advantage of (or may be forced to be limited to) interaction mechanisms that exist in the vicinity of the user, in the full range from traditional audio/video systems, microphones, mobile phones, PC’s to wall screens.

Traditionally, a given application has made few assumptions about the context of the user. In case a context is required, the user is often forced to provide the data manually. In pervasive computing the user experience can be enhanced by taking advantage of context-awareness: Proper and relevant data can be provided to the person inferred from his or her physical location, the task that is carried out, personal preferences, and subject to security- and access considerations.

Recent developments in e.g. Web-technology have made it possible to access data at many different places and from different devices. However, there are still a number of problems to be solved regarding the use of ‘small’ versus ‘large’ devices, synchronization of data, mobility of data and (part of) applications.

Currently, applications have to be installed (more or less manually) at each computer where they are to be used. In a pervasive computing context, applications should automatically migrate to the terminal where the user may want to use it. The ‘plug-inns’ of Web-browsers is a step in the right direction, but too primitive for full scale pervasive computing. Furthermore, applications that migrate must be able to adapt their interaction style to the terminal they are used on, again from a wide variety of terminals ranging from e.g. PC with mouse, keyboard, and large screen, to mobile phones with a small screen and few buttons.

One possible thesis is that a pervasive computing architecture will have to be based on a component-based architecture where the individual components are autonomous entities in the form of active objects that may migrate in the network and be available wherever needed. Instead of monolithic applications, an application should be organized as a collection of autonomous components that cooperate in a distributed setting. Each component should serve a small and well-defined purpose. In addition to object-technology, research from agent technology may be appropriate here. Such a thesis will, however have to be verified just as we expect new thesis’ to be formulated.

Development of virtual machines for supporting pervasive computing
To ensure a high degree of portability and interoperability of computers, it is necessary to investigate general and efficient platforms for execution of applications. The current technology for virtual machines for object-oriented languages that has been developed during the last decade and made popular by Java is currently the most interesting and promising technology.

Virtual machines with a common byte code format and associated JIT/adaptive compiler has demonstrated its ability to support platform independent applications. To support pervasive computing this technology must be further developed. A pervasive computing context will include small computers (8-bit and 16-bit) as well as large general-purpose computers.

To be able to develop integrated applications for this variety of devices, it will be an advantage to be able to use a family of virtual machines for small as well as large platforms. In addition, these virtual machines must support migration of parts of applications and data.

Language support for pervasive computing
Pervasive computing systems will be distributed and include mobile units. Traditional object-oriented concepts originating from Simula have no concepts for supporting distributed systems – they lack a proper notion of time and location. Research in object-oriented concepts and languages for supporting mobile and distributed objects are considered essential for pervasive computing. This research will draw upon work on (mobile) agents. Part of this work will be to investigate to what extent mobile agents differ from the work of distributed and concurrent objects involving active objects.

Tools for development of pervasive computing systems
Development of pervasive computing systems requires new tools, most notably in the form of debuggers and monitors. A pervasive computing system may consist of a number of autonomous computing devices interconnected in networks. It is well known that debugging of distributed applications is a difficult task. Debugging of pervasive computing applications will be even more difficult. A major reason for this is that a number of small and wireless devices may be involved. Some pervasive computing systems may also require constant monitoring.


Related projects
Objects in appliances
Distributed Objects in Embedded Systems
Pervasive Object Model Project
Object oriented language interoperability
Integrating the BETA language with Eclipse
   CfPC©, updated: 14-nov-05