1 / 25

Component-based, Context-aware Software Systems

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

Download Presentation

Component-based, Context-aware Software Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Component-based, Context-aware Software Systems Workshop on Advances in Methods of Information and Communication Technology Petrosavodsk State University Michael Przybilski

  2. 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

  3. Outline • Challenges • Approaches • Component-based Systems • Examples • Ongoing Work

  4. 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

  5. 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)

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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.

  17. 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

  18. 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

  19. Advanced “Application” • Inferring User Activity from 3D Acceleratometer • Steps Classification Feature Selection Feature Extraction Pre Processing Data gathering

  20. 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)

  21. 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

  22. Variance Absolute Magnitude Inferring User Activity from 3D Acceleratometer *International Conference on Artificial Intelligence 2005

  23. 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

  24. 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

  25. Questions?

More Related