Dynamic Reconfiguration Support for Pervasive Computing Dongman Lee Collaborative Distributed Systems & Networks Lab. Information and Communications Univ. Contents Overview Key Requirements Case Study Technical Challenges Paradigm Shift Technology is moving from personal computers to handheld, intelligent, and everyday devices with embedded technology and connectivity From Pervasive Computing: Vision and Challenges by Satyanarayanan, M. Ubiquitous Computing Vision The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it – Mark Weiser – Computation is freely available everywhere – IBM – People, places, and things are first class citizens of the connected world, where e-services meet the physical world, where humans are mobile, devices and services are federated and context-aware – HP – Brings computing away from the desktop and into the world, where people live and work – Microsoft – Provides each user with an invisible halo of computing and information services that persists regardless of location – CMU – By extending the reach of traditional computing systems to encompass the devices and physical space surrounding the machines, entities, both physical and virtual, may be allowed to seamlessly interact – UIUC Key Characteristics of Ubiquitous Computing Human-centered – Distraction-free – Minimal administration – Context-aware Invisibility – Ideal – complete disappearance of pervasive computing technology from a user’s consciousness – Practical – reasonable approximation to this ideal – minimal user distraction – Not only hardware but also software • Hardware aspect (physically invisible) – Tangible interfaces, smart appliances, etc. • Software aspect (logically invisible) – Not intrude to users, self-configure, self-adaptive system Key Features of Ubicomp Middleware To Support “Pervasiveness”, the system should provide the followings: – – – – Sense environment changes Provide mechanisms to gather the sensed information Sensed should be converted to context information Decision should be made by itself to provide efficient services to users without intrusion to the user – Service discovery mechanism to discover currently available service based on current context – New services or devices should be dynamically plugged into system without interventions of users – The changed information should be distributed to other entities in the environment Environment Sensing Context Management Service Discovery Dynamic Reconfiguration Support Why Dynamic Reconfiguration? Motivation – Heterogeneity • Ubiquitous computing environment contain a collection of heterogeneous devices (resources) • Different environments have different number of resources – Dynamics • Not only devices but also users dynamically enter and leave an environment – Multi-users • Group of users share an environment Dynamic Reconfiguration Support – Polymorphic and Transparent Application Transformation with minimal administration • Applications are dynamically and automatically adapted to current context – Efficient use of resources – system aspect – User context (preference) – user aspect Key Considerations Adaptability – Dynamic and heterogeneous nature of a ubiquitous computing environment • Applications are dynamically and automatically adapted to current context with minimal intrusions to users Flexibility – Different environments have different devices and services • We may not assume that exactly same service (or devices) are available in environments Transparency – Allow applications to spontaneously reconfigure with new services or established services regardless of context changes Aura - Overview Aura Objectives – Intended for pervasive computing environments involving wireless communication, wearable or handheld computers, and smart spaces. – Aims to provide User distraction-free computing environment • Moving workspace Challenges – Human attention is an especially scarce resource in pervasive environment • Minimize distraction or intrusion of system – Variable bandwidth connectivity, short battery life, and client resource constraints in mobile communication Two Broad Concepts in Aura – Proactivity • A system layer’s ability to anticipate requests from a higher layer – Self-tuning • Layers adapt by observing the demands made on them and adjusting their performance and resource usage characteristics Aura - Architecture Aura Components – Odyssey • Resource monitoring and application-aware adaptation – Coda • Support for nomadic, disconnectable, and bandwidthadaptive file access Prism Task Support, user intent, high-level proactivity Application Application Application Other Aura runtime support – Spectra • Adaptive remote execution mechanism that uses context to decide how to best execute the remote call – Prism • Responsible for capturing and managing user intent • Layered above application and provides high-level support for proactivity and self-tuning Coda Nomadic file access Application Spectra Remote Execution Odyssey Resource Monitoring, Adaptation Linux Kernel Intelligent Networking Aura System Architecture Aura - Adaptation Coarse-grained Adaptation (Application Re-composition or reconfiguration) – Ongoing work (does not provide yet) Focus on Inter-environment Task Migration – Describe Current Task – Leverage Aura File Space (Extended Coda) to store task description – Restore current task using task description Bird eye view of Aura Adaptation Description of Video Playing Service Gaia - Overview Gaia Objectives – People-Centric Pervasive Environment • Mobile users in pervasive computing environment • Many resources, devices per user – Resource management and infrastructure for pervasive computing – Context sensitive adaptation of applications, services, and resources Challenges – Software infrastructure with which to develop applications for ubiquitous computing habitats or living spaces • Unified infrastructure for Active Space – Active Space • A physical space coordinated by a responsive context-based software infrastructure that enhances mobile users’ ability to interact with and configure their physical and digital environments seamlessly Gaia - Architecture Gaia System Software – Gaia Kernel • Component Management Core – Dynamically loads, unloads, transfers, creates, and destroys all Gaia Components • Event Manager – Supports creation of named event channels and distribution of load • Context Service – Provides a taxonomy and uniform representation of– context types • Context File System – Make personal data automatically available to applications, conditioned on user presence • Component Repository – Provides persistent storage of components • Presence Service – Detects the presence of digital and physical entities • Space Repository – Centralized repository containing information about active entities Gaia Architecture Application Framework • Model – Presentation – Controller – Coordinator Application Framework • Model – Implements the application logic • Presentation – Exports the application data • Controller – Maps input sensor events into method requests for the model • Coordinator – Manages the first four components Gaia - Adaptation Manual Adaptation – Provide GUI to select appropriate presentations and controllers Automatic Adaptation – Use policies to drive application adaptation automatically – Generate ACD from AGD with predefined policies GUI for Manual Adaptation An Example of Group-aware Application (MP3 Player) Policy ACD generator Active Surroundings - Overview Active Surroundings – Explore ways in which surroundings are enabled to socially interact with themselves as well as human beings by embodiment of cognition, learning, emotion, behavior, etc. • Active, not just reactive • Surroundings are tangible, sociable, and cooperative • Explore the context of groups as well as individuals – Develop a framework by which surroundings can assist and help human beings, exploiting location- or context-aware understanding dynamically and adaptively Dynamic reconfiguration support – Develop an application model suitable to a ubiquitous environment where there exist heterogeneous and dynamic resources, devices, services, security policies, etc. – Provide application developers with an infrastructure with which they can develop applications transparently without concerning the context changes or target environments – Allow flexible application adaptation to such a heterogeneous and dynamic environment Active Surroundings - Architecture Active Surroundings – Key Points Application Model – Extended Presentation/semantic split application model • An application is composed of a semantic object and one or more presentation objects • Application can polymorphically change its presentations, exploiting currently available resources or devices in an environment Transparent Adaptability Support – Virtually connected communication bus with a pub/sub model • Supports two distinct adaptation semantics: anchored vs. localized • Application developers can be relieved from being burdened on dealing with context changes Flexibility Support – Application adaptation based on sub-typing concept • Application can be flexibly reconfigured to current contexts Active Surroundings – Interaction Model Application Description Application Description User A User B Presentation Presentation Scheduler_Input_Present Scheduler_Input_Present Semantics Scheduler_Output_Present Group_Scheduler_Semantic Scheduler_Output_Present Presentation Architecture Link Object Link Object Link Object Link Object Link Object Event Sub-Typing Service Integration Broker Active Surroundings – Application Model Application Model – Extended Presentation/Semantic Split Model – Presentation object • A software abstraction created in an environment with devices • Partially replicate state information – Semantic object • Implements logic of the application and manage the application’s state – PS link • Contains constraints and define how to access information in presentation and semantic objects – Presentation Architecture • Automatic mappings of presentation objects when context changes – Advantages • Association of a single semantic object with multiple presentation objects – – Multi-user support Effective use of resources (devices) • Application access independent of local presentations Active Surroundings – Adaptation Support Transparent Adaptability Support – Assumption • Publish/subscribe communication model – – Provides service objects with the interfaces for interacting with other service objects For dynamic binding, service objects are dynamically bound at runtime using event type matching S erv ice C lien t S erv ice L in k S erv ice O b ject – Service link • Acts as a proxy for local communication broker • Represents how service objects (and associated link objects) are associated with each other • Rebinds each of link objects when an application is introduced to a new context Only link object is required to rebind itself to a new communication broker due to context changes while application object remains intact co m m u n ica tio n b ro k er re-b in d in g S erv ice O b ject S erv ice L in k S erv ice O b ject Active Surroundings – Flexible Binding Flexibility Support – Leverages notion of sub-typing concept • The required service and operation is transparently substituted by 3 cases; substitution by its sub-type, substitution by its super-type, or coercion by its super-type functionality – Subtyping Policy • Substitution with subtype – Searching level » Subtype searching process will be continued till one of its subtype find (default) • Replace with supertype – In case of additional functionality » » Depend on the application policy (application developer’s role) If it allowed, follow ontology description (described by service provider) Technical Challenges in System Support Technical [Kindberg] – – – – – – Service discovery Adaptation Integration with physical world Programming framework Robustness Security Discovery and interaction Service discovery – address allocation and name resolution – Challenges • avoiding overspecification – Components must obey the same vocabulary and syntax of service specifications • Lost opportunities for association – A camera that can send an image for printing should be able to send the image to a digital frame. But, if the camera doesn’t have a specification for the digital frame, the opportunity passes • More abstract and much less detailed service specifications can lead to ambiguity – System designers must decide the human’s role to resolve tension between interoperability and ambiguity Discovery and interaction (cont’d) Interaction – After associating to a service, a component employs a programming interface to use it – Challenges • How can the software on the device use the service without a priori knowledge of its methods ? – Data-oriented interaction is a promising model – It requires ubiquitous data standardization for it to work across environment boundaries Adaptation Challenges – Adaptation must often take place without human intervention, to achieve calm computing • Embedded devices tend to be small, and limits to miniaturization mean constrained resources • Available resources tend to vary dynamically Content adaptation – The content adaptation techniques in mobile computing solve only a part of the overall problem • Content adaptation among n heterogeneous device types – We must address such issues as discovery and robustness – We must find a way to apply the adaptation using mechanisms invisible to the user The human interface adaptation – It is to move the human interface to a physically different device chosen on the fly – Applying transformation to the UI can be a powerful approach to achieving spontaneous interaction Integration with the physical world Challenges – We need low-level application programming interfaces that let software deal with physical sensors and actuators – We need a high-level software framework that lets applications sense and interact with their environment, including physical sensors and actuators Programming frameworks A framework for programming ubiquitous computing environments might address the ubiquitous computing challenges in applications, the operating system or middleware, and the development language Challenges – to leverage existing applications • because of large investment in the applications, their data, and knowledge of how to use them – to leverage OSs without modification • OSs are fragile, most users are reluctant or insufficiently sophisticated to apply OS patches, and OS functionality is generally regarded as beyond application writers’ control Robustness and routine failures Challenges – A radical increase of failure frequency due to wireless networking Solutions – Expiration-based schemes and soft state • Each available device or service send a periodic advertisement announcing its presence or availability to the directory service • When failure is common case, identify what critical static or dynamic state you must persistently store and consider reconstructable soft state for the rest – Separating failure-free and failure-prone operations • Indicate which operations are more likely to fail which enables developers to be able to provide more effective error handling – Group communication for “free” indirection • to provide a level of indirection that helps rediscover lost resources Security Challenges – Trust • Because of spontaneous interoperation – Security for resource-poor devices • Extremely resource-poor devices do not have sufficient computing resources for asymmetric encryption • Protocols must minimize communication overheads to preserve battery life – Access control • Knowing an identified user’s whereabouts raises privacy issues – Location • Customizing services to a location can result in a loss of privacy for identified individuals – New patterns of resource-sharing • Physical integration works against the firewall model • Spontaneous interaction makes extranet technologies unsuitable, because developers intend them for long-term relationships with outside users Q &A What would you like to see in future? References Manuel Roman, Christopher K. Hess, Renato Cerqueira, Anand Ranganathan, Roy H. Campbell, and Klara Nahrstedt, Gaia: A Middleware Infrastructure to Enable Active Spaces, IEEE Pervasive Computing, pages 74-83, Oct-Dec 2002. David Garlan, Dan Siewiorek, Asim Smailagic, and Peter Steenkiste, Project Aura: Towards Distraction-Free Pervasive Computing, IEEE Pervasive Computing, special issue on Integrated Pervasive Computing Environments, Volume 1, Number 2, April-June 2002, pages 22-31. Ralph D. Hill, The Abstraction-Link-View Paradigm: Using Constraints to Connect User Interfaces to Applications, Proceedings of CHI’92, pages 335-342. Glenn E. Krasner and Stephen T. Pope, A Description of the Model-ViewController User Interface Paradigm in the Smalltalk-80 System, Journal of Object Oriented Programming, vol. 1(3), pages 26-49, 1988. Barbara H. Liskov and Jeannette M. Wing, A Behavioral Notion of Subtyping, ACM Transactions on Programming Languages and Systems 1994.