Architectural Patterns: From Mud to Structure



Similar documents
Patterns in Software Engineering

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

Architecture Design & Sequence Diagram. Week 7

Software Engineering

Chap 1. Introduction to Software Architecture

Advanced Analysis and Design

KWIC Implemented with Pipe Filter Architectural Style

Software Life-Cycle Management

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

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

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January Website:

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

BigData. An Overview of Several Approaches. David Mera 16/12/2013. Masaryk University Brno, Czech Republic

Applying SOA to OSS. for Telecommunications. IBM Software Group

Scientific versus Business Workflows

Classical Software Life Cycle Models

Architectural patterns

KWIC Exercise. 6/18/ , Spencer Rugaber 1

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Unified Batch & Stream Processing Platform

Big Data JAMES WARREN. Principles and best practices of NATHAN MARZ MANNING. scalable real-time data systems. Shelter Island

Real Time Big Data Processing

Big Data Processing with Google s MapReduce. Alexandru Costan

Secure Data Transfer and Replication Mechanisms in Grid Environments p. 1

Conjugating data mood and tenses: Simple past, infinite present, fast continuous, simpler imperative, conditional future perfect

Table of Contents. Bibliografische Informationen digitalisiert durch

Hadoop Architecture. Part 1

Copyright Soleran, Inc. esalestrack On-Demand CRM. Trademarks and all rights reserved. esalestrack is a Soleran product Privacy Statement

R12 Oracle Purchasing Fundamentals

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Socio-Technical Systems

How to change the decimal precision of qty, price and cost in the PROMPT Inventory System

A Complete Model of the Supermarket Business

Apache Flink Next-gen data analysis. Kostas

IBM WebSphere DataStage Online training from Yes-M Systems

Welcome to the unit of Hadoop Fundamentals on Hadoop architecture. I will begin with a terminology review and then cover the major components

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Diagnosis and Fault-Tolerant Control

Design and Implementation of a Storage Repository Using Commonality Factoring. IEEE/NASA MSST2003 April 7-10, 2003 Eric W. Olsen

What is a life cycle model?

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

A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM

CS 5150 So(ware Engineering System Architecture

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

Hadoop s Entry into the Traditional Analytical DBMS Market. Daniel Abadi Yale University August 3 rd, 2010

Software Development in the Large!

Architectural Patterns (3)

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

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

Tutorial: Big Data Algorithms and Applications Under Hadoop KUNPENG ZHANG SIDDHARTHA BHATTACHARYYA

The Impact of Big Data on Classic Machine Learning Algorithms. Thomas Jensen, Senior Business Expedia

Software Architecture Document

The Virtual Digital Forensics Lab: Expanding Law Enforcement Capabilities

The Data Grid: Towards an Architecture for Distributed Management and Analysis of Large Scientific Datasets

Business Modeling with UML

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

The Software Container pattern

FIXED ASSET AND CAPITAL PURCHASE POLICY

Securing EtherNet/IP Using DPI Firewall Technology

Development IV in Microsoft Dynamics AX 2012

Five Essential Components for Highly Reliable Data Centers

BIG DATA SOLUTION DATA SHEET

An Introduction to Software Architecture

A distributed system is defined as

Correctness Preserving Transformations for Network Protocol Compilers

Smart Business Processes using Oracle Business Rules

BUSINESS ARCHITECTURE AND BPM ALIGNMENT

Karunya University Dept. of Information Technology

Controlling Risks Safety Lifecycle

Evolution Feature Oriented Model Driven Product Line Engineering Approach for Synergistic and Dynamic Service Evolution in Clouds

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

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1

Basic Trends of Modern Software Development

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Applying Multi-core and Virtualization to Industrial and Safety-Related Applications

Resource Allocation and the Law of Diminishing Returns

Budgetary Planning. Managerial Accounting Fifth Edition Weygandt Kimmel Kieso. Page 9-2

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Automated Data Ingestion. Bernhard Disselhoff Enterprise Sales Engineer

Architecture. Reda Bendraou

The Stratosphere Big Data Analytics Platform

COMP 598 Applied Machine Learning Lecture 21: Parallelization methods for large-scale machine learning! Big Data by the numbers

The Role of the Software Architect

Using T Accounts to post journal entries

A methodology for secure software design

High-level Design. What is software architecture?

Frameworx 14.5 Implementation Conformance Certification Report

System Requirements Specification (SRS) (Subsystem and Version #)

Transcription:

DCC / ICEx / UFMG Architectural Patterns: From Mud to Structure Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

From Mud to Structure Layered Architecture It helps to structure applications that can be decomposed into group of tasks Pipes and Filters It provides a structure for systems that process a stream of data Blackboard It is useful for problems for which no deterministic solution is known

Layers

Layers Architectural Pattern It organizes the system as groups of tasks Each group of task is at a particular level of abstraction (layer) Each layer is client of the lower layer provides services to the upper layer

Example of 7 Layers

Example of 3 Layers Presentation Layer Business Layer Data Layer

Benefits Reuse of layers Each layer embodies a well-defined abstraction with a documented interface Incremental Development A lower layer does not depend on upper layers Exchangeability A layer can be replaced by a semanticallyequivalent one

Liabilities Lower efficiency Data have to be transferred through several layers (communication overhead) Difficulty of establishing the correct granularity of layers Which services go to each layer? Cascades of changing behavior Changes in one layer may requires updates to the others

Pipes and Filters

Pipes and Filters This pattern provides a structure for systems that process a stream of data It defines two roles Pipes: data is passed through these components Filters: processing steps are encapsulated in filter components Recombining filters allows you to build families of related systems

Architectural Pattern Solution It divides the tasks of a system into several processing steps (filters) These steps are connected by the data flow (pipes) Output data of one step is the input data of another step The sequence of filters combined by pipes is called pipeline

Example of Pipes and Filters Input: Invoices and Payments Output: Receipts and Reminders Invoices Payments Issue Receipts Receipts Read Issued Invoices Identify Payments Find Due Payments Reminders Issue Payment Reminders

Benefits Flexibility by filter exchange Filters have a simple interface and a well-defined responsibility Flexibility to recombination and reuse Efficiency by parallel processing Not only for sequential pipelines The workflow style is similar to several business model

Liabilities Filters require a common format of data In case of extensive data transformation, performance becomes an major concern Error handling is complex Pipeline components do not share any global state It is hard to give a general strategy for error handling

Blackboard

Blackboard Blackboard is useful for problems with no deterministic solution Several specialized components assemble their knowledge to build a partial solution Components collaborate Some components generate / write data Some components use / read data This pattern is often used to share data among different subsystems

Example of Blackboard Selling Subsystem Inventory Control Subsystem Acquiring Subsystem Products DB

Benefits Easy way to share data Centralized backup and data protection Support for changeability and maintainability A subsystem does not need to know the other subsystems It is easy to aggregate additional subsystems Support for fault tolerance and robustness

Liabilities Difficulty of testing The solution may follow a nondeterministic algorithm All subsystems must understand the same format of data They can have different requirements It may be hard to maintain a large dataset

Bibliography F. Buschmann et al. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons, 1996. Chap. 2 Architectural Patterns