Ich beschäftige mich gerade mit JNDI und RMI. Aber irgendwie ist mir JNDI noch nicht ganz klar.
Soweit ich das verstanden habe, kann ich über JNDI ein Objekt oder eine Referenz auf ein Objekt (wobei die Referenz auch ein Objekt ist ) in einem Namensdienst (bspw. DNS, LDAP oder das Dateisystem) hinterlegen und von dort auch wieder abrufen. Wenn ich das Objekt abrufe und dessen Werte ändere, werden diese nicht Änderungen nicht in das Objekt, das im Namensdienst hinterlegt ist, aufgenommen. Alle Operationen auf das Objekt werden im Programm und nicht im Namensdienst aufgerufen. Will ich die neuen Werte des Objekts im Namensdienst speichern, muss ich das geänderte Objekte im Namensdienst rebinden.
Über RMI kann ich das registrierte Objekt ändern. Dabei werden sämtliche Methoden direkt auf dem Rechner ausgeführt, der das Objekt bereitstellt.
Ein Kommunikation ist also nur über RMI möglich, über JNDI nicht (außer man rebinden das Objekt ständig, wobei hier das Transaktionsmanagement bzw. die Synchronisation komplett fehlt).
Habe ich das so richtig verstanden?
Soweit ich das verstanden habe, kann ich über JNDI ein Objekt oder eine Referenz auf ein Objekt (wobei die Referenz auch ein Objekt ist ) in einem Namensdienst (bspw. DNS, LDAP oder das Dateisystem) hinterlegen und von dort auch wieder abrufen. Wenn ich das Objekt abrufe und dessen Werte ändere, werden diese nicht Änderungen nicht in das Objekt, das im Namensdienst hinterlegt ist, aufgenommen. Alle Operationen auf das Objekt werden im Programm und nicht im Namensdienst aufgerufen. Will ich die neuen Werte des Objekts im Namensdienst speichern, muss ich das geänderte Objekte im Namensdienst rebinden.
Über RMI kann ich das registrierte Objekt ändern. Dabei werden sämtliche Methoden direkt auf dem Rechner ausgeführt, der das Objekt bereitstellt.
Ein Kommunikation ist also nur über RMI möglich, über JNDI nicht (außer man rebinden das Objekt ständig, wobei hier das Transaktionsmanagement bzw. die Synchronisation komplett fehlt).
Habe ich das so richtig verstanden?