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 Ma position GPRS Bluetooth Ce rapport de travail propose une méthode permettant de déployer de façon efficace une applications Java sur un grand nombre de téléphones mobiles hétérogènes. Cette méthode est composée de trois phases: Le développement d’une application de test, qui recense les capacités des téléphones mobiles. Elle permet de cibler les téléphones pour développer une application. L’étude de cas et le développement d’une librairie GPS générique, permettant de minimiser le temps de développement et maximiser la compatibilité d’une application. La réalisation d’une plateforme collaborative, ouvrant la possibilité des préstests d’une application par une communauté de spécialistes. Liste des radars Serveur web 3
Composants de Java ME Les différents composants de Java ME Les composants logiciels du téléphone mobile (Source : JSR-185 « Sun Microsystems ») Les spécifications définies dans « Java Community Process » 4
Le seul protocole d’installation spécifié: « Over The Air » 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 ch.foxytag.bluetooth.GPS; GPS gps = new GPS(); gps.connect(); foxytag import ch.foxytag.integrated.GPS; GPS gps = new GPS(); gps.connect(); FoxyTag 13
Librairie GPS - Utilisation bluetooth integrated GPS GPS { xor } « import » « import » import ch.foxytag.bluetooth.GPS; GPS gps = new GPS(); gps.connect(); foxytag import ch.foxytag.integrated.GPS; GPS gps = new GPS(); gps.connect(); FoxyTag 14
Librairie GPS pour Java ME Classe GPS intégrée dans chaque paquetage bluetooth GPS void connect() void connect(Display d) String[] getData() void locationUpdated() void stateChanged() void addGPSListener (GPSListener listener) void removeGPSListener (GPSListener listener) void notifyGPSListener() GPS GPS integrated GPS GPS 15
Librairie GPS pour Java ME Spécificités d’un GPS Bluetooth GPSBluetooth void connect(String url) void setUrl(String url) boolean isConnected() boolean isFresh() boolean isStop() void run() void stop() bluetooth GPS GPS Bluetooth GPSBluetooth 16
Librairie GPS pour Java ME Spécificités d’un GPS intégré integrated GPS GPSIntegrated void start() void providerStateChanged() GPS Intégré GPSIntegrated 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é
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 Indication des téléphones mobiles à disposition Évaluation des projets téléchargés Catégories favorites 20
Plateforme collaborative Téléphones mobiles nécessaire pour une version 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