déploiement dapplications java me master matis – management and technology of information systems...
TRANSCRIPT
Déploiement d’applications Java ME
Master MATIS – Management and Technology of Information SystemsMaster en Technologie des Systèmes d’Information
Hikari WATANABE & Dejan MUNJIN, Juin 2007
Département des Systèmes d’InformationCentre Universitaire d’Informatique
Faculté des Sciences Économiques et SocialesUniversité 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
3
Serveur web
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
Liste des radarsBluetooth
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
RessourcesOK
3. Lecture de JAR
4. Code de réponse
InstallationOK
POST 900 OKServeur web
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
13
integrated
GPS
bluetooth
GPS
import ch.foxytag.bluetooth.GPS;
GPS gps = new GPS();
gps.connect();
import ch.foxytag.integrated.GPS;
GPS gps = new GPS();
gps.connect();
foxytag
FoxyTag
Librairie GPS - Utilisation
14
integrated
GPS
bluetooth
GPS
import ch.foxytag.bluetooth.GPS;
GPS gps = new GPS();
gps.connect();
import ch.foxytag.integrated.GPS;
GPS gps = new GPS();
gps.connect();
foxytag
FoxyTag
« import » « import »
{ xor }
Librairie GPS pour Java ME
Classe GPS intégrée dans chaque paquetage
GPSvoid connect()
void connect(Display d)
String[] getData()
void locationUpdated()
void stateChanged()
void addGPSListener(GPSListener listener)
void removeGPSListener(GPSListener listener)
void notifyGPSListener()
15
GPS
bluetooth
integrated
GPS
GPS
GPS
Librairie GPS pour Java ME
Spécificités d’un GPS Bluetooth
GPS Bluetooth
GPSBluetoothvoid connect(String url)
void setUrl(String url)
boolean isConnected()
boolean isFresh()
boolean isStop()
void run()
void stop()
16
GPSBluetooth
bluetooth
GPS
Librairie GPS pour Java ME
Spécificités d’un GPS intégré
GPS Intégré
GPSIntegratedvoid start()
void providerStateChanged()
17
integrated
GPSIntegrated
GPS
• 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
Statistique de la librairie
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és3. Catégories favorites
20
Plateforme collaborative
4. Téléphones mobiles nécessaire pour une version5. Résultats des tests (rapport) et notation6. 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