Distributed Systems CS

Slides:



Advertisements
Similar presentations
Saeed Darvish Pazoki – MCSE, CCNA Abstracted From: Sybex – Network+ Study Guide Network Fundamentals 1.
Advertisements

Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Spotlighting Decentralized P2P File Sharing Archie Kuo and Ethan Le Department of Computer Science San Jose State University.
Introducing … Distributed Systems.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Distributed Systems CS Distributed System Architecture and Introduction to Networking Lecture 3, Sep 12, 2011 Majd F. Sakr, Vinay Kolar, Mohammad.
Distributed Systems CS Programming Models- Part I Lecture 13, Oct 13, 2014 Mohammad Hammoud 1.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 2 ARCHITECTURES.
An Introduction to Software Architecture
LOGO Service and network administration Storage Virtualization.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Architectures of distributed systems Fundamental Models
Super-peer Network. Motivation: Search in P2P Centralised (Napster) Flooding (Gnutella)  Essentially a breadth-first search using TTLs Distributed Hash.
Kyung Hee University 1/41 Introduction Chapter 1.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Client/Server Computing
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
Distributed Systems CS Architectural Models of Distributed Systems Lecture 3, September 9, 2015 Mohammad Hammoud.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
CS Spring 2014 CS 414 – Multimedia Systems Design Lecture 37 – Introduction to P2P (Part 1) Klara Nahrstedt.
Two Peer-to-Peer Networking Approaches Ken Calvert Net Seminar, 23 October 2001 Note: Many slides “borrowed” from S. Ratnasamy’s Qualifying Exam talk.
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
P2P Search COP6731 Advanced Database Systems. P2P Computing  Powerful personal computer Share computing resources P2P Computing  Advantages: Shared.
P2P Search COP P2P Search Techniques Centralized P2P systems  e.g. Napster, Decentralized & unstructured P2P systems  e.g. Gnutella.
CS Spring 2012 CS 414 – Multimedia Systems Design Lecture 37 – Introduction to P2P (Part 1) Klara Nahrstedt.
Layers Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
A Survey of Peer-to-Peer Content Distribution Technologies Stephanos Androutsellis-Theotokis and Diomidis Spinellis ACM Computing Surveys, December 2004.
Databases and DBMSs Todd S. Bacastow January 2005.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
CS 325: Software Engineering
An example of peer-to-peer application
PEER-TO-PEER NETWORK FAMILIES
Chapter 2 Database System Concepts and Architecture
Peer-to-Peer Data Management
Principles of Network Applications
Distributed Systems CS
MVC and other n-tier Architectures
Software Design and Architecture
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
The Client/Server Database Environment
CSC 480 Software Engineering
CHAPTER 3 Architectures for Distributed Systems
CHAPTER 1 INTRODUCTION:
Understanding the OSI Reference Model
Introduction to Cloud Computing
#01 Client/Server Computing
Distributed Systems CS
EE 122: Peer-to-Peer (P2P) Networks
IS 651: Distributed Systems Midterm
Prof. Leonardo Mostarda University of Camerino
Architectures of distributed systems Fundamental Models
Distributed computing deals with hardware
Software models - Software Architecture Design Patterns
Architectures of distributed systems Fundamental Models
An Introduction to Software Architecture
Chapter 17: Client/Server Computing
Web Application Architectures
Distributed Systems CS
Architectures of distributed systems
Computer Networking A Top-Down Approach Featuring the Internet
Architectures of distributed systems Fundamental Models
Database System Architectures
Web Application Architectures
Chapter 2: System models
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed System Models
#01 Client/Server Computing
Presentation transcript:

Distributed Systems CS 15-440 Architectures Lecture 6, September 19, 2018 Mohammad Hammoud

Today… Last Session: Today’s Session: Announcements: Remote Procedure Calls Today’s Session: Conclude Remote Procedure Calls Architectures Announcements: Project I is due on Oct 11 – Design report is due on Sept 27 PS2 will be out today

Bird’s Eye View of Some Distributed Systems Peer 2 Expedia Google Server Peer 1 Peer 3 Request Response Reservation Client 1 Search Client 1 Reservation Client 2 Search Client 2 Reservation Client 3 Search Client 3 Peer 4 Bit-torrent Google Search Skype Airline Booking How would one characterize these distributed systems?

Simple Characterization of Distributed Systems What are the entities that are communicating in a DS? Communicating entities (system-oriented vs. problem-oriented entities) How do the entities communicate? Communication paradigms (sockets and RPC– we will see study more paradigms later) What roles and responsibilities do the entities have? This could lead to different organizations (referred, henceforth, to as architectures)

