-
Ajout de RMI à MVC
Bonjour,
J'ai écrit un programme suivant le pattern MVC. J'ai une classe Fenetre qui possède trois vues différentes. Le modèle est "abonné" a ces vues, elles sont mises à jour quand le modèle change.
Je souhaite maintenant distribuer le programme avec RMI. Le client peut donc appeler certaines méthodes situées chez le serveur.
Pour que les vues du client soient mises a jour, elles doivent elles aussi s' abonner au modèle.
Mon problème est le suivant : Est il envisageable d écrire une fonction chez le serveur qui sera appelée par le client, avec en paramètres les trois vues, afin de les ajouter a la liste des abonnés au modèle?
Si oui, la mise a jour des vues se fera t elle bien "a travers le réseau" sur les vues distantes? Le passage en paramètres des Vues se fait il par référence, si oui cette référence est elle valable à travers e réseau ?
Cette façon de voir les choses vous semble t elle bonne ?
Merci par avance pour vos bons conseils !!!
-
C'est un client lourd je suppose, type swing ?
Dans ce contexte, seul le Modèle a un intérêt à être "remote" la vue et le contrôleur étant locaux.
Si le modèle est remote, quel intérêt de la passer en paramètre puisqu'il sera déjà sur le serveur...
Sinon, pour ce qui est de passer des paramètres au serveur, il faut qu'ils soient "serializable", c'est tout...
Le passage des paramètres ne se fait pas par référence mais par valeur.
Le seul cas où ils sont passés par référence, c'est dans le cas d'un EJB Local, mais il ne pourra jamais être vu à l'extérieur du conteneur dans ce cas.
C'est juste intéressant d'un point de vue performance lorsqu'on utilise le concept de facade. Du client à la "facade", on est en Remote, de la facade aux autres ejb on peut être en Local (s'ils sont sur le même serveur bien sûr).
Sur le principe maintenant, le principe semble-t-il bon ?
Plutôt oui, mais tout dépend de l'application et de ses contraintes de performance et de confidentialité.
A+