Title: Interprocess Communication and Middleware
1Interprocess CommunicationandMiddleware
2Sockets and Ports
Node 2
Node 1
Source G. Coulouris et al., Distributed Systems
Concepts and Design
3Crossing Hosts/Platforms
Source G. Coulouris et al., Distributed Systems
Concepts and Design
4 Provisions of Middleware
- Higher-level abstractions (RPC, RMI, )
- Location transparency
- Independent of communication protocols
- Independent of hardware/operating systems
- Use of several programming languages
5The Middleware layer
The operating system includes common network
protocols (TCP/IP, ).
Source G. Coulouris et al., Distributed Systems
Concepts and Design
6Request-Reply Communication
Source G. Coulouris et al., Distributed Systems
Concepts and Design
7Request-Reply Communication Using HTTP
HTTP request message
HTTP reply message
Source G. Coulouris et al., Distributed Systems
Concepts and Design
8Serialization (Marshalling)
Source G. Coulouris et al., Distributed Systems
Concepts and Design
9Distributed Objects
- The object-based programming model is extended
- to allow objects in different processes to
interact - with one another.
- Client/Server
- Object References
- Interfaces
- Remote Method Invocation
- Exceptions
10A CORBA IDL Example
Source G. Coulouris et al., Distributed Systems
Concepts and Design
11Local and Remote Method Invocations
Source G. Coulouris et al., Distributed Systems
Concepts and Design
12A Remote Object and Its Interface
Source G. Coulouris et al., Distributed Systems
Concepts and Design
13Client Proxy (Stub) and Server Skeleton (Stub)
Source G. Coulouris et al., Distributed Systems
Concepts and Design
14The RMI Software
- Proxy the local representative of the remote
object. - Dispatcher relays a request to the appropriate
skeleton method. - Skeleton unmarshals the request and invokes the
corresponding method in the remote object.
15RPC/RMI Semantics
Source G. Coulouris et al., Distributed Systems
Concepts and Design
16Java Remote Interfaces
Source G. Coulouris et al., Distributed Systems
Concepts and Design
17A Java Server
Source G. Coulouris et al., Distributed Systems
Concepts and Design
18A Java Server (contd)
Source G. Coulouris et al., Distributed Systems
Concepts and Design
19A Java Client
Source G. Coulouris et al., Distributed Systems
Concepts and Design
20CORBA
- Defined by OMG to hide the intricacies of network
programming. - An ORB (Object Request Broker) receives
invocations from a client and deliver them to a
target object. - The main communication protocol is GIOP (General
Inter-ORB Protocol), known as IIOP when
implemented over the Internet.
21The CORBA Architecture
Source G. Coulouris et al., Distributed Systems
Concepts and Design
22CORBA Object Interfaces
- Each object has an interface defined in IDL.
- An interface defines the operations that can be
called by the clients. - An interface can be implemented in one language
and called from by another. - The CORBA IDL includes features such as
inheritance of interfaces, exceptions, and
compound data types.
23CORBA Programming with Java
- Define the interfaces using IDL and compile them
into Java interfaces. - Implement the interfaces with Java classes.
- Write a server main function that creates
instances of these classes and then inform the
underlying CORBA implementation. - Register the server.
- Write a client main function to connect to the
server and to use servers objects.
24CORBA IDL Interfaces Shape and ShapeList
Source G. Coulouris et al., Distributed Systems
Concepts and Design
25Java Interface Generated from the CORBA Interface
ShapeList
Source G. Coulouris et al., Distributed Systems
Concepts and Design
26Java Implementation of Shapelist
Source G. Coulouris et al., Distributed Systems
Concepts and Design
27Java Implementation of ShapeList (contd)
Source G. Coulouris et al., Distributed Systems
Concepts and Design
28Java Implementation of a ShapeList Client
Source G. Coulouris et al., Distributed Systems
Concepts and Design