18.5 Implementierung der Remote-Schnittstelle
 
Die Methoden des Servers werden letztendlich vom Client über die Stellvertreter genutzt. Der Server wird dazu ein Objekt der Implementierung erzeugen und es anmelden, sodass es entfernt gefunden werden kann. Die Implementierung der Geschäftslogik ist einfach:
Listing 18.2
com/javatutor/insel/rmi/AdderImpl.java
package com.javatutor.insel.rmi;
public class AdderImpl implements Adder
{
public int add( int x, int y )
{
return x + y;
}
}
Da die Klasse eine Implementierung der Schnittstelle ist, geben wir ihr die Endung Impl. (Das ist eine bekannte Namensgebung, aber keine Pflicht.)
Es steht frei, andere Methoden anzugeben, die nicht in der Schnittstelle vorgegeben sind, doch sind diese natürlich nicht nach außen hin sichtbar. Die Argumente und Rückgabewerte können von jedem beliebigen Datentyp sein. Bei primitiven Datentypen werden spezielle read()- und write()-Folgen generiert. Objekte müssen die Schnittstelle Serializable implementieren (oder Remote sein). Dann werden die lokalen Objekte als Kopie übertragen. Über die Serialisierung werden alle nicht statischen und nicht transienten Attribute übermittelt. Ist das Argument wiederum instanceof Remote, wird dieser Verweis als einfache Referenz übergeben. In Wirklichkeit ist die Referenz ein Verweis auf den Stellvertreter.
|