250 likes | 368 Views
Component-based, Context-aware Software Systems. Workshop on Advances in Methods of Information and Communication Technology Petrosavodsk State University Michael Przybilski. Motivation. Increase of available context information Wireless information devices
E N D
Component-based, Context-aware Software Systems Workshop on Advances in Methods of Information and Communication Technology Petrosavodsk State University Michael Przybilski
Motivation • Increase of available context information • Wireless information devices • Integrating increasing number of input and output devices • Use for applications • Explicit, potential • Use of communication possibilities • Remote devices • Number of devices
Outline • Challenges • Approaches • Component-based Systems • Examples • Ongoing Work
Challenges • Acquisition, processing and provision of context data • Rapidly changing and uncertain sources • Adapt behaviour (of system / application) depending on the situation ((physical) environment, location, …) • Reactive / pro-active systems (real-time) • Seamless vs. seam-full • Reuse • Common steps • Context information • Scalability, flexibility, privacy and trust, re-configurability, … • Development vs. Runtime support
Typical Mobile Constraints • Energy consumption • Data processing • Data storage • (Wireless) Communication • Bandwidth, Reliability (range, signal detection) • Infrastructure (dynamic network topology; ad-hoc and P2P networks) • Networking technologies (IrDA, BT, WLAN, HomeRF, PicoNet, …) • Routing protocols for PAN and MANET (AODV, DSDV, …) • IO capabilities (form factor)
Context and Context Reasoning • A. Dey and G. Abowd, 1999: “Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and application themselves.” • Other definitions by Chen and Kotz, Yau and Karim, … • Categorization of context: Mayrhofer, Lieberman and Selker, Schilit, Adams and Want, Gross and Specht, … • Context-reasoning can be defined as deducing new and relevant information from the various sources of context-data
Approaches • Monolithic systems • Blackboard • Information exchange through shared (structured) spaces • Indirect communication • Data stored in tuple spaces • Widget • Direct information exchange between objects • Message or RPC-based • Level of re-use • Frameworks • Design structure for a specific class of components or systems • Middleware systems • software system that operates (logically) between operating system and application and provides commonly used services • Infrastructures • Set of technologies (well-established, pervasive, reliable, and publicly accessible) that act as a foundation for other systems
The Context Toolkit (CTK) • Structure approach to context-aware systems • encapsulation of sensors • access to context data through a network API • abstraction of context data through interpreters • sharing of context data through a distributed infrastructure • storage of context data, including history • basic access control for privacy protection • Standardized API for applications • Enables monitoring • Active context input, application logic behavior, notification of context output • and control of context • Modification of application logic behavior, triggering of context output • Java-based component framework • Also Python and C++ widgets • Common subscription mechanism (call-backs) • HTTP + XML
The Context Toolkit (CTK) • Context Widgets • Abstract context information • Interpreters • Raising the level of abstraction • Aggregators • Collection of multiple pieces of context information • Services • Execute (common) actions on behalf of applications • Discoverers • Registry of capabilities available in the framework
The Context Toolkit (CTK) • Widget Class: IdentityPresence • Attributes • Location: Location the widget is monitoring • Identity: ID of the last user sensed • Timestamp: Time of the last arrival • Callbacks • PersonArrives (location, identity, timestamp) • Triggered when a user arrives • PersonLeaves (location, identity, timestamp) • Triggered when a user leaves
The Reconfigurable Context-Sensitive Middleware (RCSM) • Context and resource sensitive • Instant establishment and termination of communication channels (changing context, node mobility) • High density of nodes and scalability for exponential interaction • Categorization in terms of sources • Network (routing, transport protocols) • Device (power, ambient light, location, time, other devices in range) • User-Interaction (application specific and originating) • Context-sensitive interface definition • Tuples of n values + time • Several operators for specification of temporal relationships
ConFab • Infrastructure system • Platform (HW, OS) and language independent • In-place upgrade of new sensors and services • Easier development • Standard Data Formats and Protocols (Data Model) • Privacy issues • Decentralized architecture • control and feedback mechanisms • Plausible deniability • Special exceptions for emergencies
ConFab • Based on standard web technologies • Webservers (infospaces) • XML documents (context tuples; only tags and attributes) • Entities (people, places, things and services) have InfoSpaces • Contain context information (tuples) • Held on infospace servers • Populated by Contextsources • Applications retrieve and manipulate infospace data • Operators defined on InfoSpaces • In – access policies, privacy tags, notification • Out – access policies, privacy tags, notification, invisible mode, add privacy tag, interaction • On – garbage collection, periodic reports, delete duplicated tuples
ConFab <ContextTuple dataformat=“edu.school.building” datatype=“location” description=“location of an entity” entity-link=“http://myhost.com/~jdoe” entity-name=“John Doe” timestamp-created=“2003.Feb.13 16:06 PST”> <Values> <Value value=“523” /> </Values> <Sources> <Source datatype=“location” link=“http://localhost/map.jsp” source=“Location Simulator” timestamp=“2003.Feb.13 16:06 PST” value=“523” /> </Sources> <PrivacyTags> <Notify value=“mailto:addr@mail.net” /> <TimeToLive value=“1 day” /> <MaxNumSightings value=“5” /> <GarbageCollect> <Where requestor-location=“not edu.school.building” /> </GarbageCollect> </PrivacyTags> </ContextTuple> • Context tuples • Intrinsic attributes (e.g. persons age) • Extrinsic (relationship) attirbutes (person is in room) • Static attributes (email address) • Dynamic attributes (location) • Common parts • Dataformat, datatype, [entity link,] values, • [Privacy Tags] • Hints to the use of the information when it leaves the users infospace
Other • Mobiware (Columbia University) • ALICE (Architecture for Location Independent CORBA Environments; Trinity College) • LIME (Washington University) • XMIDDLE (University College, London) • QoS-Aware Middleware and iMAQ (University of Illinois) • TSPACES (IBM Research) • GAIA – for smart spaces middleware (Univ. of Illinois) • CORTEX (Lancaster University) • ContextPhone • Project Aura • Solar • JCAF • Sentient Model • TEA framework • CARISMA • … • ReMMoC • MobiPADs • Active Campus • Carmen • Smart-its • DiSUS • AGAPE
Software Components • A component is a coherent package of software artifacts that • can be independently developed and delivered as a unit, and • can be composed, unchanged, with other general components to build something larger • An interface is a description of a set of operations related to the external specification of a component. An interface consists of: • a set of operations that a component needs to access in its surrounding environment (required interface), • a set of operations that the surrounding environment can access on the given component (provided interface). • An operation is unit of functionality implemented by a component which may map to: • a method, • a function, • a procedure.
Distribution • Distributed processing / information sharing • Nearby, resulting in a context-aware system • Remote • Simple sensors • Wireless information devices • Online processing • Groups of devices • Limited resources (processing, storage, networking, power, etc.) • … • Servers • High level of resources • Specialized
Reasoning Beacon Application Simple Application subscribe(select NULL where user = Michael, epoch = 1000) • The stolen / forgotten mobile phone • Sensor • Simple BT beacon • Attached to user • Transmit Freq. <= 1 Hz • Reasoning • Beacon is with user • Mobile phone is owned by user • Should never be out of reach => stolen / forgotten • Application logic • Sound / display alarm if stolen / forgotten
Advanced “Application” • Inferring User Activity from 3D Acceleratometer • Steps Classification Feature Selection Feature Extraction Pre Processing Data gathering
Sensor Preproc. FeatureExtr. FeatureSel. Classifier Inferring User Activity from 3D Acceleratometer • Components get(select activity from activity where user = Michael) subscribe(select x, y, z from acceleratometer where user = Michael, epoch = 10) subscribe(select variance, absoluteMagnitude from Feature-Selection where source = acceleratometer and user = Michael, epoch = 10)
Sensor 220 000 samples (100 Hz) Preprocessor Feature Extraction Feature Selection Variance, absolute Magnitude of Acceleration Classifier Simple linear classifier 300 samples for learning 300 samples for calibration Sensorbox BT Link L2CAP Nokia 6600 Node 2 Node 1 Sensor Preproc. FeatureExtr. FeatureSel. Classifier Inferring User Activity from 3D Acceleratometer
Variance Absolute Magnitude Inferring User Activity from 3D Acceleratometer *International Conference on Artificial Intelligence 2005
Other work • Agent-paradigm • Distributed preprocessing • Integration of policy-based privacy and security • Autonomous Intelligent Systems: Agents and Data Mining, 2005 • Evaluation of reasoning mechanisms • Software framework for remote data gathering • WS / EJB components / WEKA • Pervasive Systems and Computing, 2005
Ongoing Work • Further integration • iMotes (NesC) • Series 60 / 80 Mobilephones (Symbian C++) • JBoss Application Server • Communication • Ad-hoc (BT) and P2P (IP; 3G/GPRS / LAN) • Energy saving by remote processing • Reasoning mechanisms • Simple Bayesian networks, SVM • Other Applications • Training management and heart-rate monitoring