- zu übertragende Objekte werden mit Serialisierung übertragen, müssen logischerweise Serializable sein,
- zu double in Interfacen und Methoden deswegen weiß ich nix
allgemein sehe ich an Code und Beschreibung nicht, welche konkreten RMI-Konzepte bestehen und welche Klassen übertragen werden,
als gutes Beispiel mag das SUN/ Oracle-Tutorial dienen:
https://docs.oracle.com/javase/tutorial/rmi/server.html
es braucht ein RMI-Interface, Compute, das muss beiden Seiten bekannt sein, Common-Package,
der Server muss es natürlich implementieren, ComputeEngine, dem Client ist die Implementierung schnuppe
übertragen wird die (serialisierbare) Datenklasse Task, diese ist allgemein in der Mitte stehend, Common-Package,
kann man weder Server noch Client allzusehr zuordnen
der Client erzeugt Task, setzt verschiedene Daten, das Task-Objekt wird an den Server übertragen,
-> nun ist der Task beim Server vorliegend, vom Client vollkommen unabhängig,
wenn beim Server im Task nun eine Ausgabe erfolgt dann selbstverständlich beim Server Ausgabe,
Attribute können geändert werden usw.,
sollte der Task an den Client zurückgehen, dann empfängt der Client ein zweites Taskobjekt mit neuen Attributen,
Client muss sicher aufpassen dass es mit dem zuvor von ihm gesendeten Task zu verknüpfen ist usw.,
im Beispiel wird nur das Ergebnis BigDecimal zurückgesendet
einen anderen Einfluss außer Übertragung von Objekten (und Exceptions) hat weder Server auf Client noch andersrum,
es gibt keine magische System.out.println()-Ausgabe woanders,
natürlich kann man im Task oder sonstigen Rückgabewert Anweisungen hinterlegen:
‘wenn du beim Client bist und der dich um Aktion bittet, dann gib folgendes aus’ usw.,
alles reine Daten nach Modellierung
‘ClientImplementierung’ existiert in meiner Sichtweise nicht unbedingt, nach
http://openbook.galileocomputing.de/javainsel9/javainsel_22_005.htm
kann man das so ansehen dass es statt fertiger Task-Klasse hier nur ein Task-Interface beiden bekannt ist
und die tatsächliche Implementierung in der Tat vom Client an den Server nachgeladen wird,
entscheidende Änderungen ergeben sich dadurch aber nicht,
der Server weiß nicht was die aufgerufenen Methoden tun, ob und welche Attribute sie ändern,
ob sie System.out.println() ausgeben, oder die Festplatte löschen, oder geheime Log-Daten in das dann evtl. zurückgesendete Objekt schreiben,
aber strukturell alles wie zuvor