460 likes | 473 Views
A Software Engineering Perspective on Context-Awareness in Ad Hoc Mobile Networks. Christine Julien Mobile Computing Laboratory Washington University in Saint Louis December 21, 2019. Motivation. Simplify mobile application development Individually address application-specific needs
E N D
A Software Engineering Perspective on Context-Awareness in Ad Hoc Mobile Networks Christine Julien Mobile Computing Laboratory Washington University in Saint Louis December 21, 2019
Motivation • Simplify mobile application development • Individually address application-specific needs • Dynamically gather context information from the network • Seamlessly adapt to environmental changes • Transparently help programmers cope with problems inherent in ad hoc networks Christine Julien
Ad Hoc Network Challenges • Form opportunistically • Change rapidly in response to mobility • Rely on no fixed infrastructure • Provide transient interactions • Foster decoupled computing • Embody open environments with limited guarantees Christine Julien
Computational Model • Ad hoc network • Host (mobile or stationary) • Defines location in physical space • Agents/Application Components • Unit of mobility residing on a host • Data • Owned and generated by each agent Host 2 Host 1 Host 3 Christine Julien
Overview • Context-aware computing • EgoSpaces conceptual model • EgoSpaces middleware • Network abstractions • Conclusions and future work Christine Julien
Context-Aware Computing:The Need for Context • Software and hardware constantly move and change • Applications must opportunistically adapt • Perception of context varies by application • Current solutions: • Use basic types of context information in specific ways • Fieldwork tools, guide tools • Provide access to only a single component’s sensors at a time • Context Toolkit, Context Fabric • Support only local or symmetric interactions • MARS, LIME Christine Julien
Traffic Collision Context-Aware Computing:Rethinking Applications (1) Christine Julien
Context-Aware Computing:Rethinking Applications (2) Christine Julien
Context-Aware Computing:Rethinking Applications (3) Charlie Angie Christine Julien
Context-Aware Computing:Novel Notion of Context • Flexible adaptation in dynamic environments • Scope that extends beyond the local host • Generalized interaction with context types • Context needs vary by task and situation • Asymmetric context interaction • Multiple contexts evolving over time • Context computation must be scalable • Explicit control over the scope, size, and cost Christine Julien
Overview • Context-aware computing • EgoSpaces conceptual model • EgoSpaces middleware • Network abstractions • Conclusions Christine Julien
EgoSpaces Conceptual Model:The View Concept • Maximal context contains all available data • A view is a projection of the maximal context • Egocentric abstraction of operating context • Tailored to an application’s individual needs • Allow agent to control scope of views • Ease program development • Minimize performance penalties Host 2 Host 1 Reference agent’s view: yellow data within one hop Host 3 Christine Julien
EgoSpaces Conceptual Model:Declarative View Specification • Allows simple yet meaningful view definitions • Restrict context based on properties of the network, hosts, agents, and data All location data owned by collision warning agents on cars within 100 meters of my current location • Facilitate transparent context maintenance • Rely on underlying middleware for context maintenance tasks Roman, G.-C., Julien, C., and Murphy, A. L., "A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments,” Software Engineering for Large-Scale Multi-Agent Systems, LNCS 2603, April 2003. Christine Julien
EgoSpaces Conceptual Model:View Interaction • Present view contents as tuple space • Allows use of traditional Linda-like operations • Content-based pattern matching for tuple retrieval • retrieve tuples (rd) • remove tuples (in) • Can affect overlapping views • Atomic blocking and probing operations Julien, C., and Roman, G.-C., "Egocentric Context-Aware Programming in Ad Hoc Mobile Environments," in Proceedings of FSE-10, November 2002. Christine Julien
EgoSpaces Conceptual Model:Consistency Concerns • Transactional semantics (e.g., money transfers) • Strong application guarantees • Can be expensive • Use atomic Linda-like operations • “Best-effort” semantics (e.g., traffic) • Variety of implementations • Application chooses semantics based on its particular situation • Use scattered probing operations Christine Julien
EgoSpaces Conceptual Model:Reactive Views • Facilitate behavioral adaptation • Agents respond to presence of certain tuples • Associate application-level reaction to the appearance of a tuple • Scheduling modalities correspond to consistency requirements • Eager semantics provide transactional guarantees • Lazy semantics provide fewer guarantees • Allow more flexible implementation • Increase performance Christine Julien
EgoSpaces Conceptual Model:Active Views • Capture natural context interactions • Transparent data migration • Automatic duplication • Event capture • Extensibility • Simplify programming • Programming abstractions • Reduced code size migrate Julien, C. and Roman, G.-C., "Active Coordination in Ad Hoc Networks," to appear in Proceedings of Coordination 2004. Christine Julien
EgoSpaces Conceptual Model:Access Control Requirements • Ad hoc networks are open environments, yet agents may need to restrict data access • No permanent trusted central server • Current work • Administrative domains • Mobile Ambients, SEAL • Specialized type systems • KLAIM • Fine-grained access control • SECOS • Must scale to large systems • Must address needs of individualized agents Christine Julien
EgoSpaces Conceptual Model:Access Control Provision • Agent specified access control function • Limits access based on agent properties • Allows fine-grained access control • Individualized to particular application’s needs • Reference agent provides credentials and intended operations • Access control functions evaluated on a per-tuple basis to determine inclusion in the view • Can be used to define administrative domains Christine Julien
Overview • Context-aware computing • EgoSpaces conceptual model • EgoSpaces middleware • Network abstractions • Conclusions Christine Julien
EgoSpaces Middleware:Why Middleware? • Speed up application development in ad hoc networks • Enhance level of programming abstraction • Provide generic and flexible context operations • Shift complex tasks to underlying infrastructure • Facilitate rapid dissemination and adoption • Proven solutions for other domains • Distributed object systems • CORBA, Jini, DENO • Mobile agent systems • Aglets, D’Agents, Code • Coordination systems • LIME, MARS, Jedi Christine Julien
EgoSpaces Middleware:EgoSpaces Middleware • Programming interface simplifies application development burden • Allows declarative view specification • Presents view contents as tuple space • Provides standard Linda tuple space operations on view definitions • Includes light-weight implementations of tuple space operations • Provides tailored access control Christine Julien
EgoSpaces Middleware:EgoSpaces Architecture • Application provides declarative view specifications • Middleware • Discovers neighbors • Monitors context sensors • Provides data contents of context to application through view abstraction application EgoSpaces ELights network abstractions sensor monitoring discovery message sensing ad hoc physical network Christine Julien
EgoSpaces Middleware:Demo Application • Application-specific view restriction • Hop-count based metric • File-size restriction • Content-based selection from view • Songs displayed based on desired properties • Reactive programming allows downloads to resume Christine Julien
EgoSpaces Middleware:Simplifying Application Development • Abstracts network for application programmer • Removes concern for low-level network and communication concerns • Provides high-level, abstract definition of needs • Maintains contents of views as the environment changes • Programmer does not have to persistently poll • Shifts developer focus to key components of applications • User interface design • Local data storage and representation Christine Julien
Overview • Context-aware computing • EgoSpaces conceptual model • EgoSpaces middleware • Network abstractions • Conclusions Christine Julien
5mi Network Abstractions:Restricting the Network • Defining a view requires limiting participating hosts • e.g., all hosts within five miles or within three hops • Consider the overhead in defining such a network • Deal with volatility of ad hoc networks • Unannounced disconnection • Unpredictable reconnection • Heterogeneous devices Roman, G.-C., Julien, C., and Huang, Q., "Network Abstractions for Context Aware Mobile Computing," in Proceedings of ICSE, May 2002. Christine Julien
Network Abstractions:Solution Overview • Represent the ad hoc network as a graph • Abstract properties of nodes and links to weights on edges in this graph • Calculate the cost of paths from the reference node • Determine the shortest path to each node and build a tree • Limit this tree using a bound, D Christine Julien
j i ij j i Network Abstractions:Weight Assignment • Individualized for an application • Abstracts varied properties of hosts and links • Host properties form i; link properties form ij • i includes battery power, CPU power, location, etc. • ij includes physical distance, bandwidth, throughput, etc. • Edge weights combine link properties and the properties of the connected nodes mij = (i, j, ij) Christine Julien
Network Abstractions:Computing Path Cost • Assuming each link has a single weight (mij), an application can define a generalized cost function: • v0(Pk) = Cost(v0(Pk-1), mk-1,k) • v0(v0) = 0 • Cost function must be strictly increasing along a path Christine Julien
Network Abstractions:Limiting the Scope 3 • Define a subtree of the network by placing a bound on the cost of each path • Bound is useful only if shortest path cost is strictly increasing • Allows reference to restrict computation to a subnet 1 2 2 1 1 0 1 2 1 2 1 1 Note: All links have a weight of 1 Christine Julien
Network Abstractions:Context Calculation Protocol • Service new queries • Respond at the application level • Remember cost, parent, sequence number, and information about the computation • Propagate the query • Service shorter distances (same sequence number) • Remember cost and new parent • Propagate query • Disregard longer distances (same sequence number) • But remember cost and parent if within bound • Halt when computation reaches boundary • Based on traditional ad hoc routing protocols Christine Julien
(r, 4, …) (r, 2, …) (b, 5, …) [2, r, …] [2, r, …] [2, r, …] [4, r, …] [4, r, …] [2, r, …] [3, a, …] [3, a, …] {(r,2), (b,5)} {(r,2), (b,5)} {(r,2)} {(r,4)} {(r,4)} {(r,4),(a,3)} {(r,4), (a,3)} {(r,2), (b,5)} (a, 3, …) (b, 5, …) (b, 4, …) [4, b, …] [5, b, …] [5, b, …] {(b,4)} {(b,5)} {(b,5)} Network Abstractions:Protocol Example Query= (source, new cost, …) State= [cost, parent, ...] {(neighbor, cost through neighbor), …} Bound = 6 Cost = additive [0, null, …] r 4 2 1 a b 5 1 4 c d Christine Julien
Network Abstractions:Context Maintenance Protocol • Persistent queries require context maintenance • React to increase in link weight • If parent, adjust cost and propagate information • Otherwise, update local information • React to decrease in link weight • If non-parent link, recalculate cost for neighbor on the other end • Handle “count-to-infinity” problem • Store entire shortest path at each hop • Regain resources when context is no longer used Christine Julien
[2, r, …] [3, a, …] [2, r, …] [3, a, …] {(r,2), (b,10)} {(r,2), (b,5)} {(r,2)} {(r,4)} {(r,4),(a,3)} {(r,4), (a,8)} [2, r, …] [4, r, …] (b, 5, …) [4, b, …] [5, b, …] {(b,4)} {(b,5)} Network Abstractions:Maintenance Example Query= (source, source cost, new cost, …) State= [cost, parent, …] {(neighbor, cost through neighbor), …} Bound = 6 Cost = additive [0, null, …] r 4 2 6 1 a b 5 1 4 d c Christine Julien
Network Abstractions:Evaluation • Simulation using ns-2 network simulator • 100 node network in 1000x1000m2 space • Vary network density by changing transmission range • Using random waypoint mobility model adapted to avoid speed degradation • Metrics • Context consistency • Settling time (at most 35ms) • Percentage of useful broadcasts Christine Julien
Network Abstractions:Context Building Consistency (1) • Good consistency for reasonably sized contexts one-hop context two-hop context Percentage of context receiving message three-hop context four-hop context Transmission range (meters) Christine Julien
Network Abstractions:Context Building Consistency (2) • Consistency >80% with increased network load five context definitions one context definition Percentage of context receiving message ten context definitions Transmission range (meters) Christine Julien
Network Abstractions:Useful Broadcasts • Efficiency decreases with increasing density one-hop context two-hop context Percentage of useful broadcasts three-hop context four-hop context Transmission range (meters) Christine Julien
Conclusions • Melding of context-awareness and ad hoc networks • Novel notion of context • Individualized declarative specification • Includes general facets of the environment • Extended in scope to remote components • Asymmetric context interactions • EgoSpaces model and middleware • Supporting algorithms and protocols Christine Julien
Contributions (1) • Algorithms for ad hoc mobile computing • Network abstractions • Consistent group membership R R R a a r b b Huang, Q., Julien, C., and Roman, G.-C., "Relying on Safe Distance to Achieve Strong Partitionable Group Membership in Ad Hoc Networks," to appear in IEEE Transactions on Mobile Computing. Christine Julien
Contributions (2) • Middleware for context-awareness • Addressing software engineering concerns of mobile environments • Facilitating rapid development of mobile applications • Bringing application development to the hands of novice programmers Handorean, R., Payton, J., Julien C., and Roman, G.-C., "Coordination Middleware Supporting Rapid Deployment of Ad Hoc Mobile Systems", in Proceedings of the 1st ICDCS Workshop on Mobile Computing Middleware (MCM03), May 2003. Christine Julien
Contributions (3) • Formal models of context-aware and mobile computing • Specification and refinement using Mobile UNITY • Building Context UNITY for direct reasoning about context-aware systems • Roman, G.-G., Julien, C., and Payton, J., "A Formal Treatment of Context-Awareness," (invited paper) to appear in Proceedings of FASE 2004. • Julien, C., Payton, J., and Roman, G.-C., "Reasoning About Context-Awareness in the Presence of Mobility," in Proceedings of FOCLASA, September 2003. • Roman, G.-C., Julien, C., and Huang, Q., "Formal Specification and Design of Mobile Systems," in Proceedings of FMPPTA'2002, April 2002. Christine Julien
Future Plans • Addressing ad hoc network and communication concerns in software engineering • Transactional programming in ad hoc networks • Tailored communication and coordination paradigms for applications in ad hoc networks • Context-aware routing and communication • Applying formal methods to context-aware environments • Reasoning about mobile and context-aware applications through formal notation and proof logic Christine Julien
Questions? http://www.cse.wustl.edu/~julien julien@wustl.edu Christine Julien
Publications www.cse.wustl.edu/~julien • Roman, G.-G., Julien, C., and Payton, J., "A Formal Treatment of Context-Awareness," (invited paper) to appear in Proceedings of Fundamental Approaches to Software Engineering 2004. • Julien, C. and Roman, G.-C., "Active Coordination in Ad Hoc Networks," to appear in Proceedings of Coordination 2004. • Huang, Q., Julien, C., and Roman, G.-C., "Relying on Safe Distance to Achieve Strong Partitionable Group Membership in Ad Hoc Networks," to appear in IEEE Transactions on Mobile Computing. • Julien, C., Payton, J., and Roman, G.-C., "Reasoning About Context-Awareness in the Presence of Mobility," in Proceedings of the 2nd International Workshop on Foundations of Coordination Languages and Software Architectures (FOCLASA03), September 2003. • Handorean, R., Payton, J., Julien C., and Roman, G.-C., "Coordination Middleware Supporting Rapid Deployment of Ad Hoc Mobile Systems", in Proceedings of the First International ICDCS Workshop on Mobile Computing Middleware (MCM03), May 2003. • Roman, G.-C., Julien, C., and Murphy, A. L., "A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments (extended version)," Software Engineering for Large-Scale Multi-Agent Systems, A. Garcia et. al. (editors), LNCS 2603, April 2003. • Julien, C., and Roman, G.-C., "Egocentric Context-Aware Programming in Ad Hoc Mobile Environments," in Proceedings of FSE-10, November 2002, pp. 21-30. • Roman, G.-C., Julien, C., and Huang, Q., "Network Abstractions for Context Aware Mobile Computing," in Proceedings of the 24th International Conference on Software Engineering (ICSE'02), Orlando, FL (USA), May 2002, pp. 363-373. • Roman, G.-C., Julien, C., and Murphy, A. L., "A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments," in the 1st International Workshop on Software Engineering for Large-Scale Multi-Agent Systems (SELMAS'2002), May 2002. • Roman, G.-C., Julien, C., and Huang, Q., "Formal Specification and Design of Mobile Systems," in Proceedings of FMPPTA'2002, April 2002. Christine Julien