SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Distributed Systems
  Principles and Paradigms

         Maarten van Steen

   VU Amsterdam, Dept. Computer Science
       Room R4.20, steen@cs.vu.nl


Chapter 04: Communication
    Version: November 5, 2009
Contents

           Chapter
           01: Introduction
           02: Architectures
           03: Processes
           04: Communication
           05: Naming
           06: Synchronization
           07: Consistency & Replication
           08: Fault Tolerance
           09: Security
           10: Distributed Object-Based Systems
           11: Distributed File Systems
           12: Distributed Web-Based Systems
           13: Distributed Coordination-Based Systems

                                                        2 / 52
Communication   4.1 Layered Protocols


Layered Protocols




   Low-level layers
   Transport layer
   Application layer
   Middleware layer




                                                               3 / 52
Communication       4.1 Layered Protocols


Basic networking model


                                         Application protocol
                Application                                               7
                                         Presentation protocol
               Presentation                                               6
                                              Session protocol
                   Session                                                5
                                          Transport protocol
                  Transport                                               4
                                              Network protocol
                   Network                                                3
                                          Data link protocol
                  Data link                                               2
                                          Physical protocol
                   Physical                                               1


                                                Network



Drawbacks
   Focus on message-passing only
   Often unneeded or unwanted functionality
   Violates access transparency

                                                                              4 / 52
Communication   4.1 Layered Protocols


Low-level layers


Recap
    Physical layer: contains the specification and implementation of
    bits, and their transmission between sender and receiver
    Data link layer: prescribes the transmission of a series of bits into
    a frame to allow for error and flow control
    Network layer: describes how packets in a network of computers
    are to be routed.

Observation
For many distributed systems, the lowest-level interface is that of the
network layer.



                                                                          5 / 52
Communication   4.1 Layered Protocols


Transport Layer

Important
The transport layer provides the actual communication facilities for
most distributed systems.

Standard Internet protocols
    TCP: connection-oriented, reliable, stream-oriented
    communication
    UDP: unreliable (best-effort) datagram communication

Note
IP multicasting is often considered a standard available service (which
may be dangerous to assume).


                                                                       6 / 52
Communication   4.1 Layered Protocols


Middleware Layer

Observation
Middleware is invented to provide common services and protocols
that can be used by many different applications

    A rich set of communication protocols
    (Un)marshaling of data, necessary for integrated systems
    Naming protocols, to allow easy sharing of resources
    Security protocols for secure communication
    Scaling mechanisms, such as for replication and caching

Note
What remains are truly application-specific protocols...
such as?

                                                                  7 / 52
Communication     4.1 Layered Protocols


Types of communication
                Synchronize at      Synchronize at               Synchronize after
              request submission    request delivery            processing by server
        Client

       Request

                                       Transmission
                                         interrupt
                                    Storage
                                    facility


                                                       Reply

                                   Server                  Time


Distinguish
    Transient versus persistent communication
    Asynchrounous versus synchronous communication

                                                                                       8 / 52
Communication     4.1 Layered Protocols


Types of communication
                Synchronize at      Synchronize at               Synchronize after
              request submission    request delivery            processing by server
         Client

        Request

                                       Transmission
                                         interrupt
                                    Storage
                                    facility


                                                       Reply

                                   Server                  Time

Transient versus persistent
    Transient communication: Comm. server discards message when it
    cannot be delivered at the next server, or at the receiver.
    Persistent communication: A message is stored at a communication
    server as long as it takes to deliver it.
                                                                                       9 / 52
Communication     4.1 Layered Protocols


Types of communication
                Synchronize at      Synchronize at               Synchronize after
              request submission    request delivery            processing by server
         Client

        Request

                                       Transmission
                                         interrupt
                                    Storage
                                    facility


                                                       Reply

                                   Server                  Time

Places for synchronization
    At request submission
    At request delivery
    After request processing
                                                                                       10 / 52
Communication   4.1 Layered Protocols


Client/Server

Some observations
Client/Server computing is generally based on a model of transient
synchronous communication:
    Client and server have to be active at time of commun.
    Client issues request and blocks until it receives reply
    Server essentially waits only for incoming requests, and
    subsequently processes them

Drawbacks synchronous communication
    Client cannot do any other work while waiting for reply
    Failures have to be handled immediately: the client is waiting
    The model may simply not be appropriate (mail, news)


                                                                     11 / 52
Communication   4.1 Layered Protocols


Client/Server

Some observations
Client/Server computing is generally based on a model of transient
synchronous communication:
    Client and server have to be active at time of commun.
    Client issues request and blocks until it receives reply
    Server essentially waits only for incoming requests, and
    subsequently processes them

Drawbacks synchronous communication
    Client cannot do any other work while waiting for reply
    Failures have to be handled immediately: the client is waiting
    The model may simply not be appropriate (mail, news)


                                                                     11 / 52
Communication   4.1 Layered Protocols


Messaging




Message-oriented middleware
Aims at high-level persistent asynchronous communication:
    Processes send each other messages, which are queued
    Sender need not wait for immediate reply, but can do other things
    Middleware often ensures fault tolerance




                                                                   12 / 52
Communication   4.2 Remote Procedure Call


Remote Procedure Call (RPC)




   Basic RPC operation
   Parameter passing
   Variations




                                                                 13 / 52
Communication   4.2 Remote Procedure Call


Basic RPC operation

Observations
   Application developers are familiar with simple procedure model
   Well-engineered procedures operate in isolation (black box)
   There is no fundamental reason not to execute procedures on
   separate machine


                                                               Wait for result
Conclusion                              Client

Communication between caller &                   Call remote
                                                 procedure
                                                                                 Return
                                                                                 from call
callee can be hidden by using
procedure-call mechanism.                            Request                Reply
                                        Server
                                                          Call local procedure        Time
                                                           and return results



                                                                                             14 / 52
Communication      4.2 Remote Procedure Call


Basic RPC operation
          Client machine                                   Server machine


         Client process                                  Server process
                              1. Client call to
                                 procedure                 Implementation        6. Stub makes
                                                               of add               local call to "add"
                                       Server stub
             k = add(i,j)                                      k = add(i,j)
                               Client stub
             proc: "add"                                       proc: "add"
             int: val(i)                                       int: val(i)       5. Stub unpacks
                              2. Stub builds                                        message
             int: val(j)         message                       int: val(j)

                                    proc: "add"                                  4. Server OS
     Client OS                      int: val(i)      Server OS                      hands message
                                    int: val(j)                                     to server stub

                                3. Message is sent
                                   across the network

 1   Client procedure calls client stub.                  6    Server returns result to stub.
 2   Stub builds message; calls local OS.                 7    Stub builds message; calls OS.
 3   OS sends message to remote OS.                       8    OS sends message to client’s OS.
 4   Remote OS gives message to stub.                     9    Client’s OS gives message to stub.
 5   Stub unpacks parameters and calls                    10   Client stub unpacks result and returns to
     server.                                                   the client.
                                                                                                          15 / 52
