Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,

Similar presentations


Presentation on theme: "Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,"— Presentation transcript:

1 Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons

2 What is a Software Connector? An architectural element that models u Interactions among components u Rules that govern those interactions Interactions u Simple Procedure calls Shared variable access u Complex & semantically rich interactions Client-server protocols Database access protocols Asynchronous event multicast Connectors provide u Interaction duct(s) u Transfer of control and/or data 2

3 Where are Connectors in Software Systems? 3

4 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 Connectors in software architectures u First-class entities u Have identity u Describe all system interaction u Entitled to their own specifications & abstractions 4

5 Why Treat Connectors Independently? Connector  Component u Components provide application-specific functionality u Connectors provide application-independent interaction mechanisms Abstractions of interaction, parameterization Specification of complex interactions u Binary vs. N-ary u Asymmetric vs. Symmetric u Interaction protocols 5

6 Treating Connectors Independently (cont’d) Localization of interaction definition Extra-component system (interaction) information Component independence Component interaction flexibility 6

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

8 An Example of Explicit Connectors 8

9 A Taxononomy of Connectors Protocol specification (sometimes implicit) defines component interaction 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) Connector Roles u Communication u Coordination u Conversion u Facilitation 9

10 Connectors as Communicators The 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 10

11 Connectors as Coordinators Determine computation control flow Control delivery of data Separates control from computation Orthogonal to communication, conversion, and facilitation u Yet there are elements of control are in all these three 11

12 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/wrappers 12

13 Connectors as Facilitators Enable interaction of components intended to interoperate u Mediate and streamline interaction Examples u Govern access to shared information u Ensure proper performance profiles e.g., load balancing u Provide synchronization mechanisms Critical sections Monitors 13

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

15 Procedure Call Connectors 15

16 Event Connectors 16

17 Data Access Connectors 17

18 Linkage Connectors 18

19 Stream Connectors 19

20 Arbitrator Connectors 20

21 Adaptor Connectors 21

22 Distributor Connectors 22

23 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 Libraries of OTS connector implementations allow developers to focus on application-specific issues Possible difficulties u Rigid connectors u Connector “dispersion” in implementations Key issue u Performance vs. flexibility 23

24 Role and Challenge of Software Connectors 24 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?

25 How Does One 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 Which of: 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

26 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 26

27 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

28 Two Connector Types in Tandem 28 Select the appropriate values for PC and RPC!


Download ppt "Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,"

Similar presentations


Ads by Google