Software ConnectorsWhat is a Software Connector?Where are Connectors in Software Systems?Implemented vs. Conceptual ConnectorsImplemented vs. Conceptual Connectors (cont’d)Reasons for Treating Connectors IndependentlyTreating Connectors Independently (cont’d)Benefits of First-Class ConnectorsAn Example of Explicit ConnectorsAn Example of Explicit Connectors (cont’d)Software Connector RolesConnectors as CommunicatorsConnectors as CoordinatorsConnectors as ConvertersConnectors as FacilitatorsConnector TypesA Framework for Classifying ConnectorsProcedure Call ConnectorsEvent ConnectorsData Access ConnectorsLinkage ConnectorsStream ConnectorsArbitrator ConnectorsAdaptor ConnectorsDistributor ConnectorsDiscussionSlide 27Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.Software ConnectorsSoftware ArchitectureLecture 72Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureWhat is a Software Connector?Architectural element that modelsInteractions among componentsRules that govern those interactionsSimple interactionsProcedure callsShared variable accessComplex & semantically rich interactionsClient-server protocolsDatabase access protocolsAsynchronous event multicastEach connector providesInteraction duct(s)Transfer of control and/or data3Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureWhere are Connectors in Software Systems?Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.4Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureImplemented vs. Conceptual ConnectorsConnectors in software system implementationsFrequently no dedicated codeFrequently no identityTypically do not correspond to compilation unitsDistributed implementationAcross multiple modulesAcross interaction mechanisms5Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureImplemented vs. Conceptual Connectors (cont’d)Connectors in software architecturesFirst-class entitiesHave identityDescribe all system interactionEntitled to their own specifications & abstractions6Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureReasons for Treating Connectors IndependentlyConnector ComponentComponents provide application-specific functionalityConnectors provide application-independent interaction mechanismsInteraction abstraction and/or parameterizationSpecification of complex interactionsBinary vs. N-aryAsymmetric vs. SymmetricInteraction protocols7Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureTreating Connectors Independently (cont’d)Localization of interaction definitionExtra-component system (interaction) informationComponent independenceComponent interaction flexibility8Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureBenefits of First-Class ConnectorsSeparate computation from interactionMinimize component interdependenciesSupport software evolutionAt component-, connector-, & system-levelPotential for supporting dynamismFacilitate heterogeneityBecome points of distributionAid system analysis & testing9Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAn Example of Explicit ConnectorsSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.10Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAn Example of Explicit Connectors (cont’d)??Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.11Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureSoftware Connector RolesLocus of interaction among set of componentsProtocol specification (sometimes implicit) that defines its propertiesTypes of interfaces it is able to mediateAssurances about interaction propertiesRules about interaction orderingInteraction commitments (e.g., performance)RolesCommunicationCoordinationConversionFacilitation12Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnectors as CommunicatorsMain role associated with connectorsSupportsDifferent communication mechanismse.g. procedure call, RPC, shared data access, message passingConstraints on communication structure/directione.g. pipesConstraints on quality of servicee.g. persistenceSeparates communication from computationMay influence non-functional system characteristicse.g. performance, scalability, security13Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnectors as CoordinatorsDetermine computation controlControl delivery of dataSeparates control from computationOrthogonal to communication, conversion, and facilitationElements of control are in communication, conversion and facilitation14Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnectors as ConvertersEnable interaction of independently developed, mismatched componentsMismatches based on interactionTypeNumberFrequencyOrderExamples of convertersAdaptorsWrappers15Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnectors as FacilitatorsEnable interaction of components intended to interoperateMediate and streamline interactionGovern access to shared informationEnsure proper performance profilese.g., load balancingProvide synchronization mechanismsCritical sectionsMonitors16Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnector TypesProcedure callData accessEventStreamLinkageDistributorArbitratorAdaptor17Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureA Framework for Classifying ConnectorsSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.18Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureProcedure Call
View Full Document