  Component-based development is challenging in a distributed setting, for
starters considering programming a task may involve the assembly of
loosely-coupled remote components. In order for the task to be fulfilled, the
supporting interaction among components should follow a well-defined protocol.
In this paper we address a model for message passing component-based systems
where components are assembled together with the protocol itself. Components
can therefore be independent from the protocol, and reactive to messages in a
flexible way. Our contribution is at the level of the type language that allows
to capture component behaviour so as to check its compatibility with a
protocol. We show the correspondence of component and type behaviours, which
entails a progress property for components.
