07 software connectors

kronat 6,652 views 27 slides Feb 16, 2011
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

No description available for this slideshow.


Slide Content

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Software Connectors
Software Architecture
Lecture 7

Software Architecture: Foundations, Theory, and Practice
What is a Software Connector?
Architectural element that models
uInteractions among components
uRules that govern those interactions
Simple interactions
uProcedure calls
uShared variable access
Complex & semantically rich interactions
uClient-server protocols
uDatabase access protocols
uAsynchronous event multicast
Each connector provides
uInteraction duct(s)
uTransfer of control and/or data 2

Software Architecture: Foundations, Theory, and Practice
Where are Connectors in Software
Systems?
3
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Implemented vs. Conceptual
Connectors
Connectors in software system implementations
uFrequently no dedicated code
uFrequently no identity
uTypically do not correspond to compilation units
uDistributed implementation
Across multiple modules
Across interaction mechanisms
4

Software Architecture: Foundations, Theory, and Practice
Implemented vs. Conceptual
Connectors (cont’d)
Connectors in software architectures
uFirst-class entities
uHave identity
uDescribe all system interaction
uEntitled to their own specifications & abstractions
5

Software Architecture: Foundations, Theory, and Practice
Reasons for Treating Connectors
Independently
Connector ¹ Component
uComponents provide application-specific functionality
uConnectors provide application-independent
interaction mechanisms
Interaction abstraction and/or parameterization
Specification of complex interactions
uBinary vs. N-ary
uAsymmetric vs. Symmetric
uInteraction protocols
6

Software Architecture: Foundations, Theory, and Practice
Treating Connectors Independently
(cont’d)
Localization of interaction definition
Extra-component system (interaction) information
Component independence
Component interaction flexibility
7

Software Architecture: Foundations, Theory, and Practice
Benefits of First-Class Connectors
Separate computation from interaction
Minimize component interdependencies
Support software evolution
uAt component-, connector-, & system-level
Potential for supporting dynamism
Facilitate heterogeneity
Become points of distribution
Aid system analysis & testing
8

Software Architecture: Foundations, Theory, and Practice
An Example of Explicit Connectors
9
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
An Example of Explicit Connectors
(cont’d)

10
??
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Software Connector Roles
Locus of interaction among set of components
Protocol specification (sometimes implicit) that defines its
properties
uTypes of interfaces it is able to mediate
uAssurances about interaction properties
uRules about interaction ordering
uInteraction commitments (e.g., performance)
Roles
uCommunication
uCoordination
uConversion
uFacilitation
11

Software Architecture: Foundations, Theory, and Practice
Connectors as Communicators
Main role associated with connectors
Supports
uDifferent communication mechanisms
e.g. procedure call, RPC, shared data access, message
passing
uConstraints on communication structure/direction
e.g. pipes
uConstraints on quality of service
e.g. persistence
Separates communication from computation
May influence non-functional system characteristics
ue.g. performance, scalability, security
12

Software Architecture: Foundations, Theory, and Practice
Connectors as Coordinators
Determine computation control
Control delivery of data
Separates control from computation
Orthogonal to communication, conversion, and
facilitation
uElements of control are in communication, conversion
and facilitation
13

Software Architecture: Foundations, Theory, and Practice
Connectors as Converters
Enable interaction of independently developed,
mismatched components
Mismatches based on interaction
uType
uNumber
uFrequency
uOrder
Examples of converters
uAdaptors
uWrappers
14

Software Architecture: Foundations, Theory, and Practice
Connectors as Facilitators
Enable interaction of components intended to
interoperate
uMediate and streamline interaction
Govern access to shared information
Ensure proper performance profiles
ue.g., load balancing
Provide synchronization mechanisms
uCritical sections
uMonitors
15

Software Architecture: Foundations, Theory, and Practice
Connector Types
Procedure call
Data access
Event
Stream
Linkage
Distributor
Arbitrator
Adaptor
16

Software Architecture: Foundations, Theory, and Practice
A Framework for Classifying
Connectors
17
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Procedure Call Connectors
18
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Event Connectors
19
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Data Access Connectors
20
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Linkage Connectors
21
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Stream Connectors
22
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Arbitrator Connectors
23
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Adaptor Connectors
24
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Distributor Connectors
25
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice
Discussion
Connectors allow modeling of arbitrarily complex
interactions
Connector flexibility aids system evolution
uComponent addition, removal, replacement,
reconnection, migration
Support for connector interchange is desired
uAids system evolution
uMay not affect system functionality
26

Software Architecture: Foundations, Theory, and Practice
Discussion
Libraries of OTS connector implementations allow
developers to focus on application-specific issues
Difficulties
uRigid connectors
uConnector “dispersion” in implementations
Key issue
uPerformance vs. flexibility
27