Distributed Systems CS 15-440 Architectural Models of Distributed Systems Lecture 3, September 9, 2015 Mohammad Hammoud.

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

Unit – Paradigms and Abstraction 3.2 An Example Applications 3.3 Paradigms for Distributed Applications Distributed Computing Paradigms By Asst.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Technical Architectures
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Distributed Systems Architectures
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
The Architecture of Transaction Processing Systems
Distributed Systems CS Distributed System Architecture and Introduction to Networking Lecture 3, Sep 12, 2011 Majd F. Sakr, Vinay Kolar, Mohammad.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
5th Edition, Irv Englander
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
Distributed Systems: Client/Server Computing
Client/Server Architecture
Introduction to client/server architecture
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Architectures
Chapter 2, slide: 1 CS 372 – introduction to computer networks* Monday June 28 Announcements: r Lab 1 is due today r Lab 2 is posted today and is due next.
The Design Discipline.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
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.
Architectures of distributed systems Fundamental Models
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Chapter 2: System Models. Objectives To provide students with conceptual models to support their study of distributed systems. To motivate the study of.
Kyung Hee University 1/41 Introduction Chapter 1.
Distributed Computing A Programmer’s Perspective.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Client/Server Computing
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Distributed Computing Paradigms1. 2 Paradigms for Distributed Applications Paradigm means “a pattern, example, or model.” In the study of any subject.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
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.
Last Class: Introduction
Chapter 3 Internet Applications and Network Programming
Principles of Network Applications
Distributed Systems CS
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
CHAPTER 3 Architectures for Distributed Systems
CHAPTER 1 INTRODUCTION:
#01 Client/Server Computing
Chapter 3: Windows7 Part 4.
Distributed Systems CS
Inventory of Distributed Computing Concepts
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
Distributed Systems CS
Distributed Systems CS
Architectures of distributed systems
Distributed Systems CS
Architectures of distributed systems Fundamental Models
Distributed System Models
#01 Client/Server Computing
Distributed Systems CS
Distributed Systems CS
Presentation transcript:

Distributed Systems CS Architectural Models of Distributed Systems Lecture 3, September 9, 2015 Mohammad Hammoud

Today…  Last Session:  Trends and challenges in Distributed Systems  Today’s Session:  Architectural Models of Distributed Systems  Announcements:  Project 1 (P1) is now posted online. The design report is due on Sept 20 and the final project is due on Oct 8.  In tomorrow’s recitation we will discuss the requirements of P1 in detail- please make sure to read P1’s write-up before coming to the recitation.

A Distributed System  A distributed system is simply a collection of hardware/software components that communicate to solve a complex problem  Each component performs a “task” C0C1 C2 Communication mechanism Components performing tasks

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

Classification of Distributed Systems What are the entities that are communicating in a DS? a)Communicating entities How do the entities communicate? b)Communication paradigms What roles and responsibilities do they have? c)Roles and responsibilities How are they mapped to the physical distributed infrastructure? d)Placement of entities

Classification of Distributed Systems What are the entities that are communicating in a DS? a)Communicating entities How do the entities communicate? b)Communication paradigms What roles and responsibilities do they have? c)Roles and responsibilities How are they mapped to the physical distributed infrastructure? d)Placement of entities

Communicating Entities What entities are communicating in a DS? System-oriented entities Processes Threads Nodes Problem-oriented entities Objects (in object-oriented programming based approaches)

Classification of Distributed Systems What are the entities that are communicating in a DS? a)Communicating entities How do the entities communicate? b)Communication paradigms What roles and responsibilities do they have? c)Roles and responsibilities How are they mapped to the physical distributed infrastructure? d)Placement of entities

Communication Paradigms Three types of communication paradigms Inter-Process Communication (IPC) Remote Invocation Indirect Communication Internet Protocols IPC Primitives Remote Invocation, Indirect Communication Applications, Services Middleware layers

Inter-Process Communication (IPC) Relatively low-level support for communication e.g., Direct access to internet protocols (Socket API) Advantages Enables seamless communication between processes on heterogeneous operating systems Well-known and tested API adopted across multiple operating systems Disadvantages Increased programming effort for application developers Socket programming: Programmer has to explicitly write code for communication (in addition to program logic) Space Coupling (Identity is known in advance): Sender should know receiver’s ID (e.g., IP Address, port) Time Coupling: Receiver should be explicitly listening to the communication from the sender

Remote Invocation An entity runs a procedure that typically executes on an another computer without the programmer explicitly coding the details for this remote interaction A middleware layer will take care of the raw-communication Examples Remote Procedure Call (RPC) – Sun’s RPC (ONC RPC) Remote Method Invocation (RMI) – Java RMI

Remote Invocation Advantages: Programmer does not have to write code for socket communication Disadvantages: Space Coupling: Where the procedure resides should be known in advance Time Coupling: On the receiver, a process should be explicitly waiting to accept requests for procedure calls

Space and Time Coupling in RPC and RMI doOperation. (wait). (continuation) getRequest. Select operation. Execute operation. Send reply Request Message Reply Message The sender knows the Identity of the receiver (space coupling) Time Coupling Sender Receiver RMI strongly resembles RPC but in a world of distributed objects

