MISE EN OEUVRE D UNE APPLICATION DE SUIVI DES ENSEIGNEMENTS PAR LE VECTEUR SMS RAPPORT D AVANCEMENT DU PROJET



Documents pareils
TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Java ME : une présentation. Jean-Marc Farinone

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Création d un service web avec NetBeans 5.5 et SJAS 9

Vanilla : Virtual Box

Programmer en JAVA. par Tama

Once the installation is complete, you can delete the temporary Zip files..

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

WEB page builder and server for SCADA applications usable from a WEB navigator

Machine virtuelle Java pour Palm TX

Projet de programmation (IK3) : TP n 1 Correction

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

OpenPaaS Le réseau social d'entreprise

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Un ordonnanceur stupide

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

APPLICATIONS JAVA. 1. JDBC Java Database Connectivity. Applications Web

Extended communication server 4.1 : VoIP SIP service- Administration

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Construire des plug-ins pour SAS Management Console SAS 9.1

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Les Portfolios et Moodle Petit inventaire

Alfstore workflow framework Spécification technique

Le No.1 de l économie d énergie pour patinoires.

Paginer les données côté serveur, mettre en cache côté client

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

VTP. LAN Switching and Wireless Chapitre 4

Instructions Mozilla Thunderbird Page 1

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Programmation en Java IUT GEII (MC-II1) 1

Rapport de Mini-Projet en ArcGIS Engine

as Architecture des Systèmes d Information

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Plan du cours. Historique du langage Nouveautés de Java 7

Paxton. ins Net2 desktop reader USB

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Cedric Dumoulin (C) The Java EE 7 Tutorial

Corrigé des exercices sur les références

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

PARIS ROISSY CHARLES DE GAULLE

Threads. Threads. USTL routier 1

Premiers Pas en Programmation Objet : les Classes et les Objets

SERVEUR DÉDIÉ DOCUMENTATION

Practice Direction. Class Proceedings

LOGICIEL D'ADMINISTRATION POUR E4000 & G4000 MANAGEMENT SOFTWARE FOR E4000 & G4000

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Economies d énergie par GPO

TP1 : Initiation à Java et Eclipse

Sécurité Informatique. Description. Prérequis. Un petit test avant de commencer s embourber

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

équipement radio Procédure

Arbres binaires de recherche

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Quick Start Guide Touch Tone Capture. Guide de démarrage rapide Saisie à l aide du clavier

DOCUMENTATION - FRANCAIS... 2

Thierry Déléris. BMC Mainview Data Server Synthèse & Mise en œuvre

Cheque Holding Policy Disclosure (Banks) Regulations. Règlement sur la communication de la politique de retenue de chèques (banques) CONSOLIDATION

Notice Technique / Technical Manual

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Encadré par : Michel SIMATIC

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

TD2 Programmation concurrentielle

Travaux pratiques Configuration du protocole DHCP avec SDM et l interface de ligne de commande Cisco IOS

BILL 203 PROJET DE LOI 203

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Exercices sur SQL server 2000

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

Création d une application JEE

Petit guide pour l installation de CVW sous Linux

SQL Server et Active Directory

How to Login to Career Page

Comment Créer une Base de Données Ab Initio

MMSCam. Travail de diplôme Pilotage à distance d un téléphone MMS. Département d électricité et d informatique. Auteur : Jeanmonod David

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

1. Installation d'un serveur d'application JBoss:

OUTIL DE TRAVAIL COLLABORATIF

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Portabilité sur système Android d un système de borne d information

Differential Synchronization

Guide d'installation rapide TFM-560X YO.13

LOI SUR LA RECONNAISSANCE DE L'ADOPTION SELON LES COUTUMES AUTOCHTONES ABORIGINAL CUSTOM ADOPTION RECOGNITION ACT

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Programmation avec des objets : Cours 7. Menu du jour

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Transcription:

- 1 - MISE EN OEUVRE D UNE APPLICATION DE SUIVI DES ENSEIGNEMENTS PAR LE VECTEUR SMS RAPPORT D AVANCEMENT DU PROJET Le projet de la mise en œuvre d une application de suivi des enseignements par le vecteur SMS que nous avons choisi de développer dans le cadre des travaux de programmation des terminaux mobiles possédait trois grandes parties : Créer une application J2ME permettant d émuler un téléphone portable qui devra permettre l envoi des SMS vers un numéro saisi manuellement ; mettre en place un serveur web/applicatif capable de récupérer les SMS, d en garder une trace sous forme de base de données avec le numéro du destinataire, l heure d envoi, l heure du cours, la salle et un message optionnel, de retransmettre le SMS vers un opérateur ; réceptionner le SMS sur un véritable téléphone portable Le projet évolue bien malgré les difficultés rencontrées pendant la phase d installation des softs. Rappelons que pour le besoin de ce projet, il nous fallait les logiciels suivants : Netbeans, Sun Java Wireless Toolkit, Tomcat, Mysql, Mobility pack de Netbeans, Une passerelle SMS (kanel gateway). La première partie est complètement terminée. Les quelques captures d écran illustrent l essentiel du travail réalisé :

