Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture Lecture 2
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
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:
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
ICS 123 Interoperability ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine
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.
Software Architecture Lecture 5
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
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.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
HW2 INTRODUCTION CSCI-578 Spring Implicit Invocation  Indirectly or implicitly calls to methods and interfaces in response to an event or a received.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Lecture slides prepared for “Business Data Communications”, 7/e, by William Stallings and Tom Case, Chapter 8 “TCP/IP”.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
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.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Infosys, Mysore December 19, 2009.
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.
Software Architecture Lecture 3
Software Architecture Week 4, Lecture 1
Software Architecture
Software Connectors.
Software Architecture Lecture 19
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Connectors.
Software Architecture Lecture 20
Software Architecture Lecture 3
Software Connectors.
Software Architecture Lecture 8
Software Connectors.
Software Architecture Lecture 3
Software Connectors.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 8
Software Architecture Lecture 8
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Software Connectors Software Architecture

Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing data is definitely undoubtedly very difficult At the same time achieving integration and proper interaction between these components is also equally important and more challenging than just creating components In modern systems this important job of interaction and connection is achieved by connectors

Components and Connectors Connector  Component – Components encapsulate functionality and data – Components provide application-specific functionality – Connectors encapsulate interaction – Connectors provide application-independent interaction mechanisms – Connectors perform transfer of control and data among components. Basically they provide facilities to components – Persistence, invocation, messaging & transaction – Complex components results in making interaction critical

What is a Software Connector? 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 4

Being application independent, connectors help us to understand how the system works without knowing what system does Connectors support abstraction and separation of concerns Many system properties can be derived from system connectors Example of how connectors specify characteristics of the system – ‘Unix pipe connecting two components’ is the description of system which provide high- level view of the system – High level view specify model of the system and properties of communication but not all properties of pipe – It provides uniform stream of data, it consist of single interaction channel and facilitate only unidirectional data transfer

Role of Connectors Connectors facilitate components by providing different services: – Communication – Coordination – Conversion and – Facilitation Based on these services connectors have four different roles – Communicator – Coordinator – Convertor and – Facilitator

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 7

Connectors as Coordinators Determine computation control Control delivery of data Function call and method invocation are simple examples Signal and load balancing connectors Separates control from computation 8

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

Connectors as Facilitators Services like load balancing, concurrency control, scheduling services are part of communication Enable interaction of components intended to interoperate – Mediate and streamline interaction Govern access to shared information Provide synchronization mechanisms – Critical sections – Monitors 10

A Framework for Classifying Connectors 11 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

A Framework for Classifying Connectors Framework for studying connectors is divided into different layers Top layer is Category which represents the broad interaction role the connectors fulfill 2 nd layer is Type; which differentiate connectors based on the way in which the connector’s interact services are realized 3 rd layer is dimensions and sub dimensions. Dimensions are architecturally relevant details of each connector type 4 th & lowest layer in the connector framework is formed by the set of values a dimension can take

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

Transfers the control between two procedure/ subroutines by providing coordination service Transfer data like return value and works as a communicator Most widely used and best understood connectors Procedure Call Connectors

15 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Synchronous: instant reply is expected e.g. chatting Asynchronous: time is provided for communication e.g. Cardinality: fan in and fan out – Connections available with the system Accessibility: private, protected or public

Events are system or language level messages Event is an instantaneous effect of the termination of an invocation of an operation on an object which occurs at that object’s location Provides coordination and communication services Creates virtual connection between components interested in same events Dynamically this connection can appear or disappear based on component’s interest Distributed applications with asynchronous communication used these connectors Event Connectors

18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Transfer of data between heterogeneous components Provides communication serves by transferring data Provides conversion service Data store can be temporary or persistent Persistent Data denotes information that is infrequently accessed and not likely to be modified Data Access Connectors

20 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Tie the system components together Establishes channel for communication or coordination Once the channel is established, linkage connectors can disappear or remain in the system Provides facilitation Not a rich connector in terms of dimensions Linkage Connectors

22 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Majorly use for communication purpose only Transferring large amount of data between autonomous processes Streams are used in client server system with data transfer protocol to deliver result of computation Can be Combined with data access connector for managing database of file storage Can be combined with event connector to multiplex the delivery of large number of events Stream Connectors

24 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

When components are aware of presence of other components but can not make assumption about their needs and state, arbitrator streamline system operates and resolves any conflicts (facilitation) and redirect the flow of data (coordination) Multithreaded system for using shared memory uses synchronization and concurrency control to guarantee atomicity and consistency Arbitrator also acts as a mediator to provide services like reliability and atomicity Security, safety, trustworthiness is also provided by arbitrator connector Arbitrator Connectors

26 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Provides facility to support interaction between components that have not been designed to interoperate It acts as convertor Adaptor Connectors

28 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Performs identification of interaction paths and subsequent routing of communication and coordination These connectors does not act independently but provides support to other connectors Distributed system exchanges information using distributed connectors DNS routing, swiching Distributor Connectors

30 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.