Home > Terminology

Remarks concerning terminology

A channel has exactly two directed ends. There are two types of channel ends: source and sink. A source end enables its channel to acquire data items by allowing them to flow into the channel. Similarly, a sink end enables its channel to dispense data items by allowing them to flow out of the channel. As such, a source end plays the role of an input source for its channel, and a sink end plays the role of an output sink for its channel.

Quite naturally, the roles that source and sink ends play are reversed for an external entity that uses a channel: the external entity can use a source end only for output, and a sink end only for input. Thus, whether a source or a sink end is used for input or output depends on the vantage point of the entity that performs an I/O operation on that channel end: a channel uses its source end for its input, whereas an external entity uses that same end for its output; a channel uses its sink end for output, whereas an external entity uses that same end for its input.

Because in our presentation here we focus only on Reo channels and connectors (as opposed to the external entities that use them), unless stated otherwise, our vantage point is always that of channels and connectors. Therefore, for convenience, we use the terms input and output to refer to source and sink, respectively.