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.

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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Component Design and Separation of Concern Designing involve: – Coming up with “application” functional components & – Integrating these functional components:
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Software Architecture Research and Practice Nenad Medvidovic University of Southern California
ICS 123 Interoperability ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Unified Modeling (Part I) Overview of UML & Modeling
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
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.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design.
What is Software Architecture?
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Architecture Sam Malek CS 795 / SWE 699 Spring 2010 George Mason University.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CSC480 Software Engineering Lecture 10 September 25, 2002.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
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
CS223: Software Engineering Lecture 13: Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Infosys, Mysore December 19, 2009.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
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
Software Connectors.
Software Design and Architecture
Distribution and components
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 7
Software Connectors.
Software Connectors.
Software Architecture Lecture 8
Software Connectors.
Software Connectors.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 8
Software Architecture Lecture 8
Software Architecture Lecture 7
Architectural Mismatch: Why reuse is so hard?
Software Architecture Lecture 6
Presentation transcript:

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 form to B’s form Provide B with import/export converter Separate B’s essence from its packaging Publish abstraction of A’s form Introduce intermediate form Transform on the fly What is the right answer? Negotiate to find common form for A and B How do we enable components A and B to interact?

Connector Foundations  Manage the flow of control and flow of data  Every connector has one or more channels, also known as ducts.  Simple connector provides one type of interaction service  Combined connector combine many kinds of interactions

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

Implemented vs. Conceptual Connectors  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  Connectors in software architectures –First-class entities –Have identity –Describe all system interaction –Entitled to their own specifications & abstractions

Reasons for Treating Connectors Independently  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  Localization of interaction definition  Component independence  Component interaction flexibility

Benefits of First-Class Connectors  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

Software Connector Roles  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  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  Determine computation control  Control delivery of data  Separates control from computation  Orthogonal to communication, conversion, & facilitation –Elements of control are in communication, conversion & facilitation

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

Connectors as Facilitators  Enable interaction of components intended to interoperate –Mediate & streamline interaction  Govern access to shared information  Ensure proper performance profiles –e.g., load balancing, concurrency control

Connector Types  Procedure call – use parameters and return values  Data access – data store components e.g.. MySql  Event – message occurred based on event  Stream – transfer large amt of data between autonomous processes; deliver results  Linkage – provide facilitation services during certain operation  Distributor – identify interaction paths  Arbitrator – streamline operation and resolve conflicts  Adaptor – support interaction between components that are new to each other

Procedure Call Connectors

Event Connectors

Data Access Connectors

Linkage Connectors

Stream Connectors

Arbitrator Connectors

Adaptor Connectors

Distributor Connectors

Discussion  Connectors allow modeling of arbitrarily complex interactions  Connector flexibility aids system evolution –Component addition, removal, replacement, reconnection, migration  Support for connector interchange is desired –Aids system evolution –May not affect system functionality  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