Architectures Two main architectures: Master-Slave architecture Roles of entities are asymmetric Peer-to-Peer architecture Roles of entities are symmetric

Architectures Master-Slave Peer-to-Peer Super-Peer Peer Worker Peer

Master-Slave Architecture A master-slave architecture can be characterized as follows: Nodes are unequal (there is a hierarchy) Vulnerable to Single-Point-of-Failure (SPOF) The master acts as a central coordinator Decision making becomes easy The underlying system cannot scale out indefinitely The master can render a performance bottleneck as the number of workers is increased The architecture was popularized by the file sharing system Napster, originally released in 1999

Peer-to-Peer Architecture A peer-to-peer (P2P) architecture can be characterized as follows: All nodes are equal (no hierarchy) No Single-Point-of-Failure (SPOF) A central coordinator is not needed But, decision making becomes harder The underlying system can scale out indefinitely In principle, no performance bottleneck The architecture was popularized by the file sharing system Napster, originally released in 1999

Peer-to-Peer Architecture A peer-to-peer (P2P) architecture can be characterized as follows: Peers can interact directly, forming groups and sharing contents (or offering services to each other) At least one peer should share the data, and this peer should be accessible Popular data will be highly available (it will be shared by many) Unpopular data might eventually disappear and become unavailable (as more users/peers stop sharing them) Peers can form a virtual overlay network on top of a physical network topology Logical paths do not usually match physical paths (i.e., higher latency) Each peer plays a role in routing traffic through the overlay network The architecture was popularized by the file sharing system Napster, originally released in 1999

Types of P2P Architecture P2P Types Types of P2P Architecture Unstructured Structured Hybrid

P2P Types Unstructured P2P: The architecture does not impose any particular structure on the overlay network Advantages: Easy to build Highly robust against high rates of churn (i.e., when a great deal of peers frequently join and leave the network) Main disadvantage: Peers and contents are loosely-coupled, creating a data location problem Searching for data might require broadcasting

Types of P2P Architecture P2P Types Types of P2P Architecture Unstructured Structured Hybrid

P2P Types Structured P2P: The architecture imposes some structure on the overlay network topology Main advantage: Peers and contents are tightly-coupled (e.g., through hashing), simplifying data location Disadvantages: Harder to build For optimized data location, peers must maintain extra metadata (e.g., lists of neighbors that satisfy specific criteria) Less robust against high rates of churn

Types of P2P Architecture P2P Types Types of P2P Architecture Unstructured Structured Hybrid

P2P Types Hybrid P2P: The architecture can use some central servers to help peers locate each other A combination of P2P and master-slave models It offers a trade-off between the centralized functionality provided by the master-slave model and the node equality afforded by the pure P2P model In other words, it combines the advantages of the master-slave and P2P models and precludes their disadvantages

Architectural Patterns Aside from architectures, primitive architectural elements can be combined to form various patterns via: Tiering Layering Tiering and layering are complementary Tiering = horizontal splitting of services Layering = vertical organization of services

Airline Search Application Tiering Tiering is a technique to: Organize the functionality of a service, and place the functionality into appropriate servers Airline Search Application Display UI screen Get user Input Get data from database Rank the offers

A Two-Tiered Architecture How would you design an airline search application? Tier 1 Tier 2 EXPEDIA Airline Search Application Display user input screen Get user Input Airline Database Display result to user Rank the offers

A Three-Tiered Architecture How would you design an airline search application? Tier 1 Tier 2 Tier 3 EXPEDIA Airline Search Application Display user input screen Get user Input Airline Database Display result to user Rank the offers

A Three-Tiered Architecture Presentation Logic Application Logic Data Logic Application-Specific Processing User view, and controls Database manager Application-Specific Processing User view, and control Tier 1 Tier 2 Tier 3

Three-Tiered Architecture: Pros and Cons Advantages: Enhanced maintainability of the software (one-to-one mapping from logical elements to physical servers) Each tier has a well-defined role Disadvantages: Added complexity due to managing multiple servers Added network traffic Added latency

Layering A complex system is partitioned into layers Upper layer utilizes the services of the lower layer A vertical organization of services Layering simplifies the design of complex distributed systems by hiding the complexity of below layers Control flows from layer to layer Layer 3 Request flow Response flow Layer 2 Layer 1

Layering – Platform and middleware Distributed systems can be organized into three layers: Platform Low-level hardware and software layers Provides common services for higher layers Middleware Masks heterogeneity and provides convenient programming models to application programmers Typically, it simplifies application programming by abstracting communication mechanisms Applications Applications Middleware Operating system Platform Computer and network hardware

Next Class Naming