Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Architecture Representation
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Component Design and Separation of Concern Designing involve: – Coming up with “application” functional components & – Integrating these functional components:
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Chapter 9: The Client/Server Database Environment
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Lecture The Client/Server Database Environment
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
The Client/Server Database Environment
Introduction to Software Architecture Sam Malek CS 795 / SWE 699 Spring 2010 George Mason University.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Ryan McAlister CONNECTORS. Introduction Integration and interaction As important as developing functionality More challenging decisions Transfer control.
Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in.
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
An Introduction to Software Architecture
Database System Concepts and Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architecting Web Services Unit – II – PART - III.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
Enterprise Integration Patterns CS3300 Fall 2015.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Introduction to Grids By: Fetahi Z. Wuhib [CSD2004-Team19]
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Basic Concepts and Definitions
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
1 A Multi-Paradigm Approach to Describe Software Systems presented by Adel Smeda.
Software Architecture Week 4, Lecture 1
Chapter 2 Database System Concepts and Architecture
The Client/Server Database Environment
Software Connectors.
Software Design and Architecture
Distribution and components
Chapter 9: The Client/Server Database Environment
Ch > 28.4.
Software Connectors – A Taxonomy Approach
Software Connectors.
Inventory of Distributed Computing Concepts
Software Connectors.
An Introduction to Software Architecture
Software Connectors.
Software Connectors.
Computer Networking A Top-Down Approach Featuring the Internet
Software Architecture Lecture 7
Software Architecture Lecture 7
Design Yaodong Bi.
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Software Connectors

What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern those interactions Connector offers – Simple interactions Procedure calls Shared variable access – Complex & semantically rich interactions Client-server protocols Database access protocols Asynchronous event multicast Connector provides – Interaction duct(s) – Transfer of control and/or data

Implemented vs. Conceptual Connectors 3 Connectors in software system implementations – Frequently no dedicated code – Frequently no identity – Typically do not correspond to compilation units – Distributed implementation Across multiple modules Across interaction mechanisms

Implemented vs. Conceptual Connectors (cont’d) 4 Connectors in software architectures – First-class entities – Have identity – Describe all system interaction – Entitled to their own specifications & abstractions

Reasons for Treating Connectors Independently 5 Connector  Component – Components provide application-specific functionality – Connectors provide application-independent interaction mechanisms Interaction abstraction and/or parameterization Specification of complex interactions – Binary vs. N-ary – Asymmetric vs. Symmetric – Interaction protocols

Treating Connectors Independently (cont’d) 6 Localization of interaction definition Extra-component system (interaction) information Component independence Component interaction flexibility

Software Connector Roles 7 Locus of interaction among set of components Protocol specification (sometimes implicit) that defines its properties – Types of interfaces it is able to mediate – Assurances about interaction properties – Rules about interaction ordering – Interaction commitments (e.g., performance) Roles – Communication – Coordination – Conversion – Facilitation

Connectors as Communicators 8 Main role associated with connectors Supports – Different communication mechanisms e.g. procedure call, RPC, shared data access, message passing – Constraints on communication structure/direction e.g. pipes – Constraints on quality of service e.g. persistence Separates communication from computation May influence non-functional system characteristics – e.g. performance, scalability, security

Connectors as Coordinators 9 Determine computation control Control delivery of data Separates control from computation Orthogonal to communication, conversion, and facilitation – Elements of control are in communication, conversion and facilitation

Connectors as Converters 10 Enable interaction of independently developed, mismatched components Mismatches based on interaction – Type – Number – Frequency – Order Examples of converters – Adaptors – Wrappers

Connectors as Facilitators 11 Enable interaction of components intended to interoperate – Mediate and streamline interaction Govern access to shared information Ensure proper performance profiles – e.g., load balancing Provide synchronization mechanisms – Critical sections – Monitors

Connector Types 12 Procedure call Data access Event Stream Linkage Distributor Arbitrator Adaptor

An Example of Connectors “Components A and B communicate via a Unix pipe” Pipe – unformatted byte stream Single interactional channel or duct - What does it mean? Unidirectional Data Transfer Cardinality- Single Sender & Single Receiver Low Coupling No Buffering 13

An Example of Connectors (cont’d) Change the nature of data from unformatted byte stream to discrete, typed packets. Event Bus connector Similar properties – loose component coupling, asynchronous communication EBC- on the fly establishment of ducts and single event sender, multiple observers 14

Benefits of First-Class Connectors 15 Separate computation from interaction Minimize component interdependencies Support software evolution – At component-, connector-, & system-level Potential for supporting dynamism Facilitate heterogeneity Become points of distribution Aid system analysis & testing

Framework for Connector Classification Each Connector is identified by a primary service category Common Characteristics – Top of the framework Variations – Lower Layers Service categories, Connector Types, Dimensions (Sub dimension) and values for dimensions Service Category – Broad interaction role Architecturally relevant detailscaptured through dimension Lowest Layer – set of values a dimension can take.

A Framework for Classifying Connectors 17

Procedure Call Connectors 18

Event Connectors 19

Stream Connectors 20

Data Access Connectors 21

Adaptor Connectors 22

Linkage Connectors 23

Distributor Connectors 24

Arbitrator Connectors 25

Connector Types - Summary Procedure Call – Enable the transfer of control and data through various forms of invocation Event - Support the transfer of data and control using an implicit mechanism, where the producer and consumer of an event are not aware of each other’s identity Stream - Support the exchange of a sequence of data between loosely coupled producer and consumer components Data Access - Used to access a data store, such as a SQL database, the file system, or a repository such as the Windows registry Adaptor - Retrofit components with different interfaces so that they can interact Linkage - Bind a name in one module to the implementation provided by another module Distributor - Identify paths between components and route communication along those paths Arbitrator - Provide services that coordinate and facilitate interactions among components. Examples of arbitrators include semaphores, locks, transactions, fault handling connectors with failover, and load balancing connectors

Event Connector Vs Procedure Call Event connector – Virtual connectors are formed between components interested in the same events – Connectors may appear or disappear dynamically depending on the component’s changing interests ProcedureCall–Codewrittentoinvoke the procedure so fixated connectors

Linkage Connector Vs Distributor Connector Linkage – Linkage connectors bind a name in one module to the implementation provided by another module – Examples of linkage connectors include imported names and references to names defined in other source files Distributor connectorsidentifypathsbetween androutecommunicationalong – Distributor components those paths – Provide routing services to other connectors

Discussion 29 Connectorsallowmodelingofarbitrarily complex interactions Connector flexibility aids system evolution – Componentaddition,removal,replacement, reconnection, migration Support for connector interchange is desired – Aids system evolution – May not affect system functionality

Discussion 30 Libraries of OTS connector implementations allow developers to focus on application- specific issues Difficulties – Rigid connectors – Connector “dispersion” in implementations Key issue – Performance vs. flexibility

References Aldrich,Jonathan,VibhaSazawal,Sazawal,CraigCraig Chambers, and David Notkin. "Language support for connector abstractions." In ECOOP 2003–Object-Oriented Programming, pp Springer Berlin Heidelberg, 2003