Bonjour à tous !
J'aurai besoin de vos idées dans la conception de mon programme, j'ai une application "coordinateur" qui est le cœur du système, son rôle est de distribuer à d'autres applications des paramètres (nombre max de routeurs (nommé "R") pouvant être connectés à un même routeur, nombre max de clients (nommé "D") pouvant être connectés à un même routeur, la profondeur de l'arbre (nommé "P") et pour finir l'adresse du routeur racine ce qui au final donnera un schéma de nommage ZigBee.
Les 2 autres applications "Routeur" et "Client" vont donc avant de se connecter interroger le "Coordinateur" afin de récupérer ces paramètres (pour ce faire j'utilise RMI). Une fois cette étape réalisée les applications pour se connecter vont procéder différemment :
Le routeur :
Il va interroger le routeur racine dont l'adresse a été précédemment par le "Coordinateur" alors ce qu'il faut savoir c'est qu'un routeur ne peut se connecter qu'à un routeur père, si celui-ci a atteint son nombre max de routeurs qui peuvent lui être connecté, le routeur racine va lui communiquer la liste des routeurs et en fonction de cette liste le routeur va rechercher un père de disponible pour si connecter.
Le résultat que je dois obtenir doit être de la forme suivante :
Ce que je pense faire, c'est donc de créer une collection ArrayList (pour des raisons de doublons) qui contiendra la liste ordonnée des adresses des routeurs (schématiquement cela donnerai ceci : colonne 1- l'adresse du père, colonne 2 l'adresse du fils), quand un routeur veut se connecter, il interroge d'abord le routeur racine, si celui-ci n'a pas atteint son quota de connexion, il si connecte, en revanche dans le cas contraire, il récupère la collection contenant la liste des adresses des routeurs pour rechercher un père disponible.
Qu'en pensez-vous ? Je ne vais pas d'écrire le client qui lui est à peut prêt similaire au routeur, je le ferai en deuxième étape, c'est à dire qu'en j'aurai déjà conçu ma classe routeur.
Une petite précision :
Lorsqu'un routeur s'exécute, il doit rester en mode console, donc à chaque fois que je vais exécuter un routeur je devrais avoir une nouvelle console (1 par routeur).
Je vous remercie d'avance à tous pour vos idées ou autres, je précise, c'est pas le code que je veux mais juste vos idées pour concevoir mon programme.
Cordialement.
Partager