• No se han encontrado resultados

DE LA MOVILIDAD LABORAL CAPÍTULO

CAPÍTULO II DE LAS OBLIGACIONES

DE LA MOVILIDAD LABORAL CAPÍTULO

Similar to the Aura project [56] the objective of the Gaia project [134] is to provide users of pervasive computing environments with access to services that are independent of the user's location. To achieve this the Gaia project has concentrated on managing the computational presence of mobile users ensuring that, as users move from one location to another, their associated computational sessions can be migrated with them in a transparent manner. In so doing, Gaia takes a user-centric approach to managing the interactions of users with the environment and to adapting the available resources to the needs of users in a proactive manner.

2.3.7.1 Active Spaces

To support the mobility of users in a pervasive computing environment Roman et al. [134] dene an active space as a physical space that is constrained by well-dene physical boundaries containing tangible objects, heterogeneous network devices, and users performing a range of activities that are supported by a context-aware infrastructure. The aim for Roman et al. is to enhance the ability of mobile users to interact with and congure their physical and virtual environments in a seamless manner. To achieve this they use the idea of sessions. Session associate data and applications with a user. A user's computational presence in the environment is modeled as a collection of these sessions which Roman et al. call the user's virtual space. As users move from one active space to another the sessions associated with them are migrated by Gaia to allow the user to continue their work. During the migration Gaia renegotiates the support for the sessions and maps the applications and data to the available resource in the active space.

2.3.7.2 The Gaia Operating System

The Gaia Operating System (Gaia OS) manages the resources and provides the services for an active space. The design of the Gaia OS is based on a traditional operating system but at a dierent level of abstraction. Gaia OS abstracts a physical space and the resources it contains into a single programmable entity that can be used to build active spaces. It

looks to match the services found in traditional operating systems - program execution, I/O operations, le-system manipulation, communications, and error detection - to manage the resources and provide support for user interaction and mobility within a pervasive computing environment. It is a component-based distributed operating system that operates on top of existing operating systems and is based on the K2 operating system [87]. The system, as shown in gure 2.7, consists of a component management core around which a set of core services - event manager, context service, presence service, space repository, and context le system - provide support for users and application development.

Space Repository Service Presence Service Context Service Event Manager Service

Component Management Core Application Framework

Context File System

Gaia Kernel

Active Space Applications

Figure 2.7: Gaia architecture.

The component management core is a component-based system that supports the dis- tribution, remote execution, and management of components. It is responsible for creating, destroying, and uploading components to any of the computational nodes within the active space. The component management core is implemented using CORBA. The event manager distributes events and provides a decoupled communication model for the active space. The use of such a communication provides increased system reliability and ensures a robust system capable of handling failure of components. The events are used in active spaces to notify in- terested components of new services, the entry of people, errors, and other application specic events.

The context service [130] provides Gaia with context information that can be used to adapt the behavior of applications. The service is structured in a similar fashion to Dey's Context Toolkit [44, 43] but also uses a rst-order logic and boolean algebra to frame rules and to dene queries. The component helps to abstract the low-level complexity of dealing with sensors and provides a high-level abstraction that can be used by components to query

the state of the physical environment. The approach taken by the Gaia project supports the physical integration of components into a pervasive computing environment.

The presence service is used to monitor the state of resources within the environment. It keeps track of applications, services, devices, and users entering and leaving the environment. Interested parties are notied of changes through the event service. The space repository stores information on all software and hardware entities within the active space and allows appli- cations to browse and retrieve entities. The space repository learns of new entities through notications from the presence service. On a user entering the active space the space reposi- tory retrieves the user's prole and stores it for later retrieval. The space repository acts as a service discovery mechanism for Gaia allowing applications to locate suitable resources during instantiation. Such a services aids the spontaneous interoperation of arbitrary components in the active space and also helps with adapting applications to the available resources in the environment.