Communication   4.2 Remote Procedure Call


RPC: Parameter passing


Parameter marshaling
There’s more than just wrapping parameters into a message:
    Client and server machines may have different data
    representations (think of byte ordering)
    Wrapping a parameter means transforming a value into a
    sequence of bytes
    Client and server have to agree on the same encoding:
        How are basic data values represented (integers, floats, characters)
        How are complex data values represented (arrays, unions)
    Client and server need to properly interpret messages,
    transforming them into machine-dependent representations.



                                                                        16 / 52
Communication   4.2 Remote Procedure Call


RPC: Parameter passing

RPC parameter passing: some assumptions
   Copy in/copy out semantics: while procedure is executed, nothing can
   be assumed about parameter values.
    All data that is to be operated on is passed by parameters. Excludes
    passing references to (global) data.

Conclusion
Full access transparency cannot be realized.

Observation
A remote reference mechanism enhances access transparency:
    Remote reference offers unified access to remote data
    Remote references can be passed as parameter in RPCs


                                                                           17 / 52
Communication   4.2 Remote Procedure Call


Asynchronous RPCs


Essence
Try to get rid of the strict request-reply behavior, but let the client
continue without waiting for an answer from the server.

     Client          Wait for result                       Client    Wait for acceptance


       Call remote                     Return                Call remote                 Return
       procedure                       from call             procedure                   from call

              Request                                               Request          Accept request
                                  Reply

     Server     Call local procedure      Time             Server          Call local procedure      Time
                 and return results
                          (a)                                                  (b)




                                                                                                            18 / 52
Communication      4.2 Remote Procedure Call


Deferred synchronous RPCs


                                     Wait for                  Interrupt client
                                   acceptance
            Client

                     Call remote                Return
                     procedure                  from call      Return
                                                               results            Acknowledge
                                          Accept
                          Request         request
            Server
                                        Call local procedure                      Time
                                                                      Call client with
                                                                      one-way RPC



Variation
Client can also do a (non)blocking poll at the server to see whether
results are available.


                                                                                                19 / 52
Communication     4.2 Remote Procedure Call


RPC in practice
                                           Uuidgen


                                          Interface
                                         definition file


                                         IDL compiler



      Client code        Client stub       Header          Server stub        Server code

                     #include                                      #include

      C compiler        C compiler                          C compiler        C compiler


        Client           Client stub                       Server stub          Server
       object file       object file                        object file        object file


                          Runtime                            Runtime
         Linker                                                                  Linker
                           library                            library


         Client                                                                 Server
         binary                                                                 binary
                                                                                             20 / 52
Communication       4.2 Remote Procedure Call


Client-to-server binding (DCE)

Issues
(1) Client must locate server machine, and (2) locate the server.


                                      Directory machine

                                           Directory
                                            server
                                                              2. Register service
                  3. Look up server
                                                                       Server machine
     Client machine

                                          5. Do RPC                                     1. Register endpoint
                                                                            Server
         Client


                                      4. Ask for endpoint                DCE
                                                                         daemon           Endpoint
                                                                                          table




                                                                                                               21 / 52
Communication   4.3 Message-Oriented Communication


Message-Oriented Communication




   Transient Messaging
   Message-Queuing System
   Message Brokers
   Example: IBM Websphere




                                                                         22 / 52
Communication   4.3 Message-Oriented Communication


Transient messaging: sockets



Berkeley socket interface
       SOCKET     Create a new communication endpoint
       BIND       Attach a local address to a socket
       LISTEN     Announce willingness to accept N connections
       ACCEPT     Block until request to establish a connection
       CONNECT    Attempt to establish a connection
       SEND       Send data over a connection
       RECEIVE    Receive data over a connection
       CLOSE      Release the connection




                                                                            23 / 52
Communication     4.3 Message-Oriented Communication


Transient messaging: sockets




 Server
  socket   bind       listen       accept              read            write      close

           Synchronization point                         Communication

 socket                            connect         write                  read    close
 Client




                                                                                          24 / 52
Communication   4.3 Message-Oriented Communication


Message-oriented middleware


Essence
Asynchronous persistent communication through support of
middleware-level queues. Queues correspond to buffers at
communication servers.

      PUT      Append a message to a specified queue
      GET      Block until the specified queue is nonempty, and re-
               move the first message
      POLL     Check a specified queue for messages, and remove
               the first. Never block
      NOTIFY   Install a handler to be called when a message is put
               into the specified queue



                                                                             25 / 52
Communication   4.3 Message-Oriented Communication


Message broker

Observation
Message queuing systems assume a common messaging protocol: all
applications agree on message format (i.e., structure and data
representation)

Message broker
Centralized component that takes care of application heterogeneity in
an MQ system:
    Transforms incoming messages to target format
    Very often acts as an application gateway
    May provide subject-based routing capabilities ⇒ Enterprise
    Application Integration


                                                                              26 / 52
Communication   4.3 Message-Oriented Communication


Message broker


                                           Repository with
                                           conversion rules
   Source client   Message broker          and programs             Destination client



                           Broker
                          program




                                             Queuing
                                                layer
    OS                                             OS                             OS


                                                                        Network



                                                                                         27 / 52
Communication   4.3 Message-Oriented Communication


IBM’s WebSphere MQ




Basic concepts
   Application-specific messages are put into, and removed from
   queues
   Queues reside under the regime of a queue manager
   Processes can put messages only in local queues, or through an
   RPC mechanism




                                                                            28 / 52
Communication   4.3 Message-Oriented Communication


IBM’s WebSphere MQ


Message transfer
   Messages are transferred between queues
   Message transfer between queues at different processes, requires
   a channel
   At each endpoint of channel is a message channel agent
   Message channel agents are responsible for:
       Setting up channels using lower-level network communication
       facilities (e.g., TCP/IP)
       (Un)wrapping messages from/in transport-level packets
       Sending/receiving packets




                                                                             29 / 52
Communication     4.3 Message-Oriented Communication


IBM’s WebSphere MQ
                                                                       Client's receive
                              Routing table   Send queue               queue              Receiving client
    Sending client

                           Queue                           Queue
        Program            manager                         manager                          Program

      MQ Interface


                            Server                                       Server
          Stub                       MCA MCA               MCA MCA                            Stub
                             stub                                         stub




  RPC                Local network
  (synchronous)                               Enterprise network
                                                                     To other remote
                          Message passing                            queue managers
                          (asynchronous)


    Channels are inherently unidirectional
    Automatically start MCAs when messages arrive
    Any network of queue managers can be created
    Routes are set up manually (system administration)
                                                                                                             30 / 52
