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, PCs 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
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
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