The context le system [67, 68] is a context-aware le system that uses context information to simplify access to data. The le system uses the context associated with each le to construct a virtual directory hierarchy that can be queried at a later stage by applications. In the active space it is used to store personal data and to save the state of user sessions so they may be retrieved at a later stage. On a user entering an active space the context le system automatically locates the user's data and makes it accessible to the components of the active space. It is at this stage that any active sessions are mapped to the active space. The context le system also eases access to data by reorganising and retrieving the data in a format suitable to the user's preferences or device characteristics. The use of such a le system helps to adapt the content to suit the available resources in the environment.

It would also appear that Roman et al. [134, 132] draws on Kindberg et al's [86] notion of the boundary principle to scale their infrastructure. They dene the boundaries of an active space administratively. This would appear, in practice, to correspond to physical locations such as an oce, or meeting room. In each of these active spaces exists a single instance of the Gaia OS that manages the resources in this space and controls how the environment interacts with mobile users.

2.3.7.3 Developing Applications with Gaia

Developing pervasive computing environments with Gaia is centered around the application framework that is implemented on top of the Gaia OS. The application framework [69, 131] is a component architecture based on the Model-View-Controller [88] user interface paradigm. The framework allows the partitioning of applications over groups of devices that can coordinate where the input is taken from, how the state of the application is presented, and where the application processing takes place.

The application framework uses four main components: the model, presentation, con- troller, and coordinator. The model implements the application logic. It also provides meth- ods for storing and synchronising the application state, as well as providing an interface for accessing the functionality of the application. The presentation component provides a repre- sentation of the application state, for instance, by use of a graphical or audio representation, or a variation in the temperature or lighting in the environment. In any case the representation provided by the presentation component is any external eect to the physical environment that can be perceived by users. The controller alters the state of the application through mapping sensor inputs onto the model's interface. Examples of controllers may be a keyboard or a mouse but may also include changes in context. The coordinator manages the above three components. The model, presentation, and controller provide the main building blocks of application while the coordinator provides the application's meta-level functionality.

How these components are arranged to form an application is achieved independently of any particular active space through the use of generic application descriptions. The applica- tion framework uses two types of description les: application generic descriptions (AGD), and application customized descriptions (ACD). The AGD provides a generic template for an application that is independent of any active space. It describes the components required to compose the application including the name, type, and number of instances needed. The ACD is a customised description of the AGD that ts the resources of a particular active space. The ACD is dened using a high level scripting language called LuaOrb [31]. LuaOrb is based on the interpreted language called Lua [74]. The ACD is generated by the active space if one is not already available from the user. Both the ACD and AGD are stored in the

user's context le system and also provide the means of storing session information for the user.

When a user enters an active space the presence service detects the user. The presence service publishes an event to notify other components of the user's presence. The space repository receives the event and retrieves the user's prole and stores it locally. The context le system at the same stage locates the user's data and makes it accessible to the components of the active space. Other user devices can also be registered at this time. Any sessions activated by the user, or by the context requirements of the applications are then mapped to the active space. It is then possible for users to manipulate the inputs and outputs of applications to suit their needs.

The application framework provides Gaia with a exible approach to structuring appli- cations. By separating the inputs, outputs, and application logic of the application it allows Gaia to dynamically build applications to suit the available resources of an active space. It also serves as a means of adapting user sessions to any active space that a user may enter. The scripting mechanism used in the AGD and ACD also aid the rapid development of appli- cations and help the incremental growth of the active space. However, there is an assumption that the components required to make the application will be available in all the active spaces. While this may the case for a large majority of components it may not be for all. In these cases the applications are unable to restart if the key components are not available. This subsequently causes user sessions to be inaccessible.

2.3.7.4 Summary

The Gaia project [134] has developed an infrastructure that supports the creation of user- centric, resource-aware, context-sensitive mobile applications. Mobile users are able to seam- lessly interact and congure their physical and virtual environments in any of the active spaces they enter. Sessions allow data and applications to move transparently with users from one active space to another. On a user entering an active space the user's sessions are automat- ically mapped to the resources in the space. This ensures that data and applications are always available to users.