inter-process communication in distributed systems

Download Inter-Process Communication in distributed systems

Post on 07-Aug-2015




1 download

Embed Size (px)


  1. 1. Inter-Process Communication (IPC) 1
  2. 2. Agenda Introduction Layered Protocols (7 Layers) Types of Communication (3 Categories) Models for Communication (3 Models) The Group Communication and the Multicasting Communication 2
  3. 3. Introduction IPC is at the heart of all distributed systems, so we need to know the ways that processes can exchange information. Communication in distributed systems is based on Low-level message passing as offered by the underlying network. 3
  4. 4. Layered Protocols Two processes A,B A wants to communicate with B. A builds a message in its own address space. A execute a call to the OS to send the message. To prevent chaos (mass) A,B have to agree on the meaning of the bites being sent. 4
  5. 5. The International Standards Organization (ISO) developed a reference model that clearly identifies the various levels involved Open Systems Interconnection (OSI). It provides a description of how network hardware and software work together in a layered fashion to make communications possible. 5
  6. 6. Communication divided into 7 layers. Each layer has a responsibility to perform specific tasks but all of the layers are needed for a message to reach its destination. Message send (downwards) Message received (upwards). 6
  7. 7. Two general type of protocols Connection oriented protocols: Before exchanging data the sender and receiver first establish a connection, and possibly negotiate the protocol they will use When they are done, they must terminate the connection. The Telephone Connectionless protocols: No setup in advance is needed, The sender just transmits the first message when it is ready. The mailbox or mail 7
  8. 8. Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Application Layer Layered Protocols 8
  9. 9. Application Layer It is the software that the end-user interacts with. It serves as a window through which application processes can access network services. 9
  10. 10. Presentation Layer Think of it as the network's translator. It is responsible for translating the data, encrypting the data, changing or converting the character set. Manages data compression to reduce the number of bits that need to be transmitted. 10
  11. 11. Session Layer Provides dialog control between communicating processes, such as which party is currently talking, when, and for how long. Allows users to insert checkpoints into long transfers. In the event of crash, it is necessary to go back only to the last checkpoint. 11
  12. 12. Transport Layer Turns the underlying network into something that an application developer can use. Ensures that packets are delivered error free, in sequence, and without losses or duplications. 12
  13. 13. Network Layer Addresses the packets and translating logical addresses and names into physical addresses. Determines the route from the source to the destination computer (Delay-Wise). 13
  14. 14. Data Link Layer Groups bits into frames and sees that each frame is correctly received (checksum), If checksums differ, requests a retransmission. Sends data frames from the network layer to the physical layer 14
  15. 15. 15
  16. 16. Physical Layer The physical layer is totally hardware- oriented. It is responsible for transmitting bits (zeros and ones) from one computer to another. Defines the duration of each impulse. 16
  17. 17. Middleware Protocols Communications Middleware is the layer that lies between the operating system and system applications that allows for communications. Sometimes Communications Middleware is referred to as plumbing because it is the piece that connects two (or more) applications and allows data to pass through. 17
  18. 18. Communications Middleware can be cross- platform, that is, it facilitates communications between these differing devices. We can use a cell phone and a PC here as an example. They both function in vastly different capacities, but with Communications Middleware, are able to talk to and work with each other 18
  19. 19. 19
  20. 20. Remote Procedure Call
  21. 21. Many distributed systems have been based on explicit message exchange between processes and this exchange must be transparent. Problems the calling and called procedures run on different machines, they execute in different address spaces. Parameters and results also have to be passed. Either or both machines can crash and each of the possible failures causes different problems.
  22. 22. count =read (fd, buf, nbytes); fd is an integer indicating a file. buf is an array of characters into which data are read. nbytes is an integer telling how many bytes to read.
  23. 23. By Value By Reference By Copy and Restore count =read (fd, buf, nbytes);
  24. 24. Performing read operation in RPC : 1. The client procedure calls the client stub in the normal way. 2. The client stub builds a message and calls the local operating system 3. The client's as sends the message to the remote as. 4. The remote as gives the message to the server stub. 5. The server stub unpacks the parameters and calls the server. 6. The server does the work and returns the result to the stub. 7. The server stub packs it in a message and calls its local as. 8. The server's as sends the message to the client's as. 9. The client's as gives the message to the client stub. 10. The stub unpacks the result and returns to the client.
  25. 25. By Value By Reference Problems add(i, j);
  26. 26. The message format must be defined, the caller and the callee must agree on the format of the messages they exchange, and that they follow the same steps when it comes to. The interface language must be the same in client and server.
  27. 27. developed by the Open Software Foundation (OSF). DCE RPC is not as popular as some other RPC systems. Initially designed for UNIX, it has now been ported to all major operating systems including VMS and Windows variants. Idea Distributed Computing Environment
  28. 28. Procedures that form part of DCE The distributed file service is a worldwide file system that provides a transparent way of accessing any file in the system in the same way. The directory service is used to keep track of the location of all resources in the system. These resources include machines, printers, servers, data, and much more, and they may be distributed geographically over the entire world. The directory service allows a process to ask for a resource and not have to be concerned about where it is, unless the process cares. The security service allows resources of all kinds to be protected, so access can be restricted to authorized persons. The distributed time service is a service that attempts to keep clocks on the different machines globally synchronized.
  29. 29. Cannot pass pointers call by reference becomes copy-restore (but might fail) Weakly typed languages client stub cannot determine size Not always possible to determine parameter types Cannot use global variables RPCs, i.e., enhance access transparency but they are not always appropriate to distributed system. 31
  30. 30. Message-Oriented Communication is a way of communicating between processes. Messages, which correspond to events, are the basic units of data delivered. Message-oriented communication is classified according to two factors: synchronous or asynchronous communication, and transient or persistent communication. 32
  31. 31. Many distributed systems built on top of simple message-oriented model Example: Berkeley sockets Socket? 33
  32. 32. 34
  33. 33. Sockets designed for network communication (e.g., TCP/IP) Support simple send/receive primitives Use general-purpose protocol stacks such as TCP/IP Abstraction not suitable for other protocols in clusters of workstations or massively parallel systems Need an interface with more advanced primitives Large number of incompatible proprietary libraries and protocols. Need for standard interface 35
  34. 34. Message-passing interface (MPI) Hardware independent Designed for parallel applications (uses transient communication) Key idea: communication between groups of processes Each endpoint is a (groupID, processID) pair An MPI implementation allows a user to start multiple threads and provide functions for the threads to communicate and synchronize. 36
  35. 35. The need for persistent communication services is clear in developing middleware for large-scale distributed applications. If you use direct point-to-point interfaces to integrate your systems means that every system would have to know exactly how to connect to all other systems and enterprise. 37
  36. 36. You can see that as you add more systems it gets more complex! N(N-1)/2 different connections! 38
  37. 37. 39
  38. 38. Message queuing systems or Message-Oriented Middleware (MOM). Support asynchronous persistent communication Intermediate storage for message while sender/receiver are inactive Example application: email Communicate by inserting messages in queues Sender is only guaranteed that message will be eventually inserted in recipients queue When/if the message will be read? 40
  39. 39. Queues are managed by queue managers They move a message from a source queue to a destination queue. Special queue managers operate as routers or relays: they forward incoming messages to other queue managers. 41
  40. 40. Four combinations for loosely-coupled communications using queues: 42
  41. 41. General Architecture of MOM: 43
  42. 42. The general organization of a message- queuing system with routers: 44
  43. 43. Relays/Routers: special queue managers that operate as routers and

View more