ICS362 – Distributed Systems Dr. Ken Cosh Week 2.

Slides:



Advertisements
Similar presentations
Distributed Systems Architectures
Advertisements

ICS 434 Advanced Database Systems
Database Architectures and the Web
©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.
Distributed Systems Architectures
CS 620 Advanced Operating Systems Lecture 4 – Distributed System Architectures Professor Timothy Arndt BU 331.
Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Based on last years lecture notes, used by Juha Takkinen.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Ch 12 Distributed Systems Architectures
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Architectural Design, Distributed Systems Architectures
Architectures for Distributed Systems
Client/Server Architecture
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Architectures
Architectures. Software Architecture Describe how the various software components are to be organized and how they should interact. It describe the organization.
Distributed Software Engineering To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Distributed Systems Architectures ©Ian Sommerville 2006.
Database Architectures and the Web Session 5
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 2 ARCHITECTURES.
Architectural Design, Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11Slide 1 Chapter 11 Distributed Systems Architectures.
Distributed Systems Architectures
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 2 ARCHITECTURES.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 CS 6823 ASU Chapter 2 Architecture.
Architectures of distributed systems Fundamental Models
Kyung Hee University 1/41 Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Architectures for Distributed Systems Chapter 2. Definitions Software Architectures – describe the organization and interaction of software components;
Architectures for Distributed Systems Chapter 2. Definitions Software Architectures – describe the organization and interaction of software components.
Distributed (Operating) Systems -Architectures- Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University.
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.
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Prof. Leonardo Mostarda University of Camerino Distributed Systems – Architectures Prof. Leonardo Mostarda-- Camerino,
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Distributed Systems CS
CSC 480 Software Engineering
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
Prof. Leonardo Mostarda University of Camerino
Distributed Systems CS
Distributed Systems Architectures
#01 Client/Server Computing
Presentation transcript:

ICS362 – Distributed Systems Dr. Ken Cosh Week 2

Review Introduction Goals of DS – Available Resources – Transparency – Openness – Scalability Types of DS – Computing Systems – Information Systems – Pervasive Systems

This Week Architectures – Architectural Styles – System Architectures – Architectures vs Middleware

Software/System Architectures Logical Organisation of components vs Physical Organisation Design decisions – Centralised vs Decentralised Architectures – Middleware Layers – Adaptive Systems? (Autonomic Systems?)

Architectural Style Essential for successful system development In this case: Interrelated Components and Connectors – A component is a modular unit with well-defined required and provides interfaces that is replaceable within its environment. – A connector is a mechanism that mediates communication, co-ordination or co-operation between components.

Architectural Styles Key styles for Distributed Systems – Layered Architectures – Object-based Architectures – Data-centered Architectures – Event-based Architectures

Layered Architectures Components at layer L i are allowed to call components at underlying layers L i-1, but not the other way around. Database Layer Data Management Layer Applications Layer User Interface Layer RequestsResults

Object-based Architectures Looser Organisation Each Object is a ‘component’ with required and provides interface. Object Method Calls

Data-centred Architecture Processes communicate through a common (passive or active) data repository. – E.g. Web based systems where processes communicate through shared web-based data services.

Event-based Architectures Processes communicate through event propagation – ‘Publish/Subscribe’ systems Processes subscribed to events will receive them. Benefit is components are loosely coupled; – i.e. they don’t need to explicitly refer to each other.

System Architectures Organising Systems based on placement of software components – Centralised Architectures – Decentralised Architectures – Hybrid Architectures

Centralised Architectures Simply: Client Server Architectures – Easy way to understand & manage complexity in DS Server – Process implementing a particular service Client – Process requesting the service and waiting for a reply.

Request-Reply Behaviour Client Server Request Reply Provide Service Wait for Result Time

Message Reliability? Reliable Connections? – Resend upon failure? “Transfer $10,000 from my account” “How much money do I have” – Idempotency: Operation can be repeated without harm Connectionless vs Connection-oriented protocols? – Cost of setting up and maintaining a connection.

Client Server Architecture What is a client? What is a server? – Can we really distinguish between the two? – What is the database server needs to request a service from another file server? Nonetheless, essentially Client Server architecture has 3 ‘layers’ – User Interface Layer – Processing Layer – Data Layer

User Interface Layer Growing sophistication – Text based screen – GUI, with menus etc. – Drag ‘n’ Drop interface – Ajax!

Processing Layer Example: Web Search User Interface Database Query Generator Ranking Algorithm HTML Generator

Data Layer Data is persistent – When applications stop, the data doesn’t A file-system? A database? Often responsible for data management; – Security – Verification – Consistency

Thin and Fat Clients Thin-client model – In a thin-client model, all of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software. Fat-client model – In this model, the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.

Thin and Fat Clients

Thin Client Model Used when legacy systems are migrated to client server architectures. – The legacy system acts as a server in its own right with a graphical interface implemented on a client A major disadvantage is that it places a heavy processing load on both the server and the network

Fat Client Model More processing is delegated to the client as the application processing is locally executed Most suitable for new C/S systems where the capabilities of the client system are known in advance More complex than a thin client model especially for management. New versions of the application have to be installed on all clients

A Client-server ATM System

Three-tier Architectures In a three-tier architecture, each of the application architecture layers may execute on a separate processor Allows for better performance than a thin- client approach and is simpler to manage than a fat-client approach A more scalable architecture - as demands increase, extra servers can be added

A 3-tier C/S Architecture

An Internet Banking System

Use of C/S Architectures

Server as Client Application Server Database Server Request Reply Provide Service Wait for Data Time User Interface Wait for Result Request Reply

Centralised vs Decentralised Architectures Centralised Architectures – Vertical Distribution – Logical for many Business Environments Decentralised Architectures – Horizontal Distribution – Client (or Server) split up into logically equivalent parts where each part operates on its own share of the complete data set – Peer-to-peer systems

Decentralised or Peer-to-peer Architectures Each process acts as a client & a server (a servent). How to logically organise the processes? – Through an overlay network Nodes are processes & links are possible communication channels – In general processes can’t just communicate with another process at will, instead they have to follow the available communication channels.

Structured Peer-to-peer Architectures 1 Common Option – Distributed Hash Table assigns each node and each data item a random key. – Each data item is mapped to a node based on distance. – Nodes (and hence their data items) can then be stored in a linked list like structure. – Operations include; Lookup, Join, Leave etc.

Structured Peer-to-peer Architectures Alternative option – Data is assigned a location in a multi-dimensional Cartesian co-ordinate space E.g. (0.3,0.4) in a 2 dimensional space. – Nodes are then allocated regions of data to manage When a node joins it divides another existing nodes region in two. When a node leaves it’s region merges with a neighbour

Unstructured Peer-to-peer Architectures Where data is effectively randomly allocated to nodes – Searching requires flooding the network. When a node joins, it contacts an arbitrary node from a list of access points (highly available nodes) Superpeers can maintain an index of data items to improve search

Superpeers Peers connect to Superpeers who connect to a superpeer network. Further challenges exist; – Which is the best superpeer for this peer to connect with? – What happens when a superpeer leaves? – How do we decide which nodes become superpeers?

Hybrid Architectures Client Server solutions combined with decentralised architectures. – Edge Server Systems E.g. Users connecting to an ISP which resides at the “edge” of the internet. – Bit Torrent Trackers which keep an account of active nodes across the decentralised network.

Middleware? Software layer between applications and platforms providing distribution transparency If middleware is molded to an architectural style, designing applications is easier – But then the middleware might be too bloated for the application developer’s needs