- 2 - Fig.1 Design de l application La figure 1 présente l étape de modélisation de l application qui devra simuler le téléphone portable. Comme vous pouvez le constater, Netbeans, grâce à son plugin «Mobility Pack» permet de concevoir les applications mobiles de manière graphique en utilisant l utilitaire dénommé «flow de données». Cet utilitaire permet de concevoir ces applications grâce à une série de palettes et commandes spécifiques comme on le fait pour la conception des applications tournant sur client lourd avec Netbeans. Netbeans donne la possibilité de personnaliser ces composants et s occupe de la génération du code sous jacent. Le programmeur ne peut que modifier quelques lignes de code dans l IDE pour voir tourner son application. En déboguant l application ci-dessus, le simulateur Sun Java Wireless Toolkit simule sur l ordinateur un téléphone portable avec les fonctionnalités précisées pendant le design de l application. Pour le besoin de notre projet, nous avons programmé un compositeur de sms. Celui-ci sera alors affiché par le simulateur.

- 3 - Fig.2 Simulateur de téléphone de l application compositeur sms En cliquant avec la souris sur le bouton juste en bas du mot «Launch», ce téléphone virtuel affiche un compositeur de sms pour notre application. Nous pouvons renseigner le numéro du destinataire du sms, c est le champ Phone number sur la figure 3. Ensuite, nous pouvons écrire le corps du message.

- 4 - Fig.3 Composer le SMS Une fois le message saisi, nous avons la possibilité de cliquer sur «Send» pour l envoyer ou sur «Exit» pour réinitialiser le compositeur de SMS. En cliquant sur «Send», un message d état nous informe si le SMS a bien été envoyé ou non mais bien avant cela, nous devons autoriser la communication avec le numéro inséré.

- 5 - Fig.4 Etablir ou non la connexion En cliquant sur «Yes», le message sera envoyé et le message d état affiché.

- 6 - envoyé Fig.5 Le message est envoyé Si non, le message ne sera pas envoyé et un rapport d état sera également

- 7 - Fig.6 SMS non envoyé On peut raffiner le code en prenant en charge toutes les exceptions. Dans la deuxième partie, nous allons programmer une servlet qui se chargera de récupérer les informations sur l envoi des SMS et de garder leur trace dans une base de données Mysql. En annexe, le code source de l application généré par Netbeans.

