An interaction component is a component that is responsible for realizing an interaction between two or more
components.
A UML connector denotes a link between two components, or more precisely between two or more parts (or ports of parts) within a composition. In UML, the connector only denotes that there is a connection, it does not carry further annotations that characterize the interaction or how it is implemented.
In SW Designer, a connector carries additional information (via the FCM profile) about a type or implementation
used for its realization, the interaction component.
An interaction component is quite similar to a standard component: there is an optional separation between its type and its implementation, it owns ports, it may be a composition of parts typed with other components. The main difference is that it needs to be generic, since the interaction component has to adapt itself to the environment in which it is used, e.g. to the interfaces of ports it connectors. The following figure shows a connector and the referenced connector component. The tool chain reifies a connector to a connector component during deployment, as shown in the following figure:
In order to check whether a connector can be applied, we need to find a binding of its formal template parameter(s) for which all ports of the connector match a port of the application components with which it is connected. Of course, a single binding must establish matching for all connector ports at the same time. A match is fulfilled, if either
required interfaces are swapped). The connector port is typically typed with the formal parameter, i.e. matching is reached if the formal is bound to the same type as the application port.