Déploiement d'applications Java ME by msz78385

VIEWS: 18 PAGES: 23

									Déploiement d’applications Java ME
           Master MATIS – Management and Technology of Information Systems
                           Master en Technologie des Systèmes d’Information

                                Hikari WATANABE & Dejan MUNJIN, Juin 2007



                                    Département des Systèmes d’Information
                                           Centre Universitaire d’Informatique
                                 Faculté des Sciences Économiques et Sociales
                                                         Université de Genève

                         Institut d’Informatique et Mathématiques Appliquées
                                         Université Joseph Fourier de Grenoble

                              Directeur de recherche : Pr. Dimitri KONSTANTAS
Problématique
Déployer une application sur grand nombre de téléphones mobiles possédant
des caractéristiques différentes, des architectures hétérogènes, et un support
variable des API optionnels de Java ME.
• Comment découvrir les API Java disponibles ?
• Comment réutiliser les composants Java dans le développement ?
• Comment améliorer une application avec les prétests ?
• La durée de vie d’un téléphone sur le marché est courte ce qui implique des
efforts de programmation plus importants




                                                                                 2
Notre Approche
 Méthodologie
 • Création d’une suite de tests pour le capacités de téléphones mobiles
 • Validation pour une cas spécifique (libraire GPS de FoxyTag)
 • Plateforme collaborative pour développeurs dans le but d’échanger les
 informations des tests




                                                       GPRS
        Bluetooth



                                                                    Serveur web


                                                                                  3
Composants de Java ME

Les différents composants de Java ME




                 Les composants logiciels du téléphone mobile




                     Les composants logiciels du téléphone mobile
                        (Source : JSR-185 « Sun Microsystems »)
Les spécifications définies dans « Java Community Process »
                                                                    4
Déploiement OTA

Le seul protocole d’installation spécifié: « Over The Air »

                             1. Recherche d’applications


                             2. Lecture de JAD

              Ressources
              OK
                             3. Lecture de JAR


              Installation
              OK             4. Code de réponse
                                                              Serveur web
                                POST 900 OK




                                                                            5
Avantages et inconvénients de Java ME

Avantages des applications Java ME
• Sécurité
• Portabilité du langage
• Facilité pour un utilisateur d’installer les applications

Désavantages des applications Java ME
• Exploitation des ressources du téléphone inefficiente à cause des API
• Les API de Bluetooth, Multimédia ne sont pas obligatoires
• Avec le protocole d’installation OTA le développeur doit connaitre les
possibilités de chaque téléphone ciblé par son application




                                                                           6
Application cliente de test : FoxyTest


FoxyTest permet de tester les paramètres suivants en vue de l’utilisation de
FoxyTag:

• Identification de la plateforme
• Version de la configuration (CLDC)
• Version du profile (MIDP)
• Version de l’API Bluetooth, présence et utilisation des classes Bluetooth
• Version de l’API de localisation, présence et utilisation des classes Location




         Le test est envoyé vers une base de données


                                                                                   7
Installation de FoxyTest




                           8
Déroulement de l’application de test




                                       9
FoxyTest - Transfert du rapport




                                  10
Rapports de FoxyTest

Statistique des rapports (8000)

Téléphones mobiles compatibles
JSR 82 par marque (5000)




Téléphones mobiles incompatibles
JSR 82 par marque (3000)




                                   11
Utilisation des résultats pour le développement d’une
Librairie GPS pour Java ME
Pourquoi cette librairie ?
• FoxyTag nécessite une API Bluetooth pour fonctionner
• Cibler la plateforme réduit la portabilité de Java ME

Limites de la librairie GPS pour Java ME
• La taille d’une application doit rester petite en raison de ressources limitées
• Introduction du code redondant augmente le risque de « bugs »

Avantages de la librairie GPS
• Diminuer le temps de développement des versions
• Prévoir et intégrer les petites incompatibilités entre les téléphones dans une
librairie




                                                                                    12
 Librairie GPS - Approche
    bluetooth                                   integrated




                   GPS                              GPS




import                      foxytag               import
ch.foxytag.bluetooth.GPS;                         ch.foxytag.integrated.GPS;

GPS gps = new GPS();                              GPS gps = new GPS();

gps.connect();                        FoxyTag     gps.connect();




                                                                           13
 Librairie GPS - Utilisation
    bluetooth                                      integrated




                   GPS                                 GPS




                                         { xor }
                  « import »                       « import »

import                         foxytag               import
ch.foxytag.bluetooth.GPS;                            ch.foxytag.integrated.GPS;

GPS gps = new GPS();                                 GPS gps = new GPS();

gps.connect();                           FoxyTag     gps.connect();




                                                                              14
Librairie GPS pour Java ME

Classe GPS intégrée dans chaque paquetage   bluetooth
             GPS
void connect()

void
                                                 GPS
connect(Display d)
String[] getData()

void locationUpdated()

void stateChanged()                         integrated
void addGPSListener
(GPSListener listener)
void removeGPSListener
(GPSListener listener)
                                                 GPS
void notifyGPSListener()




                                                         15
Librairie GPS pour Java ME

Spécificités d’un GPS Bluetooth


GPSBluetooth
void connect(String url)                    bluetooth
void setUrl(String url)
                                                 GPS
boolean isConnected()

boolean isFresh()
                            GPS Bluetooth   GPSBluetooth
boolean isStop()

void run()

void stop()




                                                           16
Librairie GPS pour Java ME

Spécificités d’un GPS intégré


                                              integrated


                                                   GPS
GPSIntegrated
void start()
                                GPS Intégré   GPSIntegrated
void
providerStateChanged()




                                                              17
Statistique de la librairie

 •   5532 lignes de code
 •   La taille de la librairie compilée = 12.417 KO
 •   Utilisée dans le développement des versions de FoxyTag
 •   Intégrée dès la distribution 0.4.2 de FoxyTag
 •   Le code source de FoxyTag reste le même pour les GPS intégrés et les GPS
     Bluetooth

 Besoin de prétest
 • Après le développement et la généralisation de la librairie, il reste le test
    de l’application
 • Le test doit porter surtout sur les téléphones avec le GPS intégré




                                                                                   18
Plateforme collaborative

Fonctionnalités de la plateforme de test

• Permettre aux développeurs d’applications Java ME de tester leurs applications
de façon collaborative
• Favoriser les tests et non les applications
• Partager des connaissances sur les différences entre téléphones mobiles
• Proposition de versions d’une application pouvant être testées et évaluées
• Notation des rapports de la part des développeurs ce qui permet un
classement des testeurs




                                                                                   19
Plateforme collaborative

1.   Indication des téléphones mobiles à disposition
2.   Évaluation des projets téléchargés
3.   Catégories favorites




                                                       20
Plateforme collaborative

4.   Téléphones mobiles nécessaire pour une version
5.   Résultats des tests (rapport) et notation
6.   Liste des meilleures testeurs




                                                      21
Conclusion

Déployer de manière efficace des applications mobiles :
Les développeurs sont obligés de développer les versions d’une application
Java ME. Ils doivent bien connaitre les spécifications Java et les différences entre
les téléphones mobiles.

Nous avons mis en application une approche composée de trois étapes
permettant de développer et déployer une application pour accroitre sa
portabilité.

L’évolution future de Java sur les téléphones mobiles devrait s’orienter vers
« JavaFX ». Il s’agit d’une spécification composée de sous éléments de « Java
Standard Edition ». La concentration dans cette évolution est portée sur les
interfaces graphiques. Les différences entre les API disponibles ne sont pas, pour
l’instant plus approfondies que dans Java ME.


                                                                                       22
Questions




            ?
                23

								
To top