Présentation - TaM - Université de Genève

publicité
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
Bluetooth
GPRS
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
POST 900 OK
Serveur 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
bluetooth
integrated
GPS
import
ch.foxytag.bluetooth.GPS;
GPS
foxytag
import
ch.foxytag.integrated.GPS;
GPS gps = new GPS();
gps.connect();
GPS gps = new GPS();
FoxyTag
gps.connect();
13
Librairie GPS - Utilisation
bluetooth
integrated
GPS
GPS
{ xor }
« import »
import
ch.foxytag.bluetooth.GPS;
« import »
foxytag
import
ch.foxytag.integrated.GPS;
GPS gps = new GPS();
gps.connect();
GPS gps = new GPS();
FoxyTag
gps.connect();
14
Librairie GPS pour Java ME
Classe GPS intégrée dans chaque paquetage
bluetooth
GPS
void connect()
void
connect(Display d)
GPS
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
bluetooth
void connect(String url)
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()
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é
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.
2.
3.
Indication des téléphones mobiles à disposition
Évaluation des projets téléchargés
Catégories favorites
20
Plateforme collaborative
4.
5.
6.
Téléphones mobiles nécessaire pour une version
Résultats des tests (rapport) et notation
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
Téléchargement