Communication    4.3 Message-Oriented Communication


IBM’s WebSphere MQ
Routing
By using logical names, in combination with name resolution to local queues,
it is possible to put a message in a remote queue


                         Alias table    Routing table
                         LA1     QMC      QMB SQ1           Alias table   Routing table
                         LA2     QMD      QMC SQ1           LA1   QMA      QMA SQ1
                                          QMD SQ2           LA2   QMD      QMC SQ1
                                                                           QMD SQ1
                                  SQ2
                                                  SQ1
                         QMA                                       SQ1
                                                                                   QMB


   Routing table   SQ1                                                     QMC               Routing table
    QMA SQ1
                                                                                              QMA SQ1
    QMC SQ2        SQ2                                                                        QMB SQ1
    QMB SQ1
                                                                                              QMD SQ1
                   Alias table
                   LA1   QMA                                                       SQ1
                   LA2   QMC
   QMD

                                                                                                             31 / 52
Communication   4.4 Stream-Oriented Communication


Stream-oriented communication




   Support for continuous media
   Streams in distributed systems
   Stream management




                                                                           32 / 52
Communication   4.4 Stream-Oriented Communication


Continuous media


Observation
All communication facilities discussed so far are essentially based on a
discrete, that is time-independent exchange of information

Continuous media
Characterized by the fact that values are time dependent:
    Audio
    Video
    Animations
    Sensor data (temperature, pressure, etc.)




                                                                             33 / 52
Communication   4.4 Stream-Oriented Communication


Continuous media



Transmission modes
Different timing guarantees with respect to data transfer:
    Asynchronous: no restrictions with respect to when data is to be
    delivered
    Synchronous: define a maximum end-to-end delay for individual
    data packets
    Isochronous: define a maximum and minimum end-to-end delay
    (jitter is bounded)




                                                                              34 / 52
Communication   4.4 Stream-Oriented Communication


Stream


Definition
A (continuous) data stream is a connection-oriented communication
facility that supports isochronous data transmission.

Some common stream characteristics
   Streams are unidirectional
   There is generally a single source, and one or more sinks
   Often, either the sink and/or source is a wrapper around hardware
   (e.g., camera, CD device, TV monitor)
   Simple stream: a single flow of data, e.g., audio or video
   Complex stream: multiple data flows, e.g., stereo audio or
   combination audio/video


                                                                            35 / 52
Communication   4.4 Stream-Oriented Communication


Streams and QoS


Essence
Streams are all about timely delivery of data. How do you specify this
Quality of Service (QoS)? Basics:
    The required bit rate at which data should be transported.
    The maximum delay until a session has been set up (i.e., when an
    application can start sending data).
    The maximum end-to-end delay (i.e., how long it will take until a
    data unit makes it to a recipient).
    The maximum delay variance, or jitter.
    The maximum round-trip delay.




                                                                             36 / 52
Communication        4.4 Stream-Oriented Communication


Enforcing QoS

Observation
There are various network-level tools, such as differentiated services
by which certain packets can be prioritized.

Also
Use buffers to reduce jitter:
         Packet departs source 1 2 3 4 5 6 7 8


         Packet arrives at buffer       1       2       3 4 5       6            7              8

                                                Time in buffer
     Packet removed from buffer                                         1 2 3 4 5 6 7           8
                                                                                                Gap in playback
                                    0               5                10              15              20
                                                                  Time (sec)



                                                                                                                  37 / 52
Communication   4.4 Stream-Oriented Communication


Enforcing QoS




Problem
How to reduce the effects of packet loss (when multiple samples are in
a single packet)?




                                                                             38 / 52
Communication       4.4 Stream-Oriented Communication


Enforcing QoS


                                                                   Lost packet
           Sent     1   2   3   4       5   6   7   8          9 10 11 12        13 14 15 16


        Delivered   1   2   3       4   5   6   7    8         9    10 11 12 13 14 15 16

                                                          Gap of lost frames
                                                         (a)


                                                                   Lost packet
           Sent     1   5   9 13        2   6 10 14            3     7 11 15     4   8 12 16


        Delivered   1   2   3       4   5   6   7    8         9    10 11 12 13 14 15 16

                                                    Lost frames
                                                        (b)




                                                                                               39 / 52
Communication   4.4 Stream-Oriented Communication


Stream synchronization



Problem
Given a complex stream, how do you keep the different substreams in
synch?

Example
Think of playing out two channels, that together form stereo sound.
Difference should be less than 20–30 µsec!




                                                                             40 / 52
Communication       4.4 Stream-Oriented Communication


Stream synchronization

                                                 Receiver's machine

                                                     Application
                      Procedure that reads
                      two audio data units for
                      each video data unit


                          Incoming stream
                                                               OS



                Network



Alternative
Multiplex all substreams into a single stream, and demultiplex at the
receiver. Synchronization is handled at multiplexing/demultiplexing
point (MPEG).


                                                                                     41 / 52
Communication       4.4 Stream-Oriented Communication


Stream synchronization

                                                 Receiver's machine

                                                     Application
                      Procedure that reads
                      two audio data units for
                      each video data unit


                          Incoming stream
                                                               OS



                Network



Alternative
Multiplex all substreams into a single stream, and demultiplex at the
receiver. Synchronization is handled at multiplexing/demultiplexing
point (MPEG).


                                                                                     41 / 52
Communication   4.5 Multicast Communication


Multicast communication




   Application-level multicasting
   Gossip-based data dissemination




                                                                    42 / 52
Communication   4.5 Multicast Communication


Application-level multicasting

Essence
Organize nodes of a distributed system into an overlay network and use that
network to disseminate data.

Chord-based tree building
  1   Initiator generates a multicast identifier mid.
  2   Lookup succ(mid), the node responsible for mid.
  3   Request is routed to succ(mid), which will become the root.
  4   If P wants to join, it sends a join request to the root.
  5   When request arrives at Q:
          Q has not seen a join request before ⇒ it becomes forwarder; P
          becomes child of Q. Join request continues to be forwarded.
          Q knows about tree ⇒ P becomes child of Q. No need to forward
          join request anymore.


                                                                          43 / 52
Communication    4.5 Multicast Communication


ALM: Some costs

               End host
                                                                Router
                A   1                                                        1   C
                                     30                        20
                        Ra                     Re                   Rc

                                                                    5
                          7
                                          40                        Rd
                    1 Rb                                                 1
                                                    Internet                     D
               B
                          Overlay network



   Link stress: How often does an ALM message cross the same
   physical link? Example: message from A to D needs to cross
    Ra, Rb twice.
   Stretch: Ratio in delay between ALM-level path and network-level
   path. Example: messages B to C follow path of length 71 at ALM,
   but 47 at network level ⇒ stretch = 71/47.
                                                                                     44 / 52
