Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors."— Presentation transcript:

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

2 Foundations, Theory, and Practice Software Architecture 2 Attach adapter to A Maintain multiple versions of A or B Make B multilingual 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?

3 Foundations, Theory, and Practice Software Architecture 3 What is a Software Connector? 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

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

5 Foundations, Theory, and Practice Software Architecture 5 Implemented vs. Conceptual Connectors 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 Across multiple modules Across interaction mechanisms

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

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

8 Foundations, Theory, and Practice Software Architecture 8 Benefits of First-Class Connectors 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

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

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

11 Foundations, Theory, and Practice Software Architecture 11 Software Connector Roles 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

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

13 Foundations, Theory, and Practice Software Architecture 13 Connectors as Coordinators 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

14 Foundations, Theory, and Practice Software Architecture 14 Connectors as Converters 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

15 Foundations, Theory, and Practice Software Architecture 15 Connectors as Facilitators 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

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

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

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

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

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

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

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

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

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

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

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

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

28 Foundations, Theory, and Practice Software Architecture 28 How Do You Select a Connector? 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

29 Foundations, Theory, and Practice Software Architecture 29 Simple Example 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

30 Foundations, Theory, and Practice Software Architecture 30 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)?

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

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

33 Foundations, Theory, and Practice Software Architecture 33 Two Connector Types in Tandem Select the appropriate values for PC and RPC! Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

34 Foundations, Theory, and Practice Software Architecture 34 Software Interconnection Models Interconnection models (IM) as defined by Perry u Unit interconnection u Syntactic interconnection u Semantic interconnection All three are present in each system Are all equally appropriate at architectural level?

35 Foundations, Theory, and Practice Software Architecture 35 Unit Interconnection Defines relations between system’s units u Units are components (modules or files) u Basic unit relationship is dependency Unit-IM = ({units},{“depends on”}) Examples u Determining context of compilation e.g., C preprocessor IM = ({files},{“include”}) u Determining recompilation strategies e.g., Make facility IM = ({compile_units},{“depends on”,“has changed”}) u System modeling e.g., RCS, DVS, SVS, SCCS IM = ({systems, files},{“is composed of”})

36 Foundations, Theory, and Practice Software Architecture 36 Unit Interconnection Characteristics Coarse-grain interconnections u At level of entire components Interconnections are static Does not describe component interactions u Focus is exclusively on dependencies

37 Foundations, Theory, and Practice Software Architecture 37 Syntactic Interconnection Describes relations among syntactic elements of programming languages u Variable definition/use u Method definition/invocation IM = ({methods, types, variables, locations}, {“is def at”, “is set at”, “is used at”, “is del from”, “is changed to”, “is added to”}) Examples u Automated software change management e.g., Interlisp’s masterscope u Static analysis e.g., Detection of unreachable code by compilers u Smart recompilation Changes inside unit  recompilation of only the changes u System modeling Finer level of granularity than unit-IM

38 Foundations, Theory, and Practice Software Architecture 38 Syntactic Interconnection Characteristics Finer-grain interconnections u At level of individual syntactic objects Interconnections are static & dynamic Incomplete interconnection specification u Valid syntactic interconnections may not be allowed by semantics u Operation ordering, communication transactions e.g., Pop on an empty stack u Violation of (intended) operation semantics e.g., Trying to use calendar add operation to add integers

39 Foundations, Theory, and Practice Software Architecture 39 Semantic Interconnection Expresses how system components are meant to be used u Component designers’ intentions Captures how system components are actually used u Component users’ (i.e., system builders’) intention Interconnection semantics can be formally specified u Pre- & post-conditions u Dynamic interaction protocols (e.g. CSP, FSM) IM = ({methods, types, variables,..., predicates}, {“is set at”, “is used at”, “calls”, “called by”,..., “satisfies”})

40 Foundations, Theory, and Practice Software Architecture 40 Example of Semantic Interconnection connector Pipe = role Writer = write  Writer П close  role Reader = let ExitOnly = close  in let DoRead = (read  Reader read-eof  ExitOnly) in DoRead П ExitOnly glue = let ReadOnly = Reader.read  ReadOnly Reader.read-eof  Reader.close  Reader.close  in let WriteOnly = Writer.write  WriteOnly Writer.close  in Writer.write  glue Reader.read  glue Writer.close  ReadOnly Reader.close  WriteOnly Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

41 Foundations, Theory, and Practice Software Architecture 41 Semantic Interconnection Characteristics Builds on syntactic interconnections Interconnections are static & dynamic Complete interconnection specification u Specifies both syntactic & semantic interconnection validity Necessary at level of architectures u Large components u Complex interactions u Heterogeneity u Component reuse What about ensuring other properties of interaction? u Robustness, reliability, security, availability,...

42 Foundations, Theory, and Practice Software Architecture 42 Composing Basic Connectors 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

43 Foundations, Theory, and Practice Software Architecture 43 Well Known Composite Connectors 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


Download ppt "Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors."

Similar presentations


Ads by Google