To mediate interactions among components To provide auxiliary mechanisms for interaction Impact aggregate system properties Liveness, throughput, dependability, evolvability
Support in software architecture techniques Modeling [AG97], middleware support [MMR02]
Complementary approaches
Middleware (ORB), standards (e.g. COM, J2EE)
Towards Richer Connectors Focus on connectors
Component scale, complexity requires greater distribution Complexity of interactions a bigger concern than complexity of algorithms
Simple connectors
Procedure calls, module dependencies, pipes
Complex connectors
DNS, remote procedure calls, repository access
State-of-the-art in software connectors
Model arbitrarily complex - implement simple ones
Interaction Services (MMP00) Communication
Transmission of data
Coordination
Exchange of control
Conversion
Transform interactions to remedy heterogeneity
Facilitation
Streamline interactions for interoperation
Classification Framework
Connector Taxonomy
Hybrid Connectors Real-world situations often require sophisticated connectors
E.g. RPC with privacy and integrity Hard to systematically compose hybrid connectors
Integration issues
Interoperability of connectors Mismatching assumptions about interaction Cause for project failures [GAO95, GB98]
Composing Hybrid Connectors First order
Does not combine connector types e.g. objectoriented method call
Higher order
Combine dimensions from different connector types e.g. RPC, SSL
Not all combinations of dimensions result in meaningful, or safe connectors Taxonomy provides empirical rules of compatibility between connector dimensions
Connector Compatibility Rules Cautions (?)
Certain combination of dimensions required to be used in conjunction are unsafe
Requires (=)
Dimensions required to be used in conjunction, no unsafe combinations
Restricts (:)
Dimensions may be combined, some combinations are unsafe
Taxonomy applied to architecture of Linux [MMP00] Sparser reflexive sections reflect lack of known incompatibilities Rich constraints indicate greater cohesion and stability
Compatibility constraints
Rule out potentially unstable connector species Create higher-order connectors using transitive application of constraints
Current Status/Future Work Publication
N. R. Mehta & N. Medvidovic. Understanding software connector compatibilities using a connector taxonomy, SoDA ’02, Bangalore, India
ACTiVE
Expert knowledge capture tool for connector compatibilities Design guidance using compatibility matrix
Alfa
Composition of architectural style elements including connectors from architectural primitives (http://sunset.usc.edu/~softarch/Alfa)