290 likes | 396 Vues
Interprocess Communication and Middleware. Sockets and Ports. Node 2. Node 1. Source: G. Coulouris et al., Distributed Systems: Concepts and Design. Crossing Hosts/Platforms. Source: G. Coulouris et al., Distributed Systems: Concepts and Design. Provisions of Middleware.
E N D
Sockets and Ports Node 2 Node 1 Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Crossing Hosts/Platforms Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Provisions of Middleware • Higher-level abstractions (RPC, RMI, …) • Location transparency • Independent of communication protocols • Independent of hardware/operating systems • Use of several programming languages
The Middleware layer * The operating system includes common network protocols (TCP/IP, …). Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Request-Reply Communication Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Request-Reply Communication Using HTTP HTTP request message: HTTP reply message: Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Serialization (Marshalling) Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Distributed 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
A CORBA IDL Example Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Local and Remote Method Invocations Source: G. Coulouris et al., Distributed Systems: Concepts and Design
A Remote Object and Its Interface Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Client Proxy (Stub) and Server Skeleton (Stub) Source: G. Coulouris et al., Distributed Systems: Concepts and Design
The 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.
RPC/RMI Semantics Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Java Remote Interfaces Source: G. Coulouris et al., Distributed Systems: Concepts and Design
A Java Server Source: G. Coulouris et al., Distributed Systems: Concepts and Design
A Java Server (cont’d) Source: G. Coulouris et al., Distributed Systems: Concepts and Design
A Java Client Source: G. Coulouris et al., Distributed Systems: Concepts and Design
CORBA • 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.
The CORBA Architecture Source: G. Coulouris et al., Distributed Systems: Concepts and Design
CORBA 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.
CORBA 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 server’s objects.
CORBA IDL Interfaces: Shape and ShapeList Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Java Interface Generated from the CORBA Interface ShapeList Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Java Implementation of Shapelist Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Java Implementation of ShapeList (cont’d) Source: G. Coulouris et al., Distributed Systems: Concepts and Design
Java Implementation of a ShapeList Client Source: G. Coulouris et al., Distributed Systems: Concepts and Design