Je suis étudiant en fin de cursus d'école d'ingénieur. J'ai fait beaucoup d'info, mais plus au niveau génie logiciel, ergonomie, etc. Maintenant je fais mon stage de fin d'étude et j'ai besoin de conseil...
Je vous explique tout:
-je fais une application de rendez-vous bancaire distant, en JAVA sous Eclipse.
-j'ai établi un cahier des charges de fonctionnalités, puis élaboré les classes à créer, leurs méthodes, les package, etc.
-j'ai implémenté les classes et... là gros problème...
En effet, mes Objets "client" et "conseiller" qui hérite de "personne" sont sensé se faire des appels entre eux. (Exemple --> le conseiller modifie une fenêtre du client, en faisant qqch du style client.etatInterface.setOnglet(Interface.PRINCIPAL); )
Malheureusement, il semble que les instances seront "hebergées" sur chacune des machines et pas le serveur. Ainsi, le conseiller, ne pourra pas agir sur l'instance "client".
Avez vous une idée pour résoudre cela?
J'ai pensé à plusieurs solutions:
1. faire tourner les instances sur le serveur <--pb de passage à l'échelle
2. faire "synchroniser" les instances à chaque changement (mais comment faire) entre celle présente chez le conseiller et le client
3. changer toutes les fonctions et mettre en place un système de flux texte, qui permette de suivre ce que fait l'autre. Mais là je dois tout reprendre à zéro...
Est-ce possible, sachant que les deux processus sont à distance sur le réseau ?
Je connais pas du tout Java en termes de multithreading et réseau, mais il me semble que tu vas devoir creuser de ce côté pour ton problème... Ou alors passer par un serveur (ce que tu suggères toi-même)
oui, mais alors ce ne sera pas une applet, mais quoi? J'ai si peu d'expérience JAVA (le but du stage c'est l'étude de l'ergonomie, pas la programmation) que je ne sais pas trop ce que signifirai en pratique "faire tourner les instances sur le serveur". Une servlet? Meric de m'aider encore un peu
J'ai bossé sur un projet de plateforme Java il y a quelques années, il était organisé de la manière suivante :
- Un serveur avec des servlets (gérant l'équivalent de tes classes Client et Conseiller)
- côté client, des JSP (enfin, de l'HTML transformé par un service de formattage de JSP).
Donc on se retrouve avec un serveur qui gère tout, à savoir des sessions et des données. Pour ce qui est des logiciels et des outils, je n'ai aucune idée de ce qu'il faut installer (j'étais stagiaire DUT et c'était un gros projet d'entreprise). Il me semble qu'il faut un service pour les servlet, et un service pour la transfo des JSP, plus un service HTTP.
Y-a-t-il un spécialiste en mesure de donner plus d'infos dans la place ?
Message édité par Dumoria le 01-08-2005 à 11:14:49
merci de me rassurer, je me voyais mal mettre des stream partout et des copie d'objets en continu.
En gros, les JSP peuvent exister avec des classes implémentées sur un serveur? Si qqun sais, il peut m'envoyer un mail : olivier.schneider(at)enst-bretagne.fr
Je promet de partager en détail sur ce formum la solution trouvée :-)
Si ton application n'est pas orientée web, il est aseez inadapté de passer par des JSP ou des servlets. Une solution de Sun pour le "partage d'objets" en Java s'appelle RMI : "appel de méthode à distance"
un peu d'aide en français : http://membres.lycos.fr/tonysoueid [...] hap07.html
KangOl : des forward declaration en Java ?
Message édité par Anubis_ le 02-08-2005 à 11:21:55
Euh... En attendant, est ce que quelqu'un a une idée de solution pour moi? En fait, je voudrais simplement que les instances restent sur le serveur et puissent être invoquées indifféremment par chacune des 2 machines vurtuelles java (client/conseiller)
Comment tu fais un pointeur en java ? en plus Java ça rame et c'est pas franchement portable. De plus, il n'y a pas de #define en Java, ce qui cause bcp de contre-performances.
Non vraiment, faut rester un peu objectif parfois...
ben écoute, on a été 2 à te dire Java RMI qui est de l'appel de méthode à distance. Je sais pas ce qu'il te faut de plus.
Si *jamais* les demandes entre les deux applis doivent traverser bcp de choses (firewall, internet, ...) du web service (XML-RPC ou SOAP) est conseillé car ils se basent sur du HTTP et le HTTP ça passe partout.
Comment tu fais un pointeur en java ? en plus Java ça rame et c'est pas franchement portable. De plus, il n'y a pas de #define en Java, ce qui cause bcp de contre-performances.
Non vraiment, faut rester un peu objectif parfois...