Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 5
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Software Architecture Design Instructor: Dr. Jerry Gao.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1 Software Architecture Bertrand Meyer ETH Zurich, March-May 2009 Lecture 13: Architectural styles (partly after material by Peter Müller)
Applying Architectural Styles and Patterns
Software Architecture Lecture 5
Establishing the overall structure of a software system
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
SWA-1.1 CSE300 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5.
Course Instructor: Aisha Azeem
Software Architecture – Pipe and Filter Model
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 6: Architectural Design
System Design & Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Introduction to Software Architecture Sam Malek CS 795 / SWE 699 Spring 2010 George Mason University.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
Chap 8. Architectural Design
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©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.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Krista Lozada iAcademy First Term 2009
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
REST By: Vishwanath Vineet.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Lecture VIII: Software Architecture
CS223: Software Engineering
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Architectural Styles. ContentContent Data Flow Styles – Batch Sequential – Pipe and Filter Implicit Invocation – Event Based – Publish Subscribe Layered.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
CS310 – Software Engineering
Software Architecture
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Software Architecture Lecture 5
Software Architecture
An Introduction to Software Architecture
ICS 52: Introduction to Software Engineering
Presentation transcript:

Architectural Styles

Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions that –are applicable in a given development context –constrain architectural design decisions that are specific to a particular system within that context –elicit beneficial qualities in each resulting system.  A pattern of structural organization in an architecture defines what is known as an architectural style (Shaw & Garlan, 1996) –Established, shared understanding of common design forms

Basic Properties of Styles  A vocabulary of design elements –Component and connector types –e.g., pipes, filters, objects, servers  A set of configuration rules –Topological constraints that determine allowed compositions of elements –e.g., a component may be connected to at most two other components  A semantic interpretation –Compositions of design elements have well-defined meanings

Benefits of Using Styles  Design reuse –Well-understood solutions applied to new problems  Code reuse –Shared implementations of invariant aspects of a style  Understandability of system organization –A phrase such as “client-server” conveys a lot of information  Interoperability –Supported by style standardization  Style-specific analyses –Enabled by the constrained design space  Visualizations –Style-specific depictions matching engineers’ mental models

Style Analysis Dimensions  What is the design vocabulary? –Component and connector types  What are the allowable structural patterns?  What is the underlying computational model?  What are the essential invariants of the style?  What are common examples of its use?  What are the (dis)advantages of using the style?  What are the style’s specializations?

Some Common Styles  “Basic” styles –Pipe and filter –Object-oriented –Layered –Blackboard –State transition –Client-server –Peer-to-peer –Event-based (a.k.a. Implicit invocation) –Push-based  “Derived” styles –GenVoca –C2

Pipe and Filter Style  Components are filters –Transform input data streams into output data streams –Possibly incremental production of output  Connectors are pipes –Conduits for data streams  Style invariants –Filters are independent (no shared state) –Filter has no knowledge of up- and down-stream filters  Examples 1. UNIX shell2. signal processing

Pipe and Filter (cont.)  Variations –Pipelines — linear sequences of filters –Bounded pipes — limited amount of data on a pipe –Typed pipes — data strongly typed –Batch sequential — data streams are not incremental  Advantages –System behavior is a succession of component behaviors –Filter addition, replacement, and reuse (possible to hook any two filters together) –Support certain analyses (throughput, latency, deadlock) –Support concurrent execution  Disadvantages –Sharing state information is difficult –Poor for interactive applications –Lowest common denominator on data transmission, resulting in added work for each filter to parse input and format output

Object-Oriented Style  Components are objects –Data and associated operations  Connectors are messages and method invocations  Style invariants –Objects are responsible for their internal representation integrity –Internal representation is hidden from other objects  Advantages –“Infinite malleability” of object internals –System decomposition into sets of interacting agents  Disadvantages –Objects must know identities of servers/other objects to interact –Inefficient for high performance applications

Layered Style  Hierarchical system organization –“Multi-level client-server” –Each layer exports an “API” to be used by above layers  Each layer acts as a –Server: service provider to layers “above” –Client: service consumer from layers “below”  Connectors are protocols of layer interaction  Example: OSI 7 layer network model, VMS (virtual memory system)

Layered Style (cont.)  Advantages –Increasing abstraction levels –Evolvability –Different implementations of layer are allowed as long as interface is preserved –Standardized layer interfaces for libraries and frameworks  Disadvantages –Not universally applicable –Performance is not well served (if high level functions require close coupling to low level implementations)  Layers may have to be skipped –Determining the correct abstraction level (if existing systems cross several layers)

Blackboard Style  Two kinds of components –Central data structure — blackboard –Components operating on the blackboard  System control is entirely driven by the blackboard state  A blackboard has three basic components –Knowledge source: independent pieces of application specific knowledge –Blackboard: repository of problem-solving state, organized in an application-dependent hierarchy: level n (highest) to level 1 (lowest) –Control: monitors information in the blackboard

State-Transition Style  Components represent (sets of) system states  Connectors are (sets of) named state transitions  Disadvantage –Even trivial systems have enormous state spaces  Remedy –Abstract away states into coarser-grained components –e.g., StateCharts/StateMate

Client-Server Style  Instance of a more general style –Distributed systems  Components are clients and servers  Servers do not know number or identities of clients  Clients know server’s identity  Connectors are RPC-based interaction protocols

Implicit Invocation Style  Event announcement instead of method invocation –“Listeners” register interest in & associate methods with events –System invokes all registered methods implicitly  Component interfaces are methods and events  Two types of connectors –Invocation is either explicit or implicit in response to events  Style invariants –“Announcers” are unaware of their events’ effects, if any –No assumption about processing in response to events

Implicit Invocation (cont.)  Advantages –Component reuse –System evolution (allow components to be replaced) Both at system construction-time & run-time  Disadvantages –Components relinquish computation control to the system –No knowledge of other components will respond to event –No knowledge of order of responses

Push-Based Style  Distinguished from pull-based (e.g., the Web)  Examples –Enterprise messaging systems –stock ticker

Push-Based Style (cont.)  “Components” –Producer –Receiver –Channel –Broadcaster –Transport system Repeater, cache, proxy Transparent to all other components  Asymmetric communication model –Producers/Receivers –Fewer producers but more receivers per producer  Relatively tight coupling between source and receiver via subscribed channels

Heterogeneous Styles

Observations  Different styles result in –Different architectures –Architectures with greatly differing properties  A style does not fully influence resulting architecture –A single style can result in different architectures –Considerable room for Individual judgment Variations among architects Different emphases  e.g., Imposed by customer  A style defines domain of discourse –About problem (domain) –About resulting system –Different architectures lead architects to ask different questions