- 8 - package compositeursms; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import org.netbeans.microedition.lcdui.splashscreen; import org.netbeans.microedition.lcdui.waitscreen; import org.netbeans.microedition.lcdui.wma.smscomposer; import org.netbeans.microedition.util.simplecancellabletask; * @Auteur: Honoré public class CompositeurSMS extends MIDlet implements CommandListener { private boolean midletpaused = false; //<editor-fold defaultstate="collapsed" desc=" Generated Fields "> private SplashScreen splashscreen; private SMSComposer smscomposer; private WaitScreen waitscreen; private Alert alerteenvoi; private Alert alerteerreur; private Command exitcommand; private SimpleCancellableTask task; * The CompositeurSMS constructor. public CompositeurSMS() { //<editor-fold defaultstate="collapsed" desc=" Generated Methods "> //<editor-fold defaultstate="collapsed" desc=" Generated Method: initialize "> * Initilizes the application. * It is called only once when the MIDlet is started. The method is called before the <code>startmidlet</code> method. private void initialize() { // write pre-initialize user code here // write post-initialize user code here

- 9 - //<editor-fold defaultstate="collapsed" desc=" Generated Method: startmidlet "> * Performs an action assigned to the Mobile Device - MIDlet Started point. public void startmidlet() { switchdisplayable(null, getsplashscreen()); //<editor-fold defaultstate="collapsed" desc=" Generated Method: resumemidlet "> * Performs an action assigned to the Mobile Device - MIDlet Resumed point. public void resumemidlet() { //<editor-fold defaultstate="collapsed" desc=" Generated Method: switchdisplayable "> * Switches a current displayable in a display. The <code>display</code> instance is taken from <code>getdisplay</code> method. This method is used by all actions in the design for switching displayable. * @param alert the Alert which is temporarily set to the display; if <code>null</code>, then <code>nextdisplayable</code> is set immediately * @param nextdisplayable the Displayable to be set public void switchdisplayable(alert alert, Displayable nextdisplayable) { // write pre-switch user code here Display display = getdisplay(); if (alert == null) { display.setcurrent(nextdisplayable); else { display.setcurrent(alert, nextdisplayable); // write post-switch user code here //<editor-fold defaultstate="collapsed" desc=" Generated Method: commandaction for Displayables "> * Called by a system to indicated that a command has been invoked on a particular displayable.

- 10 - * @param command the Command that was invoked * @param displayable the Displayable where the command was invoked public void commandaction(command command, Displayable displayable) { if (displayable == smscomposer) { if (command == SMSComposer.SEND_COMMAND) { switchdisplayable(null, getwaitscreen()); else if (command == exitcommand) { exitmidlet(); else if (displayable == splashscreen) { if (command == SplashScreen.DISMISS_COMMAND) { switchdisplayable(null, getsmscomposer()); else if (displayable == waitscreen) { if (command == WaitScreen.FAILURE_COMMAND) { switchdisplayable(getalerteerreur(), getsmscomposer()); else if (command == WaitScreen.SUCCESS_COMMAND) { switchdisplayable(getalerteenvoi(), getsmscomposer()); //<editor-fold defaultstate="collapsed" desc=" Generated Getter: splashscreen "> * Returns an initiliazed instance of splashscreen component. * @return the initialized component instance public SplashScreen getsplashscreen() { if (splashscreen == null) { // write pre-init user code here splashscreen = new SplashScreen(getDisplay()); splashscreen.settitle("splashscreen"); splashscreen.setcommandlistener(this); splashscreen.settext("compositeur SMS");

- 11 - // write post-init user code here return splashscreen; //<editor-fold defaultstate="collapsed" desc=" Generated Getter: smscomposer "> * Returns an initiliazed instance of smscomposer component. * @return the initialized component instance public SMSComposer getsmscomposer() { if (smscomposer == null) { // write pre-init user code here smscomposer = new SMSComposer(getDisplay()); smscomposer.settitle("smscomposer"); smscomposer.addcommand(smscomposer.send_command); smscomposer.addcommand(getexitcommand()); smscomposer.setcommandlistener(this); smscomposer.setbgcolor(-3355444); smscomposer.setfgcolor(-16777216); smscomposer.setsendautomatically(false); smscomposer.setphonenumberlabel("phone Number"); smscomposer.setmessagelabel("message"); // write post-init user code here return smscomposer; //<editor-fold defaultstate="collapsed" desc=" Generated Getter: waitscreen "> * Returns an initiliazed instance of waitscreen component. * @return the initialized component instance public WaitScreen getwaitscreen() { if (waitscreen == null) { // write pre-init user code here waitscreen = new WaitScreen(getDisplay()); waitscreen.settitle("waitscreen"); waitscreen.setcommandlistener(this); waitscreen.settask(gettask()); // write post-init user code here return waitscreen;

- 12 - //<editor-fold defaultstate="collapsed" desc=" Generated Getter: alerteenvoi "> * Returns an initiliazed instance of alerteenvoi component. * @return the initialized component instance public Alert getalerteenvoi() { if (alerteenvoi == null) { // write pre-init user code here alerteenvoi = new Alert("alert", "Message envoy\u00e9!", null, null); alerteenvoi.settimeout(alert.forever); // write post-init user code here return alerteenvoi; //<editor-fold defaultstate="collapsed" desc=" Generated Getter: alerteerreur "> * Returns an initiliazed instance of alerteerreur component. * @return the initialized component instance public Alert getalerteerreur() { if (alerteerreur == null) { // write pre-init user code here alerteerreur = new Alert("alert1", "Erreur d\'envoi", null, null); alerteerreur.settimeout(alert.forever); // write post-init user code here return alerteerreur; //<editor-fold defaultstate="collapsed" desc=" Generated Getter: exitcommand "> * Returns an initiliazed instance of exitcommand component. * @return the initialized component instance public Command getexitcommand() { if (exitcommand == null) { // write pre-init user code here exitcommand = new Command("Exit", Command.EXIT, 0); // write post-init user code here return exitcommand; //<editor-fold defaultstate="collapsed" desc=" Generated Getter: task ">

- 13 - * Returns an initiliazed instance of task component. * @return the initialized component instance public SimpleCancellableTask gettask() { if (task == null) { // write pre-init user code here task = new SimpleCancellableTask(); task.setexecutable(new org.netbeans.microedition.util.executable() { public void execute() throws Exception { // write task-execution user code here smscomposer.sendsms(); ); // write post-init user code here return task; * Returns a display instance. * @return the display instance. public Display getdisplay () { return Display.getDisplay(this); * Exits MIDlet. public void exitmidlet() { switchdisplayable (null, null); destroyapp(true); notifydestroyed(); * Called when MIDlet is started. * Checks whether the MIDlet have been already started and initialize/starts or resumes the MIDlet. public void startapp() { if (midletpaused) { resumemidlet (); else { initialize (); startmidlet ();

- 14 - midletpaused = false; * Called when MIDlet is paused. public void pauseapp() { midletpaused = true; * Called to signal the MIDlet to terminate. * @param unconditional if true, then the MIDlet has to be unconditionally terminated and all resources has to be released. public void destroyapp(boolean unconditional) {