Understanding Software Connector Compatibilities

download Understanding Software Connector Compatibilities

of 12

Transcript of Understanding Software Connector Compatibilities

  • 7/28/2019 Understanding Software Connector Compatibilities

    1/12

  • 7/28/2019 Understanding Software Connector Compatibilities

    2/12

    Software ArchitecturesHigh-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)

  • 7/28/2019 Understanding Software Connector Compatibilities

    3/12

    Towards Richer ConnectorsFocus on connectors

    Component scale, complexity requires greaterdistribution

    Complexity of interactions a bigger concern thancomplexity 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

  • 7/28/2019 Understanding Software Connector Compatibilities

    4/12

    Interaction Services (MMP00)Communication

    Transmission of data

    Coordination

    Exchange of controlConversion

    Transform interactions to remedy heterogeneity

    Facilitation

    Streamline interactions for interoperation

  • 7/28/2019 Understanding Software Connector Compatibilities

    5/12

    Classification Framework

  • 7/28/2019 Understanding Software Connector Compatibilities

    6/12

    Connector Taxonomy

  • 7/28/2019 Understanding Software Connector Compatibilities

    7/12

    Hybrid ConnectorsReal-world situations often requiresophisticated connectors

    E.g. RPC with privacy and integrity

    Hardto systematically compose hybrid connectorsIntegration issues

    Interoperability of connectors

    Mismatching assumptionsabout interaction

    Cause for project failures [GAO95, GB98]

  • 7/28/2019 Understanding Software Connector Compatibilities

    8/12

    Composing Hybrid ConnectorsFirst order Does not combine connector types e.g. object-

    oriented method call

    Higher order Combine dimensions from different connector

    types e.g. RPC, SSL

    Not all combinations of dimensions result inmeaningful, or safeconnectorsTaxonomy provides empirical rules ofcompatibility between connector dimensions

  • 7/28/2019 Understanding Software Connector Compatibilities

    9/12

    Connector Compatibility RulesCautions (?) 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

  • 7/28/2019 Understanding Software Connector Compatibilities

    10/12

    Linkage

    Parameters

    Entrypoint

    Invocation

    Synchronicity

    Cardinality

    Accessibility

    Cardinality

    Delivery

    Priority

    Synchronicity

    Notification

    Causality

    Mode

    Locality

    Mode

    Availability

    Accessibility

    Cardinality

    Delivery

    Format

    Directionality

    Cardinality

    State

    Granularity

    Cardinality

    Resolution

    Faulthandling

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

    Causality ? =

    Mode ? =

    Locality ? :

    Mode : : : = ? =

    Availability = = ?

    Accessibility : = =

    Cardinality = = ?Delivery 7 = = 7

    Format =

    Directionality = =

    Cardinality : : = ?

    State = = =

    Granularity = =

    Cardinality =

    Resolution = =

    Fault handling = = = = =

    Concurrency ? = ?

    Transactions = = = ?

    Logging = = = = = = = = = = = = ? = =

    Security = = = :

    Scheduling

    Pooling

    Invocation = 7 = = =

    Data = 7 = = = =Presentation = = ? 7 = ? =

    Deployment = = =

    Naming = = ? = = =

    Delivery = = = =

    Routing =

    Adaptor

    Distributor

    Adaptor Distributor

    Arbitrator

    Data access Arbitrator

    Linkage

    Stream

    Stream

    Data access

    Event

    Procedure

    call

    Event

    Procedure call

  • 7/28/2019 Understanding Software Connector Compatibilities

    11/12

    Applications/EvaluationStability 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

  • 7/28/2019 Understanding Software Connector Compatibilities

    12/12

    Current Status/Future WorkPublication N. R. Mehta & N. Medvidovic. Understanding

    software connector compatibilities using aconnector taxonomy, SoDA 02, Bangalore, India

    ACTiVE Expert knowledge capture tool for connector

    compatibilities

    Design guidance using compatibility matrixAlfa Composition of architectural style elements

    including connectors from architectural primitives(http://sunset.usc.edu/~softarch/Alfa)