RMI: Wo wird die Methode ausgeführt?

Status
Nicht offen für weitere Antworten.

Angel4585

Bekanntes Mitglied
Hallo,

ich bin ja noch recht neu in Sachen RMI und stehe öfters vor der Frage:
Wo wird diese Methode nun ausgeführt? Auf dem Server oder auf dem Client?

Momentan beschäftigt mich folgender Fall:

Ich erzeuge auf dem Server ein Objekt mit der Methode "public String getName()".
In dieser Methode lese ich aus einer embedded DB auf dem Server einen Wert aus.
Jetzt übergebe ich dieses Objekt über eine Methode dem Client.
Der Client soll nun die Methode "getName()" aufrufen.
Wo wird die jetzt ausgeführt? Auf dem Server?
Also wird versucht den Wert aus der DB auf dem Server auszulesen, oder wird versucht diese DB auf dem Client anzusprechen, obwohl es die hier ja nicht gibt?

Gibt es etwas womit ich mir generell merken kann wo eine Methode ausgeführt wird?
 
S

SlaterB

Gast
das hängt davon ab, wer die Operation aufruft,

ein Objekt kann nicht fliegen, es existiert in genau einer VM, entweder beim Server oder beim Client,
wenn der Server damit arbeitet, dann ist der Aufruf beim Server,

wenn das Objekt an den Client übertragen wird, dann passiert alles weitere damit beim Client
 
S

SlaterB

Gast
Interface sind nur dafür da, dass du nicht die genaue Implementierung kennen musst,
das hat auf das Objekt/ die Übertragung und die Ausführung von Operationen keinen Einfluss
 

Angel4585

Bekanntes Mitglied
OK, und wie setze ich es dann um das wenn die Methode "getName" aufgerufen wird, in jedem Fall der Datenbankaufruf auf dem Server stattfindet und das Ergebnis zurückgibt?
Dann müsste ich ja quasi in das Interface vom Server eine Methode "getName(MeinObjekt)" einfügen oder?
 
S

SlaterB

Gast
das einfachst ist, im Client nicht das Objekt zu befragen, sondern direkt den Server, ja,
oder beim Objekt-Laden dafür sorgen, dass der Name vorgeladen und im Objekt gespeichtert ist

der Client sollte generell keinen Code potentiell zur ausführung haben, der DB-Operationen enthält,
wenn ein Objekt DB-Operationen in seiner Klasse hat, dann solche Objekte am besten nicht aus dem Server rauslassen
 

Angel4585

Bekanntes Mitglied
hmm..
kann ich auch das Interface des Objektes auf dem Server an den Client übergeben und daraus ein anderes Objekt erzeugen?

So das das Objekt auf dem Server in der Methode direkt aus der DB liest und das Objekt auf dem Client eben die Funktion des Servers aufruft.. geht das?
 

Yzebär

Bekanntes Mitglied
Du implementierst einfach zwei Arten von Objekten (die dasselbe Interface implementieren), eine Objektart, die du an den Client überträgst (zum nachladen aus der DB werden Servermethoden aufgerufen) und die andere Objektart, die du lokal auf dem Server benutzt (kann direkt aus er DB nachladen). Um die eine oder andere Objektart zur Laufzeit zu erzeugen, empfehle ich das Factorypattern bzw. Abstrakte Fabrik.
 
S

SlaterB

Gast
mit Pattern ist es da nicht getan, man braucht automatische Wrapper,
die für beliebige Operationen die gesamte RMI-Übertragung im Hintergrund abwickeln

