iStuff Event Abstraction Layer: Eliminating Infrastructure Dependency for Flexible Interoperation


Overview

The iStuff project explores how to enable post-desktop user interface researchers to quickly prototype and integrate physical interfaces into their application environments. A key question that has emerged from this line of research is how to get heterogeneous devices and applications to interoperate without a priori knowledge of each other. This question of dynamic ad-hoc system composition and interoperability has broad implications outside of the physical toolkit domain. Many researchers have pondered this topic.

One promising technique that has been introduced is intermediation as in the Patch Panel. One of the main drawbacks of this technique is that it imposes a particular choice of an infrastructure on the user, namely the Event Heap. While the Event Heap has many good characteristics including robustness, supporting heterogeneity, it's central server architecture makes it vulnerable to scaling issues. As load on the central server increases, the performance of the system decreases.

The choice of infrastructure and system architectures have significant impact on human factors issues. Specifically, lag has been shown to be a critical component in human task performance (MacKenzie, Ware), (Stochastic Lag project).

Ubiquitous computing infrastructure research has brought forth many promising infrastructure technologies. Each infrastructure brings its own set of strengths and weaknesses. Many of these infrastructures employ event publish / subscribe semantics. (Johanson - the Event Heap)

Event-based architectures have been demonstrated to be useful in a wide range of applications. The benefits of event-based architectures from a software engineering standpoint have been well explored by Taylor (C2). Events have also been demonstrated to be well suited for heirarchical structuring (Myers and Kosbie), composition (Pezuch), and intermediation (ballagas).

Event-based infrastructures with publish / subscribe semantics have proven to be useful in a wide range of ubiquitous computing applications. But we have been placing false constraints on ubicomp researchers by making them choose and support a particular ubicomp infrastructure that best suits most of their needs.

In addition, many researchers who would like to experiment with iStuff already have existing infrastructure technology that they are invested in. It is unreasonable to ask them to discard there current infrastructure in exchange for the Event Heap just to get the device prototyping capability.

Additionally, there may be future infrastructure technologies that may be superior for a particular interaction scenario. Can we engineer our systems such that we can simply plug in these new infrastructure technologies without breaking the higher level application functionality.

This technique can be used to bridge systems that weren't intended to interoperate to give a superset of functionality. Example using the event abstraction layer to combine the iStuff toolkit, Papier Mache, and the Context Toolkit.


Requirements

- Applications must be device independent (From X Windows System)
- The system must be network transparent (From X Window System)
- The system must have low latency
- The system must support different qualities of service
It is difficult to implement quality of service in with standard ethernet network. One possibility is to implement event priorities, but we need provisions to prevent starvation. Events that are used for direct manipulation or contain time-sensitive information can be expedited through the system.
- The system must support multiple concurrent event streams
- The system should be extensible
- The system must support highly reconfigurable event stream routing
- The system must have flow control
- The system should allow for automatic discovery of entities to facilitate interoperability


End-to-end flow control (Heterogeneous components have different performance capabilities)
Reduction of extraneous events (no events sent on the network without subscription)
An abstraction layer that makes events not only network transparent but also mediates between disparate event tranport layers. (allows different middleware infrastructures)



System Design







Related Work


Events are good from a software engineering standpoint: Rafael Ballagas, Andy Szybalski, and Armando Fox. Patch Panel: Enabling Control-Flow Interoperability in Ubicomp Environments. In PerCom 2004 Second IEEE International Conference on Pervasive Computing and Communications, Orlando, Florida, USA, March 2004.

Events are useful for a wide range of ubiquitous computing applications:
Event based infrastructures Johanson, B. and Fox, A., The Event Heap: A Coordination Infrastructure for Interactive Workspaces, Proc. of the 4th IEEE Workshop on Mobile Computer Systems and Applications (WMCSA-2002), Callicoon, New York, USA, June, 2002.
Relevance: Infrastructure designed to facilitate distributed application cooridination. This infrastructure was also used for distributed input but proved inadequate.

Why we need to swap out infrastructures:

Distributed Interfaces Robert W. Scheifler, Jim Gettys. The X Window System. ACM Transactions on Graphics. 5(2) April, 1986.


Target Publication

PerCom 2005 - due Sept. 1 2004

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.