La touche finale l'ajout du RMI

Au cour du projet, nous avons découvert la méthode RMI (Remote Method Invocation), qui permet l'appel d'une méthode exécutée dans une machine différente de celle de l'objet l'appelant. C'est à dire que l'on peut appeler les méthodes du serveur coté PC depuis le smartphone comme si l'objet serveur était sur celui-ci, ce qui a pu nous aider pour l'automatisation de l'application. Par conséquent, la seule action utilisateur requise sur le pc est le lancement du serveur.

Figure n°34 : fonctionnement de RMI

Les fonctions que le smartphone va exécuter sont:

1 -calculGrille : cette méthode permet de détecter des coins de la grille et afficher les quatre coins permettant le redimensionnement , cette méthode est appelé par le smartphone lorsque la configuration de l'IP ainsi que le nombre de ligne et de colonne de la grille est effectué .

2 – fermerFenetre : cette méthode permet de ferme l'affichage des coins, cette fonction est appelé coté smartphone une fois que les quatre coins sont trouvés et que le redressement et le redimensionnement sont effectués avec succès.

3- deplacerSouris : cette méthode permet de transmettre au serveur les coordonnées du déplacement ainsi que les nombre de ligne et de colonne de la grille de jeu. Elle déplace les bonbons à l'aide de la souris et elle est appelée au cours de la résolution une fois que l'IA a trouvé un coup à jouer .


public void calculGrille(){
        if( interfaceDistante == null)
            return ; 
        interfaceDistante.CalculGrille(); 
        try {
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        } 
}

Figure n°35 : une des méthodes du smartphone appelant les méthodes sur PC

Sur l’exemple ci-dessus, on montre l’appelle de la méthode calculGrille sur le smartphone. Nous pouvons voir que l’appel se fait via l'interface distante comme si celle-ci était instanciée sur le smartphone. L'avantage de cette solution est une mise en œuvre facile et permet l'abstraction des sockets cependant le port et l'adresse IP du serveur sont toujours nécessaires.

Nous avons rencontré un problème pour mettre en œuvre la méthode RMI, la JVM d'Android étant plus réduite que celle proposée sur un pc, les classes permettant la mise en œuvre de RMI ne sont pas implémentées et il a donc fallu utiliser une librairie externe ( lipermi ) permettant l'utilisation de RMI.

34.png (28.6 KB) Nicolas Raymond, 03/22/2015 07:47 PM