Sei sulla pagina 1di 12

Understanding Software Connector Compatibilities Using a Connector Taxonomy

Nikunj Mehta Ph. D. Candidate

Software Architectures
High-level modeling primitives

Components, connectors, configurations [SG96] To mediate interactions among components To provide auxiliary mechanisms for interaction Impact aggregate system properties
Liveness, throughput, dependability, evolvability

Software connectors

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 Procedure calls, module dependencies, pipes DNS, remote procedure calls, repository access Model arbitrarily complex - implement simple ones

Simple connectors

Complex connectors

State-of-the-art in software connectors

Interaction Services (MMP00)


Communication

Transmission of data Exchange of control Transform interactions to remedy heterogeneity Streamline interactions for interoperation

Coordination

Conversion

Facilitation

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 Interoperability of connectors Mismatching assumptions about interaction Cause for project failures [GAO95, GB98]

Integration issues

Composing Hybrid Connectors


First order

Does not combine connector types e.g. objectoriented method call Combine dimensions from different connector types e.g. RPC, SSL

Higher order

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 Dimensions required to be used in conjunction, no unsafe combinations Dimensions may be combined, some combinations are unsafe Dimensions cannot be combined

Requires (=)

Restricts (:)

Prohibits (7)

Procedure call

Event

Data access

Stream

Linkage

Arbitrator

Adaptor

Distributor

Procedure call

Event

Data access

Stream

Linkage

Arbitrator

Adaptor

Distributor

Parameters Entry point Invocation Synchronicity Cardinality Accessibility Cardinality Delivery Priority Synchronicity Notification Causality Mode Locality Mode Availability Accessibility Cardinality Delivery Format Directionality Cardinality State Granularity Cardinality Resolution Fault handling Concurrency Transactions Logging Security Scheduling Pooling Invocation Data Presentation Deployment Naming Delivery Routing

Parameters Entry point Invocation Synchronicity Cardinality Accessibility Cardinality Delivery Priority Synchronicity Notification Causality Mode Locality Mode Availability Accessibility Cardinality Delivery Format Directionality Cardinality State Granularity Cardinality Resolution Fault handling Concurrency Transactions Logging Security Scheduling Pooling Invocation Data Presentation Deployment Naming Delivery Routing

= = = ? ? = ? = = = = = = :

? = ? ? ? = : : = : : : : :

= = ? : = = ? ?

: : :

: = = = = = = =

? ? =

? : : : : = = = = = = 7 = = = = ? = = = = = = = = ? : = ? ? ? = =

7 =

: = =

= =

= =

= ? = = = = = = = = =

= = = = =

= =

= =

? ?

= = = = ? = ?

7 7 = = = 7 = =

= = ? =

= = = =

= =

= =

= = =

Applications/Evaluation
Stability of taxonomy

Taxonomy applied to architecture of Linux [MMP00] Sparser reflexive sections reflect lack of known incompatibilities Rich constraints indicate greater cohesion and stability Rule out potentially unstable connector species Create higher-order connectors using transitive application of constraints

Compatibility constraints

Current Status/Future Work


Publication

N. R. Mehta & N. Medvidovic. Understanding software connector compatibilities using a connector taxonomy, SoDA 02, Bangalore, India Expert knowledge capture tool for connector compatibilities Design guidance using compatibility matrix Composition of architectural style elements including connectors from architectural primitives
(http://sunset.usc.edu/~softarch/Alfa)

ACTiVE

Alfa

Potrebbero piacerti anche