Software Connectors Software Architecture Lecture 7 Copyright Richard

  • Slides: 27
Download presentation
Software Connectors Software Architecture Lecture 7 Copyright © Richard N. Taylor, Nenad Medvidovic, and

Software Connectors Software Architecture Lecture 7 Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Software Architecture: Foundations, Theory, and Practice What is a Software Connector? l l Architectural

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

Software Architecture: Foundations, Theory, and Practice Where are Connectors in Software Systems? 3 Software

Software Architecture: Foundations, Theory, and Practice Where are Connectors in Software Systems? 3 Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Implemented vs. Conceptual Connectors in software system implementations

Software Architecture: Foundations, Theory, and Practice Implemented vs. Conceptual Connectors in software system implementations u Frequently no dedicated code u Frequently no identity u Typically do not correspond to compilation units u Distributed implementation l Across multiple modules l Across interaction mechanisms 4

Software Architecture: Foundations, Theory, and Practice Implemented vs. Conceptual Connectors (cont’d) l Connectors in

Software Architecture: Foundations, Theory, and Practice Implemented vs. Conceptual Connectors (cont’d) l Connectors in software architectures u First-class entities u Have identity u Describe all system interaction u Entitled to their own specifications & abstractions 5

Software Architecture: Foundations, Theory, and Practice Reasons for Treating Connectors Independently l l l

Software Architecture: Foundations, Theory, and Practice Reasons for Treating Connectors Independently l l l Connector Component u Components provide application-specific functionality u Connectors provide application-independent interaction mechanisms Interaction abstraction and/or parameterization Specification of complex interactions u Binary vs. N-ary u Asymmetric vs. Symmetric u Interaction protocols 6

Software Architecture: Foundations, Theory, and Practice Treating Connectors Independently (cont’d) l l Localization of

Software Architecture: Foundations, Theory, and Practice Treating Connectors Independently (cont’d) l l Localization of interaction definition Extra-component system (interaction) information Component independence Component interaction flexibility 7

Software Architecture: Foundations, Theory, and Practice Benefits of First-Class Connectors l l l l

Software Architecture: Foundations, Theory, and Practice Benefits of First-Class Connectors l l l l Separate computation from interaction Minimize component interdependencies Support software evolution u At component-, connector-, & system-level Potential for supporting dynamism Facilitate heterogeneity Become points of distribution Aid system analysis & testing 8

Software Architecture: Foundations, Theory, and Practice An Example of Explicit Connectors Software Architecture: Foundations,

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

Software Architecture: Foundations, Theory, and Practice An Example of Explicit Connectors (cont’d) ? 10

Software Architecture: Foundations, Theory, and Practice An Example of Explicit Connectors (cont’d) ? 10 Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Software Connector Roles l l l Locus of

Software Architecture: Foundations, Theory, and Practice Software Connector Roles l l l Locus of interaction among set of components Protocol specification (sometimes implicit) that defines its properties u Types of interfaces it is able to mediate u Assurances about interaction properties u Rules about interaction ordering u Interaction commitments (e. g. , performance) Roles u Communication u Coordination u Conversion u Facilitation 11

Software Architecture: Foundations, Theory, and Practice Connectors as Communicators l l Main role associated

Software Architecture: Foundations, Theory, and Practice Connectors as Communicators l l Main role associated with connectors Supports u Different communication mechanisms l e. g. procedure call, RPC, shared data access, message passing u Constraints on communication structure/direction l e. g. pipes u Constraints on quality of service l e. g. persistence Separates communication from computation May influence non-functional system characteristics u e. g. performance, scalability, security 12

Software Architecture: Foundations, Theory, and Practice Connectors as Coordinators l l Determine computation control

Software Architecture: Foundations, Theory, and Practice Connectors as Coordinators l l Determine computation control Control delivery of data Separates control from computation Orthogonal to communication, conversion, and facilitation u Elements of control are in communication, conversion and facilitation 13

Software Architecture: Foundations, Theory, and Practice Connectors as Converters l l l Enable interaction

Software Architecture: Foundations, Theory, and Practice Connectors as Converters l l l Enable interaction of independently developed, mismatched components Mismatches based on interaction u Type u Number u Frequency u Order Examples of converters u Adaptors u Wrappers 14

Software Architecture: Foundations, Theory, and Practice Connectors as Facilitators l l Enable interaction of

Software Architecture: Foundations, Theory, and Practice Connectors as Facilitators l l Enable interaction of components intended to interoperate u Mediate and streamline interaction Govern access to shared information Ensure proper performance profiles u e. g. , load balancing Provide synchronization mechanisms u Critical sections u Monitors 15

Software Architecture: Foundations, Theory, and Practice Connector Types l l l l Procedure call

Software Architecture: Foundations, Theory, and Practice Connector Types l l l l Procedure call Data access Event Stream Linkage Distributor Arbitrator Adaptor 16

Software Architecture: Foundations, Theory, and Practice A Framework for Classifying Connectors 17 Software Architecture:

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

Software Architecture: Foundations, Theory, and Practice Procedure Call Connectors 18 Software Architecture: Foundations, Theory,

Software Architecture: Foundations, Theory, and Practice Procedure Call 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.

Software Architecture: Foundations, Theory, and Practice Event Connectors 19 Software Architecture: Foundations, Theory, and

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

Software Architecture: Foundations, Theory, and Practice Data Access Connectors 20 Software Architecture: Foundations, Theory,

Software Architecture: Foundations, Theory, and Practice 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.

Software Architecture: Foundations, Theory, and Practice Linkage Connectors 21 Software Architecture: Foundations, Theory, and

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

Software Architecture: Foundations, Theory, and Practice Stream Connectors 22 Software Architecture: Foundations, Theory, and

Software Architecture: Foundations, Theory, and Practice Stream 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.

Software Architecture: Foundations, Theory, and Practice Arbitrator Connectors 23 Software Architecture: Foundations, Theory, and

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

Software Architecture: Foundations, Theory, and Practice Adaptor Connectors 24 Software Architecture: Foundations, Theory, and

Software Architecture: Foundations, Theory, and Practice Adaptor 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.

Software Architecture: Foundations, Theory, and Practice Distributor Connectors 25 Software Architecture: Foundations, Theory, and

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

Software Architecture: Foundations, Theory, and Practice Discussion l l l Connectors allow modeling of

Software Architecture: Foundations, Theory, and Practice Discussion l l l Connectors allow modeling of arbitrarily complex interactions Connector flexibility aids system evolution u Component addition, removal, replacement, reconnection, migration Support for connector interchange is desired u Aids system evolution u May not affect system functionality 26

Software Architecture: Foundations, Theory, and Practice Discussion l l l Libraries of OTS connector

Software Architecture: Foundations, Theory, and Practice Discussion l l l Libraries of OTS connector implementations allow developers to focus on application-specific issues Difficulties u Rigid connectors u Connector “dispersion” in implementations Key issue u Performance vs. flexibility 27