IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Aide pour créer une messagerie répartie


Sujet :

avec Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut Aide pour créer une messagerie répartie
    Bonjour à tous,

    Je dois créer une messagerie répartie basé sur 3 applications Java distincte, n'étant pas un grand spécialiste de Java, j'aurai voulu avoir vos idées ou orientation pour mettre ce projet sur pied.

    Les 3 applications distinctes sont les suivantes (aucune interface graphique n'est demandée) :

    1) Un client qui est l'utilisateur qui possède un login spécifié en paramètre de l'application (je suppose donc qu'il faut que je passe par l'interface DOS) et un identifiant qui est attribué une fois que l'utilisateur est connecté. Celui-ci peut ensuite envoyer des messages aux autres utilisateurs connectés en spécifiant leur identifiant et pour finir, l'utilisateur peut récupérer l'identifiant associé à un login ou de récupérer la liste des logins et identifiants du système (d’autres fonctionnalités peuvent bien sûr être proposées).

    2) Un routeur a pour but de mettre en relation les clients ou d’autres routeurs, et de faire transiter au besoin les messages dans le système. Le client se connecte au système via un routeur. La structure du système est donc un arbre où la racine est le premier routeur connecté. Pour identifier tous les éléments du système, nous utilisons le schéma de nommage de Zigbee, ainsi que ses paramètres. Ainsi, le système sera caractérisé par un nombre maximum de routeurs connectés à chaque routeur (nombre noté R), par un nombre maximum de client connectés à un routeur (nombre noté D), ainsi que par la profondeur de l’arbre (nombre noté P). Les identifiants des utilisateurs correspondront à l’identité attribuée à son client. Les identifiants pourront donc être utilisés pour le routage des messages dans le système.

    3) Le coordinateur est l’élément central du système. C’est lui qui possède et diffuse les paramètres R, D et P. Ces valeurs sont spécifiées en paramètres au moment de l’exécution du coordinateur. Lorsqu’un routeur ou un client désire se connecter au système, il interroge le coordinateur qui lui donne les paramètres, ainsi que l’adresse (IP + port) du routeur racine de l’arbre (du premier routeur connecté). En contactant la racine, le routeur peut alors soit s’y connecter, soit récupérer les adresses des routeurs connectés. Il devra alors contacter ces routeurs jusqu’à trouver un routeur qui l’accepte comme fils. Si le routeur est le premier dans le système, l’adresse 0 lui sera attribuée. Sinon, il recevra son identité du routeur auquel il est connecté (si c’est un client), ou l’intervalle d’identités dont il a la charge (si c’est un routeur).

    Petite précision :
    Les communications avec le coordinateur se feront en Java RMI.

    Alors je vais apporter une petite précision, je ne demande à personne de me créer le code Java ou autres, ce que je recherche, c'est comment me mettre sur les rails réaliser ce projet, au niveau de l'utilisateur je pense m'en sortir mais au niveau des 2 autres applications je ne vois pas comment procéder. J'ai essayé d'être le plus précis possible dans l'énoncé de mon projet et je vous remercie grandement à tous pour l'aide que vous m'apporterez.

    Passez une bonne journée.

    Cordialement.

    Jb_One

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Et tu coince sur quoi là dedans? Les algorithmes? Comment faire du réseau? Comment faire une application? Autre?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Bonjour tchize_ et merci pour ta réponse, alors là ou je coince c'est sur la partie routeur et coordinateur, je ne vois pas du tout comment démarrer. Lorsque je parle de 3 applications, il faut donc que je créé 3 projets (Client, Routeur et Coordinateur) ? Si oui, comment dois-je procéder pour la communication entrent-elles ? Faut-il qu'elles soient ut

    Pour le routeur :
    Faut-il que j'interagisse avec le routeur ? Lui envoyer des requêtes, générer sa table de routage ou autres (je ne vois pas du tout ce que je dois faire avec le ou les routeurs) ?

    Pour le coordinateur :
    Je suppose que c'est un ordinateur (par exemple : le même que l'utilisateur), j'ai noté que le routeur ou un client désire se connecter ils interrogent le coordinateur qui leur donne les paramètres (IP + Port) du routeur racine (1er routeur connecté). Je pense donc générer un fichier tmp qui contiendra les données relative aux différents routeurs et clients connectés et ensuite le coordinateur envoie une autorisation de connexion ... C'est ma vision m'est sans aucunes convictions ... J'ai vraiment du mal à trouver comment réaliser ce projet.


    J'ai fait un schéma pour représenter le concept de mon projet (voir ci-dessous)
    Nom : Capture.JPG
