- Manvitha Potluri. Client-Server Communication It can be performed in two ways 1. Client-server communication using TCP 2. Client-server communication.

Slides:



Advertisements
Similar presentations
Pontus Boström and Marina Waldén Åbo Akademi University/ TUCS Development of Fault Tolerant Grid Applications Using Distributed B.
Advertisements

Remote Procedure Call (RPC)
Distributed Objects and Remote Invocation
L-15 Fault Tolerance 1. Fault Tolerance Terminology & Background Byzantine Fault Tolerance Issues in client/server Reliable group communication 2.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Computing Systems 15, 2015 Next up Client-server model RPC Mutual exclusion.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Lecture 4 Remote Procedure Calls (cont). EECE 411: Design of Distributed Software Applications [Last time] Building Distributed Applications: Two Paradigms.
Distributed Systems CS Fault Tolerance- Part II Lecture 14, Oct 19, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
Fault Tolerance A partial failure occurs when a component in a distributed system fails. Conjecture: build the system in a such a way that continues to.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
An Introduction to Internetworking. Why distributed systems - Share resources (devices & CPU) - Communicate people (by transmitting data)
1 Fault Tolerance Chapter 7. 2 Fault Tolerance An important goal in distributed systems design is to construct the system in such a way that it can automatically.
1 K. Salah Module 6.1: TCP Flow and Congestion Control Connection establishment & Termination Flow Control Congestion Control QoS.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Top Three Layers Session Layer Presentation Layer Application Layer.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
.NET Mobile Application Development Remote Procedure Call.
EECS122 - UCB 1 CS 194: Distributed Systems Communication Protocols, RPC Computer Science Division Department of Electrical Engineering and Computer Sciences.
Hjemmeeksamen 1 INF3190. Oppgave Develop a monitoring/administration tool which allows an administrator to use a client to monitor all processes running.
Process-to-Process Delivery:
1 Transport Layer Computer Networks. 2 Where are we?
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 8 Fault.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Practical Byzantine Fault Tolerance
Solutions to Second 4330/6310 Quiz Spring First question Which of the following statements are true or false (2 points) and why? (3 points)
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
ICS362 – Distributed Systems
Networking Basics CCNA 1 Chapter 11.
Shuman Guo CSc 8320 Advanced Operating Systems
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Fault Tolerance. Basic Concepts Availability The system is ready to work immediately Reliability The system can run continuously Safety When the system.
Kyung Hee University 1/33 Fault Tolerance Chap 7.
Reliable Communication Smita Hiremath CSC Reliable Client-Server Communication Point-to-Point communication Established by TCP Masks omission failure,
Manish Kumar,MSRITSoftware Architecture1 Remote procedure call Client/server architecture.
Reliable Client-Server Communication. Reliable Communication So far: Concentrated on process resilience (by means of process groups). What about reliable.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Distributed Systems CS Fault Tolerance- Part II Lecture 18, Nov 19, 2012 Majd F. Sakr and Mohammad Hammoud 1.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
1 CHAPTER 5 Fault Tolerance Chapter 5-- Fault Tolerance.
Fault Tolerance Chapter 7. Goal An important goal in distributed systems design is to construct the system in such a way that it can automatically recover.
Fault Tolerance CSCI 4780/6780. RPC Semantics in Presence of Failures 5 types of exceptions Client cannot locate server Request to server is lost Server.
Fault Tolerance (2). Topics r Reliable Group Communication.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Systems Lecture 8 RPC and marshalling 1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Fault Tolerance Chap 7.
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
“Request /Reply Communication”
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Communication in Distributed Systems
Congestion Control, Internet transport protocols: udp
DISTRIBUTED COMPUTING
Process-to-Process Delivery:
Remote Procedure Call (RPC)
Distributed Systems CS
Reliable Client-Server Communication
Remote Procedure Call (invocation) RPC
Lecture 6: RPC (exercises/questions)
Lecture 6: RPC (exercises/questions)
Lecture 7: RPC (exercises/questions)
Computer Networks Protocols
Last Class: Communication in Distributed Systems
Presentation transcript:

- Manvitha Potluri

Client-Server Communication It can be performed in two ways 1. Client-server communication using TCP 2. Client-server communication using RPC

 A reliable point-to-point communication can be established by using TCP protocol.  TCP masks omission failures.  TCP does not mask crash failures.

RPC- Remote procedure calls  The goal of RPC is to hide communication by making remote procedure calls that look just like local ones.  Its difficult to mask RPC.

There are 5 classes of failures in RPC 1. The client unable to locate server. 2. The request message from client to server is lost. 3. The server crashes after receiving a request. 4. The reply message from the server to the client is lost. 5. The client crashes after sending a request.

 Problem- When server goes down  Solution- error raise an exception Java- division by zero C- signal handlers  Drawback- Not every language has exceptions and signals.  Exception destroys transparency.

 The operating system starts a timer when the stub is generated and sends a request. If response is not received before timer expires, then a new request is sent.  Lost message – works fine on retransmission.  Many requests sent- cannot locate server.  If request is not lost, we should make sure server knows that its a retransmission.

 Some messages can be retransmitted any number of times without any loss.  Some retransmissions cause severe loss.  Solution- client assigns sequence number on requests made by client.  Drawback- Server maintains administration on each client. How long to maintain.

 The server experiences 3 types of situations.

 1. Atleast once – RPC carried out >1 time.  2. Atmost once- RPC carried out<=1 time.  Example – print text request

 There are four strategies  1. Never- client will never issue a request at the risk of text not being printed.  2. Always- It can reissue a request but results in printing twice.  3. When not ack- client decides to reissue request to server when there is no acknowledgement that the request is sent.  3. When ack- request is retransmitted.

 With two strategies for server and four for client, there are more combinations to occur.  These are represented by M-send message completion, P- Print text, C- crash.

 Orphans waste CPU cycles, lock files or tie up valuable resources. Even if the client reboots, the confusion persists.  There are mainly four solutions proposed

 1. Orphan extermination- Before the client stub sends the request, a log is created which can survive crashes. After reboot the log is checked and orphan is explicitly killed. Disadvantage- storing data in logs, locating and killing is a heavy task. Sometimes it may fail and result in grand orphans.  2. Reincarnation- Here time is divided into sequentially timed epochs. When it reboots, a new epoch is started and old orphans are removed.

 3. Gentle reincarnation- Each machine checks to see if there are any remote computations running locally, and tries to find their parent. If not found it terminates.  4. Another solution is that, each RPC is given a certain amount of time. If it cannot finish another quantum is requested. After the crash it waits for certain time to reboot where orphans are terminated.

 We have discussed about TCP and RPC methods. But these don’t provide high failure transparency.  In our future we can deal with ADSV(shared variable abstraction) for fault tolerant communication.