Indirect Communication Paradigm Indirect communication uses middleware to: Provide one-to-many communication Some mechanisms eliminate space and time coupling Sender and receiver do not need to know each other’s identities Sender and receiver need not be explicitly listening to communicate Approach used: Indirection Sender  A middle-man  Receiver Types of indirect communication 1.Group communication 2.Publish-subscribe 3.Message queues

1. Group Communication One-to-many communication Multicast communication Abstraction of a group Group is represented in the system by a groupId Recipients join the group A sender sends a message to the group which is received by all the recipients Sender Recv 2Recv 1 Recv 3

1. Group Communication (cont’d) Services provided by middleware Group membership Handling the failure of one or more group members Advantages Enables one-to-many communication Efficient use of bandwidth Identity of the group members need not be available at all nodes Disadvantages Time coupling

2. Publish-Subscribe An event-based communication mechanism Publishers publish events to an event service Subscribers express interest in particular events Large number of producers distribute information to large number of consumers Publish-subscribe Event Service Publish (Event1) Publish (Event2) Publish (Event3) Subscribe (Event1, Event2) Subscribe (Event1) Subscribe (Event3) Publishers Subscribers

2. Publish-Subscribe (cont’d) Example: Financial trading Dealer process

3. Message Queues A refinement of Publish-Subscribe where Producers deposit the messages in a queue Messages are delivered to consumers through different methods Queue takes care of ensuring message delivery Advantages Enables space decoupling Enables time decoupling

Recap: Communication Entities and Paradigms Communicating entities (what is communicating) System- oriented Problem- oriented Nodes Processes Threads Objects Communication Paradigms (how they communicate) IPCRemote Invocation Indirect Communication SocketsRPC RMI Group communication Publish-subscribe Message queues

Classification of Distributed Systems What are the entities that are communicating in a DS? a)Communicating entities How do the entities communicate? b)Communication paradigms What roles and responsibilities do they have? c)Roles and responsibilities How are they mapped to the physical distributed infrastructure? d)Placement of entities

Roles and Responsibilities In DS, communicating entities take on roles to perform tasks Roles are fundamental in establishing overall architecture Question: Does your smart-phone perform the same role as Google Search Server? We classify DS architectures into two types based on the roles and responsibilities of the entities Client-Server Peer-to-Peer

Client-Server Architecture Approach: Server provides a service that is needed by a client Client requests to a server (invocation), the server serves (result) Widely used in many systems e.g., DNS, Web-servers Client Server

Client-Server Architecture: Pros and Cons Advantages: Simplicity and centralized control Computation-heavy processing can be offloaded to a powerful server Clients can be “thin” Disadvantages Single-point of failure at server Scalability

Peer to Peer (P2P) Architecture In P2P, roles of all entities are identical All nodes are peers Peers are equally privileged participants in the application e.g.: Napster, Bit-torrent, Skype

Peer to Peer Architecture Example: Downloading files from bit-torrent Peer 2Peer 6Peer 1Peer 3Peer 4Peer 5 Peer 1 wants a file. Parts of the file is present at peers 3,4 and 5 Peer 3 wants a file stored at peers 1,2 and 6

Architectural Patterns Primitive architectural elements can be combined to form various patterns Tiered Architecture Layering Tiered architecture and layering are complementary Layering = vertical organization of services Tiered Architecture = horizontal splitting of services

Tiered Architecture A technique to: 1.Organize the functionality of a service, and 2.Place the functionality into appropriate servers Airline Search Application Get user Input Get data from database Rank the offers Display UI screen

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

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

Application- Specific Processing A Three-Tiered Architecture Database manager User view, and controls Application- Specific Processing User view, and control Presentation Logic Data LogicApplication Logic

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 design of complex distributed systems by hiding the complexity of below layers Control flows from layer to layer Layer 1 Layer 3 Request flow Response flow

Layering – Platform and middleware Distributed Systems can be organized into three layers 1.Platform Low-level hardware and software layers Provides common services for higher layers 2.Middleware Mask heterogeneity and provide convenient programming models to application programmers Typically, it simplifies application programming by abstracting communication mechanisms 3.Applications Operating system Applications

Classification of Distributed Systems What are the entities that are communicating in a DS? a)Communicating entities How do the entities communicate? b)Communication paradigms What roles and responsibilities do they have? c)Roles and responsibilities How are they mapped to the physical distributed infrastructure? d)Placement of entities

Placement Observation: A large number of heterogonous hardware (machines, networks) Smart mapping of entities (processes, objects) to hardware helps performance, security and fault-tolerance “Placement” maps entities to underlying physical distributed infrastructure Placement should be decided after a careful study of application characteristics Example strategies: Mapping services to multiple servers Moving the mobile code to the client

Placement Hi-performance Server Desktop Smart-phone User- interface Web search indexing Mobile Code Entities Physical infrastructure

Recap We have covered primitive architectural elements Communicating entities Communication paradigms of entities IPC, RMI, RPC, Indirect Communication Roles and responsibilities that entities assume, and resulting architectures Client-Server, Peer-to-Peer, Hybrid Placement of entities

Next Class Identify different types of networks Describe networking principles such as layering, encapsulation and packet-switching Examine how packets are routed and how congestion is avoided Analyze scalability, reliability and fault-tolerance of Internet