Software Connector
Connectors in software system implementations
Frequently no dedicated code
Frequently no identity
Typically do not correspond to compilation units
Distributed implementation
Across multiple modules
- Across interaction mechanisms
- Perform and regulate interactions between components
- 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)
Components vs. Connectors
- Components can be mapped to specific code artifacts (e.g., compilation units, deployment packages)
- Connectors are not usually directly visible in the code (e.g., linkage between modules, connections across the network, configurations of server addresses)
- Components can be both application-specific or application-independent (infrastructure)
- Connectors are mostly application-independent
Connectors are Abstractions
- Connectors model interactions between components
- Connectors are built with (very complex) components
Roles
Communication
Coordination
Conversion
Facilitation
Event–Based Connectors
- Event connectors are similar to procedure call connectors in that they model the flow of control among components (communication).
- In this case, the flow is precipitated with an event.
- Messages containing a description of the event can be generated upon the occurrence of a single event or a specific pattern of events.
- The contents of an event message can be structured to contain information about the event and other application specification information (communication).
- An example of this connector type are GUI events. Some events like page fault are caused by hardware.
Distributor:
- Distributed systems require identification of component locations and interaction paths to them based on symbolic names.
- Distributor connector perform the identification of interaction paths and subsequent routing of communication and coordination information among components along these paths (facilitation) Examples are Domain Name Service.
- Connectors define the points of distribution at designtime so that components can be deployed over multiple physical hosts at run-time.
- Connectors allow modeling of arbitrarily complex interactions
Connector flexibility aids system evolution
Component addition, removal, replacement, reconnection, migration
- Support for connector interchange is desired
Aids system evolution May not affect system functionality
Client Server Style
Summary:
- Client initiates communication by sending server a request.
- Server performs the requested action and replies.
Design elements:
• Components: client(s) and server
• Connectors: remote procedure call, network protocols
• Data: parameters and return values
Topology:
- Two-level, multiple clients making requests to server
- No client-client communication
Examples
Centralization of data is required
Server: high-capacity machine (processing power)
Clients: simple UI tasks
Many business applications − 2IIC0 “Business Information Systems” SfS, WbS:Y3Q1