Chapitre 6 : Implémentation de la Solution
VI.1 Création de la MIDlet
Pour la création des MIDlet, on a besoin des
préréquis suivants :
Ant et Antenna
Ant est un projet open source de la fondation Apache
écrit en Java qui vise le développement d'un logiciel
d'automatisation des opérations répétitives tout au long
du cycle de développement logiciel, à l'instar des logiciels
Make.
Antenna fournit un de jeu de tâches Ant adéquates
pour le développement d'applications destinées au MIDP. Antenna
permet de compiler, prévérifier, packager et exécuter les
applications MIDP.
- L'API SyncML : c'est le SDK évoqué plus haut. Il
est téléchargeable
- L'API Common qui vient en appoint pour l'exécution de
certaines tâches telles la sérialisation. Il est disponible en
téléchargement.
Les classes clé de l'API sont :
SyncManager : c'est la classe principale qui
contrôle le process de synchronisation et fait appel aux méthodes
de la classe SyncSource
SyncConfig : classe utilisée pour
instancier le SyncManager avec la configuration du client (URL,login, mot de
passe, etc)
Implémentation de SyncSource : c'est
l'implémentation de l'interface SyncSource qui est le lien entre le
moteur de synchronisation (du côté du serveur) et le client. C'est
la source des données du client à synchroniser.
SyncItem : représente l'objet
échangé entre le SyncSource et le moteur de synchronisation, il
peut transporter n'importe quel type d'information.
VI.1.1. Implémentation de notre SyncSource
C'est l'interface entre le client et le moteur de
synchronisation. En implémentant cette méthode de la
manière la plus convenable pour accéder à la source de
données cliente, nous pouvons synchroniser tout type de données
à partir du mobile.
Nous pouvons implémenter cette interface directement ou
bien nous pouvons étendre la classe abstraite
BaseSyncSource , où une partie du travail est
déjà réalisée. Les méthodes abstraites
à implémenter sont les initXXXitems() pour
initialiser les tableaux d'éléments à synchroniser
(SyncItem), selon le mode de synchronisation, où XXX peut signifier :
all : il s'agit, dans ce cas, de tous les
éléments stockés dans la base de données cliente.
Il est utilisé dans le cas d'un slow sync ou d'un refresh
from client
new : c'est pour récupérer le
tableau des éléments ajoutés chez le client depuis la
dernière synchronisation
upd : c'est le tableau des
éléments modifiés depuis la dernière
synchronisation
del : c'est le tableau des
éléments supprimés de la base cliente depuis la
dernière synchronisation
Pour gagner de la place en mémoire, il est important que
ces tableaux ne contiennent que des informations sur les
éléments, sans leur contenu qui pourra être
récupéré par un appel
à la méthode getItemContent(). Cette méthode
est appelée pour chaque élément à synchroniser.
VI.1.2. Création du SyncManager
Une instance de SyncManager doit être
créée avant d'entamer n'importe quelle
synchronisation. Un SyncManager propose un
constructeur recevant un SyncConfig en paramètre,
qui doit être rempli lors de l'appel avec l'URL, un login et un mot de
passe. Les
autres informations peuvent être optionnelles.
Le SyncConfig contient aussi la classe
DeviceConfig, un simple conteneur d'informations relatives
à l'appareil telles que le manufacturier, etc.
|