Understanding Software Connector Compatibilities Using a Connector ...

Report 1 Downloads 352 Views
Understanding Software Connector Compatibilities Using a Connector Taxonomy Nikunj Mehta Ph. D. Candidate

Software Architectures High-level modeling primitives „

Components, connectors, configurations [SG96]

Software connectors „ „ „

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

Prohibits (7) „

Dimensions cannot be combined

Procedure call

Data access

Arbitrator

Linkage

Stream

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

Event

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

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

: : :

:

:

? = ? ? ? = : :

= = ? : = = ? ?

=

=

: :

: = = = = = = =

: : :

:

7

? ? =

? : : :

:

= = = = = =

:

? ?

= ? 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

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)