Software Connector
- Perform and regulate interactions between components
- A connector couples two or more components to perform transfers of data and control
- Connectors are a model of static and dynamic aspects of the interaction between component interfaces
- Connectors model interactions between components Connectors are built with (very complex) components
- Connectors are not usually directly visible in the code (e.g., linkage between modules, connections across the network, configurations of server addresses)
Stream Connector
- Streams are used perform transfers of large amount of data between autonomous processes (communication).
- Streams are also used in client-server systems with data transfer protocols to deliver results of computations. Streams may provide unidirectional or bidirectional data transfer.
Examples of Stream connector
- Data streams let a pair of components exchange an infinite sequence of messages (discrete streams) or data (continuous streams, like video/audio)
- A streaming connector may buffer data in transit and provide certain reliability properties
- Streams are mostly used to set up pipelines in the pipe/filter architectural style
- Examples of stream connectors are Unix Pipes, TCP/UDP communications
Linkage Connector
- Linkage connectors are used to die the system components together and hold them in such a state during their operation and interaction.
- Linkage connectors enable the establishment of ducts, identified as primitives of connectors that form the channels for communication and coordination which are then used by more functional connectors to enforce interaction semantics.
- Examples of linkage connectors are C export mechanism and Java dynamic class loader.
Load Unload Call Read/Write
- Statically Linking components enables them to call each other, but also to share data in the same address space
- Dynamic linking also enables the components to be loaded and unloaded without stopping the whole system