Assignment (Cervantes)
Assignment (Cervantes)
CORBA relies on a protocol called the Internet Inter-ORB Protocol (IIOP) for remoting objects.
Everything in the CORBA architecture depends on an Object Request Broker (ORB). The ORB
acts as a central Object Bus over which each CORBA object interacts transparently with other
CORBA objects located either locally or remotely. Each CORBA server object has an interface
and exposes a set of methods. To request a service, a CORBA client acquires an object reference
to a CORBA server object. The client can now make method calls on the object reference as if the
CORBA server object resided in the client's address space. The ORB is responsible for finding a
CORBA object's implementation, preparing it to receive requests, communicate requests to it and
carry the reply back to the client. A CORBA object interacts with the ORB either through the ORB
interface or through an Object Adapter - either a Basic Object Adapter (BOA) or a Portable Object
Adapter (POA). Since CORBA is just a specification, it can be used on diverse operating system
platforms from mainframes to UNIX boxes to Windows machines to handheld devices as long as
there is an ORB implementation for that platform. Major ORB vendors like Inprise have CORBA
ORB implementations through their VisiBroker product for Windows, UNIX and mainframe
platforms and Iona through their Orbix product.
DCOM which is often called 'COM on the wire', supports remoting objects by running on a
protocol called the Object Remote Procedure Call (ORPC). This ORPC layer is built on top of
DCE's RPC and interacts with COM's run-time services. A DCOM server is a body of code that is
capable of serving up objects of a particular type at runtime. Each DCOM server object can
support multiple interfaceseach representing a different behavior of the object. A DCOM client
calls into the exposed methods of a DCOM server by acquiring a pointer to one of the server
object's interfaces. The client object then starts calling the server object's exposed methods through
the acquired interface pointer as if the server object resided in the client's address space. As
specified by COM, a server object's memory layout conforms to the C++ vtable layout. Since the
COM specification is at the binary level it allows DCOM server components to be written in
diverse programming languages like C++, Java, Object Pascal (Delphi), Visual Basic and even
COBOL. As long as a platform supports COM services, DCOM can be used on that platform.
DCOM is now heavily used on the Windows platform. Companies like Software AG provide
COM service implementations through their EntireX product for UNIX, Linux and mainframe
platforms; Digital for the Open VMS platform and Microsoft for Windows and Solaris platforms.
Java/RMI relies on a protocol called the Java Remote Method Protocol (JRMP). Java relies heavily
on Java Object Serialization, which allows objects to be marshaled (or transmitted) as a stream.
Since Java Object Serialization is specific to Java, both the Java/RMI server object and the client
object have to be written in Java. Each Java/RMI Server object defines an interface which can be
used to access the server object outside of the current Java Virtual Machine(JVM) and on another
machine's JVM. The interface exposes a set of methods which are indicative of the services offered
by the server object. For a client to locate a server object for the first time, RMI depends on a
naming mechanism called an RMIRegistry that runs on the Server machine and holds information
about available Server Objects. A Java/RMI client acquires an object reference to a Java/RMI
server object by doing a lookup for a Server Object reference and invokes methods on the Server
Object as if the Java/RMI server object resided in the client's address space. Java/RMI server
objects are named using URLs and for a client to acquire a server object reference, it should specify
the URL of the server object as you would with the URL to a HTML page. Since Java/RMI relies
on Java, it can be used on diverse operating system platforms from mainframes to UNIX boxes to
Windows machines to handheld devices as long as there is a Java Virtual Machine (JVM)
implementation for that platform. In addition to Javasoft and Microsoft, a lot of other
companies have announced Java Virtual Machine ports.