The original vision of ubiquitous computing [14] is about en- abling people to more easily accomplish tasks through the seamless in- terworking of the physical environment
and a computing infrastructure. A major challenge to the practical realization of this vision involves the integration of
commercial-off-the-shelf (COTS) hardware and software components: consider the awkwardness of such a mundane task as ex- porting
a textual memo written on a Palm Pilot to a Microsoft Word document. It is not enough to overcome the protocol and data format
mismatches that currently impede the interoperation of these entities: for the user experience to be truly seamless, we must
provide a framework for the dynamic connection of such endpoints on demand, to support the ad-hoc interactions that are an
integral part of ubiquitous compu- ting. To this end, we offer a dynamic mediation framework called Paths. A Path consists
of dynamically instantiated, automatically composable operators that bridge datatype and protocol mismatches between com-
ponents wishing to communicate. Because operator composability is in- ferred from the type system, adding support for a new
type of endpoint requires only incremental work; because the control and data flow for Pa- ths are largely decoupled from
the communicating endpoints, it is easy to connect COTS or legacy components. We describe the Paths archi- tecture, our prototype
implementation, and our experience and lessons based on several production applications built with the framework, and outline
some continuing work on Paths in the context of the Stanford Interactive Workspaces project.
Keywords Ubiquitous Computing - Automatic Mediation - Service Composition - Ad-hoc Applications - Software Infrastructure