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

Similar documents
Patterns in Software Engineering

Architectural Patterns: From Mud to Structure

Architecture Design & Sequence Diagram. Week 7

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Architectural patterns

The Software Container pattern

A Review of an MVC Framework based Software Development

Chapter 2: Remote Procedure Call (RPC)

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

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

Implementação. Interfaces Pessoa Máquina 2010/ Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Data Communication Networks and Converged Networks

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Connecting with Computer Science, 2e. Chapter 5 The Internet

Report of the case study in Sistemi Distribuiti A simple Java RMI application

A Comparison of Distributed Systems: ChorusOS and Amoeba

CHAPTER 15: Operating Systems: An Overview

Basic Trends of Modern Software Development

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

Software Engineering

Principles and characteristics of distributed systems and environments

Chapter 9 Firewalls and Intrusion Prevention Systems

Hadoop and Map-Reduce. Swati Gore

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4

Architecture. Reda Bendraou

Overview - Using ADAMS With a Firewall

Overview of Computer Networks

Overview - Using ADAMS With a Firewall

Software Life-Cycle Management

Bandwidth Aggregation, Teaming and Bonding

Software Development around a Millisecond

Device Log Export ENGLISH

TimePictra Release 10.0


Event-based middleware services

Implementation of Model-View-Controller Architecture Pattern for Business Intelligence Architecture

Network Attached Storage. Jinfeng Yang Oct/19/2015

Network Programming TDC 561

Architecture for a Massively Multiplayer Online Role Playing Game Engine

Middleware Lou Somers

Programmable Networking with Open vswitch

Engineering Process Software Qualities Software Architectural Design

Integrated and reliable the heart of your iseries system. i5/os the next generation iseries operating system

A Brief Analysis of Web Design Patterns

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Chap 1. Introduction to Software Architecture

Chapter 1 - Web Server Management and Cluster Topology

How To Make A Distributed System Transparent

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Operating System Components

Computer Science. Master of Science

CPS221 Lecture: Operating System Structure; Virtual Machines

Division of Mathematical Sciences

Objectives of Lecture. Network Architecture. Protocols. Contents

Protocols and Architecture. Protocol Architecture.

How To Understand The Concept Of A Distributed System

Stateful Inspection Technology

We mean.network File System

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Génie Logiciel et Gestion de Projets. Patterns

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

File Sharing. Peter Lo. CP582 Peter Lo

An Introduction to Software Architecture

We will give some overview of firewalls. Figure 1 explains the position of a firewall. Figure 1: A Firewall

Distributed Objects and Components

SyncLockStatus Evaluator s Guide

High Performance Cluster Support for NLB on Window

Network File System (NFS) Pradipta De

Basic Internet programming Formalities. Hands-on tools for internet programming

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Implementing the Application Control Engine Service Module

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Virtual machine interface. Operating system. Physical machine interface

Advanced Analysis and Design

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

INTERNET SECURITY: THE ROLE OF FIREWALL SYSTEM

Better management through process automation.

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

CSE 3461 / 5461: Computer Networking & Internet Technologies

CSC 2405: Computer Systems II

Mid-Term #1 Solutions

Lecture 2: Protocols and Layering. CSE 123: Computer Networks Stefan Savage

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

The Service Revolution software engineering without programming languages

Cloud Networking Disruption with Software Defined Network Virtualization. Ali Khayam

Software: Systems and Application Software

Transcription:

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm The fundamental problem to be solved with a large system is how to break it into chunks manageable for human programmers to understand, implement, and maintain. Large-scale patterns for this purpose are called architectural patterns. Architectural patterns are related to design patterns, but higher level and larger scale. See Buschmann et al. (1996), chapter 2 for more details. SAPM Spring 2006: Architecture 1 SAPM Spring 2006: Architecture 2 Architectural Pattern Examples High level decompositions: Layers Pipes and filters Blackboard Distributed systems: Broker Interactive systems: Model-view-controller Presentation-abstraction-control Adaptable/reusable systems: Microkernel Scripted components Layers: Pattern Layer 3 Component 3.1 Layer 2 Component 2.1 Component 2.2 Layer 1 Component 1.1 Component 1.2 SAPM Spring 2006: Architecture 3 SAPM Spring 2006: Architecture 4

Layers: Problem System has different levels of abstraction Typical: Requests go down, notification goes back up It is possible to define stable interfaces between layers Want to be able to change or add layers over time Layers: Solution Start with the lowest level Build higher layers on top Same level of abstraction within a layer No component spreads over two layers Try to keep lower layers leaner Specify interfaces for each layer Try to handle errors at lowest layer possible SAPM Spring 2006: Architecture 5 SAPM Spring 2006: Architecture 6 Layers: Example (TCP/IP) Layers: Advantages FTP TCP IP Ethernet FTP TCP IP Ethernet Reuse of layers Standardization of tasks and interfaces Only local dependencies between layers Programmers and users can ignore other layers Different programming teams can handle each layer physical connection SAPM Spring 2006: Architecture 7 SAPM Spring 2006: Architecture 8

