APPLICATION
CLIENT-SERVEUR EN JAVA
Le but de ce miniprojet est de faire une application qui permettrait de consulter l'états des alarmes d'une maison par internet. Les données relatives aux capteurs seraient stockées dans une base de données contenue sur un serveur WEB. Une application client permettrait d'exploiter ces données afin de connaître l'état de la maison et de commander par exemple des actionneurs de présence manuellement. De plus l'application serveur doit tester les données acquises afin d'envoyer un message d'alarme court sur un téléphone mobile grâce à l'envoie d'un mail.
Rôle du serveur
L'application serveur contiendra deux structures :
Automate
L'automate génère des valeurs aléatoires à intervalles de temps réguliers pour les différents états des capteurs et stocke ces données dans une base de données (tables).Il simule une carte d'acquisition qui prendrait tous les états des différents capteurs du système d'alarme. Cet automate sera implémentée comme une application serveur.
L'application serveur
Elle gère la base de données contenant tous les états des capteurs et la date de l'échantillon afin de permettre d'afficher un historique et de faire des sélections ou des tris selon les capteurs. Cette base de données est donc stockée sur le serveur. Elle communique avec l'automate qui envoie le données et les stocke dans sa base. Elle communique aussi avec un client afin de lui envoyer les données à la demande de l'application et d'exécuter les différentes commandes de l'application. Elle doit aussi être capable d'interpréter des alarmes urgente et envoyer un mini message sur un téléphone mobile en envoyant un e-mail grâce au numéro du mobile.
Rôle du client
Cette application client permet d'interroger la base de données à partir d'internet. Elle afficherait la maison et l'état des capteurs sur une interface graphique adéquate. Elle afficherait aussi l'historique des états. Elle doit aussi permettre d'actionner des actionneurs branché sur le serveur.
Spécifications fonctionnelles
L'application cliente contient une interface
graphique représentant la maison.Lorsque cette dernière est lancée ,elle se
connecte au serveur sur lequel est "branché" un automate virtuel simulant
des infraction et déclenche ainsi des niveaux 1 sur ces sorties numériques.
Processus /Thread.
Etreinte fatale.
Simulation de cycle.
Problemes d'exception.
Sérialization.
Division du temps processeur.
Pas véritable concurence des processus.
Réseau.
Mise en oeuvre facile.
Temps de connection important.
Transparence du fonctionnement.
Problème de package.
Ouverture fermeture de flux.
Flux croisé.
Ouverture fermeture de socket.
Lancement des applications
Version RMI
Localisation :répertoire rmi.
Le Client
Localisation : répertoire rmi/client.
Compilation
javac Client.javaFichiers nécéssaires : Client.class
Automate_std_stub.class
Automate.class
ainsi que le répertoire gui contenant le package gui et le sous répertoire images.Exécution
java Client
Le Serveur
Localisation : répertoire rmi/client.
Compilation
javac Serveur.java
rmic Automate_std (création du skelette et du stub)Fichiers nécéssaires : Serveur.class
Automate_std_skel.class
Automate.class
Automate_std.class
Capteur.class
Capteur_std.classExécution
start rmiregistry &1099.
java Serveur &
Version RMI Simulé
Localisation :répertoire socket.
Le Client
Localisation : répertoire socket/client.
Compilation
javac Client.javaFichiers nécéssaires : Client.class
Automate_std_stub.class
Automate.class
ainsi que le répertoire gui contenant le package gui et le sous répertoire images.Exécution
java Client
Le Serveur
Localisation : répertoire rmi/client.
Compilation
javac Serveur.java
javac Automate_std_stub.java
javac Automate_std_skel.javaFichiers nécéssaires : Serveur.class
Automate_std_skel.class
Automate.class
Automate_std.class
Capteur.class
Capteur_std.classExécution
java Serveur &
RMI
Capteur_std
Automate_std
Client
Serveur
RMI Simulé
Capteur_std
Automate_std
Client
Serveur
Automate_std_stub
Automate_std_skel