Software Architecture

Similar documents
Software Architecture

Software Architecture

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

CAS 703 Software Design

Architectural Styles - Finale

Software Architecture in Practice

Software Architecture

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design

Architectural Styles I

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Architectural Design

SWE 621: Software Modeling and Architectural Design. Lecture Notes on Software Design. Lecture 8 Architectural Design of Distributed Applications

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Architectural Styles II

ICS 52: Introduction to Software Engineering

In his paper of 1972, Parnas proposed the following problem [42]:

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Introduction to Software Engineering 10. Software Architecture

Architectural Styles I

ICS 52: Introduction to Software Engineering

Chapter 2 Architectures. Software Architectures

Common Architectural Styles & Patterns

Architectural Styles. Reid Holmes

Software MEIC. (Lesson 20)

Software Architecture Patterns

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

CSCI 3130 Software Architectures 1/3. February 5, 2013

Software Architecture

CPSC 410? Advanced Software Engineering Mid-term Examination (Term I ) SOLUTION Instructor: Gail Murphy

ESE Einführung in Software Engineering!

Architectural Design

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems

CPSC 410 Advanced Software Engineering Mid-term Examination (Term I ): Solution Instructor: Gail Murphy

Establishing the overall structure of a software system

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

An Introduction to Software Architecture

CSE 435: Software Engineering. System Design

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

Software MEIC. (Lesson 20)

Chapter 13: Architecture Patterns

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

Chapter 6 Architectural Design. Chapter 6 Architectural design

An Introduction to Software Architecture

Basic Properties of Styles

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

How Do You Design? Where do architectures come from? Creativity. Method

Middleware and Interprocess Communication

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Architectural patterns and models for implementing CSPA

CAS 703 Software Design

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Software architecture: Architectural Styles

Lecture 8: February 19

Lecture 1. Chapter 6 Architectural design

Topics in Architectural Design

Software Architecture. Lecture 4

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Distribution and web services

02 - Distributed Systems

DS 2009: middleware. David Evans

(9A05803) WEB SERVICES (ELECTIVE - III)

Distributed Middleware. Distributed Objects

Software Architectures. Lecture 3

PATTERN-ORIENTED SOFTWARE ARCHITECTURE

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Non-uniform memory access machine or (NUMA) is a system where the memory access time to any region of memory is not the same for all processors.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Software Design COSC 4353/6353 DR. RAJ SINGH

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

KWIC Implemented with Event Based Architectural Style

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

02 - Distributed Systems

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Chapter 4 Communication

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

XVIII. Software Architectures

Distributed Objects. Object-Oriented Application Development

Introduction to Web Services & SOA

Architectural Design. CSCE Lecture 12-09/27/2016

Collaboration of Tasks

Integration Framework. Architecture

Advanced Lectures on knowledge Engineering

1 Software Architecture

Distributed Systems

Review Architectural Style. Review Style Properties and Benefits

Today: Distributed Objects. Distributed Objects

Introduction to Web Services & SOA

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Architectural Design

Transcription:

Software Architecture Lecture 6 Event Systems Rob Pettit George Mason University SWE 443 Software Architecture Event Systems 1

previously data flow and call-return styles data flow batch sequential dataflow network (pipe & filter) acyclic, fan-out, pipeline, Unix closed loop control call-and-return main program/subroutines information hiding objects stateless client-server SOA interacting processes communicating processes event systems implicit invocation publish-subscribe data-oriented repository transactional databases stateful client-server blackboard modern compiler data-sharing compound documents hypertext Fortran COMMON LW processes hierarchical tiers interpreter N-tiered client-server SWE 443 Software Architecture Event Systems 2

This lecture event-based styles data flow batch sequential dataflow network (pipe & filter) acyclic, fan-out, pipeline, Unix closed loop control call-and-return main program/subroutines information hiding objects stateless client-server SOA interacting processes communicating processes event systems implicit invocation publish-subscribe data-oriented repository transactional databases stateful client-server blackboard modern compiler data-sharing compound documents hypertext Fortran COMMON LW processes hierarchical tiers interpreter N-tiered client-server SWE 443 Software Architecture Event Systems 3

Outline interacting processes style family tree: communicating peers publish-subscribe implicit invocation event systems quality attributes SWE 443 Software Architecture Event Systems 4

