Re: RMI und Remote Objects
- From: Andreas Schüle <schuele@xxxxxxx>
- Date: Wed, 14 May 2008 19:28:24 +0200
Hi,
in meinem kleinen Beispiel-Projekt sieht die Implementierung von IDataObject so aus:
public class DataObjectImpl extends RemoteObject implements IDataObject .... usw ...
RemoteObject führt bereits Remote und Serializable mit sich.
Wenn ich beim IServer DataTransferObjects verwende, dann kann ich diese als Rückgabewert erhalten oder als Parameter übergeben. (Mit DTO läuft alles bestens.)
Im Grunde genommen möchte ich auf der Server-Seite meine Business Logik haben und diese vom Client aus ansprechen, dabei möchte ich allerdings nicht die Business Objekte zwischen Client und Server serialisiert haben. (Es sollen nur DTOs serialisiert werden.)
Dafür habe ich ein Interface am Server an dem sich jeder Client mit Benutzername und Passwort anmeldet. Wird die Anmeldung erfolgreich ausgeführt möchte ich jedem Client ein BusinessContext Interface zur Verfügung stellen über das weitere Business Objekte angefragt werden können.
Also, nach außen "exportiere" ich mein "AnmeldeInterface"
z.B.: über ...
UnicastRemoteObject.exportObject(serverImpl, 0, csf, ssf); registry.rebind("Server", serverImpl);
Alle weiteren Objekte sollten am besten automatisch nach außen exportiert werden. Bspw. wenn der Client ein BusinessContext zugewiesen bekommt, dann sollte das dahinterstehende Objekt nach außen zur Verfügung gestelltet werden. (zB. mit eine Art "RemoteReference")
(Um das alles vielleicht etwas anders auszurdücken möchte als Rückgabewert oder Parameter eine Art "RemoteReference" übergeben.)
Vielen Dank schon mal und Grüße,
Andreas Schüle
Andreas Eberhöfer schrieb:
Nochmal Hallo,.
Andreas Schüle schrieb:
Kann mir jemand vielleicht helfen oder mich auf ein Tutorial oder sonstige Quellen verweisen in dennen ein "Remote Object" zurück gegeben wird. Ich möchte, dass das Objekt nicht vom Server zum Client serialisiert wird, sonder das der Client über ein Interface mit dem Objekt auf der Server seite kommuniziert.
Im Eifer des Gefechtes hab ich vergessen dir noch zu sagen, dass so wie du es machen willst so nicht geht. Die normale herrangehensweise ist dabei das DTO Pattern zu benutzen. Das heißt, dass dein IDataObject die Struktur hält, die du übertragen willst (oder in deinem Fall nicht übertragen willst) und dein IServerObjekt die Verwaltung der Daten auf der Serverseite übernimmt. Definiere in deinem DataObject noch einen eindeutigen Schlüssel und füge deinem IServer noch ne Methode change(IDataObject) hinzu. Mit der kannst du dann das Objekt auf der Serverseite ändern, zum Beispiel hälst du dir die DataObjects auf der Serverseite in einer Map wobei der Eindeutige Schlüssel der Schlüssel der Map ist, das ist der einfachste Weg. Alternativ kannst du es ja auf Serverseite auch in einer Datenbank speichern.
- Follow-Ups:
- Re: RMI und Remote Objects - Problem gelöst.
- From: Andreas Schüle
- Re: RMI und Remote Objects - Problem gelöst.
- References:
- RMI und Remote Objects
- From: Andreas Schüle
- Re: RMI und Remote Objects
- From: Andreas Eberhöfer
- RMI und Remote Objects
- Prev by Date: Re: Pfade werden nie gefunden
- Next by Date: Re: Pfade werden nie gefunden
- Previous by thread: Re: RMI und Remote Objects
- Next by thread: Re: RMI und Remote Objects - Problem gelöst.
- Index(es):
Relevant Pages
|