Ubiquitous and pervasive computing [Wei93] are the vogue terms of the early twenty first century. This sort of techniques stand for massive use of embedded systems, that should act as smart as possible to fulfil specific tasks for the users [Wei91]. Environments that are stuffed with digital equipment would not attract any user, except it is possible to invisibly integrate all the digital technologies into the users natural environment [Wa02]. A short historic overview about digital technology development explains the motivation to move forward to pervasive computing systems and environments. Digital technology has changed very much in the last decades. At the beginning of the digital age mainframe computing was the state of the art. After the hardware prizes decreased dramatically computer scientists were able to buy computers for their own: the personal computing area began. At this time the relation changed from many users sharing one digital device to one user per digital device. As the size of the personal computers decreased, the mobile computing area started. In the current decade, a user owns a collection of different digital devices, which are specialized for certain tasks. A mobile phone is used to communicate globally while an organizer is used to store contacts or meeting information and to take small notes. Additionally, a user often owns a desktop computer for tasks that require more processor power or hardware support (e.g. a printer or a scanner) as well as a laptop device for mobile work. To support mobility in combination with global availability radio based wireless network technology emerged. Laptops, PDAs, mobile phones and a multitude of specialized mobile devices replaced the typical workstation computer. If we summarize the development we can observe that the digital devices became more and more personalized to solve problems for the user. At the beginning many users shared a common mainframe with probably different personal configuration profiles. Now, every person owns a specific set of digital tools that are exactly personalized for the user. The next step ahead will improve the personalisation of the user’s digital environment to act some sort of smart according to the user’s demands. Some people are even speaking about environments where thousands of smart dust devices work together to achieve a common task [Wa00]. On the other side, it seems to be hard to enable traditional applications to run in such insecure, dynamic and short living network environments. One of the major problems is to define an abstract application layer on top of these dynamic network environments. It is impossible for a programmer to design a static application that is able to react on every situation that may occur within an environment. It is getting even worse when the application is supposed to travel through unknown environments. Another important aspect of smart environments is targeting the human computer interaction (HCI). At the moment, a user, who is using a mobile device, is very much limited according to his input and output possibilities. Every digital device tries to offer as much input and output interfaces as possible. As the number of embedded devices increase the need for input and output device sharing grows. The user’s attention is a limited resource that does not scale in proportion to the number of devices. The massive use of digital technology should not set the user under physiological pressure [Ar99]. As a matter of fact, the technology has to disappear in our environments and has to react implicitly to the user’s personal demands. Pervasive and ubiquitous computing try to solve some of these problems. This work focuses on context-aware computing [Sch94] in combination with ad-hoc wireless networks, which should be understood as a logical consequence of pervasive environments. In order to act implicitly on existing problems it is necessary to obtain some background information about involved entities. It is necessary to identify relevant entities and their properties as well as the services they provide for solving a given problem. The identification process is not necessarily bound to a global network access, as modern wireless technologies provide communication between single peers. This communication method, called ad-hoc communication, enables the creation of locally relevant networks that are not necessarily a part of a global network. One example for such a sort of networks is a personal area network (PAN), where all personal digital devices build a local ad-hoc network. This thesis mainly focuses on the dynamic delivery of context information in wireless ad-hoc network environments and proposes new methods for modelling context-sensitive interaction scenarios. A developer or a user, in this work also called scenario designer, should be able to easily create context-aware scenarios, where a group of digital devices cooperate to solve a given problem. A software middleware should provide an abstract representation of digital and non-digital devices, as well as sensor and actuator abstractions. A scenario designer is able to combine these abstractions to create new context-aware applications.
The purpose of this work is to investigate the implementation of a software middleware that supports the delivery of context information and therefore the modelling of context-sensitive applications and scenarios. The delivery of context information has to work in traditional networks with centralized organisation, as well as in unmanaged ad-hoc networks. In order to handle the two basic problems of pervasive environments [He01] the context framework has to solve the following basic requirements:
- The integration of new hardware sensors and actuators, which are necessary to gather context information, has to be simple. Furthermore, the reuse, extension and combination of already existing sensors and actuators has to be supported to enable the convenient and rapid development of context-aware applications.
- The delivery of context information should be completely event-based.
- The dynamic exchange of context information between different entities should be possible and changeable at runtime. In order to provide more flexibility in the interaction of entities, an ECA (Event Condition Action) rule interpreter should be able to intercept context events and react on defined conditions.
- The identification of appearing entities inside local environments should be as flexible as possible. Such entities should not be classified by a central hierarchical class model, but by identifying certain roles in which they act at the moment of classification. By adding or removing properties of an entity it should be possible to change the entity’s role at runtime.
- Most of the time, ad-hoc networks are heterogeneous sets of devices with many different physical communication mechanisms and protocols. To enable a broad spectrum of communication possibilities it is necessary to implement flexible and plugeable transport protocol modules. These transport modules should be able to coexist and it should be possible to integrate new transport modules. To support different encodings for different platforms it is necessary to specify an encoding module for every transport module.
- To enable the use of context information on different platforms and different software environments a context scenario should be configurable in a platform and programming language independent format.
- Standard applications such as chat and network conferencing clients, workflow management systems, entertainment environments, or even health and security systems can benefit from context information gathering. Since modern applications usually do not maintain context information the context middleware has to provide a common platform-independent interface to make this information accessible for many different applications. The requirement is to provide a WSDL description for enabling access to context information through SOAP-encoded messages sent over a HTTP transport module.
- Context information processing on mobile devices is limited in terms of processing power and storage. Furthermore, it is nearly impossible to develop an application directly on the mobile device. The development process has to be performed on a device with richer input and output possibilities and then the application has to be sent remotely to the mobile device. To cope with such limitations the context framework has to perform all tasks, which are running on the mobile device, without the use of heavy-weight libraries and performance-critical operations.
Contribution of this Thesis
The contribution of this thesis is the implementation of a new software framework architecture which manages the context information life cycle. This new architecture hides the complexity of gathering, processing and transporting of context information for context-aware applications and services. The architecture is designed to be open for any new module implementations concerning the transport protocol, the event encoding, and the lookup and discovery mechanism. The framework architecture allows users to plug in or change these modules at runtime. The architecture is designed to operate in ad-hoc networks as well as in traditional networks. The exchange of context information is therefore realized through a peer-to-peer mechanism which allows the direct communication of two devices without any central infrastructure such as a central server. Another major contribution of this thesis is the use of interpreted ECA (Event Condition Action) rules to realize state transitions of entities. These rules allow programmers to define arbitrary entity interaction scenarios. Since ECA rules are interpreted, a scenario designer is able to deploy and to change the rule repository at runtime. Changing the rule repository means that the behavior of a scenario changes at runtime. It is even possible to change the rule base as a side effect of a state transition. The third contribution of this thesis is the use of a role-based classification mechanism to identify entities that appear in an environment. This classification mechanism allows context- sensitive applications to define new roles and to use them to specify new ECA rules. The role-based classification mechanism was specifically designed to work in highly distributed ad-hoc environments where a hierarchy-based classification mechanism would face significant consistency problems. Furthermore, this thesis shows that the integration of web service standards into classic context awareness software frameworks has significant advantages.
Chapter 1 introduces the area of context-aware computing as well as the challenges, goals and requirements of our research. In Chapter 2 the terms context, context awareness, smart environments, ubiquitous and pervasive computing are introduced and discussed in detail. This chapter also explains how context information is gathered and transformed to fit into a specific context model. The second part of Chapter 2 introduces basic technologies, that are relevant for our research, e.g. wireless communication, wireless object identification, ad-hoc networks, P2P communication and Sun’s Jini technology. In Chapter 3 the state of the art in context-aware computing is presented. Four different research projects are reviewed in detail: Xerox PARC’s PARCTAB project, GATech’s Context Toolkit, AT&T’s Sentient Computing project and HP’s CoolTown project. Chapter 4 gives a detailed view on our SiLiCon framework, its architecture and its implementation. This chapter described the main parts of our research. Chapter 5 compares the SiLiCon framework with the research projects that were already introduced in Chapter 3, according to some interesting aspects. In Chapter 6 a collection of context-aware demonstration scenarios are presented and it is shown how a scenario designer is able to configure a new context scenario. Chapter 7 contains concluding remarks as well as some hints how future innovations in the area of context-aware computing could look like.