280 likes | 423 Views
Context-aware State Management for Ubiquitous Applications. Pauline P. L. Siu, N. Belaramani, C. L. Wang, F. C. M. Lau The University of Hong Kong. Outline. Introduction Our System Context-aware Migration Phases Application – Universal Browser Evaluation Related Work Conclusion.
E N D
Context-aware State Management for Ubiquitous Applications Pauline P. L. Siu, N. Belaramani, C. L. Wang, F. C. M. Lau The University of Hong Kong
Outline • Introduction • Our System • Context-aware Migration Phases • Application – Universal Browser • Evaluation • Related Work • Conclusion
Ubiquitous Computing • The nature: • Invisibility • User doesn’t know the existence of device • Device are embedded into environment • Mobility • User moves from place to place • User can access information anywhere, anytime • These two are correlated.
Invisibility & Mobility • Invisibility • Devices are embedded everywhere • Distraction-free in using resources • Services are provided and adapted seamlessly • Mobility • Users are of high mobility (device mobility, user mobility, service mobility …) • They access services anywhere, anytime
Invisibility & Mobility (cont’d) • To achieve invisibility • Data Adaptation • Code Adaptation • To support mobility • Code Mobility (REV, COD, MA) • Supports are either on invisibility or on mobility • A support on both issues are needed
State ManagementState • In pervasive computing, state is the current status of the environment • These states are useful for reasoning • E.g. environment context, device activities, human activities… • For a running application in pervasive computing, state is the current status of it • These states are required for migration (capture & resume) • E.g. data state and execution state • These two levels of states are correlated • Environment states provides environment information, depends on application, this could be changed • Application states provides application information, depends on environment, this could be changed
State ManagementAn important scheme towards our goal • However, current mobility support is usually through migrating state as it is • To have a collaboration between mobility and adaptability • Functionality adaptation allows lightweight mobile functionality • Mobile functionality to enable flexible state adaptation • State Management is introduced so that state could be adjust during migration • State are needed to be context-aware
Context-aware State Management • Context-aware State Management: • Acquisition • Manipulation • Transmission • Restoration • The main focus is on the State Manipulation
Sparkle Overview • Sparkle is an ongoing project in University of Hong Kong. It is component-based software architecture for pervasive computing • In Sparkle, applications are composed of facets • Facets is a pure functional units: • 1. stateless • 2. has a single publicly callable method • Facet can be brought in, executed, and thrown away at run-time
Mobility subsystem • Our mobility subsystem is built based on our the Sparkle project. • It supports mobility and adaptability, allows them complementing each other. • During migration, states are processed before transmission • The state processing are based on the categorization of states and context environment
Scenario Facet is downloaded when needed State adaptation: State is transformed Functionality adaptation: f2 is resume with different facet Facet is thrown away after use
Categorization of Data State • Fixed • Essential for restoration of the application • Mutable • Essential for restoration of the application, • However, it is context-dependent • Droppable • Not necessary for restoration • However, it gives extra information if being kept
Mobility Subsystem • Facet Manager • Keeps the facet usage statistic • Data State Manager • Captures states during migration • Application Manager • Manages and controls the whole application • Context State Manager • Captures the current context • Mobility Manager • Controls the whole migration process • Central Manager • Manages the whole Sparkle client
Migration Phase :1. State Capture Phase • At source device • Data Capturing • By Data State Manager • DataState_XML is generated • Context Capturing • By Context State Manager • ContextState_XML is generated • Facet Usage Capturing • By Facet Usage Manager • Facet_XML is generated
Migration Phase :2. State Process Phase • At source device • By Mobility Manager • Gathers information • DataState_XML • ContextState_XML • Facet_XML • Process states • Predefined context policies • Generate Final_XML
Migration Phase :3. State Transmission Phase • P2P connection setup between Sparkle clients • Through socket connection • Final_XML will be transmitted through this network connection
Migration Phase :4. State Process Phase • At destination device • By Mobility Manager • Receives Final_XML • Decides if there is a need for further processing on state • Final_XML is converted to states acceptable by Container
Migration Phase :5. State Restore Phase • At destination device • Application Resumption • Reconstruct the Container • Restore states to the Container • Continue the execution of application
Application – Universal Browser • Universal Browser is an application implemented under Sparkle • During migration, states of the application will be adjusted to suit the context.
Related Work • Perimorph • Supports compositional adaptation • Only focus on collateral change of components • Ours: State transformation to facilitate adaptation of facets • ROAM • An application framework for developing multi-platform applications • Mapping running states between the presentations (user interface) of source and destination • Ours: State transformation is not only for the presentations, but the internal application states
Conclusion • Our mobility system achieve mobility and invisibility in ubiquitous environment • Through – • Complementing mobility and adaptability • Manipulating states during migration
Thank you • Q & A
What’s one “functionality”? • Functionality: • Waffle for “features” or “function”. The capabilities or behaviors of a program, part of a program, or system, seen as the sum of its features. Roughly, “the things it can do”. -- Dictionary of Computing • used to contribute to the development or maintenance of a larger whole; also, designed or developed chiefly from the point of view of use -- Merriam-Webster