In this paper we present a coordination model for component-based software
systems based on the notion of
mobile channels, define it in terms of a compositional trace-based semantics,
and describe its implementation in the Java language.
Channels allow anonymous, and point-to-point communication among components,
while mobility allows dynamic
reconfiguration of channel connections in a system. This model supports
dynamic distributed systems where components can be mobile. It provides an
efficient way of interaction among components. Furthermore, our model provides
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 manner.
Our description of the Java implementation of
this coordination model demonstrates that it is self-contained enough for
developing component-based systems in object-oriented languages.
However, if desired, our model can be used as a basis to extend other models
that focus on other aspects of components that are less concerned with composition
and coordination issues.