Chapter 22. Distributed Java: RMI

Introduction

A distributed system is a program or set of programs that runs using more than one computing resource. Distributed computing covers a wide spectrum, from intra-process distributed applications (which Java calls threaded applications, discussed in Chapter 24), through intra-system applications (such as a network client and server on the same machine), to applications where a client program and a server program run on machines far apart (such as a web application).

Distributed computing was around for a long time before Java. Some traditional distributed mechanisms include RPC (remote procedure call) and CORBA. Java adds RMI (Remote Method Invocation), its own CORBA support, and EJB (Enterprise JavaBeans) to the mix. This chapter covers only RMI in detail, but these other technologies are discussed briefly.

At its simplest level, remote procedure call is the ability to run code on another machine and have it behave as much as possible like a local method call. Most versions of Unix use remote procedure calls extensively: Sun’s NFS, YP/NIS, and NIS+ are all built on top of Sun’s RPC. Windows NT implements large parts of the Unix DCE Remote Procedure Call and can interoperate with it. Each of these defines its own slightly ad hoc method of specifying the interface to the remote call. Sun’s RPC uses a program called rpcgen, which reads a protocol specification and writes both the client and server network code. These are both Unix-specific; they have their place, but aren’t as portable as Java.

Java Remote Methods Invocation (RMI) is a type of remote procedure call[52] that is network-independent, lightweight, and totally portable, as it’s written in pure Java. I discuss RMI in this chapter in enough detail to get you started.

CORBA is the Object Management Group’s (OMG) Common Object Request Broker Architecture, a sort of remote procedure call for programs written in C, C++, Java, Ada, Smalltalk, and others to call methods in objects written in any of those languages. It provides a transport service called the Internet Inter-Orb Protocol (IIOP) that allows object implementations from different vendors to interoperate. There is now a version of RMI over IIOP, making it possible to claim that RMI is CORBA-compliant.

Enterprise JavaBeans (EJB) is a distributed object mechanism used primarily for building reusable distributed objects that provide both business logic and database storage. There are several types of EJBs, including session beans , which do something (a shopping cart bean is a good example) and entity beans , which represent something (usually the things stored in a database; in our shopping cart example, the entity beans would be the objects available for purchase).

CORBA and EJB are of interest primarily to enterprise developers; they are covered briefly in O’Reilly’s Java Enterprise in a Nutshell. A more detailed presentation will have to wait until O’Reilly decides to develop an Enterprise Java Cookbook. You can read about EJB in the O’Reilly book Enterprise JavaBeans.



[52] Both RMI and CORBA should really be called “remote method calls,” as they both emphasize remote objects.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.187.233