Affichages : 177
Taille : 17,7 Ko

    J'en demande peut-être beaucoup mais honnêtement je n'ai aucune idée sur comment démarrer donc désolé de poser toutes ses questions, je sais pas si j'ai pu répondre à tes questions donc les prochaines j'essaierai d'être plus précis.

    Je te remercie de ton aide.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Jb_One73 Voir le message
    Lorsque je parle de 3 applications, il faut donc que je créé 3 projets (Client, Routeur et Coordinateur) ?
    Ce n'est pas obligatoire. Tu peux avoir un seul projet qui regroupe tout. 3 application = 3 mains différents. C'est facile pour commencer, mais ça peux devenir encombrant quand le projet grandis. Une autre option, c'est un projet par application + des projets regroupant le code commun. Par exemple, l'api de communication routeur <=> client est probablement commune aux deux (même manière de décoder les trames, mêmes constantes)

    Citation Envoyé par Jb_One73 Voir le message
    Faut-il qu'elles soient ut
    je ne vois pas de quoi tu parle avec "ut"
    Citation Envoyé par Jb_One73 Voir le message
    Pour le routeur :
    Faut-il que j'interagisse avec le routeur ?
    D'après ton énoncé, c'est lui qui fait transiter tous les messages et c'est à lui que le client envoie ses messages. Donc a priori il doit discuter avec d'autres routeurs et avec les clients.


    Citation Envoyé par Jb_One73 Voir le message
    Pour le coordinateur :
    Je suppose que c'est un ordinateur (par exemple : le même que l'utilisateur)
    Tout est programmes dans ta description, on s'en fou que ça tourne tout sur le même pc ou sur 50 pc distribués à travers le monde entier. Le code sera le même.

    Citation Envoyé par Jb_One73 Voir le message
    Je pense donc générer un fichier tmp qui contiendra les données relative aux différents routeurs et clients connectés et ensuite le coordinateur envoie une autorisation de connexion
    C'est du détail ça, tu regardera à ça quand tu atteindra cette étape du code.
    Citation Envoyé par Jb_One73 Voir le message
    J'en demande peut-être beaucoup mais honnêtement je n'ai aucune idée sur comment démarrer donc désolé de poser toutes ses questions
    Commence par la base: Deux client qui se causent à travers une application routeur. Ensuite tu agrandis, tu met deux routeurs qui transfèrent entre eux les informations avec un client sur chaque routeur. Puis tu avance vers un arbre, puis tu commence à créer le code du coordinateur pour l'authentification. Une étape à la fois, on ne peux pas créer tout à partir de rien d'un coup. Un programme ça se construit une brique à la fois.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Ok ! Merci tchize_,

    Concernant ta question :
    je ne vois pas de quoi tu parle avec "ut"
    Je ne me rappelle plus ce que je voulais mettre, j'ai commencé ma phrase et je viens de me rendre compte que je ne l'ai pas fini :-(

    Bien pris note de tes conseils, je vais donc commencer par la discussion entre 2 clients et donc je suppose qu'il faut que j'utilise l'API Socket.

    Je mis colle de suite et je fais un retour rapidement.

    Merci de ton aide

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Bonjour tchize_,

    Un petit retour rapide sur l'évolution de mon projet, je viens de finir la partie Client/Serveur et j'ai déjà une question :
    Est-ce que le serveur, je peux le considérer comme étant mon coordinateur ?

    J'ai fait des essais sur 2 postes distants est je suis bien arrivé à envoyé un message vers ces 2 postes en saisissant l'adresse IP d'une des deux machines qui faisait office de serveur, je peux donc dire que ma 1ere pierre est bien posée.

    Maintenant, il me reste la partie coordinateur et routeur et là ! Je ne sais pas comment faire. Aurais-tu un indice ou une piste qui me permettrait d'avancer ?

    Une dernière question :
    A quoi va me servir RMI sachant que la fonction Socket fonctionne ?

    Je t'en remercie d'avance.

    Cordialement

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Jb_One73 Voir le message
    Maintenant, il me reste la partie coordinateur et routeur et là !
    Ben la relation routeur <=> coordianteur, c'est une relation client - serveur, avec le coordinateur le serveur. La relation routeur <=> routeur c'est aussi une relation client serveur, avec le routeur parent le serveur. La relation utilisateur <=> coordinateur c'est une relation client serveur avec le coordinateur le serveur, la relation utilisateur <=> routeur est aussi un relation client serveur avec le routeur le serveur.

    Pour ce que j'en comprend de ta demande de départ, l'idée est que:
    les routeur s'enregistrent auprès du coordinateur, le coordinateur établit leur position dans la hiérarchie et leur dit à qui ils se connectent (parent dans l'arbre)
    Les utilisateurs se connectent sur le coordinateur pour leur demander l'adresse d'un routeur
    Les utilisateurs se connectent ensuite sur le routeur qui leur a été mentionné

    Citation Envoyé par Jb_One73 Voir le message
    Une dernière question :
    A quoi va me servir RMI sachant que la fonction Socket fonctionne ?
    à rien. RMI c'est pour partager des objets via la couche réseau. C'est chiant et totalement inutile dans le cas présent.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Bonjour et merci Merci tchize_ pour ce complément d'information, de mon côté j'ai réussi à obtenir un peu plus de détails sur mon projet. Pour RMI, je n'ai pas le choix cela m'est imposé et si j'ai bien compris ce que tu m'as noté sur cet outil, il sert à faire des appels d'objets distants (ex : une classe voiture localisé sur une machine située en Angleterre, peut-être appelé dans un programme d'une machine qui est située en France sans avoir besoin de créer ou importer celle-ci ... une sorte de bibliothèque distante ... C'est bien ça ?), si ma compréhension est bonne, je pense qu'il faut que je centralise toutes les classes dont j'aurai besoin (client/serveur) au niveau du coordinateur ?

    Ensuite, comme je l'ai dit un peu plus haut, j'ai réussi à obtenir un peu plus de détails sur les routeurs; contrairement à ce que je pensais "routeur" n'est pas un matériel mais une application son but est de mettre en relation d'autres routeurs ou des clients. J'ai aussi noté que pour les tests, une fois que le coordinateur et le routeur sont écrits, il est possible d'exécuter plusieurs fois le routeur. Cela permet de tester le bon fonctionnement de l'application. Il est possible d'utiliser un script, mais des exécutions manuelles dans plusieurs terminaux suffisent.

    On va dire que maintenant, j'ai l'ensemble des morceaux du puzzle mais je n'ai pas dans quel sens les positionner et là ! J'aurai besoin de ton aide.

    Je pense qu'il faut que je créé un algo fonctionnant sous le protocole ZigBee et dont les paramètres sont communiqués au démarrage du coordinateur (donc le coordinateur est l'appli à démarrer en 1er), ensuite je ne vois comment je différencie un client d'un routeur ... c'est en fonction de l'application que j'exécute ?

    Je joins ci dessous une capture d'écran de ce à quoi ressemble le protocole ZigBee ou plutôt comment je dois confectionner ma messagerie réparti :
    Nom : Capture.JPG
Affichages : 145
Taille : 35,3 Ko

    Je t'en remercie d'avance.

    Cordialement.

Discussions similaires

  1. Aide pour créer une boucle
    Par laroche1 dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/12/2007, 15h51
  2. Réponses: 1
    Dernier message: 01/11/2006, 17h36
  3. aide pour créer une base
    Par irnbru dans le forum Débuter
    Réponses: 3
    Dernier message: 19/09/2006, 18h03
  4. aide pour créer une faq sur inno setup
    Par fsx999 dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2006, 20h16
  5. [FLASH MX2004] Aide pour créer une animation
    Par SnakeTales dans le forum Flash
    Réponses: 5
    Dernier message: 04/08/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo