This projects develops a middleware platform for ubiquitous computing, which bears the same name as the project. STITCH enables the development and deployment of ubiquitous user-centric and context-aware applications. These systems are built from distibuted components which are highly heterogeneous, covering a large range of hardware configurations, from sensors to computers, and with software ranging from embedded software with small footprint to larger scale services. STITCH answers the essential need to provide infrastructure support to express system behaviors across such components.

Our approach relies on an integrated view of distributed events and transactional resource manipulation. The former is well-suited to loosely couple small devices, while the latter allows for verification of distributed conditions and coordination of actions.

Technical underpinnings

STITCH combines two fundamental paradigms: resource-based programming and event-based programming. Our resource-based programming model has been borrowed from the CLF model, previously developed at XRCE. CLF defines a model where components are resource managers and where the only thing visible (at least in principle) to the outside from a component is an evolving set of resources. Resources may represent either data or actions that are triggered inside the components when a resource is removed or added by an action from the outside. Coordinated actions on groups of components are handled by special components called Coordinators, whose role it is to interpret scripts that describe the overall behaviour of a system. Important features of the CLF model are that resources are distributed over potentially large set of componets that may run in a widely distributed environment, and that the manipulation of resources is transactional, which provides to desired levels of robustness.

The event-based part of STITCH implements a more traditional subscribe/notify mechanism, with the additional benefit that the event handlers may be distributed and structured, and exchange events among themselves in a coordinated manner - using the mechanisms for resource manipulation described above.

STITCH is currently used in-house in several of our projects: MILK, Contact, and ANT.

For further contact about the project, please contact Francois Pacull