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
56
Conception d'un service vidéo pour terminaux portables
de type Smartphones
Projet CLIPCLAP -Monjouo M. Rodrigue Ing.
Télécom
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.