Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Objectives In this session, you will learn to:
8.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Distributed Systems Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Lecture 23: Software Architectures
Ch 12 Distributed Systems Architectures
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Client/Server Architectures
Client/Server Technology Two-Tier Architecture Three-Tier Architecture Josh Antonelli Jenn Lang Joe Schisselbauer Chad Williams.
Chapter 11: Physical Architecture Layer Design
The Design Discipline.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Architectural Design, Distributed Systems Architectures
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
John D. McGregor Class 4 – Initial decomposition
Chapter 12 Review Chad Hagstrom CS 310 Spring 2008.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Lecture VIII: Software Architecture
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
CLIENT SERVER COMPUTING. We have 2 types of n/w architectures – client server and peer to peer. In P2P, each system has equal capabilities and responsibilities.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
CLOUD ARCHITECTURE Many organizations and researchers have defined the architecture for cloud computing. Basically the whole system can be divided into.
Chapter 12: Architecture
CS 325: Software Engineering
SOFTWARE DESIGN AND ARCHITECTURE
Software Design and Architecture
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
CSC 480 Software Engineering
CHAPTER 3 Architectures for Distributed Systems
Physical Architecture Layer Design
#01 Client/Server Computing
Lecture 1: Multi-tier Architecture Overview
Chapter 12: Physical Architecture Layer Design
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 5 Architectural Design.
#01 Client/Server Computing
Presentation transcript:

Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1

2

What is Software Architecture? Provides a very high level view of the parts of the system and how they are related to form the whole system. More specifically, architecture partitions the system in logical parts such that each part can be comprehended independently and then describes the system in terms of these parts and their relationships. 3

4

Some Examples… Client-Server Event-Driven Peer-to-peer Pipes and Filters Three-Tier Service-Oriented Monolithic Blackboard Implicit Invocation Plug-in Search-Oriented Distributed Computing Cloud Computing Front end and Back end 5

What Software Architecture is not Design patterns Low-level design Implementation Computer Architecture 6

Design vs. Software Architecture Architecture deals with “what” and “where” whereas design deals with the “how” Design patterns are to design as architectural styles are to architecture 7

Event-Driven Architecture Very common architecture Three main components: The Event The Event Bus The Listener Figure 1: Block Diagrams for Event Driven Applications (Li, 2005) 8

The Event Something that happens, either inside or outside the system, that causes some kind of action in the system. Most of the time it is an external input, such as input from a keyboard or controller, or sensors. Can also be other processes. 9

The Event Bus The connector between events and listeners. Performs event-stream-analysis, which includes data cleansing and normalization. Propagates events to the listeners connected to them. Also handles listener registration. 10

The Listener An object that executes some function when a specific event occurs. Registers its interest in certain events through the event bus. 11

Pros and Cons Pros: Analysis of events and actions related to them are done quickly. Very good for systems that need to be able to respond to external events. Cons: More complex programs: can be difficult to follow the flow of a system. 12

Uses Graphical User Interfaces Swing Financial Trading systems Pipeline monitoring systems Sensor networks Heart Rate Monitors 13

Client-Server Architecture Very common type of architecture Used in computer networking Some example protocols : DNS, FTP, SMTP, HTTP Three main Components: The Client The Server A Network 14

The Client Usually a personal computer Connects to a server, makes a request Receives a reply, makes more requests, etc. Often accesses the server through an application There are several different kinds of clients 15

The Server A computer program running to serve the requests of other programs Often performs computational tasks for the clients There are several different types 16

Pros and Cons Pros: Performance Simplicity (for clients) Accessibility Scalability Cons: Cost Overloading 17

3-Tier Was developed by John J. Donovan in Open Environment Corporation (OEC) User interface, process logic, computer data storage and data access are developed and maintained as independent modules, often on separate platforms Eg) a change of an OS may want only to change the presentation layer would only affect the UI code (Windows 8?) 18

3-Tier 19

Example: Siri? 20

Peer-to-Peer P2P is a network architecture in which each computer has equivalent capabilities and responsibilities. (Miller, 2001) 21

A better definition 5 Characteristics: Computers connect to each other in real-time Peers are both clients and servers Primary content is provided by peers Peers are autonomous and control their own activities Peers are not necessarily permanent and many connect and disconnect at will 22

Three forms Pure Centralized Hybrid 23

Pros and Cons Pros Speed Reliability Availability Privacy Scalability Cons Security No mediator Unavailability 24

Monolithic A somewhat older style of architecture, not used as often now Everything is compiled and linked into a single application Many programs we deal with day-to-day use it (sort of): Word processors Powerpoint Older mainframes Development Environments Older accounting software Some Games 25

Monolith – In Programming Usually written in a single programming language Can operate in both batch mode or GUI mode Can have concurrency: Multi-threading Multi-Processing But only one executable! 26

Pros and Cons Pros Performance Simplicity Cons Problems with shared access Quantity of Data 27

Summary Architectural styles are used in most applications today They implement standards that can be reused These standards make it easier to make early design decisions 28

Questions? 29