Layers: Liabilities Pipes and Filters: Pattern Cascades of changing behavior Lower efficiency of data transfer Difficult to choose granularity of layers Difficult to understand entire system When processing a stream of data, each processing step is done by a filter and the filters are connected by pipes carrying data. Connecting filters in different combinations gives different ways of processing the data streams. SAPM Spring 2006: Architecture 9 SAPM Spring 2006: Architecture 10 Pipes and Filters: Problem Data stream processing which naturally subdivides into stages May want to recombine stages Non-adjacent stages don t share information May desire different stages to be on different processors Helpful: Standardized data structure between stages Pipes and Filters: Solution Filter may consume/deliver data incrementally Filters may be parameterisable (e.g. UNIX filters) Input from data source (e.g. a fil e) Output to a data sink Sequence of filters from source to sink gives a processing pipeline SAPM Spring 2006: Architecture 11 SAPM Spring 2006: Architecture 12

Pipes and Filters: Example Lexical analysis Pipes and Filters: Advantages Pipes remove need for intermediate files Symbol table Syntax analysis Semantics analysis Intermediate code generation Can replace filters easily Can achieve different effects by recombination (increases long-term usefulness) If data stream has a standard format, filters can be developed independently Incremental filters allow parallelization SAPM Spring 2006: Architecture 13 SAPM Spring 2006: Architecture 14 Pipes and Filters: Liabilities Difficult to share global data Parallelization is less useful than may seem Expensive if there are many small filters and a high data transfer cost Difficult to know what to do with errors (especially if filters are incremental) Blackboard: Pattern A central, blackboard data store is used to describe a partial solution to a problem. A variety of knowledge sources are available to work on parts of the problem and these may communicate only with the blackboard, reading the current partial solution or suggesting modifications to it via a control component. SAPM Spring 2006: Architecture 15 SAPM Spring 2006: Architecture 16

Blackboard: Problem Immature or poorly specified domain No deterministic or optimal solution known for problem Solutions to different parts of problem may require different representational paradigms May be no fix ed strategy for combining contributions of different problem solvers May need to work with uncertain knowledge Blackboard: Solution Problem solvers work independently (and opportunistically) on parts of the problem Share a common data structure (the blackboard) A central controller manages access to the blackboard The blackboard may be structured (e.g. into levels of abstraction) so problem solvers may work at different levels Blackboard contains original input and/or partial solutions SAPM Spring 2006: Architecture 17 SAPM Spring 2006: Architecture 18 Blackboard: Example Blackboard: Advantages Phrase creation Word creation Segmentation Allows problem solvers to be developed independently Controller Phrase1...Phrase2... Blackboard Word1...Word2...Word3...Word4... S1...S2...S3...S4...S5...S6...S7...S8...S9... Easy (within limits) to experiment with different problem solvers and control heuristics System may (within limits) be tolerant to broken problem solvers, which result in incorrect partial solutions SAPM Spring 2006: Architecture 19 SAPM Spring 2006: Architecture 20

Blackboard: Liabilities Difficult to test Difficult to guarantee an optimum solution Control strategy often heuristic May be computationally expensive Broker: Pattern Decoupled components interact through remote service invocations. Communication is coordinated by a broker component which does things like forwarding requests and relaying results. Parallelism possible but in practice we need much synchronization SAPM Spring 2006: Architecture 21 SAPM Spring 2006: Architecture 22 Broker: Problem Large scale system where scaling to many components is an issue Components must be decoupled and distributed Services required for adding, removing, activating, locating components at run time Designers of individual components should not need to know about the others Broker: Solution Use brokers to mediate between clients and servers Clients send requests to a broker Brokers locate appropriate servers; forward requests; and relay results back to clients May have client-side and/or server-side proxies SAPM Spring 2006: Architecture 23 SAPM Spring 2006: Architecture 24

Broker: Example CORBA: Common Object Request Broker Architecture (e.g. JADE) OLE/DCOM/Active X Multi-agent systems are often coordinated through brokers such as JADE that provide a standard mechanism for relaying messages, based on a high-level communication protocol. Broker: Advantages Components can be developed independently Location transparency Components easily adapted Broker easily adapted Individual agents may be implemented in any language as long as they can input/output according to the protocol. SAPM Spring 2006: Architecture 25 SAPM Spring 2006: Architecture 26 Broker: Liabilities Low fault tolerance Limited efficiency (high communications cost) Difficult to test Model-View-Controller: Pattern Interactive system arranged around a model of the core functionality and data. View components present views of the model to the user. Controller components accept user input events and translate these to appropriate requests to views and/or model. A change propagation mechanism takes care of propagation of changes to the model. SAPM Spring 2006: Architecture 27 SAPM Spring 2006: Architecture 28