Communication   4.5 Multicast Communication


Epidemic Algorithms




   General background
   Update models
   Removing objects




                                                                      45 / 52
Communication   4.5 Multicast Communication


Principles

Basic idea
Assume there are no write–write conflicts:
    Update operations are performed at a single server
    A replica passes updated state to only a few neighbors
    Update propagation is lazy, i.e., not immediate
    Eventually, each update should reach every replica

Two forms of epidemics
    Anti-entropy: Each replica regularly chooses another replica at random,
    and exchanges state differences, leading to identical states at both
    afterwards
    Gossiping: A replica which has just been updated (i.e., has been
    contaminated), tells a number of other replicas about its update
    (contaminating them as well).

                                                                         46 / 52
Communication   4.5 Multicast Communication


Anti-entropy


Principle operations
    A node P selects another node Q from the system at random.
    Push: P only sends its updates to Q
    Pull: P only retrieves updates from Q
    Push-Pull: P and Q exchange mutual updates (after which they
    hold the same information).

Observation
For push-pull it takes O(log(N)) rounds to disseminate updates to all
N nodes (round = when every node as taken the initiative to start an
exchange).



                                                                       47 / 52
Communication   4.5 Multicast Communication


Gossiping


Basic model
A server S having an update to report, contacts other servers. If a
server is contacted to which the update has already propagated, S
stops contacting other servers with probability 1/k.

Observation
If s is the fraction of ignorant servers (i.e., which are unaware of the
update), it can be shown that with many servers

                              s = e−(k+1)(1−s)




                                                                           48 / 52
Communication   4.5 Multicast Communication


Gossiping

                                                            k
                1   2   3   4   5   6   7   8   9 10 11 12 13 14 15           Consider 10,000 nodes
                                                                              k      s           Ns
         -2.5                                                                 1 0.203188       2032
         -5.0                                                                 2 0.059520        595
                                                                              3 0.019827        198
         -7.5                                                                 4 0.006977         70
        -10.0                                                                 5 0.002516         25
ln(s)                                                                         6 0.000918          9
        -12.5
                                                                              7 0.000336          3
        -15.0



 Note
 If we really have to ensure that all servers are eventually updated,
 gossiping alone is not enough

                                                                                                      49 / 52
Communication   4.5 Multicast Communication


Gossiping

                                                            k
                1   2   3   4   5   6   7   8   9 10 11 12 13 14 15           Consider 10,000 nodes
                                                                              k      s           Ns
         -2.5                                                                 1 0.203188       2032
         -5.0                                                                 2 0.059520        595
                                                                              3 0.019827        198
         -7.5                                                                 4 0.006977         70
        -10.0                                                                 5 0.002516         25
ln(s)                                                                         6 0.000918          9
        -12.5
                                                                              7 0.000336          3
        -15.0



 Note
 If we really have to ensure that all servers are eventually updated,
 gossiping alone is not enough

                                                                                                      49 / 52
Communication   4.5 Multicast Communication


Deleting values



Fundamental problem
We cannot remove an old value from a server and expect the removal
to propagate. Instead, mere removal will be undone in due time using
epidemic algorithms

Solution
Removal has to be registered as a special update by inserting a death
certificate




                                                                       50 / 52
Communication   4.5 Multicast Communication


Deleting values

Next problem
When to remove a death certificate (it is not allowed to stay for ever):
     Run a global algorithm to detect whether the removal is known
     everywhere, and then collect the death certificates (looks like garbage
     collection)
     Assume death certificates propagate in finite time, and associate a
     maximum lifetime for a certificate (can be done at risk of not reaching all
     servers)

Note
It is necessary that a removal actually reaches all servers.

Question
What’s the scalability problem here?

                                                                            51 / 52
Communication   4.5 Multicast Communication


Example applications

Typical apps
    Data dissemination: Perhaps the most important one. Note that
    there are many variants of dissemination.
    Aggregation: Let every node i maintain a variable xi . When two
    nodes gossip, they each reset their variable to

                                xi , xj ← (xi + xj )/2

    Result: in the end each node will have computed the average
    ¯
    x = ∑i xi /N.

Question
What happens if initially xi = 1 and xj = 0, j = i?


                                                                         52 / 52
Communication   4.5 Multicast Communication


Example applications

Typical apps
    Data dissemination: Perhaps the most important one. Note that
    there are many variants of dissemination.
    Aggregation: Let every node i maintain a variable xi . When two
    nodes gossip, they each reset their variable to

                                xi , xj ← (xi + xj )/2

    Result: in the end each node will have computed the average
    ¯
    x = ∑i xi /N.

Question
What happens if initially xi = 1 and xj = 0, j = i?


                                                                         52 / 52

Contenu connexe

Tendances

Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesAcademia Sinica
 
Cs 704 d dce ipc-msgpassing
Cs 704 d dce ipc-msgpassingCs 704 d dce ipc-msgpassing
Cs 704 d dce ipc-msgpassingDebasis Das
 
middleware
middlewaremiddleware
middlewarerkk0o7
 
Remote invocation
Remote invocationRemote invocation
Remote invocationishapadhy
 
Remote Procedure Call in Distributed System
Remote Procedure Call in Distributed SystemRemote Procedure Call in Distributed System
Remote Procedure Call in Distributed SystemPoojaBele1
 
MULTIMEDIA COMMUNICATION & NETWORKS
MULTIMEDIA COMMUNICATION & NETWORKSMULTIMEDIA COMMUNICATION & NETWORKS
MULTIMEDIA COMMUNICATION & NETWORKSKathirvel Ayyaswamy
 
Collaboration and Grid Technologies
Collaboration and Grid TechnologiesCollaboration and Grid Technologies
Collaboration and Grid TechnologiesVideoguy
 
Topic2 Understanding Middleware
Topic2 Understanding MiddlewareTopic2 Understanding Middleware
Topic2 Understanding Middlewaresanjoysanyal
 
Network Configuration Example: Configuring LDP Over RSVP
Network Configuration Example: Configuring LDP Over RSVPNetwork Configuration Example: Configuring LDP Over RSVP
Network Configuration Example: Configuring LDP Over RSVPJuniper Networks
 
Paper on RDMA enabled Cluster FileSystem at Intel Developer Forum
Paper on RDMA enabled Cluster FileSystem at Intel Developer ForumPaper on RDMA enabled Cluster FileSystem at Intel Developer Forum
Paper on RDMA enabled Cluster FileSystem at Intel Developer Forumsomenathb
 
Chapter 3 slides (Distributed Systems)
Chapter 3 slides (Distributed Systems)Chapter 3 slides (Distributed Systems)
Chapter 3 slides (Distributed Systems)soe sumijan
 
remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure callsAshish Kumar
 
Media-Aware Network Elements on Legacy Devices
Media-Aware Network Elements on Legacy DevicesMedia-Aware Network Elements on Legacy Devices
Media-Aware Network Elements on Legacy DevicesAlpen-Adria-Universität
 
Chapter 11c coordination agreement
Chapter 11c coordination agreementChapter 11c coordination agreement
Chapter 11c coordination agreementAbDul ThaYyal
 
Understanding Low And Scalable Mpi Latency
Understanding Low And Scalable Mpi LatencyUnderstanding Low And Scalable Mpi Latency
Understanding Low And Scalable Mpi Latencyseiland
 

Tendances (20)

Middleware
MiddlewareMiddleware
Middleware
 
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
 
Cs 704 d dce ipc-msgpassing
Cs 704 d dce ipc-msgpassingCs 704 d dce ipc-msgpassing
Cs 704 d dce ipc-msgpassing
 
middleware
middlewaremiddleware
middleware
 
Remote invocation
Remote invocationRemote invocation
Remote invocation
 
Slide05 Message Passing Architecture
Slide05 Message Passing ArchitectureSlide05 Message Passing Architecture
Slide05 Message Passing Architecture
 
Remote Procedure Call in Distributed System
Remote Procedure Call in Distributed SystemRemote Procedure Call in Distributed System
Remote Procedure Call in Distributed System
 
MULTIMEDIA COMMUNICATION & NETWORKS
MULTIMEDIA COMMUNICATION & NETWORKSMULTIMEDIA COMMUNICATION & NETWORKS
MULTIMEDIA COMMUNICATION & NETWORKS
 
Collaboration and Grid Technologies
Collaboration and Grid TechnologiesCollaboration and Grid Technologies
Collaboration and Grid Technologies
 
Tivoli firewall magic redp0227
Tivoli firewall magic redp0227Tivoli firewall magic redp0227
Tivoli firewall magic redp0227
 
Topic2 Understanding Middleware
Topic2 Understanding MiddlewareTopic2 Understanding Middleware
Topic2 Understanding Middleware
 
Thesis11
Thesis11Thesis11
Thesis11
 
Network Configuration Example: Configuring LDP Over RSVP
Network Configuration Example: Configuring LDP Over RSVPNetwork Configuration Example: Configuring LDP Over RSVP
Network Configuration Example: Configuring LDP Over RSVP
 
Paper on RDMA enabled Cluster FileSystem at Intel Developer Forum
Paper on RDMA enabled Cluster FileSystem at Intel Developer ForumPaper on RDMA enabled Cluster FileSystem at Intel Developer Forum
Paper on RDMA enabled Cluster FileSystem at Intel Developer Forum
 
Chapter 3 slides (Distributed Systems)
Chapter 3 slides (Distributed Systems)Chapter 3 slides (Distributed Systems)
Chapter 3 slides (Distributed Systems)
 
remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
 
Media-Aware Network Elements on Legacy Devices
Media-Aware Network Elements on Legacy DevicesMedia-Aware Network Elements on Legacy Devices
Media-Aware Network Elements on Legacy Devices
 
Chapter 11c coordination agreement
Chapter 11c coordination agreementChapter 11c coordination agreement
Chapter 11c coordination agreement
 
Understanding Low And Scalable Mpi Latency
Understanding Low And Scalable Mpi LatencyUnderstanding Low And Scalable Mpi Latency
Understanding Low And Scalable Mpi Latency
 
App layer
App layerApp layer
App layer
 

Similaire à Vansteen communication

CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSKathirvel Ayyaswamy
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to KafkaDucas Francis
 
Wireless network basics
Wireless network basicsWireless network basics
Wireless network basicsKumar
 
Chapter 3 a
Chapter 3 aChapter 3 a
Chapter 3 alara_ays
 
Topic 5- Communications v1.pptx
Topic 5- Communications v1.pptxTopic 5- Communications v1.pptx
Topic 5- Communications v1.pptxDanishMahmood23
 
Wcf difference faqs-1
Wcf difference faqs-1Wcf difference faqs-1
Wcf difference faqs-1Umar Ali
 
MK-PPT Chapter 1.ppt
MK-PPT Chapter 1.pptMK-PPT Chapter 1.ppt
MK-PPT Chapter 1.pptNuthanR3
 
Chapter 3 slides
Chapter 3 slidesChapter 3 slides
Chapter 3 slideslara_ays
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009Gerardo Pardo-Castellote
 
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGYDistributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGYreginamutio48
 
Chapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network DesignChapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network Designnakomuri
 
Computer networks--osi model
Computer networks--osi modelComputer networks--osi model
Computer networks--osi modelAditya Mehta
 
Internet protocol stack
Internet protocol stackInternet protocol stack
Internet protocol stackAmi Prakash
 
Messaging for modern applications
Messaging for modern applicationsMessaging for modern applications
Messaging for modern applicationsPronam Chatterjee
 
Hyperledger Consensus Algorithms
Hyperledger Consensus AlgorithmsHyperledger Consensus Algorithms
Hyperledger Consensus AlgorithmsMabelOza12
 

Similaire à Vansteen communication (20)

CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to Kafka
 
Wireless network basics
Wireless network basicsWireless network basics
Wireless network basics
 
Lecture04 H
Lecture04 HLecture04 H
Lecture04 H
 
Chapter 3 a
Chapter 3 aChapter 3 a
Chapter 3 a
 
Topic 5- Communications v1.pptx
Topic 5- Communications v1.pptxTopic 5- Communications v1.pptx
Topic 5- Communications v1.pptx
 
Wcf difference faqs-1
Wcf difference faqs-1Wcf difference faqs-1
Wcf difference faqs-1
 
MK-PPT Chapter 1.ppt
MK-PPT Chapter 1.pptMK-PPT Chapter 1.ppt
MK-PPT Chapter 1.ppt
 
Chapter 3 slides
Chapter 3 slidesChapter 3 slides
Chapter 3 slides
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009
 
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGYDistributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
 
Chapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network DesignChapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network Design
 
Computer networks--osi model
Computer networks--osi modelComputer networks--osi model
Computer networks--osi model
 
Internet protocol stack
Internet protocol stackInternet protocol stack
Internet protocol stack
 
Networks software
Networks softwareNetworks software
Networks software
 
Viloria osi layer4-7
Viloria osi layer4-7Viloria osi layer4-7
Viloria osi layer4-7
 
Message passing in Distributed Computing Systems
Message passing in Distributed Computing SystemsMessage passing in Distributed Computing Systems
Message passing in Distributed Computing Systems
 
Messaging for modern applications
Messaging for modern applicationsMessaging for modern applications
Messaging for modern applications
 