sowas baut man kaum mal eben selber
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F getSource Methode wird als Bot erkannt Netzwerkprogrammierung 8
T finlalize Methode vom Server wird nicht aufgerufen Netzwerkprogrammierung 4
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
OnDemand JMS Messages wird gecached Netzwerkprogrammierung 2
P RMI stub wird nicht gefunden Netzwerkprogrammierung 8
I Socket ObjectOutputStream-Socket: Objekt wird falsch übertragen Netzwerkprogrammierung 2
M com.google.gson wird nicht erkannt Netzwerkprogrammierung 2
F Website parsen, die mit javascript zusammengebaut wird Netzwerkprogrammierung 1
P Socket Server übertragung wird immer langsamer Netzwerkprogrammierung 4
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
L Server anpingen (Pingzeit) ?? Pingzeit wird nicht verändert Netzwerkprogrammierung 6
M JSP wird im gesamten Projekt nicht neugeladen Netzwerkprogrammierung 3
K Socket InputStream wird nicht erzeugt Netzwerkprogrammierung 4
R Socket SSL-Connect in Servlet - keystore wird nicht gefunden Netzwerkprogrammierung 2
S anderer Rechner wird nicht gefunden Netzwerkprogrammierung 20
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
X Änderung des Objekts wird nicht serialisiert Netzwerkprogrammierung 9
M Socket TCP keep alive Exception wird nicht ausgelöst Netzwerkprogrammierung 11
Dit_ RMI setSoTimeout wird ignoriert? Netzwerkprogrammierung 3
lumo String[] wird zu null bei Serialisierung Netzwerkprogrammierung 8
J method = PUT, aber ausgeführt wird doGet...? Netzwerkprogrammierung 4
K Was wird genau per Telnet verschickt ? Netzwerkprogrammierung 5
M Dateidownload per FTP wird immer langsamer und bleibt dann stehen Netzwerkprogrammierung 3
J BufferedReader.ready() wird nicht true Netzwerkprogrammierung 10
A Socket BufferedReader.readLine() blockiert bis ein im Socket OutputStream was gesendet wird ... Netzwerkprogrammierung 9
C RMI Klasse wird unter falschem Pfad gesucht Netzwerkprogrammierung 4
B Server-Programm wird durch "read" beendet Netzwerkprogrammierung 8
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
K HTTP-Anfrage an einen Server wird nicht beantwortet Netzwerkprogrammierung 3
M URL Handler wird nicht gefunden Netzwerkprogrammierung 6
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
C Download-Fortschritt wird falsch angezeigt. Netzwerkprogrammierung 2
A Quellcode von Homepage wird nicht komplett eingelesen Netzwerkprogrammierung 5
V RMI: code wird einfach übergangen ? Netzwerkprogrammierung 3
A FileChannel+SocketChannel:Datei wird nur teilweise übertrage Netzwerkprogrammierung 4
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
L RMI-Funktion wird lokal ausgeführt Netzwerkprogrammierung 12
P JNDI LDAP-SSL Verbindung, Zertifikat wird nicht angezeigt ? Netzwerkprogrammierung 2
A JavaMail Problem - Nachricht wird nicht versendet ? Netzwerkprogrammierung 9
B Socket wird nicht richtig geschlossen Netzwerkprogrammierung 2
K mapSystemException wird geworfen Netzwerkprogrammierung 2
L Attachment wird nicht angezeigt in der Email Netzwerkprogrammierung 3
P RMI - meine Stub-Class wird nicht gefunden Netzwerkprogrammierung 9
G Socket wird nach Portscann geschlossen Netzwerkprogrammierung 2
R Socket wird nicht ausgeführt Netzwerkprogrammierung 6
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
D WebSocket send Methode verschickt nichts! Netzwerkprogrammierung 3
J Rückgabewert bei Run()-Methode Netzwerkprogrammierung 9
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
Dit_ RMI RMI-Server und gleichzeitiger Aufruf einer Methode Netzwerkprogrammierung 14
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
L JavaScript Methode mit Java aufrufen Netzwerkprogrammierung 40
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
S Blockierende RMI Methode Netzwerkprogrammierung 3
S Daten per GET-Methode Netzwerkprogrammierung 2
A Methode zum ermitteln des DHCP-Servers & DNS-Servers? Netzwerkprogrammierung 8
C RMI: Problem beim Aufruf einer Methode. Falsch gecastet? Netzwerkprogrammierung 8
N Server accept-Methode zeitlich begrenzen Netzwerkprogrammierung 2
D beste Methode für Datenübertragung ? Netzwerkprogrammierung 1
J Prüfen ob Befehl ausgeführt wurde moeglich? Netzwerkprogrammierung 15

Ähnliche Java Themen


Oben