Skip to content

Instantly share code, notes, and snippets.

@archie
Created June 5, 2011 16:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save archie/1009125 to your computer and use it in GitHub Desktop.
Save archie/1009125 to your computer and use it in GitHub Desktop.
Mobile Computing Paper summaries
- Some computer science issues in Ubiquitous computing (M. Weiser)
Takes inspiration from everyday objects and how we interact with them such that the interaction is unconscious and non-intrusive. The objects of interaction are proactive in a way that makes humans "think less". Developed three prototypes: Tab (post-it like), Pad (think iPad), and Smartboard (interactive whiteboard). Identified X areas for future work: 1) Hardware - such as pens, battery life, wireless scalability. 2) Network protocols - media access, real-time capabilities, mobile IP. 3) Interaction substrates - surface on which users can pass commands, other ways of passing commands (speaking), separating view from logic, moving views around. 4) Applications - location-awareness, context-aware, collaboration, not only technical challenges. 5) Privacy - what information is the user willing to share, number of devices increasing, voluntary vs involuntary sharing. 6) Computational Methods - caching, disconnected operations.
- Pervasive Computing: Vision and Challenges (M. Satyanarayanan)
This paper provides a distinction between distributed systems, mobile computing, and pervasive computing. Mobile computing concerns the networks, the access to information, disconnected operation, adaptive applications, and energy saving techniques. While pervasive computing focuses on the integration with everyday life through four thrusts: 1) Use of smart spaces - well-defined area in which computing is embedded in the infrastructure of buildings, such as environmental adjustments according to a person's presence. 2) Invisibility - that applications must provide minimal user distraction. Ie it should just "be there" and at the right time. Hence, there mus be a sense of proactiveness. 3) Localized scalability - within a confined space the number of applications must be able to scale. Think sufficient wireless capacity for all devices. Devices not in the vicinity does not need to be handled. High churn. 4) Masking uneven conditioning - scale user experience with available resources, be it financial, computational, or organisational. Think less "smartness". From the coda system, he highlights 1) User intent, knowing what the user wants to do in advance 2) Cyber foraging, making devices smaller, yet meeting user expectations, for example by augmenting small devices with so called surrogates. 3) Adaptation strategy - making applications adapt to the environment in which it runs, or the available devices around it. 4) High-level Energy management - self-tuning applications, os support for energy-aware memory. Change fidelity level. 5) Client thickness - how much computation is done on the small device itself vs what can be done at a remote location. 6) Context awareness - system has to be able to tell what is going on in the surrounding environment. 7) Balance proactivity and transparency - we don't need stupid systems, or systems that do the wrong thing because it is too transparent. 8) Privacy and trust - more mechanisms that track and monitor user behaviour to infer information action and user-intent.
- Intelligent File Hoarding for Mobile computers
The hoarding problem is knowing what to keep in cache such that it is possible to support continued work even in disconnected operation. We try to eliminate cache misses by "guessing" what files are likely to be accessed in the near future and move these to cache before disconnecting from the network. They propose: transparent analytical spying. 1) automatically detect files used by applications, 2) provide "bookends" which describes some activity. 3) let users choose bookends through a UI 4) load/fill a briefcase with material to work with while disconnected. Removes application data through templates, filenames, directories, and timestamps. GUI makes the generalised bookends intrusive. Data orphans: ie files used but the algo is not able to tell who used them, has to be manually assigned to bookends. One central concept to remember is application tree.
- Automated Hoarding for Mobile Computers (Kuenning and Popek)
Hoarding without user interference by predicting future needs based on passed user activity. Uses a new measure, semantic distance, to do this. Aims to quantify the relationship between files. Made up by references to files, rather than looking at the files themselves. A reference is a high-level activity such as open(). Key: files that are referenced at the same time, or close in time, have a close semantic distance. Semantic distance may increase by the number of intermediate file acceses between two file references. Concept minimizes comparisons with an approximation heuristic: only N distances kept for each file, and only refs from within distance of M. Once pairs are established, it is necessary to cluster them. A cluster represents a project. Determined by comparing neighbours between files. If over a certain threshold, then cluster the pair. Other discoveries: Meaningless activities (find, directory open, etc), Shared libraries, Critical files, Remote access, Temporary files, Non-files, Simultaneous access (system assumes sequential access), Non-open references, Avoiding deadlocks. Only implemented on Unix, required changes to kernel.
- OBIWAN: Design and Implementation of a Middleware Platform
Was created to enable the movement of objects, with which the application interacts around, around the system. For example, at times the object may be accessed locally (when there is sufficient resources to store the object there for example) and at other times through remote calls. Sometimes the same objects can act on their own (i.e agents). OBIWAN gives: paradigm flexibility, automatic replication, distributed garbage collection, and security policies. DCG is aware of replication and does not require causal ordering. Uses proxy pairs for objects. Application communicates with agents through proxy such that they do not need to know where they are situated. GC stubs and scions are added to maintain additional GC data. Property lists keeps references to remote processes. Replication consistency is left to the programmer. DCG makes use of stubs, first, then checks property lists which has references to other processes that use the object. Hence, if an object is unreachable locally, it may still be used by a remote process. Security monitor focuses, and enforces, history based policies using SPL (a scripting language). Policies may apply to both agents and processes to protect either from each other. Other points in the paper relates to the performance of their implementation.
- Session Guarantees for Weakly Consistent Replicated Data
Four per-session guarantees: 1) read your writes - read operations reflect previous writes 2) monotonic reads - successive reads reflect a non-decreasing set of writes 3) writes follow reads - writes are propagated after reads on which they depend 4) monotonic writes - writes are propagated after writes that logically precede them. The last two also affect clients which are not within the session, ie these affects apply beyond the session. Implementation wise, all reads and writes pass through the session manager which serialise operations. It maintains a read-set and a write-set for each session.
- Data Staging on Untrusted Surrogates
Starts from the assumption that hoarding is not enough, data-sets changes according to real-world events. Aims to redirect cache-misses to nearby machines such that it does not have to traverse the big Internet. Worst case is contacting server, but this aims to minimize those calls from clients. Data staging is done by a "data pump" that runs on the user's desktop. This transmit an encrypted files to the surrogate, the key to decrypt is kept with the client. A proxy on the client discovers high-latency, and asks data pump to offload to nearby surrogate. No source code modification necessary, all happens at file-system level. No protection against DoS attacks by surrogates. Surrogates: run on commodity hardware, maintains only soft-state, file-system agnostic (through API). Proxy: detects which fileset to stage, may reuse algo described in previous paper for hoarding. Consistency through validity bit, writes are to server through the Coda callback, and the data pump updates the current staging surrogate. Data pump could be central on file server, but on user is preferred to minimize load.
- Dynamic Binding in Mobile Applications
Automatically update mobile client references to needed resources when a client moves, and enforces a binding strategy. Tha latter is metadata that is provided by the user, the devices in the environment, or location/context-properties. Strategies are separated from code such that it can be used in new scenarios. 4 strategies: 1) resource movement 2) copy movement 3) remote reference 4) rebinding. Primarily focuses on context aware and location aware management. Implemented in Colomba. Policies describes management tasks rather than how to implement them. Access by approval. Mobility handling define strategy to apply. ME has a shadow proxy that negotiaties on users behalf. Location awareness is key in providing available resources information through service discovery. Binder manager handles the shadow proxies' resource accesses. Policy manager controls and enforces policies. Tested with a Mobile News Service.
- Service Location Protocol: Automatic discovery of IP network services
SLP provides fully decentralised operation for network resource discovery. Also provides ability to view resource attributes. Uses multicast and DHCP. From LAN to Enterprise networks. Protocol consists of User Agents, Service Agents and Directory agents. DA discovery can be active or passive. DAs multicast registered services in passive. In active, UAs and SAs multicast to discover each other. When a DA is present, UA unicast to DA as it collects all SA information. Without, UAs repeatedly multicast. SAs unicast their response. UAs will not include DAs it has received a response from in next multicast (part of the multicast convergence algorithm). SAs registering with a DA must renew their registration every 18hours. Scales by adding more DAs to a network. Services can be scoped using tags. One DA may collect specific scopes. Only security feature is authenticating the source of information. Possible to extend the protocol by appending additional protocol elements in the messages. Discarded if not sure how to process these.
- An Architecture for Secure Service Discovery Service
Scalable to WANs, secure and fault-tolerant. Uses XML. Hides services, rather than denying access. Quickly reacts to faults through periodic multicast announcements. Caches to minimize data transfer. Eventually consistent. SDS servers are organized hierachically. Encryption of all messages in a hybrid model. A SDS server may spawn new children when load increases. Uses heartbeats to monitor children. Restarted servers listen to existing multicast announcements to refill their database. Services are dropped if they don't continously multicast. Capability manager is used to give clients the "capability" of using certain service. No central server is needed as each service can verify this on their own. The service can specify a list of authenticated clients. SDS announcements must be signed. Servers aggregate child information using bloom filters: provides false positives, but never false negatives. Bloom filter is made up of hashing a summary of available services.
- Location Systems for Ubiquitous Computing
Location Sensing techniques: 1) triangulation - lateration or angulation 2) Proximity 3) Scene analysis. Symbolic location (near the kitchen) vs Physical location (coordinates). Symbolic often coarse-grained. Absolute (coordinates) vs Relative (5 m from me). Localized location computation: device itself is the only one who knows where it is. May choose to share that information, and requires more computation by device. Accuracy (1-3 m) and precision (99% of the time). Sensor fusion is commonly used to improve these. Scale: units per area. Recognition: tags in specific places (airport luggage), not GPS. Cost. Limitations, some will not work in certain environments. Systems covered: Active badge (absolute, symbolic). Active Bat (Physical absolute). Easy living: computer vision. Smart floor. Robots (sensor fusion).
- Reasoning about uncertain contexts in pervasive computing environments
Uncertainty model based on predicates with associated confidence values. Context predicate: Subject, Verb, Object. Predicates can be plugged into rules and other reasoning mechanisms. Separate logic from data. Also independent from programming language. Ontologies help different environments interpret data the same way. Fuzzy logic describes properties like "tall", "trustworthy", and "confidence". Bayesian networks enables causal relationship between events. Leaf nodes are sensors, intermediate nodes are sub-goals. Root node is activity in specific context. Infrastructure: 1) Context providers - sensors 2) Context synthesizers - deduces higher-level context from sensor readings 3) Context consumers - applications that make use of context. Goal is to make developer focus on the rules and networks for reasoning, not low-level details.
- Agile applicatoin-aware adaptation for mobility
Gracefully degrade quality of service such that user is still able to perform a specific task. They call this fidelity (degree to which data at client matches the data at a server). Agility is important when external resources varies drastically which is common for mobile clients. The system monitors resource levels (battery, cpu, etc) and notifies applications when thresholds are met. Type-awareness through wardens. Viceroy is component which manages central resources and the wardens. Wardens replace applications communication with servers. Applications specify boundaries, viceroy notifies app when these are exceeded. Application acts based on policy. Changes to both OS and app is required (how is this minimalistic). What's new is that Odessey also addresses application concurrency.
- Mobile Computing with the Rover toolkit
Making applications that are oblivious to the underlying environment, but enabling them to make context-aware decisions. Avoid solutions which assume long-term connectivity or that network partitions are rare. Rover toolkit offers client-server architecture with caching and optimistic concurrency control. For intermittent activity it is possible to Queue RPCs. Objects may be relocated to a server. RDOs: mobile code, encapsulated data, well-defined interface, and ability to call other RDOs. An RDO has a home location. QRPCs does not require FIFO. May be lumped together to minimize communication overhead. Rover provides ability to relocate computations (through RDOs). Conflicts must be resolved by application. Four key components: 1) access manager - manages interaction between clients and servers 2) object cache - store objects from servers 3) operation log - all commands executed (QRPCs) 4) network scheduler - chooses most appropriate transport medium for destination. Porting to Rover: 1) Object design - identify which components will run on client and which will run on server 2) Caching - encapsulate application state 3) Computation migration - reduce number of network messages while achieving high performance (i.e running the computation on the most capable hardware). 4) Object prefetching - can be done at design time or run-time. 5) Notification - add support for interacting with the environment, receive messages from the underlaying layer. 6) Consistency - conflict avoidance and resolution.
- Adaptive Offloading for Pervasive computing
Goal is to break an application in groups, move the resource intensive parts to a more powerful machine. Normal function calls are transformed into RPC calls. When to trigger and what to offload? Extract an Application Execution Graph. Relocation depends on memory size, access frequence, location, or if it is a native object (I/O for example). Edges in graph has InteractionFreq and BandwidthREquirements. Partitioning is NP-complete. Merge all isNative objects. Calculate cut cost (sum of edges). Select best partitioning plan. Modified JVM to support transparent RPC. Inference engine must minimize overhead. It examines the apps resource utilisation. Only threshold affects adaptability, configurability and scalability. Instead it uses a fuzzy control model where developer can specify linguistic decision-making rules. Must convert numerical values to fuzzy notation.
- Automatic Partitioning for Prototyping Ubiquitous Computing Applications
Goal is to automatically partition applications such that they can run in a distributed setting. Should not require changes to the run-time system. Distribution is transparent. Used in exploratory programming. Input is application code and location data, such that it can be determined where to move certain parts of the application. Some references must be converted into in-direct. Some refs cannot be converted, for example, pointers to disk data. J-Orchestra performs this partitioning at a byte-code level. Must have some knowledge of classes and where they are supposed to run. Requires applications to be synchronous, if asynch improves performance, then application structure must change. This makes it more suited for resource-driven distribution (small device move screen output to large screen or projector). Ease of programming is paramount as in ubicomp the resources available changes often over the system's life-time. Shortcomings: GUI classes might need special treatment, no thread-support. Semi-automated approach.
- Preserving Privacy in Environments with Location-Based Applications
Minimize intrusion but still retaining privacy. LocServ is a middleware which responds to services asking for geolocation information according to a set of well-defined policies. The policies are specified by the user defines the distribution of location information and under what terms it may be used. One could, for example, restrict the retention period of received data. Users may restric information in several ways 1) Organisation - work, voluntary 2) Service - facebook 3) Time - non-working hours 4) Location - only within the amusement park 5) Request type - anonymized 6) Context - calendar information. Location server has validators which takes a policy from the user and the request from a service and compares the two. We assume a trusted relationship between all entities. The validators 1) user confirmation - intrusive? 2) User data and context - fuzzy logic 3) External services - resolve issues of ownership, third parties. Dispute-clause in case validator and service does not comply, esp the latter.
- Mobile Device Security Using Transient Authentication
Using a small wearable device which is kept within proximity from the bigger device that is protected. Token. Authentication is continuous. Principles 1) Tie capabilities to users 2) do no harm 3) secure and restore on people time 4) Ensure explicit consent. Threat model focus on physical possession of a mobile device. Still succeptible to wormhole attacks. KEK on token. Used to create keys used on the mobile device. Keys are cached in clear on the device. Flushed when token is out of reach. KEK protected by PIN. Securing state: 1) Persistent storage - disk and other media 2) Virtual memory - RAM 3) CPU and chipset registers and caches - TLB code cache 4) Peripherals - usb, network cards 5) Displays - video frame buffer. Application-aware mechanisms through an API where apps can specify which part of its memory that is "high security" and should be encrypted when token is out of range.
- A Middleware Infrastructure for Active Spaces
About Gaia meta-operating system coordinates software entities and networked devices in a physical space. Enable development of user-centric, context-sensitive, multidevice mobile applications. Strenght lies with interaction. Gaia kernel - component management. 1) Event manager - mediate component changes 2) Context service - components can provide (sensors, room conditions, etc) and subscribe (applications) to context information. Make use of Context(type, subject, relater (verb, >=), object). Boolean algebra. 3) Presence service - maintains soft-state about software (digital) and components (physical). 4) Space repository - a list of all components that are available in a particular active space. 5) Context File System - avoid manual transfer of data between environments. Make the personal data available where the user is. Retrieve data based on preferences through dynamic data types. Virtual directories. Presents context as directories /location:/RM2401/situation:/meeting. Ignores irrelevant but valid context information. Order of contexts is irrelevant too. - Application framework: adapted MVC to split view to a different component (or multiple components). Uses a mapping descriptor which describes the capabilities and requirements of the application (screen size, input formats, etc). Changes to MVC 1) presentation component (not only visual) 2) input may be hardware and software 3) input sensor is space-time-sharing (move input to PDA, display on big screen). Scripting language is used to instantiate applications in active space. Declarative and small. Manipulated powerpoint to present on a different screen. Loaded from CFS.
- System Software for Ubiquitous Computing
Paper aims to summarize current status of #ubicomp. Characteristics 1) Physical integration - Boundary principle (often physical, developer should distinguish relevant content, not constrain interoperability) 2) Spontaneous interoperation - components join and leave continuously, components may change functionality and identity over time. Desirable. Volatility principle (hw and sw is highly dynamic and unpredictable, some part governs overall execution), incrementally and over time. Semantic Rubicon - when the software developer moves the responsibility of a decision from the software to the user. 1) Discovery and interaction - not all combinations makes sense, takes time, requires some form of association, pubsub 2) Adaptation - battery-life, available resources, n-to-n relationships, adjusting layout to available screens, require invisibility (not there yet), UI transformations 3) Integration with the phsyical world - sw deal with sensors, framework for sharing sensor data, location tracking 4) Programming frameworks - legacy applications, leverage existing OSs, moving sw objects around, multi-user per device, Gaia 5) Robustness and routine failures - wireless connectivity and mobile devices, unpredictable loss of connections, failures are not rare, transient failures can denote steady-state operation, expiration-based (central directory, continuous advertising), clear separation between what must succeed and what can fail, group communication through the Boundary principle. 6) Security - protect components from each other, privacy (location), trust, short-lived cryptographic keys through physical short-range registration, think about resource-poor devices, firewall inappropriate as we want to share "home" resources with visitors, often assume all in same environment.
- Project Aura: Toward Distraction-Free Pervasive Computing
Aim is to lower demand for user-attention by being proactive and self-tuning. Cyber foraging: amplify capabilities by offloading to a surrogate. Use staging to minimize latency through coarse-grained offloading (subtree of filesystem). Wireless bandwidth advisor estimates available wireless resources (takes noise, competing traffic, and cross-cell interference into account). Location-sensing through access-points. Requires known positions of APs and a training set to compare noise-signal ratio. Capturing user intent: maintain notion of task (called Prism). Aggregation of abstract services denote a user task. Use context observations from the environment. Env management infrastructure assists with resource monitoring and adaptation.
- Social Serendipity: Mobilising Social Software
Use bluetooth to create a local social network service. Exchange profiles on proximity. Situated introductions. Privacy concerns as users are being constantly monitored (their location). Human-machine interaction - notify users about local physical resources (a restroom). Role-based access control.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment