Advanced Analysis and Design

Similar documents
Software Engineering

An Introduction to Software Architecture

Software Life-Cycle Management

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Software design (Cont.)

Web Services Software Architecture

Architectural Patterns: From Mud to Structure

KWIC Exercise. 6/18/ , Spencer Rugaber 1

High-level Design. What is software architecture?

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Architectural patterns

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Patterns in Software Engineering

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Architecture. Reda Bendraou

CS 5150 So(ware Engineering System Architecture

KWIC Implemented with Pipe Filter Architectural Style

A distributed system is defined as

Service Oriented Architecture

Architecture Design & Sequence Diagram. Week 7

Structural Patterns. Structural Patterns. Fritz Solms. October 16, 2015

Client/Server Computing Distributed Processing, Client/Server, and Clusters

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

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

IT Architecture Review. ISACA Conference Fall 2003

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

Service Oriented Architecture 1 COMPILED BY BJ

Scientific versus Business Workflows

Techniques for Composing REST services

MSE-201 SOFTWARE PROJECT MANAGEMENT

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

P09. Architecture Patterns

Software Service Engineering Architect s Dream or Developer s Nightmare?

Definition of SOA. Capgemini University Technology Services School Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Oracle Database Security and Audit

Software Design. Software Design. Software design is the process that adds implementation details to the requirements.

Vragen. Architecture presentations in practice. Some terms (from IEEE standard)

Service Oriented Architecture

Glossary of Object Oriented Terms

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

EII - ETL - EAI What, Why, and How!

Software Architecture

Star System Deitel & Associates, Inc. All rights reserved.

A standards-based approach to application integration

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

Event-based middleware services

An Oracle White Paper October Oracle Data Integrator 12c New Features Overview

Distributed Objects and Components

How To Write A Composition Engine In A Microsoft Ip System

A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM

Socket Programming in the Data Communications Laboratory

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Introduction to LabVIEW Design Patterns

Table of Contents. Preface. Chapter 1 Introduction 1.1 Background. 1.2 Problem description. 1.3 The role of standardization. 1.4 Scope and objectives

IBM Tivoli Storage Manager Version Introduction to Data Protection Solutions IBM

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Web Application Architectures

Application Architectures

Computer networks, data communication and Internet

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

Objectives of Lecture. Network Architecture. Protocols. Contents

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

HexaCorp. White Paper. SOA with.net. Ser vice O rient ed Ar c hit ecture

MEng, BSc Computer Science with Artificial Intelligence

Material and some slide content from: - Software Architecture: Foundations, Theory, and Practice NFPs Reid Holmes Lecture 5 - Tuesday, Sept

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

Introduction to Service Oriented Architectures (SOA)

Chapter 6, The Operating System Machine Level

The Service Revolution software engineering without programming languages

28 Application Architectures

Structuring Product-lines: A Layered Architectural Style

Designing Real-Time and Embedded Systems with the COMET/UML method

Virtual machine interface. Operating system. Physical machine interface

The CVS-Server Case Study: A Formalized Security Architecture

Chapter 2: Enterprise Applications from a Middleware Perspective

Load Balancing MPI Algorithm for High Throughput Applications

Internet Concepts. What is a Network?

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

Chapter 18: Database System Architectures. Centralized Systems

Platform Autonomous Custom Scalable Service using Service Oriented Cloud Computing Architecture

Explicit Connectors in Component Based Software Engineering for Distributed Embedded Systems. Dietmar Schreiner and Karl M.

Service Governance and Virtualization For SOA

Core J2EE Patterns, Frameworks and Micro Architectures

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

Chapter 15: Distributed Structures. Topology

GenericServ, a Generic Server for Web Application Development

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6

Transcription:

Advanced Analysis and Design Architectural Styles Professor David S. Rosenblum Department of Computer Science http://www.cs.ucl.ac.uk/staff/d.rosenblum/

Architectural Styles A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done Shaw & Clements, 1996 A family or class of architectures sharing a common pattern of structural organization

Analogy with Civil Architecture The Classical Style The Pantheon Rome, Italy

Analogy with Civil Architecture The Gothic Style Nôtre-Dame Cathedral Paris, France

Analogy with Civil Architecture The Mediterranean Style Irvine, California, USA

Common Software Architectural Styles Shaw & Garlan, 1996 (1) Dataflow Systems Batch sequential Pipes and filters Call-and-Return Systems Main program and subroutines Object-oriented systems Hierarchical layers (onion layers) Independent Components Communicating processes (client/server and peer-to-peer) Event systems Implicit invocation

Common Software Architectural Styles Shaw & Garlan, 1996 (2) Virtual Machines Interpreters Rule-based systems Data-Centered Systems (Repositories) Databases Hypertext systems Blackboards

Characterising Architectural Styles Component and connector characteristics Allowed configurations Underlying computational model Stylistic invariants Common examples of its use Advantages and disadvantages Common specialisations

The Pipe-and-Filter Style The primary architectural style supported by UNIX Components Individual programs transforming input data to output data Connectors Unidirectional or bidirectional data streams Configurations Parallel linear composition of program invocations Underlying computational model Sequential data flow and transformation Stylistic invariants Every component has one input predecessor connector and one output successor connector Common specializations Pipelines: single linear composition of pipes and filters Bounded pipes, typed pipes

Pipe-and-Filter Example UNIX Text Processing pic eqn tbl troff lpr % pic mydoc.t eqn tbl troff lpr Legend: Component Connector

Pipe-and-Filter Advantages and Disadvantages Advantages Simple, intuitive, efficient composition of components High potential for reuse Easy to evolve and enhance Potential for limited amount of concurrency Disadvantages Batch-oriented processing Must agree on lowest-common-denominator data format Limited application domain: stateless data transformation

The Layered System Style Components Programs or subprograms Connectors Procedure calls or system calls Configurations Onion or stovepipe structure, possibly replicated Underlying computational model Procedure call/return Stylistic invariants Each layer provides a service only to the immediate layer above (at the next higher level of abstraction) and uses the service only of the immediate layer below (at the next lower level of abstraction)

Layered System Example OSI Protocol Stack Application Application Presentation Presentation Session Session Transport Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical

Layered System Advantages and Disadvantages Advantages Effective separation of concerns Well-defined levels of abstraction Reduced impact of change when changes don t affect layer interfaces Disadvantages Performance degrades with too many layers Can be difficult to assign functionality cleanly to the right layer

The Blackboard Style Components Blackboard client programs Connector Blackboard: shared data repository, possibly with finite capacity Configurations Multiple clients sharing single blackboard Underlying computational model Synchronised, shared data transactions, with control driven entirely by blackboard state Stylistic invariants All clients see all transactions in the same order

Blackboard Example An Online Chat Room Chat Client Chat Client Chat Client Chat Transcript Chat Client Chat Client

Blackboard Advantages and Disadvantages Advantages General style suitable for network-based applications, including network database servers Disadvantages Blackboard becomes a bottleneck with too many clients

Components Event-Based Systems and the Implicit Invocation Style Programs or program entities that announce and/or register interest in events» Events represent happenstances inside an entity that may (or may not) be of interest to other entities Connectors Direct registration with announcing entities Or, explicit event broadcast and registration infrastructure Configurations Implicit dependencies arising from event announcements and registrations Underlying computational model 1. Event announcement is broadcast 2. Procedures associated with registrations (if any) are invoked

Implicit Invocation Example Program Debugging (1) Set breakpoint line 10 Debug events Interactive Program Debugger Application Program Breakpoint Routine

Implicit Invocation Example Program Debugging (2) Debug events line 10 Interactive Program Debugger Application Program Breakpoint Routine

Implicit Invocation Example Program Debugging (3) Debug events Line 8 reached line 10 Interactive Program Debugger Application Program Breakpoint Routine

Implicit Invocation Example Program Debugging (4) Debug events Line 10 reached line 10 Interactive Program Debugger Application Program Breakpoint Routine Implicit Invocation!

Advantages Implicit Invocation Advantages & Disadvantages Allows for decoupling and autonomy of components Enhances reuse and evolution» Easy to introduce new components without affecting existing ones Disadvantages Components announcing events have no guarantee of getting a response Components announcing events have no control over the order of responses Event abstraction does not cleanly lend itself to data exchange Difficult to reason about behaviour of an announcing component independently of components that register for its events

Some Criteria for Selecting and Comparing Styles Control flow Data flow Application Distribution Scalability what else? What other styles can you think of?