صفحه 1:
Software Connectors
Software Architecture
Lecture 7
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reser
صفحه 2:
مت
What is a Software Connector?
٠» Architectural element that models
Interactions among components
Rules that govern those interactions
e Simple interactions
* Procedure calls
Shared variable access
© Complex & semantically rich interactions
Client-server protocols
Database access protocols
Asynchronous event multicast
© Each connector provides
Interaction duct(s)
Transfer of control and/or data
صفحه 3:
ee RN ماص
Where are Connectors in Software
REAL-TIME و
Dara
XN STREAM
PIPE
DATABASE
‘ACCESS
صم سیفن مسرت عا" منک ۵ با سل ۵۵۵06 ز 0۵9۵۴ yr, Nenad Hedvidovic, and Eric M.
Systems?
\
ADT Op
AccEss
PIPE
0
۱
Impurcit |
InvocaTion\
۱
به
مايه ١ 6 ی مه Rowtesieas, Theory; nit سرعم اسل
صفحه 4:
مت
Implemented vs. Conceptual
Connectors
© 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
صفحه 5:
مت
Implemented vs. Conceptual
Connectors (cont’d)
© Connectors in software architectures
First-class entities
* Have identity
* Describe all system interaction
» Entitled to their own specifications &
abstractions
صفحه 6:
مت
Reasons for Treating Connectors
Independently
» Connector # Component
Components provide application-specific
functionality
Connectors provide application-independent
interaction mechanisms
© Interaction abstraction and/or parameterization
© Specification of complex interactions
Binary vs. N-ary
Asymmetric vs. Symmetric
Interaction protocols
صفحه 7:
مت
Treating Connectors Independently
(cont’d)
® Localization of interaction definition
° Extra-component system (interaction) information
© Component independence
© Component interaction flexibility
صفحه 8:
مت
Benefits of First-Class Connectors
© Separate computation from interaction
© Minimize component interdependencies
Support software evolution
At component-, connector-, & system-level
Potential for supporting dynamism
Facilitate heterogeneity
Become points of distribution
Aid system analysis & testing
صفحه 9:
مت
An Example of Explicit Connectors
صفحه 10:
مت
An Example of Explicit Connectors
(cont’d)
صفحه 11:
مت
Software Connector Roles
© Locus of interaction among set of components
© Protocol specification (sometimes implicit) that defines its
properties
Types of interfaces it is able to mediate
Assurances about interaction properties
* Rules about interaction ordering
Interaction commitments (e.g., performance)
* Roles
Communication
Coordination
Conversion
Facilitation
صفحه 12:
مت
Connectors as Communicators
» Main role associated with connectors
© Supports
Different communication mechanisms
* e.g. procedure call, RPC, shared data access, message
passing
Constraints on communication structure/direction
*e.g. pipes
* Constraints on quality of service
۰ 6.9.
© Separates communication from computation
» May influence non-functional system characteristics
e.g. performance, scalability, security
صفحه 13:
مت
Connectors as Coordinators
© Determine computation control
* Control delivery of data
© Separates control from computation
® Orthogonal to communication, conversion, and
facilitation
* Elements of control are in communication,
conversion and facilitation
صفحه 14:
مت
Connectors as Converters
© Enable interaction of independently developed,
mismatched components
© Mismatches based on interaction
» Type
» Number
Frequency
Order
© Examples of converters
Adaptors
Wrappers
صفحه 15:
مت
Connectors as Facilitators
© Enable interaction of components intended to
interoperate
Mediate and streamline interaction
© Govern access to shared information
Ensure proper performance profiles
* e.g., load balancing
© Provide synchronization mechanisms
* Critical sections
* Monitors
صفحه 16:
مت
Connector Types
Procedure call
Data access
Event
Stream
Linkage
Distributor
Arbitrator
Adaptor
صفحه 17:
ee RN ماص
A Framework for Classifying
Connectors
صفحه 18:
ee RN ماص
Procedure Call Connectors
Dimension Subdimenton Value |
— feterence
مده tansior—<—— Vala
Name
Beta vues
— Parametors ( —— Semantes = — Inne paramos.
tum values
sh from Lo
Invocation econ — Push from Fat
Fin tae
Entry point <—— Mae
— Metrod eat
اهروت <= oo
Invocation
— impiet =
— Asyrehronous
‘Synerwonicty —— ی
Ccarinaty سسسب Fan out
— Private
سس مور Bo
| Service Type
‘Communication
erocedure call سرح
Architecture: Foundations, Theory. and Practice: Richard W. Taylor, Nenad Medvidovic, and Eric M. Dashofy: ۵۵۵۵6 مسمس ب مسرت سیک 0۵ سل
صفحه 19:
ee RN ماص
Event Connectors
Subdimension Value
Producers
Cantinaity <— Observers,
/ Event pattems
—_— Best otfort
— Exactly once:
—— Atmos once
Atleast once
Type Dimension
Delivery —
Outing
Prionty Incoming
Synchronous
—— Asynchronous
— “Time out synchronous
— Pollew
عاك
— Central update
— Gteued dispatch
سس _
6 سک
مایم موم
Hardware <== — Intrrapts — ۷
Traps
۰ Signals
— Gut inpuvoutput
— Taggers
‘Synchronicity —==
Communication een
Notification —= بصع
Causality —
Architectures: Pmindatians, Tarary; ont Proctiee: Riekard:W: Tayler; Nenad. Haditeavie, ۳ سا ده 8 ی ند 00 اه
صفحه 20:
ee RN ماص
Data Access Connectors
Service Type Dimension Subdimension Value
— Thread specie
— Process speciic
—— Glebat
= —— Accessor
Access —— سح Mutator
— Locality عب
Register
Cache
DMA
Heap
Stack
Repository access
File vO
Dynamic data exchange
Dataase Access
—— Private
Protected
تا
‘Communication
۳ مه امه
Accessibility —
۳ لشم
سس Litecycle
Detines ——
— Cardinalty
Arebisoctine: Rowndesioas; Theory; ant Proctice: Scher W: Toy er; Vened Wachee; nnd Erk 17: ماهم ١ 668006 مس هتس منهج سكع مان حك
صفحه 21:
ee RN ماص
Linkage Connectors
Service Type Dimension Subdimension Value — |
1 ٩م
الا سس 890160006 ل
7 unit Variable
2 1 وم
_ Granularty ی > مک سس
Ce ve Gonstant
|) Fecttaion Linkage < Semantic Type
- Detnes
Uses
— Cacinaity <—— HSS
Requires
0 |
۳ anime
=o Pre-compie-time
21
Architecture: Foundations, Theory. and Practice: Richard W. Taylor, Nenad Medvidovic, and Eric ۷۰ و0۵۵۵
صفحه 22:
ee RN ماص
Stream Connectors
Service Tine Dimension ‘Subdimension Value
Buttering ——
— Atomic unis
— fight unas
— siaoiess
ae نت
Tougeout —
— Names
amt میا
ملع الما
سس سح واه مرو
م19
Bias — م۱
cantoasy < — ut sender —\
م٩ —t
سا ده 8 ی ند 00 اه 8142 ما۱ مس هار۳ ۸ سک رم مره ی ما۳ و 1ج
صفحه 23:
ee RN ماص 1
Arbitrator Connectors
[Series Tipe
Soortination itor (
action
صفحه 24:
ee RN ماص
Adaptor Connectors
Service Type Dimension Subdimension Value
Address mapping
Invocation <—— Marshalling
Translation
conversion
—— Wrappers
Packaging _ Packagers
conversion’
Protocol
conversion
|] Conversion Adaptor.
Prosentation
conversion
24
¢ Architecture: Foundations, Theory, and Practice; Richard W. Taylor, Nenad Hedvidovic, and Eric M. Dashoty; 6 نان bie Why B Com, he. pena ih ere
صفحه 25:
ee RN ماص
Distributor Connectors
Service Type Dimension Subdimension Value
—— Structure basea << figrarehical
— Naming <
/ — attbute based
— Best ation
- لي once
7 Semantics <= at most once
Facilitation Distributor < — Atleast once
\ Unicast
Multicast
~— Broadcast
_— Bounded
— Ad-hoc
~ Static
Cached
Dynamic
Mechanism <
25
¢ Architecture: Foundations, Theory, and Practice; Richard W. Taylor, Nenad Hedvidovic, and Eric M. Dashoty; 6 نان bie Why B Com, he. pena ih ere
صفحه 26:
مت
Discussion
© 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
صفحه 27:
مت
Discussion
© Libraries of OTS connector implementations allow
developers to focus on application-specific issues
© Difficulties
* Rigid connectors
* Connector “dispersion” in implementations
© Key issue
» Performance vs. flexibility