RPC Konstruktor Aufruf mit Rückgabewert

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Hazzard
User
Beiträge: 26
Registriert: Dienstag 4. Dezember 2007, 21:09

Hallo,

Ich habe eher eine API Design Frage, als eine Frage zur Netzwerkprogrammierung. Ich schreibe gerade ein RPC System.

Code: Alles auswählen

obj = RemoteObject.Class()
result = obj.method()
Bei Class() wird serverseitig ein Objekt der Klasse konstruiert und eine Referenz dem Client übergeben. Der Client ruf dann die Methode method() auf dem Server auf. Da das ganze über Netzwerk stattfinden, können die Aufrufe aufgrund der roundtrip time schonmal eine Zeit dauern.
Daher hab ich mir gedacht, dass ich beim Konstruktoraufruf gleich einen Wert mit zurückgeben kann um statt 2 Server-Client Kommunikationen nur 1 zu haben.
Ich habe dabei an etwas wie

Code: Alles auswählen

obj = RemoteObject.Class()
result = obj.GetConstructorResult()
gedacht, wobei GetConstructorResult() eine lokale Methode ist, die nur den vorher schon übertragenen Wert zurückgibt.

Gibts da vielleicht eine Möglichkeit das schöner zu lösen? Ich hätte ungerne "Spezialfunktionen" auf "obj", also solche die sich anders verhalten wie normale RP Calls.

Viele Grüße, Hazzard
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Hazzard: Du mußt Dich halt fragen, ob sich der Aufwand einer Sonderbehandlung gegenüber dem Einsparen von ein paar Millisekunden lohnt. Dass das dann Spezialfunktionen sind, läßt sich ja nicht vermeiden.
Antworten