Ryan McAlister CONNECTORS. Introduction Integration and interaction As important as developing functionality More challenging decisions Transfer control.

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Architecture Representation
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
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:
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Neochiron An Architecture Assembly Language. ADL Constructs Architecture description language – provides primitives for composing an architecture Components,
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.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Unified Modeling (Part I) Overview of UML & Modeling
3.5 Interprocess Communication
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Kmi.open.ac.uk Semantic Execution Environments Service Engineering and Execution Barry Norton and Mick Kerrigan.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 I/O Management in Representative Operating Systems.
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.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Mismatch or Why it’s hard to build systems out of existing parts.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.
Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in.
Chapter 9 Message Passing Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere2 Introduction.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Enterprise Integration Patterns CS3300 Fall 2015.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
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.
Lecture VIII: Software Architecture
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
Concurrent Object-Oriented Programming Languages Chris Tomlinson Mark Scheevel.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
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.
Business Process Execution Language (BPEL) Pınar Tekin.
Software Architecture Week 4, Lecture 1
SOFTWARE DESIGN AND ARCHITECTURE
Software Connectors.
Distribution and components
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 7
Software Connectors.
Software Connectors.
Software Architecture Lecture 8
Software Connectors.
Software Connectors.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 8
Software Architecture
Software Architecture Lecture 8
Software Architecture Lecture 7
Architectural Mismatch: Why reuse is so hard?
Software Architecture Lecture 6
Presentation transcript:

Ryan McAlister CONNECTORS

Introduction Integration and interaction As important as developing functionality More challenging decisions Transfer control and data Can also provide services Persistence Invocation Messaging Transactions

Introduction Common misconception Just calls between two components Using large off-the-shelf components Connectors are used to communicate Wide range of connectors to use Service request to named recipients Broadcast to anyone listening Suspend current processing Allow component to continue processing

Introduction Different roles connectors play Different connector types available Roles each one can fulfill Variation points for each connector type Hints and guidelines about connector’s Applicablity Strengths Drawbacks

Connectors In Action Application independent elements How without the what Abstraction and separation of concerns New terminology showing up Pipe = type of connector Filter = component

Connectors In Action High level view Components A and B communicate via a Unix pipe Doesn’t give us all the properties of the pipe Pipe allows interaction of unformatted streams of data Single sender single receiver A’s task is to hand data to pipe Actual recipient is unimportant Send only once

Connectors In Action Change to where B can talk back to A Acknowledge data was received Add a pipe from B to A Keep trying until B receives the data Add data buffering to pipe Adding another component Even more pipes Causes substantial system downtime Not the most effective solution

Connectors In Action Change from unformatted byte stream to discrete, typed packets Pipes will not work Use an event bus connector Similar properties Loose component coupling Asynchronous communication Data buffering Differences Event bus is better suited for system adaptation

Connectors In Action

Connector Foundations Building blocks of connectors Managing the flow of control Changing the processor program counter Managing the flow of data Performing memory access Channels or ducts Link interacting components Ducts don’t provide additional interaction services Simple connectors just form ducts between components Others augment ducts

Connector Foundations Simple connectors Implemented in programming languages One type of interaction service Composite connectors Several connectors and possibly components Provided as libraries and frameworks Combine many kinds of interactions

Connector Foundations FrameworkExplantiation Category Broad interaction role Type How interaction services are realized Dimensions Architecturally relevant details Values Set of values dimensions can take Species Particular connector instance

Connector Roles Four general classes of services Communication Coordination Conversion Facilitation Connector will provide one or more of these services Category level of Figure 5-3

Connector Roles - Communcation Communication services Transmission of data among components Examples Pass messages Exchange data Communicate results

Connector Roles - Coordination Coordination Services Supports transfer of control among components Interact by passing the thread of execution Examples Function calls Method invocations

Connector Roles - Conversion Conversion Services Transform the interaction Takes information from one and formats it to where the other can use it Fixes mismatches caused by incompatible assumptions Type, number, frequency and order of interactions with other components Allow components that haven't been tailored for each other conduct interactions Examples Conversion of data formats Wrappers for legacy components

Connector Roles - Facilitation Facilitation services Mediate and streamline component interaction Reduces interdependences among interaction components Examples Load balancing Scheduling services Concurrency control

Selecting Appropriate Connectors Perform these steps 1. Select the specific set of interacting components Different sets can have different interaction needs Focus solely on the components needed for connector 2. Determine the interaction services needed Identify the precise characteristics of the components interaction Study the components architectural description

Selecting Appropriate Connectors 3. Determine 8 connector types that will provide services needed Based on identified interaction services 4. Evaluate each connector type Study these connectors dimensions, subdimensions, and values Eliminate any types that would be deemed suboptimal

Selecting Appropriate Connectors 5. For the remaining connector types Set the values for the necessary dimensions and subdimensions Identify the best or most natural connectors Perform a trade-off analysis Possibly choosing a composite connector.

Selecting Appropriate Connectors Using values of dimensions from different connector types leads to a composite connector species Creating unprecedented composite connectors is not easy Requires deep understanding of the connectors’ complementary, orthogonal, and incompatible characteristics Could become misguided, suboptimal or completely ineffective

Detecting Mismatches

Four rules for combining connector dimensions Requires Cautions Restricts Prohibits

Detecting Mismatches - Requires Requires states that the choice of one dimension in one connector species mandates that another dimension be selected in another connector species. For example if a distributor and an adaptor connector are composed Distributor’s delivery requires that the adaptor support presentation conversion Requires is a chaining rule and is used as a starting point. An event connector the require delivery semantics also needs a notification dimension, which in turn requires cardinality, synchronicity and mode. Mandatory dimensions are bold, optional dimensions are not

Detecting Mismatches - Cautions Cautions rule indicates that certain combinations of values for two connector dimensions that are required to be used in tandem, while valid, may result in an unstable or unreliable connector. For exam ple, a component being invoked implicitly should not have multiple entry points since an implicit invocation mechanism cannot choose among the entry points.

Detecting Mismatches – Restricts Restricts rule indicates that the two dimensions are not require to be used together at all times, and that there are certain combinations of their values that are invalid. For example, thread –specific data access cannot use heavy- weight concurrency

Detecting Mismatches - Prohibits Prohibits rule is used to exclude any combination of two dimensions from being used and indicates total incompatibility of the dimensions. For example, stream delivery cannot be built on transactional atomicity Relatively few instances of prohibits

Detecting Mismatches We’ve only discussed binary combinations of connector dimension, but the compatibility relations between dimensions are transitive. We could apply the rules to determine n-ary compatibility between dimensions.