The java.rmi Package
The java.rmi
package contains the classes that are
seen by clients (objects that invoke remote methods). Both clients
and servers should import java.rmi. While servers
need a lot more infrastructure than what’s present in this
package, java.rmi is all that’s needed by
clients. This package contains one interface, three classes, and a
handful of exceptions.
The Remote Interface
The Remote
interface tags objects as being
remote objects. It doesn’t declare any methods; remote objects
usually implement a subclass of Remote that does
declare some methods. The methods that are declared in the interface
are the methods that can be invoked remotely.
Example 18.9 is a database interface that declares a
single method, SQLQuery( )
, which accepts a
String and returns a String
array. A class that implements this interface would include the code
to send an SQL query to a database and return the result as a
String array.
Example 18-9. A Database Interface
import java.rmi.*;
public interface SQL extends Remote {
public String[] SQLQuery(String query) throws RemoteException;
}An SQLImpl class that implemented the
SQL interface would probably have more methods,
some of which might be public. However, only the SQLQuery( ) method can be invoked by a client. Because the
Remote interface is not a class, a single object
can implement multiple Remote subinterfaces. In
this case, any method declared in any Remote
interface can be invoked by a client.
The Naming Class
The java.rmi.Naming ...