Software Connector
A software connector is an architectural element that performs the transfer of control and data among components.
Connectors can provide services such as:
- Persistence
- Invocation
- Messaging
- Transaction
Software connectors are not just calls between components, such as method calls.
Connectors in an Architecture
Connectors model:
- Interactions among components.
- Rules that govern these interactions.
Simple Interactions
- Procedure calls
- Shared variable access
Complex Interactions
- Client-server protocols
- Database access protocols
- Asynchronous event multicast
Properties of Connectors
Each connector provides:
- Interaction duct(s)
- Transfer of control and/or data
Connectors are first-class entities that:
- Have their own identity.
- Describe system interactions.
- Have their own specification and abstraction.
Connectors vs. Components
| Components | Connectors |
|---|---|
| Provide application-specific functionality. | Provide application-independent interaction mechanisms. |
| Focus on functionality abstraction and/or parametrisation. | Focus on interaction abstraction and/or parametrisation. |
| Perform computation. | Handle interaction. |
| Are connected through connectors. | Connect components. |
Connectors are independent of the components they connect.
Benefits of Connectors
Connectors provide several benefits:
- Separate computation from interaction.
- Minimize component interdependencies.
- Support software evolution.
- Support evolution at component, connector, and system levels.
- Provide potential for dynamism.
- Facilitate heterogeneity.
- Become points of distribution.
- Aid system analysis and testing.