Hyperledger Consensus Algorithms
Hyperledger Consensus AlgorithmsHyperledger Consensus Algorithms
Hyperledger Consensus Algorithms
 
message passing
 message passing message passing
message passing
 

Dernier

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Vansteen communication

  • 1. Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 04: Communication Version: November 5, 2009
  • 2. Contents Chapter 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06: Synchronization 07: Consistency & Replication 08: Fault Tolerance 09: Security 10: Distributed Object-Based Systems 11: Distributed File Systems 12: Distributed Web-Based Systems 13: Distributed Coordination-Based Systems 2 / 52
  • 3. Communication 4.1 Layered Protocols Layered Protocols Low-level layers Transport layer Application layer Middleware layer 3 / 52
  • 4. Communication 4.1 Layered Protocols Basic networking model Application protocol Application 7 Presentation protocol Presentation 6 Session protocol Session 5 Transport protocol Transport 4 Network protocol Network 3 Data link protocol Data link 2 Physical protocol Physical 1 Network Drawbacks Focus on message-passing only Often unneeded or unwanted functionality Violates access transparency 4 / 52
  • 5. Communication 4.1 Layered Protocols Low-level layers Recap Physical layer: contains the specification and implementation of bits, and their transmission between sender and receiver Data link layer: prescribes the transmission of a series of bits into a frame to allow for error and flow control Network layer: describes how packets in a network of computers are to be routed. Observation For many distributed systems, the lowest-level interface is that of the network layer. 5 / 52
  • 6. Communication 4.1 Layered Protocols Transport Layer Important The transport layer provides the actual communication facilities for most distributed systems. Standard Internet protocols TCP: connection-oriented, reliable, stream-oriented communication UDP: unreliable (best-effort) datagram communication Note IP multicasting is often considered a standard available service (which may be dangerous to assume). 6 / 52
  • 7. Communication 4.1 Layered Protocols Middleware Layer Observation Middleware is invented to provide common services and protocols that can be used by many different applications A rich set of communication protocols (Un)marshaling of data, necessary for integrated systems Naming protocols, to allow easy sharing of resources Security protocols for secure communication Scaling mechanisms, such as for replication and caching Note What remains are truly application-specific protocols... such as? 7 / 52
  • 8. Communication 4.1 Layered Protocols Types of communication Synchronize at Synchronize at Synchronize after request submission request delivery processing by server Client Request Transmission interrupt Storage facility Reply Server Time Distinguish Transient versus persistent communication Asynchrounous versus synchronous communication 8 / 52
  • 9. Communication 4.1 Layered Protocols Types of communication Synchronize at Synchronize at Synchronize after request submission request delivery processing by server Client Request Transmission interrupt Storage facility Reply Server Time Transient versus persistent Transient communication: Comm. server discards message when it cannot be delivered at the next server, or at the receiver. Persistent communication: A message is stored at a communication server as long as it takes to deliver it. 9 / 52
  • 10. Communication 4.1 Layered Protocols Types of communication Synchronize at Synchronize at Synchronize after request submission request delivery processing by server Client Request Transmission interrupt Storage facility Reply Server Time Places for synchronization At request submission At request delivery After request processing 10 / 52
  • 11. Communication 4.1 Layered Protocols Client/Server Some observations Client/Server computing is generally based on a model of transient synchronous communication: Client and server have to be active at time of commun. Client issues request and blocks until it receives reply Server essentially waits only for incoming requests, and subsequently processes them Drawbacks synchronous communication Client cannot do any other work while waiting for reply Failures have to be handled immediately: the client is waiting The model may simply not be appropriate (mail, news) 11 / 52
  • 12. Communication 4.1 Layered Protocols Client/Server Some observations Client/Server computing is generally based on a model of transient synchronous communication: Client and server have to be active at time of commun. Client issues request and blocks until it receives reply Server essentially waits only for incoming requests, and subsequently processes them Drawbacks synchronous communication Client cannot do any other work while waiting for reply Failures have to be handled immediately: the client is waiting The model may simply not be appropriate (mail, news) 11 / 52
  • 13. Communication 4.1 Layered Protocols Messaging Message-oriented middleware Aims at high-level persistent asynchronous communication: Processes send each other messages, which are queued Sender need not wait for immediate reply, but can do other things Middleware often ensures fault tolerance 12 / 52
  • 14. Communication 4.2 Remote Procedure Call Remote Procedure Call (RPC) Basic RPC operation Parameter passing Variations 13 / 52
  • 15. Communication 4.2 Remote Procedure Call Basic RPC operation Observations Application developers are familiar with simple procedure model Well-engineered procedures operate in isolation (black box) There is no fundamental reason not to execute procedures on separate machine Wait for result Conclusion Client Communication between caller & Call remote procedure Return from call callee can be hidden by using procedure-call mechanism. Request Reply Server Call local procedure Time and return results 14 / 52
  • 16. Communication 4.2 Remote Procedure Call Basic RPC operation Client machine Server machine Client process Server process 1. Client call to procedure Implementation 6. Stub makes of add local call to "add" Server stub k = add(i,j) k = add(i,j) Client stub proc: "add" proc: "add" int: val(i) int: val(i) 5. Stub unpacks 2. Stub builds message int: val(j) message int: val(j) proc: "add" 4. Server OS Client OS int: val(i) Server OS hands message int: val(j) to server stub 3. Message is sent across the network 1 Client procedure calls client stub. 6 Server returns result to stub. 2 Stub builds message; calls local OS. 7 Stub builds message; calls OS. 3 OS sends message to remote OS. 8 OS sends message to client’s OS. 4 Remote OS gives message to stub. 9 Client’s OS gives message to stub. 5 Stub unpacks parameters and calls 10 Client stub unpacks result and returns to server. the client. 15 / 52
  • 17. Communication 4.2 Remote Procedure Call RPC: Parameter passing Parameter marshaling There’s more than just wrapping parameters into a message: Client and server machines may have different data representations (think of byte ordering) Wrapping a parameter means transforming a value into a sequence of bytes Client and server have to agree on the same encoding: How are basic data values represented (integers, floats, characters) How are complex data values represented (arrays, unions) Client and server need to properly interpret messages, transforming them into machine-dependent representations. 16 / 52
  • 18. Communication 4.2 Remote Procedure Call RPC: Parameter passing RPC parameter passing: some assumptions Copy in/copy out semantics: while procedure is executed, nothing can be assumed about parameter values. All data that is to be operated on is passed by parameters. Excludes passing references to (global) data. Conclusion Full access transparency cannot be realized. Observation A remote reference mechanism enhances access transparency: Remote reference offers unified access to remote data Remote references can be passed as parameter in RPCs 17 / 52
  • 19. Communication 4.2 Remote Procedure Call Asynchronous RPCs Essence Try to get rid of the strict request-reply behavior, but let the client continue without waiting for an answer from the server. Client Wait for result Client Wait for acceptance Call remote Return Call remote Return procedure from call procedure from call Request Request Accept request Reply Server Call local procedure Time Server Call local procedure Time and return results (a) (b) 18 / 52
  • 20. Communication 4.2 Remote Procedure Call Deferred synchronous RPCs Wait for Interrupt client acceptance Client Call remote Return procedure from call Return results Acknowledge Accept Request request Server Call local procedure Time Call client with one-way RPC Variation Client can also do a (non)blocking poll at the server to see whether results are available. 19 / 52
  • 21. Communication 4.2 Remote Procedure Call RPC in practice Uuidgen Interface definition file IDL compiler Client code Client stub Header Server stub Server code #include #include C compiler C compiler C compiler C compiler Client Client stub Server stub Server object file object file object file object file Runtime Runtime Linker Linker library library Client Server binary binary 20 / 52
  • 22. Communication 4.2 Remote Procedure Call Client-to-server binding (DCE) Issues (1) Client must locate server machine, and (2) locate the server. Directory machine Directory server 2. Register service 3. Look up server Server machine Client machine 5. Do RPC 1. Register endpoint Server Client 4. Ask for endpoint DCE daemon Endpoint table 21 / 52
  • 23. Communication 4.3 Message-Oriented Communication Message-Oriented Communication Transient Messaging Message-Queuing System Message Brokers Example: IBM Websphere 22 / 52
  • 24. Communication 4.3 Message-Oriented Communication Transient messaging: sockets Berkeley socket interface SOCKET Create a new communication endpoint BIND Attach a local address to a socket LISTEN Announce willingness to accept N connections ACCEPT Block until request to establish a connection CONNECT Attempt to establish a connection SEND Send data over a connection RECEIVE Receive data over a connection CLOSE Release the connection 23 / 52
  • 25. Communication 4.3 Message-Oriented Communication Transient messaging: sockets Server socket bind listen accept read write close Synchronization point Communication socket connect write read close Client 24 / 52
  • 26. Communication 4.3 Message-Oriented Communication Message-oriented middleware Essence Asynchronous persistent communication through support of middleware-level queues. Queues correspond to buffers at communication servers. PUT Append a message to a specified queue GET Block until the specified queue is nonempty, and re- move the first message POLL Check a specified queue for messages, and remove the first. Never block NOTIFY Install a handler to be called when a message is put into the specified queue 25 / 52
  • 27. Communication 4.3 Message-Oriented Communication Message broker Observation Message queuing systems assume a common messaging protocol: all applications agree on message format (i.e., structure and data representation) Message broker Centralized component that takes care of application heterogeneity in an MQ system: Transforms incoming messages to target format Very often acts as an application gateway May provide subject-based routing capabilities ⇒ Enterprise Application Integration 26 / 52
  • 28. Communication 4.3 Message-Oriented Communication Message broker Repository with conversion rules Source client Message broker and programs Destination client Broker program Queuing layer OS OS OS Network 27 / 52
  • 29. Communication 4.3 Message-Oriented Communication IBM’s WebSphere MQ Basic concepts Application-specific messages are put into, and removed from queues Queues reside under the regime of a queue manager Processes can put messages only in local queues, or through an RPC mechanism 28 / 52
  • 30. Communication 4.3 Message-Oriented Communication IBM’s WebSphere MQ Message transfer Messages are transferred between queues Message transfer between queues at different processes, requires a channel At each endpoint of channel is a message channel agent Message channel agents are responsible for: Setting up channels using lower-level network communication facilities (e.g., TCP/IP) (Un)wrapping messages from/in transport-level packets Sending/receiving packets 29 / 52
  • 31. Communication 4.3 Message-Oriented Communication IBM’s WebSphere MQ Client's receive Routing table Send queue queue Receiving client Sending client Queue Queue Program manager manager Program MQ Interface Server Server Stub MCA MCA MCA MCA Stub stub stub RPC Local network (synchronous) Enterprise network To other remote Message passing queue managers (asynchronous) Channels are inherently unidirectional Automatically start MCAs when messages arrive Any network of queue managers can be created Routes are set up manually (system administration) 30 / 52
  • 32. Communication 4.3 Message-Oriented Communication IBM’s WebSphere MQ Routing By using logical names, in combination with name resolution to local queues, it is possible to put a message in a remote queue Alias table Routing table LA1 QMC QMB SQ1 Alias table Routing table LA2 QMD QMC SQ1 LA1 QMA QMA SQ1 QMD SQ2 LA2 QMD QMC SQ1 QMD SQ1 SQ2 SQ1 QMA SQ1 QMB Routing table SQ1 QMC Routing table QMA SQ1 QMA SQ1 QMC SQ2 SQ2 QMB SQ1 QMB SQ1 QMD SQ1 Alias table LA1 QMA SQ1 LA2 QMC QMD 31 / 52
  • 33. Communication 4.4 Stream-Oriented Communication Stream-oriented communication Support for continuous media Streams in distributed systems Stream management 32 / 52
  • 34. Communication 4.4 Stream-Oriented Communication Continuous media Observation All communication facilities discussed so far are essentially based on a discrete, that is time-independent exchange of information Continuous media Characterized by the fact that values are time dependent: Audio Video Animations Sensor data (temperature, pressure, etc.) 33 / 52
  • 35. Communication 4.4 Stream-Oriented Communication Continuous media Transmission modes Different timing guarantees with respect to data transfer: Asynchronous: no restrictions with respect to when data is to be delivered Synchronous: define a maximum end-to-end delay for individual data packets Isochronous: define a maximum and minimum end-to-end delay (jitter is bounded) 34 / 52
  • 36. Communication 4.4 Stream-Oriented Communication Stream Definition A (continuous) data stream is a connection-oriented communication facility that supports isochronous data transmission. Some common stream characteristics Streams are unidirectional There is generally a single source, and one or more sinks Often, either the sink and/or source is a wrapper around hardware (e.g., camera, CD device, TV monitor) Simple stream: a single flow of data, e.g., audio or video Complex stream: multiple data flows, e.g., stereo audio or combination audio/video 35 / 52
  • 37. Communication 4.4 Stream-Oriented Communication Streams and QoS Essence Streams are all about timely delivery of data. How do you specify this Quality of Service (QoS)? Basics: The required bit rate at which data should be transported. The maximum delay until a session has been set up (i.e., when an application can start sending data). The maximum end-to-end delay (i.e., how long it will take until a data unit makes it to a recipient). The maximum delay variance, or jitter. The maximum round-trip delay. 36 / 52
  • 38. Communication 4.4 Stream-Oriented Communication Enforcing QoS Observation There are various network-level tools, such as differentiated services by which certain packets can be prioritized. Also Use buffers to reduce jitter: Packet departs source 1 2 3 4 5 6 7 8 Packet arrives at buffer 1 2 3 4 5 6 7 8 Time in buffer Packet removed from buffer 1 2 3 4 5 6 7 8 Gap in playback 0 5 10 15 20 Time (sec) 37 / 52
  • 39. Communication 4.4 Stream-Oriented Communication Enforcing QoS Problem How to reduce the effects of packet loss (when multiple samples are in a single packet)? 38 / 52
  • 40. Communication 4.4 Stream-Oriented Communication Enforcing QoS Lost packet Sent 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Gap of lost frames (a) Lost packet Sent 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Lost frames (b) 39 / 52
  • 41. Communication 4.4 Stream-Oriented Communication Stream synchronization Problem Given a complex stream, how do you keep the different substreams in synch? Example Think of playing out two channels, that together form stereo sound. Difference should be less than 20–30 µsec! 40 / 52
  • 42. Communication 4.4 Stream-Oriented Communication Stream synchronization Receiver's machine Application Procedure that reads two audio data units for each video data unit Incoming stream OS Network Alternative Multiplex all substreams into a single stream, and demultiplex at the receiver. Synchronization is handled at multiplexing/demultiplexing point (MPEG). 41 / 52
  • 43. Communication 4.4 Stream-Oriented Communication Stream synchronization Receiver's machine Application Procedure that reads two audio data units for each video data unit Incoming stream OS Network Alternative Multiplex all substreams into a single stream, and demultiplex at the receiver. Synchronization is handled at multiplexing/demultiplexing point (MPEG). 41 / 52
  • 44. Communication 4.5 Multicast Communication Multicast communication Application-level multicasting Gossip-based data dissemination 42 / 52
  • 45. Communication 4.5 Multicast Communication Application-level multicasting Essence Organize nodes of a distributed system into an overlay network and use that network to disseminate data. Chord-based tree building 1 Initiator generates a multicast identifier mid. 2 Lookup succ(mid), the node responsible for mid. 3 Request is routed to succ(mid), which will become the root. 4 If P wants to join, it sends a join request to the root. 5 When request arrives at Q: Q has not seen a join request before ⇒ it becomes forwarder; P becomes child of Q. Join request continues to be forwarded. Q knows about tree ⇒ P becomes child of Q. No need to forward join request anymore. 43 / 52
  • 46. Communication 4.5 Multicast Communication ALM: Some costs End host Router A 1 1 C 30 20 Ra Re Rc 5 7 40 Rd 1 Rb 1 Internet D B Overlay network Link stress: How often does an ALM message cross the same physical link? Example: message from A to D needs to cross Ra, Rb twice. Stretch: Ratio in delay between ALM-level path and network-level path. Example: messages B to C follow path of length 71 at ALM, but 47 at network level ⇒ stretch = 71/47. 44 / 52
  • 47. Communication 4.5 Multicast Communication Epidemic Algorithms General background Update models Removing objects 45 / 52
  • 48. Communication 4.5 Multicast Communication Principles Basic idea Assume there are no write–write conflicts: Update operations are performed at a single server A replica passes updated state to only a few neighbors Update propagation is lazy, i.e., not immediate Eventually, each update should reach every replica Two forms of epidemics Anti-entropy: Each replica regularly chooses another replica at random, and exchanges state differences, leading to identical states at both afterwards Gossiping: A replica which has just been updated (i.e., has been contaminated), tells a number of other replicas about its update (contaminating them as well). 46 / 52
  • 49. Communication 4.5 Multicast Communication Anti-entropy Principle operations A node P selects another node Q from the system at random. Push: P only sends its updates to Q Pull: P only retrieves updates from Q Push-Pull: P and Q exchange mutual updates (after which they hold the same information). Observation For push-pull it takes O(log(N)) rounds to disseminate updates to all N nodes (round = when every node as taken the initiative to start an exchange). 47 / 52
  • 50. Communication 4.5 Multicast Communication Gossiping Basic model A server S having an update to report, contacts other servers. If a server is contacted to which the update has already propagated, S stops contacting other servers with probability 1/k. Observation If s is the fraction of ignorant servers (i.e., which are unaware of the update), it can be shown that with many servers s = e−(k+1)(1−s) 48 / 52
  • 51. Communication 4.5 Multicast Communication Gossiping k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Consider 10,000 nodes k s Ns -2.5 1 0.203188 2032 -5.0 2 0.059520 595 3 0.019827 198 -7.5 4 0.006977 70 -10.0 5 0.002516 25 ln(s) 6 0.000918 9 -12.5 7 0.000336 3 -15.0 Note If we really have to ensure that all servers are eventually updated, gossiping alone is not enough 49 / 52
  • 52. Communication 4.5 Multicast Communication Gossiping k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Consider 10,000 nodes k s Ns -2.5 1 0.203188 2032 -5.0 2 0.059520 595 3 0.019827 198 -7.5 4 0.006977 70 -10.0 5 0.002516 25 ln(s) 6 0.000918 9 -12.5 7 0.000336 3 -15.0 Note If we really have to ensure that all servers are eventually updated, gossiping alone is not enough 49 / 52
  • 53. Communication 4.5 Multicast Communication Deleting values Fundamental problem We cannot remove an old value from a server and expect the removal to propagate. Instead, mere removal will be undone in due time using epidemic algorithms Solution Removal has to be registered as a special update by inserting a death certificate 50 / 52
  • 54. Communication 4.5 Multicast Communication Deleting values Next problem When to remove a death certificate (it is not allowed to stay for ever): Run a global algorithm to detect whether the removal is known everywhere, and then collect the death certificates (looks like garbage collection) Assume death certificates propagate in finite time, and associate a maximum lifetime for a certificate (can be done at risk of not reaching all servers) Note It is necessary that a removal actually reaches all servers. Question What’s the scalability problem here? 51 / 52
  • 55. Communication 4.5 Multicast Communication Example applications Typical apps Data dissemination: Perhaps the most important one. Note that there are many variants of dissemination. Aggregation: Let every node i maintain a variable xi . When two nodes gossip, they each reset their variable to xi , xj ← (xi + xj )/2 Result: in the end each node will have computed the average ¯ x = ∑i xi /N. Question What happens if initially xi = 1 and xj = 0, j = i? 52 / 52
  • 56. Communication 4.5 Multicast Communication Example applications Typical apps Data dissemination: Perhaps the most important one. Note that there are many variants of dissemination. Aggregation: Let every node i maintain a variable xi . When two nodes gossip, they each reset their variable to xi , xj ← (xi + xj )/2 Result: in the end each node will have computed the average ¯ x = ∑i xi /N. Question What happens if initially xi = 1 and xj = 0, j = i? 52 / 52