communication is loosely coupled in the interacting processes style components independent tasks (processes or threads) may be distributed connectors Connectors are the bindings between events announcements and handling routines communication is loosely coupled and often asynchronous system components may or may not have knowledge of other components functionality of one component does not depend upon others overall system functionality depends upon all components functioning and communicating properly SWE 443 Software Architecture Event Systems 5

interacting processes family tree communicating peers event systems aka implicit events publish aka broadcast publish-subscribe implicit invocation SWE 443 Software Architecture Event Systems 6

communicating peers know recipient s identity event to Z component X component C event to Y component Z event to C component Y event to B component B component A event to C identity of event recipients is known by event senders order of execution can be prescribed/predicted components execute independently (in contrast to call-return) communicating finite state machines are good example of this style SWE 443 Software Architecture Event Systems 7

event systems publish aka broadcast Don't care component X event i Don't care component C Don't care component Y component Z component A Don't care I CARE! component B Ethernet protocol in local area networks uses similar idea: event packet is tagged with recipient s address SWE 443 Software Architecture Event Systems 8

publish-subscribe & often implicit invocation rely on event infrastructure component X component Y component Z reg i evt: i evt: i reg j evt: i evt: i reg i evt: i event bus i: X, Z j: Y identity of event recipients is unknown to senders Publishers of events do not know which components (subscribers) will be affected by those events order of event delivery is bus-dependent different event buses make different guaranties or no guaranties about ordering SWE 443 Software Architecture Event Systems 9

publish-subscribe common example interacting tools in a shared environment (e.g. IDE) editor announces it has finished editing a module compiler registers for such announcements and automatically re-compiles module editor shows syntax errors reported by compiler debugger announces it has reached a breakpoint editor registers for such announcements and automatically scrolls to relevant source line SWE 443 Software Architecture Event Systems 10

implicit invocation recipients register callback call Y.m1() when i component A component X component Y component B call Y.m2() when j directly with event issuer e.g. supported by Java Observable/Observer classes facilitated by broker e.g. database triggers SWE 443 Software Architecture Event Systems 11

in summary communicating peers asynchronous messages aka explicit events explicit wrt identifying the recipient event systems aka implicit events events delivered to all interested components in some order publish aka broadcast publish-subscribe interested components subscribe to events interested components receive asynchronous message implicit invocation interested components register a callback method upon the event, the method is invoked (call-return) SWE 443 Software Architecture Event Systems 12

outline interacting processes style event systems quality attributes SWE 443 Software Architecture Event Systems 13

events are widely supported Ada: defines interrupts and interrupt handlers C++: defines events, event sources and event receivers Visual Basic: widgets send various events depending upon user interaction, timers, and so forth; code attached to event is executed when event occurs Java Observer & Observable classes database triggers: conditions associated to data trigger callbacks to registered methods middleware support for events: CORBA, etc. SWE 443 Software Architecture Event Systems 14

outline interacting processes style event systems quality attributes SWE 443 Software Architecture Event Systems 15

event systems X Y Z event bus promote scalability easy to add new components however, may increase overhead and hurt performance performance may be a challenge hard to coordinate the order of processing predicting and optimizing performance can be a challenge SWE 443 Software Architecture Event Systems 16

event systems X Y Z event bus promote reuse decoupling: events offer an interface with little assumptions announcers don t need to know the identity of responders easy to reuse/register a component that communicates this way promote conceptual integrity components work more independently interaction policy can be cleanly separated from internals however, due to non-determinism it may be hard to model and reason about run-time behavior SWE 443 Software Architecture Event Systems 17

event systems X Y Z event bus promote maintainability changes to one component have little or no effect on others however, changes to when a component announces/register may impact system behavior testing may be a challenge hard to trace origin/path of events may require special tools and/or system structures to do so hard to replicate ordering of actions during testing & after deployment SWE 443 Software Architecture Event Systems 18

in summary, many event systems rely on event infrastructure component X component Y component Z event bus identity of event recipients is unknown to senders order of event delivery is unknown different event buses make different guaranties or no guaranties about ordering SWE 443 Software Architecture Event Systems 19

in summary, event systems easy to modify, hard to test X Y Z event bus QAs promoted due to decoupling and encapsulation reuse modifiability scalability QAs inhibited performance: hard to guarantee response time testability: hard to test and reason about correctness availability: possible to miss events (no registrations) SWE 443 Software Architecture Event Systems 20