APPLICATION CODE APPLICATION CODE S ERVER PROCESS STUB STUB RPC RUNTIME LIBRARY RPC RUNTIME LIBRARY ENDPOINT MAP ENDPOINT MAP
|
|
|
- Neal Hutchinson
- 9 years ago
- Views:
Transcription
1 Introduction Overview of Remote Procedure Calls (RPC) Douglas C. Schmidt Washington University, St. Louis Remote Procedure Calls (RPC) are a popular model for building client/server applications { ONC RPC and OSF DCE are widely available RPC toolkits RPC forms the basis for many client/server applications { e.g., NFS Distributed object computing (DOC) frameworks may be viewed as an extension of RPC (RPC on steriods) { e.g., OMG CORBA RPC falls somewhere between the transport layer and application layer in the OSI model { i.e., it contains elements of session and presentation layers 1 2 Motivation RPC tries to simplify distributed application programming by making distribution transparent IPC Overview RPC toolkits automatically handle { Reliability. e.g., communication errors and transactions { Platform heterogeneity. e.g., performs parameter \marshaling" of complex data structures and handles byte-ordering dierences { Service location and selection { Service activation and handler dispatching Many applications require communication among multiple processes { Processes may be remote or local { Security 3 4
2 Message Passing Model Message passing is a general technique for exchanging information between two or more processes Message Passing Model (cont'd) Basically an extension to the send/recv I/O API { e.g., UDP, VMTP In general, message passing does not make an eort to hide distribution { e.g., network byte order, pointer linearization, addressing, and security must be dealt with explicitly Supports a number of dierent communication styles { e.g., request/response, asynchronous oneway, multicast, broadcast, etc. This makes the model ecient and exible, but also complicate and time consuming May serve as the basis for higher-level communication mechanisms such as RPC 5 6 Message Passing Design Considerations Monolithic Application Structure Blocking vs. nonblocking { Aects reliablility, responsiveness, and program structure Buered vs. unbuered { Aects performance and reliability Reliable vs. unreliable { Aects performance and correctness 7 8
3 RPC Application Structure Basic Principles of RPC 1. Use traditional programming style for dis- tributed application development 2. Enable selective replacement of local procedure calls with remote procecure calls Local Procedure Call (LPC) { A well-known method for transferring control from one part of a process to another. Implies a subsequent return of control to the caller Note, RPC generators automate most of the work involved in separating client and server functionality Remote Procedure Call (RPC) { Similar LPC, except a local process invokes a procedure on a remote system. i.e., control is transferred across processes/hosts 9 10 A Temporal View of RPC A Layered View of RPC An RPC protocol contains two sides, the sender and the receiver (i.e., client and server) { However, a server might also be a client of another server and so on: :: 11 12
4 Typical Server Startup Behavior RPC Automation To help make distribution transparent, RPC hides all the network code in the client stubs and server skeletons { SERVER PROCESS (1) (2) (3) These are usually generated automatically: : : (4) (5) This shields application programs from networking details { SERVER HOST CLIENT HOST REGISTER INTERFACE CREATE BINDING INFO ADVERTISE SERVER LOCATION REGISTER ENDPOINTS LISTEN FOR CALLS RPC RUNTIME LIBRARY e.g., sockets, parameter marshalling, network byte order, timeouts, ow control, acknowledgements, retransmissions, etc. ENDPOINT MAP It also takes advantage of recurring communcation patterns in network servers to generate most of the stub/skeleton code automatically NAME SERVICE HOST CDS 13 Typical Client Startup Behavior CLIENT HOST 14 Typical Client/Server Interaction SERVER HOST CLIENT HOST CLIENT PROCESS (6) MAKE REMOTE PROCEDURE CALL APPLICATION CODE (7) FIND S ERVER SYSTEM STUB CLIENT PROCESS (10) PREPARE INPUT STUB (18) CONVERT OUTPUT EXECUTE REMOTE PROCEDURE (15) (13) CONVERT INPUT PREPARE OUTPUT (12) INPUT (17) RUNTIME LIBRARY RECEIVE OUTPUT ENDPOINT MAP CDS (14) (11) TRANSMIT RPC (9) BIND TO S ERVER LIBRARY SERVER PROCESS APPLICATION CODE SERVER PROCESS (8) FIND S ERVER PROCESS RPC RUNTIME SERVER HOST NAME SERVICE HOST ENDPOINT MAP CDS 15 (16) RECEIVE AND DISPATCH TRANSMIT TO STUB OUTPUT NAME SERVICE HOST 16
5 RPC Models RPC Models There are several variations on the stan- dard RPC \synchronous request/response" model Each model provides greater exibility, at the cost of less transparency Certain RPC toolkits support all the dierent models { e.g., ONC RPC Other DOC frameworks do not (due to portability concerns) { e.g., OMG CORBA and OSF DCE RPC Models (cont'd) Transparency Issues RPC has a number of limitations that must be understood to use the model eectively { Most of the limitations center around transparency Transforming a simple local procedure call into system calls, data conversions, and network communications increases the chance of something going wrong { i.e., it reduces the transparency of distribution 19 20
6 Tranparency Issues (cont'd) Parameter Passing Key Aspects of RPC Transparency 1. Parameter passing 2. Data representation Functions in an application that runs in a single process may collaborate via parameters and/or global variables 3. Binding 4. Transport protocol 5. Exception handling Functions in an application that runs in multiple processes on the same host may collaborate via message passing and/or nondistributed shared memory 6. Call semantics 7. Security However, passing parameters is typically the only way that RPC-based clients and servers share information 8. Performance { Hence, we have already given up one type of transparency: :: Parameter Passing (cont'd) Passing parameters across process/host boundaries is surprisingly tricky: :: Parameters that are passed by value are fairly simple to handle { The client stub copies the value from the client and packages into a network message Parameter Passing (cont'd) Typical solutions include: { Have the RPC protocol only allow the client to pass arguments by value. However, this reduces transparency even further! { Presentation issues are still important, however Parameters passed by reference are much harder { e.g., in C when the address of a variable is passed. e.g., passing arrays { Or more generally, handling pointer-based data structures { Use a presentation data format where the user specically denes what the input arguments are and what the return values are. e.g., Sun's XDR routines { RPC facilities typically provide an \interface denition language" to handle this. e.g., CORBA or DCE IDL. e.g., pointers, lists, trees, stacks, graphs, etc
7 Data Representation RPC systems intended for heterogeneous environments must be sensitive to byte-ordering dierences { They typically provide tools for automatically performing data conversion (e.g., rpcgen or idl) Examples: { Sun RPC (XDR). Imposes \canonical" big-endian byte-ordering Data Representation (cont'd) Examples (cont'd) { DCE RPC (NDR). Supports multiple presentation layer formats. Supports \receiver makes it right" semantics: :: Allows the sender to use its own internal format, if it is supported. Minimum size of any eld is 32 bits { Xerox Courier. Uses big-endian. The receiver then converts this to the appropriate format, if dierent from the sender's format This is more ecient than \canonical" bigendian format for little-endian machines. Minimum size of any eld is 16 bits Binding Binding (cont'd) Binding is the process of mapping a request for a service onto a physical server somewhere in the network { Typically, the client contacts an appropriate name server or \location broker" that informs it which remote server contains the service. Similar to calling 411: :: There are two components to binding: 1. Finding a remote host for a desired service 2. Finding the correct service on the host { i.e., locating the \process" on a given host that is listening to a well-known port If service migration is supported, it may be necessary to perform this operation multiple times { Also may be necessary to leave a \forwarding" address There are several techniques that clients use to locate a host that provides a given type of service { These techniques dier in terms of their performance, transparency, accuracy, and robustness 27 28
8 Binding (cont'd) \Hard-code" magic numbers into programs (ugh: ::;-)) Another technique is to hard-code this information into a text le on the local host { e.g., /etc/services { Obviously, this is not particularly scalable: :: Another technique requires the client to name the host they want to contact { This host then provides a \superserver" that knows the port number of any services that are available on that host { Some example super servers are:. inetd and listen -- ID by port number Binding (cont'd) Superserver: inetd and listen { Motivation. Originally, system daemon processes ran as separate processes that started when the system was booted. However, this increases the number of processes on the machine, most of which are idle much of the time { Solution! superserver. Instead of having multiple daemon processes asleep waiting for communication, inetd or listen listens on behalf of all of them and dynamically starts the appropriate one \on demand" i.e., upon receipt of a service request. tcpmux -- ID by name (e.g., "ftp") Binding (cont'd) Binding (cont'd) Superservers (cont'd) { This reduces total number of system processes { It also simplies writing of servers, since many start-up details are handled by inetd. e.g., socket, bind, listen, accept { See /etc/inetd.conf for details: :: { Note that these super servers combine several activities. e.g., binding and execution Location brokers and traders { These more general techniques maintain a distributed database of \service! server" mappings { Servers on any host in the network register their willingness to accept RPCs by sending a special registration message to a mapping authority, e.g., portmapper -- ID by PROGRAM/VERSION number orbixd -- ID by \interface" { Clients contact the mapping authority to locate a particular service. Note, one extra level of indirection: :: 31 32
9 Transport Protocol Binding (cont'd) Location brokers and traders { A location broker manages a hierarchy consisting of pairs of names and object references. The desired object reference can be found if its name is known { A trader service can locate a suitable object given a set of attributes for the object. e.g., supported interface(s), average load and response times, or permissions and privileges { The location of a broker or trader may be set via a system administrator or determined via a name server discovery protocol. e.g., may use broadcast or multicast to locate name server: :: Some RPC implementations use only a single transport layer protocol { Others allow protocol section either implicitly or explicitly Some examples: { Sun RPC. Earlier versions support only UDP, TCP. Recent versions are \transport independent" { DCE RPC. Runs over many, many protocol stacks. And other mechanisms that aren't stacks e.g., shared memory { Xerox Courier. SPP Transport Protocol (cont'd) Exception Handling When a connectionless protocol is used, the client and server stubs must explicitly handle the following: 1. Lost packet detection (e.g., via timeouts) With a local procedure call there are a limited number of things that can go wrong, both with the call/return sequence and with the operations { e.g., invalid memory reference, divide by zero, etc. 2. Retransmissions 3. Duplicate detection This makes it dicult to ensure certain RPC reliability semantic guarantees With RPC, the possibility of something going wrong increases, e.g., 1. The actual remote server procedure itself generate an error 2. The client stub or server stub can encounter network problems or machine crashes A connection-oriented protocol handles some of these issues for the RPC library, but the overhead may be higher when a connectionoriented protocol is used { e.g., due to the connection establishment and termination overhead 35 Two types of error codes are necessary to handle two types of problems 1. Communication infrastructure failures 2. Service failures 36
10 Exception Handling (cont'd) Both clients and servers may fail independently { If the client process terminates after invoking a remote procedure but before obtaining its result, the server reply is termed an orphan Exception Handling (cont'd) DCE and CORBA dene a set of standard \communication infrastructure errors" Important question: \how does the server indicate the problems back to the client?" Another exception condition is a request by the client to stop the server during a computation For C++ mappings, these errors are often translated into C++ exceptions In addition, DCE provides a set of C macros for use with programs that don't support exception handling Call Semantics (cont'd) Call Semantics When an RPC can be executed any number of times, with no harm done, it is said to be idempotent. When a local procedure is called, there is never any question as to how many times the procedure executed { i.e., there are no harmful side-eects: :: { Some examples of idempotent RPCs are:. Returning time of day With a remote procedure, however, if you do not get a response after a certain interval, clients may not know how many times the remote procedure was executed { i.e., this depends on the \call semantics" { Of course, whether this is a problem or not is \application-dened". Calculating square root. Reading the rst 512 bytes of a disk le. Returning the current balance of a bank account { Some non-idempotent RPCs include:. Aprocedure to append 512 bytes to the end of a le. A procedure to subtract an amount from a bank account 39 40
11 Call Semantics (cont'd) There are three dierent forms of RPC call semantics: Call Semantics (cont'd) Handling non-idempotent services typically requires the server to maintain state However, this leads to several additional complexities: 1. When is it acceptable to relinquish the state? 2. What happens if crashes occur? 1. Exactly once (same as local IPC) { Hard/impossible to achieve, because of server crashes or network failures ::: 2. At most once { If normal return to caller occurs, the remote procedure was executed one time { If an error return is made, it is uncertain if remote procedure was executed one time or not at all 3. At least once { Typical for idempotent procedures, client stub keeps retransmitting its request until a valid response arrives { If client must send its request more than once, there is a possibility that the remote procedure was executed more than once. Unless response is cached: :: Security Call Semantics (cont'd) Note that if a connectionless transport protocol is used then achieving \at most once" semantics becomes more complicated { The RPC framework must use sequence numbers and cache responses to ensure that duplicate requests aren't executed multiple times Typically, applications making local procedure calls do not have to worry about maintaining the integrity or security of the caller/callee { i.e., calls are typically made in the same address space. Note that shared libraries may complicate this: :: Note that accurate distributed timestamps are useful for reducing the amount of state that a server must cache in order to detect duplicates Local security is usually handled via access control or special process privileges Remote security is handled via distributed authentication protocols { e.g., Kerberos: :: 43 44
12 Performance Usually the performance loss from using RPC is an order of magnitude or more, compared with making a local procedure call due to 1. Protocol processing 2. Context switching 3. Data copying 4. Network latency 5. Congestion Performance (cont'd) RPC also tends to be much slower than using lower-level remote IPC facilities such as sockets directly due to overhead from 1. Presentation conversion 2. Data copying 3. Flow control { e.g., stop-and-wait, synchronous client call behavior 4. Timer management { Non-adaptive (consequence of LAN upbringing) Note, these sources of overhead are ubiquitous to networking: :: Note, these sources of overhead are typical of RPC: :: Performance (cont'd) Another important aspect of performance is how the server handles multiple simultaneous requests from clients { An iterative RPC server performs the following functionality: loop f wait for RPC request; receive RPC request; decode arguments; execute desired function; reply result to client; g { Thus the RPC server cannot accept new RPC requests while executing the function for the previous request. This is undesirable if the execution of the function takes a long time Performance (cont'd) In many situation, a concurrent RPC server should be used: loop f wait for RPC request; receive RPC request; decode arguments; spawn a process or thread f execute desired function; reply result to client; g g Threading is often preferred since it requires less resources to execute eciently e.g., clients will time out and retransmit, increasing network and host load 47 48
13 Performance (cont'd) Performance (cont'd) However, the primary justication for RPC is not just replacing local procedure calls { i.e., it is a method for simplifying the development of distributed applications Servers are often the bottleneck in distributed communication Therefore, another performance consideration is the technique used to invoke the server every time a client request arrives, e.g., { Iterative -- server handles in the same process In addition, using distribution may provide higher-level improvements in: 1. Performance 2. Functionality 3. Reliability. May reduce throughput and increase latency { Concurrent -- server forks a new process or thread to handle each request. May require subtle synchronization, programming, and debugging techniques to work successfully Thread solutions may be non-portable. Note also that multi-threading removes the need for synchronous client behavior: :: Summary RPC is one of several models for implementing distributed communication { It is particular useful for transparently supporting request/response-style applications { However, it is not appropriate for all applications due to its performance overhead and lack of exibility Before deciding on a particular communication model it is crucial to carefully analyze the distributed requirements of the applications involved { Particularly the tradeo of security for performance: :: 51
It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.
Session Layer The session layer resides above the transport layer, and provides value added services to the underlying transport layer services. The session layer (along with the presentation layer) add
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)
Distributed Systems, Spring 2004 1 Introduction Inter-process communication is at the heart of all distributed systems Communication Based on low-level message passing offered by the underlying network
Agenda. Distributed System Structures. Why Distributed Systems? Motivation
Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)
Network Programming TDC 561
Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating
Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
Simple Solution for a Location Service. Naming vs. Locating Entities. Forwarding Pointers (2) Forwarding Pointers (1)
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
How To Write A Network Operating System For A Network (Networking) System (Netware)
Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL
Naming vs. Locating Entities
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
Chapter 3. Internet Applications and Network Programming
Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
Transport Layer Protocols
Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications
Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to
Objectives of Lecture. Network Architecture. Protocols. Contents
Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking
Protocols and Architecture. Protocol Architecture.
Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
ELEN 602: Computer Communications and Networking. Socket Programming Basics
1 ELEN 602: Computer Communications and Networking Socket Programming Basics A. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing
Chapter 11. User Datagram Protocol (UDP)
Chapter 11 User Datagram Protocol (UDP) The McGraw-Hill Companies, Inc., 2000 1 CONTENTS PROCESS-TO-PROCESS COMMUNICATION USER DATAGRAM CHECKSUM UDP OPERATION USE OF UDP UDP PACKAGE The McGraw-Hill Companies,
Ethernet. Ethernet. Network Devices
Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters
COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly
File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi
File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi History of FTP The first proposed file transfer mechanisms were developed for implementation on hosts at M.I.T.
Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v
Object-Oriented Design and Programming Deja Vu? In the past: Structured = Good Overview of Object-Oriented Design Principles and Techniques Today: Object-Oriented = Good e.g., Douglas C. Schmidt www.cs.wustl.edu/schmidt/
TCP/IP - Socket Programming
TCP/IP - Socket Programming [email protected] Jim Binkley 1 sockets - overview sockets simple client - server model look at tcpclient/tcpserver.c look at udpclient/udpserver.c tcp/udp contrasts normal master/slave
ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM
ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 Outline The transport service Elements of transport protocols A
Socket Programming in C/C++
September 24, 2004 Contact Info Mani Radhakrishnan Office 4224 SEL email mradhakr @ cs. uic. edu Office Hours Tuesday 1-4 PM Introduction Sockets are a protocol independent method of creating a connection
Socket Programming. Request. Reply. Figure 1. Client-Server paradigm
Socket Programming 1. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing with the request(s) received, and returns a reply
Lesson 4 Web Service Interface Definition (Part I)
Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Visualizations and Correlations in Troubleshooting
Visualizations and Correlations in Troubleshooting Kevin Burns Comcast [email protected] 1 Comcast Technology Groups Cable CMTS, Modem, Edge Services Backbone Transport, Routing Converged Regional
Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.
Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed
Middleware: Past and Present a Comparison
Middleware: Past and Present a Comparison Hennadiy Pinus ABSTRACT The construction of distributed systems is a difficult task for programmers, which can be simplified with the use of middleware. Middleware
Writing Client/Server Programs in C Using Sockets (A Tutorial) Part I. Session 5958. Greg Granger grgran@sas. sas.com. SAS/C & C++ Support
Writing Client/Server Programs in C Using Sockets (A Tutorial) Part I Session 5958 Greg Granger grgran@sas sas.com SAS Slide 1 Feb. 1998 SAS/C & C++ Support SAS Institute Part I: Socket Programming Overview
Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software
Session NM059 TCP/IP Programming on VMS Geoff Bryant Process Software Course Roadmap Slide 160 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server
EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications
ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani
We mean.network File System
We mean.network File System Introduction: Remote File-systems When networking became widely available users wanting to share files had to log in across the net to a central machine This central machine
Computer Networks. Chapter 5 Transport Protocols
Computer Networks Chapter 5 Transport Protocols Transport Protocol Provides end-to-end transport Hides the network details Transport protocol or service (TS) offers: Different types of services QoS Data
TCP Session Management (SesM) Protocol Specification
TCP Session Management (SesM) Protocol Specification Revision Date: 08/13/2015 Version: 1.1e Copyright 2015 Miami International Securities Exchange, LLC. All rights reserved. This constitutes information
Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming
Socket Programming Limi Kalita M.Tech Student, Department of Computer Science and Engineering, Assam Down Town University, Guwahati, India. Abstract: The aim of the paper is to introduce sockets, its deployment
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Distributed Objects and Components
Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java
Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur
Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker
Chapter 11 Distributed File Systems. Distributed File Systems
Chapter 11 Distributed File Systems Introduction Case studies NFS Coda 1 Distributed File Systems A distributed file system enables clients to access files stored on one or more remote file servers A file
Advanced Computer Networks Project 2: File Transfer Application
1 Overview Advanced Computer Networks Project 2: File Transfer Application Assigned: April 25, 2014 Due: May 30, 2014 In this assignment, you will implement a file transfer application. The application
Network File System (NFS) Pradipta De [email protected]
Network File System (NFS) Pradipta De [email protected] Today s Topic Network File System Type of Distributed file system NFS protocol NFS cache consistency issue CSE506: Ext Filesystem 2 NFS
Computer Network. Interconnected collection of autonomous computers that are able to exchange information
Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.
1 An application in BPC: a Web-Server
1 An application in BPC: a Web-Server We briefly describe our web-server case-study, dwelling in particular on some of the more advanced features of the BPC framework, such as timeouts, parametrized events,
Client/Server and Distributed Computing
Adapted from:operating Systems: Internals and Design Principles, 6/E William Stallings CS571 Fall 2010 Client/Server and Distributed Computing Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Traditional
NFS File Sharing. Peter Lo. CP582 Peter Lo 2003 1
NFS File Sharing Peter Lo CP582 Peter Lo 2003 1 NFS File Sharing Summary Distinguish between: File transfer Entire file is copied to new location FTP Copy command File sharing Multiple users can access
Distributed Systems. Distributed Systems
Distributed Systems Prof. Steve Wilbur Department of Computer Science University College London 1 Distributed Systems... use of more than one computer connected by communications links to carry out a computational
TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline
OSI Seven Layer Model & Seminar Outline TCP/IP Fundamentals This seminar will present TCP/IP communications starting from Layer 2 up to Layer 4 (TCP/IP applications cover Layers 5-7) IP Addresses Data
Web Services. Copyright 2011 Srdjan Komazec
Web Services Middleware Copyright 2011 Srdjan Komazec 1 Where are we? # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web 2.0
Chapter 5. Transport layer protocols
Chapter 5. Transport layer protocols This chapter provides an overview of the most important and common protocols of the TCP/IP transport layer. These include: User Datagram Protocol (UDP) Transmission
An Introduction to VoIP Protocols
An Introduction to VoIP Protocols www.netqos.com Voice over IP (VoIP) offers the vision of a converged network carrying multiple types of traffic (voice, video, and data, to name a few). To carry out this
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction
Internet Control Protocols Reading: Chapter 3
Internet Control Protocols Reading: Chapter 3 ARP - RFC 826, STD 37 DHCP - RFC 2131 ICMP - RFC 0792, STD 05 1 Goals of Today s Lecture Bootstrapping an end host Learning its own configuration parameters
Windows8 Internals, Sixth Edition, Part 1
Microsoft Windows8 Internals, Sixth Edition, Part 1 Mark Russinovich David A. Solomon Alex lonescu Windows Internals, Sixth Edition, Part i Introduction xvii Chapter 1 Concepts and Tools 1 Windows Operating
Implementing and testing tftp
CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on
1 Organization of Operating Systems
COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from
RARP: Reverse Address Resolution Protocol
SFWR 4C03: Computer Networks and Computer Security January 19-22 2004 Lecturer: Kartik Krishnan Lectures 7-9 RARP: Reverse Address Resolution Protocol When a system with a local disk is bootstrapped it
Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.
Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport
IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP
CSCE 515: Computer Network Programming TCP/IP IP Network Layer Wenyuan Xu Department of Computer Science and Engineering University of South Carolina IP Datagrams IP is the network layer packet delivery
Linux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah [email protected] Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
Computer Networks Practicum 2015
Computer Networks Practicum 2015 Vrije Universiteit Amsterdam, The Netherlands http://acropolis.cs.vu.nl/ spyros/cnp/ 1 Overview This practicum consists of two parts. The first is to build a TCP implementation
2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring
2057-15 First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 7-25 September 2009 TCP/IP Networking Abhaya S. Induruwa Department
[Prof. Rupesh G Vaishnav] Page 1
Basics The function of transport layer is to provide a reliable end-to-end communications service. It also provides data transfer service for the user layers above and shield the upper layers from the
Mobile Computing/ Mobile Networks
Mobile Computing/ Mobile Networks TCP in Mobile Networks Prof. Chansu Yu Contents Physical layer issues Communication frequency Signal propagation Modulation and Demodulation Channel access issues Multiple
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore
Introduction to Computer Networks
Introduction to Computer Networks Chen Yu Indiana University Basic Building Blocks for Computer Networks Nodes PC, server, special-purpose hardware, sensors Switches Links: Twisted pair, coaxial cable,
Network Programming with Sockets. Process Management in UNIX
Network Programming with Sockets This section is a brief introduction to the basics of networking programming using the BSD Socket interface on the Unix Operating System. Processes in Unix Sockets Stream
Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago
Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University
Interface Definition Language
Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process
The OSI model has seven layers. The principles that were applied to arrive at the seven layers can be briefly summarized as follows:
1.4 Reference Models Now that we have discussed layered networks in the abstract, it is time to look at some examples. In the next two sections we will discuss two important network architectures, the
Computer Networks UDP and TCP
Computer Networks UDP and TCP Saad Mneimneh Computer Science Hunter College of CUNY New York I m a system programmer specializing in TCP/IP communication protocol on UNIX systems. How can I explain a thing
0,2 D(0) A(1) D(1) 1,3 D(2) 0,2 D(0) A(1) D(1) 1,3 D(2) D(3) D(3) D(1) D(1) A(4) D(2) 4,6 D(3) A(4) 4,6 GO BACK 3 SELECTIVE REJECT WINDOW SLIDES
WASHINGTON UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE CS423 Computer Communications: More Error Recovery Fall 1995 This is the fourth of probably 7 lectures on the Data Link Layer. In the last lecture we
CS 416: Opera-ng Systems Design
Question 1 Explain the major difference between a file system that supports journaling (e.g., Linux ext4) versus a log-structured file system (e.g., YAFFS2). Operating Systems 2015 Exam 3 Review Paul Krzyzanowski
Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1
Distributed Systems REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1 1 The Rise of Distributed Systems! Computer hardware prices are falling and power increasing.!
Albert Ludwigs University Freiburg Department of Computer Science Prof. Dr. Stefan Leue and Corina Apachite Distributed Systems - WS 2001/2002 Assignment 1 - Solutions Question 1.1 Give vetypes of hardware
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application Author: Fung, King Pong MSc in Information Technology The Hong Kong Polytechnic University June 1999 i Abstract Abstract of dissertation
IP - The Internet Protocol
Orientation IP - The Internet Protocol IP (Internet Protocol) is a Network Layer Protocol. IP s current version is Version 4 (IPv4). It is specified in RFC 891. TCP UDP Transport Layer ICMP IP IGMP Network
A distributed system is defined as
A distributed system is defined as A collection of independent computers that appears to its users as a single coherent system CS550: Advanced Operating Systems 2 Resource sharing Openness Concurrency
Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss
Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes) John Ousterhout Sun Microsystems Laboratories [email protected] http://www.sunlabs.com/~ouster Introduction Threads: Grew up in OS world (processes).
Synchronization in. Distributed Systems. Cooperation and Coordination in. Distributed Systems. Kinds of Synchronization.
Cooperation and Coordination in Distributed Systems Communication Mechanisms for the communication between processes Naming for searching communication partners Synchronization in Distributed Systems But...
Protocol Hierarchies/Network Software
Protocol Hierarchies/Network Software Computer networks are generally comprised of numerous pieces of hardware and software To simplify network design most networks are organized as a stack of layers of
Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary
C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous
Encrypting Network Traffic
Encrypting Network Traffic Mark Lomas Computer Security Group University of Cambridge Computer Laboratory Encryption may be used to maintain the secrecy of information, to help detect when messages have
