In this talk, we discuss our on-going work on the formal specification of Reo. Reo is a paradigm for composition of software components based on the notion of mobile channels. The main focus of attention in Reo is the channels and operations on them, not the processes that operate on them or the components that they are connected to. The composition operations in Reo combine various channel types to produce complex dynamic topologies of ``connectors'' to which processes or components can be attached.
Channel composition in Reo is a very powerful mechanism for construction of connectors. For instance, we have demonstrated that exogenous coordination patterns that can be expressed as (meta-level) regular expressions over I/O operations can be composed in Reo out of a small set of only five primitive channel types.