• No results found

2.3 Pervasive Computing Projects and Initiatives

2.3.8 Portolano One.World

The aim of the One.World project [60, 61, 62] is to develop applications that can continually adapt to a changing computing environment while still supporting the activities of users as they move through the physical world or switch devices. To achieve this the One.World project has focus on developing a system with services that ease the development of applications in managing the constant changes in the environment. In taking this approach One.World seeks to expose applications to change so they may implement their strategies to handling the transition.

2.3.8.1 The One.World Approach

Grimm et al. [60, 61, 62] identied that a key challenge in building pervasive computing applications is the highly dynamic nature of the environments in which they operate. They observed that for applications to function properly within such environments they must be able to continuously adapt to the movement of users and the changes in the environment. To accomplish this they dened three requirements that should be satised. In the rst re- quirement, they advocate that as users move through the physical environment the execution context of their applications changes all the time. To avoid users having to manually congure applications they believe it is necessary to expose applications to contextual change to allow them implement their own strategies for managing the transitions. The second requirement denes the necessity to allow the dynamic composition of components to the point where they can just plug together without the intersession of users. Grimm et al. believe that this is necessary to avoid the impracticability of asking users to manually perform the composi- tion. Lastly, to support collaboration of users it is necessary to make easy to access saved information and to be able to share information between components.

2.3.8.2 The One.World Architecture

The One.World architecture is shown in gure 2.8. Grimm et al. uses the four foundation services in the One.World architecture to directly address the requirements of change, dynamic composition, and the pervasive sharing of data. The system services, which are based on the

Asynchronous

Events Environments Tuples Virtual Machine

Checkpointing Remote Events Query Engine Migration Discovery Tuple Storage Application Application

...

Application

Libraries System Utilities

Change Composition Sharing

Foundation Services System Services User Space

Figure 2.8: One.World architecture.

foundation services, provide additional services. These act as the main building blocks for applications in the One.World architecture. Grimm et al. organise the One.World architecture using a user/kernel split with the libraries, system utilities, and applications running in user space while the foundations services and system services are in the kernel.

The virtual machine, which in this case is a Java virtual machine, is used to provide a common execution platform to ensure that, at the lowest level, applications and devices are composable. Tuples are used to dene a common data model for sharing information among applications. Tuples in the One.World architecture are records with named elds and are self-describing in that applications can dynamically determine the elds and their types. In using a common data model Grimm et al. not only eases the sharing of information but also encourages interoperability between arbitrary components. All communication between components in the One.World architecture, whether local or remote, is achieved through the use of asynchronous events. The exchange of events is achieved through the import or export of event handlers by components. The approach exposes applications to changes in the environment allowing them to adapt their behavior accordingly. The mechanism also helps to maintain loose coupling between applications and to increase system reliability by providing a system capable of handling component failure in a robust manner.

Environments are the main mechanism used to structure and compose applications within the One.World architecture. They act as containers that serve to store tuples, application

components, and other environments. The environments form a hierarchy with a single root on each device. Applications are required to have at least one environment to store applica- tion state though may contain several nested environments. All outer environments in the One.World architecture have total control of the environments they contain and are able to interpose on their interactions with the kernel and the outside world. The mechanism al- lows applications to be dynamically composed through the nesting of one environment within another. It also makes it possible to adapt and change the behavior of applications to suit dierent situations. The functionality of applications can also be extended in an incremental fashion using this mechanism. For example, the provision of additional security mechanisms, or a replication service.

System services build upon the foundation services to provide additional functionality for meeting specic application needs. For instance, the query engine allows applications to search tuples using lters. The structured I/O service lets applications access stored tuples in environments. The operations - put, read, query, listen, and delete - used in the structured I/O service are atomic and can also be grouped into transactions to provide one atomic unit. To use structure I/O applications bind to the environment's tuple storage and then perform operations on the bound resource. If the tuple storage is remote it instead binds to the network endpoint for the environment's tuple storage. In either case the bindings are controlled using leases [59]. The approach limits the time applications have access to environment's tuple storage while also allowing the One.World system to detect failure and to recover from it. Together, the query engine and the structured I/O service to simplify the access to data for applications.

Asynchronous events form the basis of communication in the One.World architecture. The distribution of these events across the network is done using the remote event passing service. To use the service components need to export event handlers under symbolic descriptors to the system. Interested parties, using the discovery service, can then locate and disseminate events to these components. The discovery service provides One.World applications with a number of options. For instance, it is possible to determine the binding time. This allows applications to determine when discovery is performed; early binding allows applications to rst nd

the resource and bind to it before sending a number of events, while late binding combines the discovery and event routing in one operation. The second option allows applications to disseminate events to a single matching resource, or multicast the event to all matching resources. In designing these facilities the goal of the One.World architecture has been to provide a exible approach that could support a rich set of communication patterns. However, while this is achieved, there are a number of concerns with how the system scales. Currently, the discovery service is centralised, in that, one device is elected by the One.World devices to act as the discovery service for the network segment. There does not appear to be any bounds limiting the size of the pervasive computing environment that it serves and it potentially, as [62] indicates, will not be able to service requests in an acceptable time.

The checkpointing service is used to capture the execution state of an environment tree. It is stored as a tuple where it can be retrieved at a later stage by the One.World archi- tecture and restored so that it can then resume normal execution. The migration service gives One.World the ability to move or copy an environment from one device to another. Together, the checkpointing and migration services help to provide application persistency and a method for recovering from major failures such as a device's batteries running out. The migration service also allows components to migrate with users as they move through the physical environment.

However, while the data-centric abstractions provided by the One.World architecture help construct pervasive computing environments there appears to be no high-level abstractions for sensors or actuators that can be used by applications to tailor their behavior and integrate into the physical environment. This has the aect of hindering the physical integration of applications and devices into the environment. It should also be noted that the One.World architecture does not explicitly provide security mechanisms for controlling access to environ- ment's tuple storage or determining the propagation of the events.

2.3.8.3 Building Applications with One.World

Developing pervasive computing applications with One.World is centered on around the pro- grammatic structure of the environment. Applications in One.World are required to have at

least one environment to store application state but may span several nested environments if required. The environment are used to store tuples, other application components, and to receive and send events. Access to threads, network sockets, and les are restricted and applications are required to only use the abstractions provide by the One.World architecture. The execution of applications is event-driven. Graphical user interfaces can be developed with Java's Swing toolkit which are able to run on top of One.World. However, as Grimm et al. note [61, 62] there are some limitations to developing pervasive computing applications with One.World. For instance, an application requires a class to access a tuple. This is a problem when environments are migrated to devices where the class cannot be retrieved resulting in the tuple being inaccessible to the application. Also, the use of Java's Swing toolkit for graphical user interface posed problems for Grimm et al. when migrating applications to devices with dierent screen characteristics.

2.3.8.4 Summary

One.World have developed an approach that focues on adapting applications to meeting the demands of users in highly dynamic environments. To manage and support applications Grimm et al. has developed the One.World architecture. In it environments are used as the main mechanism for structuring and composing applications while tuples form the basis of communication and data storage between the environments.

Related documents