Software Connectors Copyright Richard N Taylor Nenad Medvidovic

  • Slides: 32
Download presentation
Software Connectors Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All

Software Connectors 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 l l Connectors in

Software Architecture Foundations, Theory, and Practice Implemented vs. Conceptual Connectors l l 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 Connectors in software architectures u First-class entities u Have identity u Describe all system interaction u Entitled to their own specifications & abstractions 4

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 5

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. 6

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

Software Architecture Foundations, Theory, and Practice An Example of Explicit Connectors (cont’d) ? 7 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 8

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 9

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 10

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 11

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 12

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 13

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

Software Architecture Foundations, Theory, and Practice A Framework for Classifying Connectors 14 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 15 Software Architecture: Foundations, Theory,

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

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

Software Architecture Foundations, Theory, and Practice Event Connectors 16 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 17 Software Architecture: Foundations, Theory,

Software Architecture Foundations, Theory, and Practice Data Access 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 Linkage Connectors 18 Software Architecture: Foundations, Theory, and

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

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

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

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

Software Architecture Foundations, Theory, and Practice Distributor 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 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 23

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 24

Software Architecture Foundations, Theory, and Practice How Do You Select a Connector? l l

Software Architecture Foundations, Theory, and Practice How Do You Select a Connector? l l Determine a system’s interconnection and interaction needs u Software interconnection models can help Determine roles to be fulfilled by the system’s connectors u Communication, coordination, conversion, facilitation For each connector u Determine its appropriate type(s) u Determine its dimensions of interest u Select appropriate values for each dimension For multi-type, i. e. , composite connectors u Determine the atomic connector compatibilities 25

Software Architecture Foundations, Theory, and Practice Simple Example l l l System components will

Software Architecture Foundations, Theory, and Practice Simple Example l l l System components will execute in two processes on the same host u Mostly intra-process u Occasionally inter-process The interaction among the components is synchronous The components are primarily computation-intensive u There are some data storage needs, but those are secondary 26

Software Architecture Foundations, Theory, and Practice Simple Example (cont’d) Ø Ø Ø Select procedure

Software Architecture Foundations, Theory, and Practice Simple Example (cont’d) Ø Ø Ø Select procedure call connectors for intra-process interaction Combine procedure call connectors with distributor connectors for inter-process interaction Ø RPC Select the values for the different connector dimensions Ø What are the appropriate values? Ø What values are imposed by your favorite programming language(s)? 27

Software Architecture Foundations, Theory, and Practice Procedure Call Connectors Revisited 28 Software Architecture: Foundations,

Software Architecture Foundations, Theory, and Practice Procedure Call Connectors Revisited 28 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 Revisited 29 Software Architecture: Foundations, Theory,

Software Architecture Foundations, Theory, and Practice Distributor Connectors Revisited 29 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 Two Connector Types in Tandem Select the appropriate

Software Architecture Foundations, Theory, and Practice Two Connector Types in Tandem Select the appropriate values for PC and RPC! 30 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 Composing Basic Connectors l l l In many

Software Architecture Foundations, Theory, and Practice Composing Basic Connectors l l l In many systems a connector of multiple types may be required to service (a subset of) the components All connectors cannot be composed u Some are naturally interoperable u Some are incompatible u All are likely to require trade-offs The composition can be considered at the level of connector type dimensions and subdimensions 31

Software Architecture Foundations, Theory, and Practice Well Known Composite Connectors l l Grid connectors

Software Architecture Foundations, Theory, and Practice Well Known Composite Connectors l l Grid connectors (e. g. , Globus) u Procedure call u Data access u Stream u Distributor Peer-to-peer connectors (e. g. , Bittorrent) u Arbitrator u Data access u Stream u Distributor Client-server connectors Event-based connectors 32