M-V-C: Problem User interfaces attract many change requests over time Different users ask for different changes User interface technologies change rapidly You may want to support different look and feel standards Important core code can be separated from the interfaces M-V-C: Solution Develop a core model which is independent of style of input/output Define different views needed for parts/whole model Each view component retrieves data from the model and displays it Each view component has an associated controller component to handle events from users The model component notifie s all appropriate view components whenever its data changes SAPM Spring 2006: Architecture 29 SAPM Spring 2006: Architecture 30 M-V-C: Example M-V-C: Advantages Spreadsheet Labour: 60% Tory: 30% Lib.Dem: 10% Controller Model Multiple views of the same model View synchronization View components can be plugged in Changes to interfaces without touching the model Pie chart Bar chart Views SAPM Spring 2006: Architecture 31 SAPM Spring 2006: Architecture 32

M-V-C: Liabilities Too complex for simple interface problems Frequent events may strain simple change propagation mechanisms Views and controllers aren t modular in practice Changing the model is expensive if there are many views Presentation-Abstraction-Control: Pattern A system implemented as a hierarchy of cooperating agents. Each agent is responsible for a specific aspect of functionality, and consists of: A presentation component responsible for its visible behaviour An abstraction component which maintains the data model for the agent A control component which determines the dynamics of agent operation and communication SAPM Spring 2006: Architecture 33 SAPM Spring 2006: Architecture 34 P-A-C: Problem Interactive system viewed as a set of cooperating agents, often developed independently Some agents specialize in HCI; others maintain data; others deal with error handling, etc. Some notion of levels of responsibility in the system Changes to individual agents should not affect the whole system P-A-C: Solution Define top-level agent with core functionality and data model, to coordinate the other agents and (possibly) also coordinate user interaction Define bottom-level agents for specific, primitive semantic concepts and/or services in the application domain Connect top and bottom levels via intermediate agents which supply data to groups of lower level agents For each agent separate core functionality from HCI SAPM Spring 2006: Architecture 35 SAPM Spring 2006: Architecture 36

P-A-C: Example Information system for political elections, with: Spreadsheet for entering data Various tables and charts for presenting current standings Users interact through graphical interface but different versions exist for different user needs Top-level agent holds data repository Different bottom-level agents for different types of charting, analysis and error handling Intermediate agent to coordinate views of system P-A-C: Advantages Separation of different concepts as individual agents that can be maintained separately Changes to presentation or abstraction in an agent doesn t affect other agents Easy to integrate/replace agents Suits multi-tasking Suits multi-user applications SAPM Spring 2006: Architecture 37 SAPM Spring 2006: Architecture 38 P-A-C: Liabilities Can have too many, too simple bottom-level agents Can be difficult to get control right while maintaining independence of agents Long chains of communication may be inefficient Microkernel: Pattern For systems which must be easily adaptable to changing requirements, separate minimal functional core from extended functionality and customer-specific parts. Provide sockets in the microkernel for plugging in these extensions and coordinating them. SAPM Spring 2006: Architecture 39 SAPM Spring 2006: Architecture 40

Microkernel: Problem Software systems with long life spans must evolve as their environment evolves Such systems must be adaptable to changes in existing platforms and must be portable to new platforms There may be a large number of different but similar platforms To conform with standards on different platforms it may be necessary to build emulators on top of the core functionality Thus the core should be small Microkernel: Solution Build a microkernel component which encapsulates all the fundamental services of your application The microkernel: Maintains system-wide resources (e.g. files) Enables other components to communicate Allows other components to access its functionality External servers implement their own view of the microkernel, using the mechanisms available from the microkernel Clients communicate with external servers using the communication facilities of the microkernel SAPM Spring 2006: Architecture 41 SAPM Spring 2006: Architecture 42 Microkernel: Example Microkernel: Advantages Operating system for desktop computers: Must be portable to relevant hardware platforms and adapt as these evolve. Must be able to run applications developed for other established operating systems e.g., users could choose which OS from a menu. Each of these OSs is built as an external server on top of the microkernel. Porting to a new environment normally doesn t need changes to external servers or clients Thus external servers or clients can be maintained independently of kernel Can extend by adding new external servers Can distribute the microkernel to several machines, increasing availability and fault tolerance SAPM Spring 2006: Architecture 43 SAPM Spring 2006: Architecture 44

Microkernel: Liabilities Summary Performance overhead in having multiple views of system May be difficult to predict which basic mechanisms should be in the microkernel Architectural patterns allow systems to be broken into chunks that can be developed (to some degree) and maintained independently These patterns support large-scale, long-term development and maintenance Not a recipe, just an approach Next lecture: Scripted components architectural pattern SAPM Spring 2006: Architecture 45 SAPM Spring 2006: Architecture 46 References Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., & Stal, M. (1996). Pattern-Oriented Software Architecture: A System of Patterns. Hoboken, NJ: Wiley. SAPM Spring 2006: Architecture 46