Intelligent Devices as Symmetric Partners for End--to--end Data Flows
Abstract:
The recent emergence of end-to-end services and multimedia networking
applications has led to the desire to support data flows between
arbitrary devices. Connecting heterogeneous devices presents an
$N\times{}N$ programming problem since each device must be able to
interface with each other device, as well as with code modules that
transform the data stream. This paper defines a partner
architecture that allows the application builder to connect devices to
each other---as well as to code modules that transform the data---by
wrapping both modules and device drivers in a common
interface. Moreover, this interface is symmetric in the sense
that the device on either side may be either the master or the
slave. The paper demonstrates the generality of the partner
architecture by giving examples of how video, audio, filesystem,
network, and sockets ``devices'' use the interface. It also presents
performance numbers that show that the overhead imposed by the
architecture is very small.