In this paper we advocate and promote the use of mobile channels for component-based software.
Channels allow anonymous and point-to-point communication among components, while mobility allows dynamic
reconfiguration of channel connections in a system. Models based on mobile channels provide a clear separation
between the computational part and the coordination part of a system, allowing the development and
description of the coordination structure of a system to be done in a transparent and
exogenous way. Besides promoting channels we also present such a model for component composition
and coordination that supports dynamic distributed systems where components can be mobile.
We do this by giving an implementation of mobile channels (outside components), and a basic and extendable
implementation of components that interact with each other through them (implementation within components).