Vous êtes sur la page 1sur 40

Linstitut de la francophonie pour linformatique

Travail Personnel Encadr Deuxime semestre RAPPORT FINAL

Outils et mthodes pour le dveloppement des applications embarques

tudiant : NGUYEN Van Tien Promotion 12 Superviseurs : HO Tuong Vinh, PhD NGO Van Hien, PhD

Hanoi, le 23 juillet 2007

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Histoire de rvision
Date Le 3 janvier 2007 Le 16 mai 2007 Le 23 juillet 2007 Version 1.0 2.0 finale Description Rapport du premier semestre Rapport Initiale de deuxiem semestre Rapport final Auteur NGUYEN Van Tien NGUYEN Van Tien NGUYEN Van Tien

NGUYEN Van Tien

Page 2

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Sommaire
Introduction.......................................................................................................... 6 Travail thorique ................................................................................................... 7 2.1 Introduction gnrale du systme embarqu....................................................... 7 2.1.1 Dfinition du systme embarqu ................................................................. 7 2.1.2 Domaines dapplication .............................................................................. 7 2.1.3 Caractristiques principales ........................................................................ 7 2.2 Mthodes pour le dveloppement du logiciel ....................................................... 8 2.3 Mobile-D : une mthodologie pour le dveloppement des applications mobiles ......... 9 2.3.1 Introduction du Mobile-D ........................................................................... 9 2.3.2 Pourquoi Mobile-D est adapt mobile application....................................... 10 2.3.3 Mobile-D en dtail................................................................................... 11 2.3.3.1 Explore ................................................................................................. 12 2.3.3.2 Initialize ................................................................................................ 12 2.3.3.3 Productionize ......................................................................................... 13 2.3.3.4 Stabilize ................................................................................................ 14 2.3.3.5 System test & fix .................................................................................... 14 2.3.4 Evaluation de la mthode Mobile-D............................................................ 14 2.4 Technologies et outils pour le dveloppement des logiciels mobiles ...................... 15 2.4.1 Introduction gnrale .............................................................................. 15 2.4.2 Java 2 Micro Edition J2ME ........................................................................ 15 2.4.3 Microsoft Windows Embedded................................................................... 21 2.4.4 Les outils de dveloppement J2ME du march ............................................. 22 3 Travail pratique ................................................................................................... 23 3.1 Introduction de l'application pratique ............................................................... 23 3.2 Principe du fonction du systme ...................................................................... 23 3.3 Processus, technologies et outils choisis pour le dveloppement du systme.......... 24 3.4 Analyse et conception .................................................................................... 25 3.4.1 Cas dutilisation ...................................................................................... 26 3.4.2 Le diagramme de classe........................................................................... 26 3.4.3 Le diagramme de squence ...................................................................... 29 3.5 Implmentation ............................................................................................ 30 3.5.1 Introduction gnrale de programmation de Bluetooth en Java...................... 30 3.5.2 Programmation pour la communication entre tlphone portable et l'oridinateur 33 3.5.3 Programmation pour le contrle automatique de la souris ............................. 36 3.6 Test sur les simulateurs diffrents ................................................................... 36 3.7 Empaquetage et dploiement.......................................................................... 37 3.8 valuation du processus propos..................................................................... 37 4 Conclusion et perspective ..................................................................................... 39 Rfrence ................................................................................................................. 40 1 2

NGUYEN Van Tien

Page 3

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Liste de figures
Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure 1 : Les phases de la mthode Mobile-D 2 : Les tapes de chaque phase de la mthode Mobile-D 3 : Les tapes du test du systme 4 : Architecture de J2ME 5 : Architecture de J2ME 6 : La bibliothque de J2ME 7 : Rsultat de program HelloWorld 8 : Principe de fonction du systme 9 : Processus utilis 10 : Cas dutilisation 11 : La diagramme de classe 12 : Les classes dans paquet computer 13 : Les classes dans paquet mobile 14 : Le diagramme de squence pour recherche des oridinateurs 15 :Le diagramme de squence pour contrle distance 16 :Le diagramme de squence pour lordinateur (serveur) 17 : Architecture de Bluetooth 18 : APIs de Bluetooth en architecture de J2ME 11 12 14 16 17 18 21 23 25 26 26 27 28 29 29 30 31 32

NGUYEN Van Tien

Page 4

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Liste de tableaux
Tableau Tableau Tableau Tableau Tableau Tableau Tableau Tableau Tableau 1 2 3 4 5 6 7 8 9 : : : : : : : : : Comparaison des mthodes agiles ................................................................. 8 Mobile-D et caractriques du dveloppement du logiciel mobile ........................ 10 Les tches de chaque tape de la phase Explore ............................................ 12 Les tches de chaque tape de la phase Initialze............................................ 13 Les tches de chaque tape de la phase Productionize .................................... 13 Les outils pour chaque tape ....................................................................... 24 Les outils de conception ............................................................................. 25 Java Bluetooth Development Kit .................................................................. 32 Le rsultat dest test ................................................................................... 37

NGUYEN Van Tien

Page 5

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

1 Introduction
Aujourd'hui, les appareils que nous utilisons dans notre vie quotidienne contiennent une quantit croissante de logiciel. Il s'agit d'appareils et de terminaux mobiles tels que des ordinateurs personnels ou PDA, des tlphones mobiles, les voitures, etc. Ces systmes ont des exigences spcifiques, comme la taille rduite de la mmoire, la ncessit de traiter certaines informations en temps rel, etc. Ce TPE a pour but de faire une tude sur les techniques et les outils ensuite le processus pour le dveloppement de ce type de systme. Dans le premier semestre, jai dj fini mon tude thorique sur le processus, les technologies et outils pour le dveloppement des applications sur systmes mobiles (en particulier sur tlphones mobiles). Dans deuxime semestre l, je construis une application relle en fonction dun processus laide de la technologie J2ME et les outils correspondants. Cest un systme qui permet de tlcommander un portable partir un quipement mobile. Le reste de ce rapport est organis comme suit. La deuxime partie prsente le travail thorique. La troisime partie prsente application relle que je construis. La fin, cest une conclusion et perspective.

NGUYEN Van Tien

Page 6

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

2 Travail thorique
2.1 Introduction gnrale du systme embarqu

2.1.1 Dfinition du systme embarqu


On peut dfinir un systme embarqu comme un systme informatique qui a le matriel limit pilot par le logiciel pour effectuer une fonction spcifique. Le mot embarqu indique que ce systme est habituellement une partie intgrale dun grand systme ou dune machine, notamment dans un systme mobile tel quun avion, un missile, un train, une automobile, par exemple. Multiples systmes embarqus peuvent coexister dans un grand systme.

2.1.2 Domaines dapplication


Actuellement, il y a beaucoup d'applications du systme embarqu dans les domaines du transport (automobile, aronautique, avionique), d'astronautique (fuse, satellite artificiel, sonde spatiale), du militaire (missile), de tlcommunication (tlphonie, routeur, pare-feu, serveur de temps, tlphone portable). On trouve galement des systmes embarqus dans l'lectromnager (tlvision, four micro-ondes), l'impression (imprimante multifonctions, photocopieur), l'informatique (disque dur, lecteur de disquette), le multimdia (console de jeux vido, assistant personnel). Des systmes embarqus sont aussi appliqus dans les guichets automatiques bancaires, l'quipement mdical, l'automate programmable industriel ou la mtrologie.

2.1.3 Caractristiques principales


Dans la majorit du systme embarqu, il ny a pas des entres/sorties standards : Il ny a pas rellement un clavier standard (bouton poussoir, clavier matriciel,), laffichage est limite ou nexiste pas du tout. Linterface IHM peut tre simple comme une led qui clignote ou complexe comme un cockpit davion de ligne. La capacit de la mmoire de ce systme est galement limite. Un systme embarqu est un systme dans lequel le matriel et le logiciel sont intimement lis : Le logiciel est enfoui, noy dans le matriel donc il nest pas facile les distinguer clairement comme dans un environnement du systme de type ordinateur PC. Chaque systme embarqu est un systme numrique qui met en uvre gnralement un processeur. Ce nest pas un PC en gnral mais il utilise de plus en plus des architectures similaires (x86) basse consommation. Les systmes embarqus utilisent des circuits analogues ou des circuits numriques pour augmenter leur performance ou leur fiabilit. Le processeur du systme embarqu est de plus en plus rapide, puissant et bon march grce la loi empirique de Gordon Moore, cofondateur dIntel infirme qui affirme que pour une surface silicium donne, on double le nombre transistors intgrs tous les 18 mois . Le logiciel dun systme embarqu excute une application pour raliser une fonctionnalit prcise et nexcute donc pas des application scientifiques ou grands publics traditionnelles. Aujourdhui, les systme embarqus sont fortement communicants grce aux puissances de calcul offerte par les processeur pour lembarqu (32 bits en particulier) et grce aussi lexplosion de lusage la connectivit Internet ou connectivit IP. Il faut aussi noter la monte en puissance des communications sans fils dans lembarqu. La connectivit Internet demande
NGUYEN Van Tien Page 7 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

galement que le problme de la scurit des systmes embarqus doivent tre rsolu. Dans ce TPE, je ne mintresse que une type de systme embarqu particulier qui est plus utilise dans la vie quotidienne, cest le tlphone portable. Les parties suivantes se concentrent donc sur le processus, la technologie et les outils pour le dveloppement des applications sur ce type de systme.

2.2

Mthodes pour le dveloppement du logiciel

Actuellement, il existe plusieurs mthodes pour le dveloppement du logiciel. On sappelle les mthodes agiles. Cette partie a pour but de prsenter et de comparer ces mthodes. Les mthodes de dveloppement dites mthodes agiles visent rduire le cycle de vie du logiciel (donc acclrer son dveloppement) en dveloppant une version minimale, puis en intgrant les fonctionnalits par un processus itratif bas sur une coute client et des tests tout au long du cycle de dveloppement. L'origine des mthodes agiles est lie l'instabilit de l'environnement technologique et au fait que le client est souvent dans l'incapacit de dfinir ses besoins de manire exhaustive ds le dbut du projet. Le terme agile fait ainsi rfrence la capacit d'adaptation aux changements de contexte et aux modifications de spcifications intervenant pendant le processus de dveloppement. En 2001, 17 personnes mirent ainsi au point le manifeste agile dont la traduction est la suivante : * * * * individus et interactions plutt que processus et outils dveloppement logiciel plutt que documentation exhaustive collaboration avec le client plutt que ngociation contractuelle ouverture au changement plutt que suivi dun plan rigide

Grce aux mthodes agiles, le client est pilote part entire de son projet et obtient trs vite une premire mise en production de son logiciel. Le tableau suivant va comparer les mthodes agiles existantes. Tableau 1 : Comparaison des mthodes agiles Mthode RUP (Rational Unified Process) Points cls Modle complet du dveloppement de logiciel, inclut le soutien doutils. tche de rle conduite par activit. Caractristiques Modlisation daffaires, soutien doutils Imperfection RUP na aucune limitation dans le cadre dutilisation. Manque des description comment rduire, comment changer. Les pratiques individuelles sont bien adaptes dans plusieurs situations mais les pratiques de gestion et de vue gnral sont moins
P12 - IFI

XP (Extreme Programming)

Dveloppement rduit par client, petite quipe, construction quotidienne.

Refectoring Devoir refaire conception du systme de faon continue pour amliorer sa performance et sa capacit de rponse aux changements.
Page 8

NGUYEN Van Tien

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

attentives. FDD (Feature Driven Development) Processus avec 5 tapes, dveloppement se basant sur les composants objet orient. Trs petite itration : de heures 2 semaines. Application les principes agiles pour modliser : culture agile, organisation du travail pour soutenir la communication, simplicit La simplicit de mthode, conception et implmentation du systme par des caractristiques, modlisation dobjet. Rflexion agile est aussi applique pour modlisation. FDD ne concentre que sur la conception et limplmentation.

AM (Agile Modeling)

Cest une bonne philosophie supplmentaire pour modlisation professionnelle. Cependant, il est dans le cadre dautre mthode (RUP) ASD concentre plus sur le concept et la culture que la pratique logicielle.

ASD (Adaptive Software Development) Crystal

Culture adaptative, collaboration, dveloppement itratif se basant sur component conduit par mission Une famille de mthodes. Chacune a mmes valeurs fondamentales de noyau et principes. Techniques, rles, outils et standards varient.

Organisations sont considrs comme des systmes adaptative.

Principe de conception de mthode. Capable de choisir une mthode la plus adapte se basant sur la taille de projet.

Trop tt pour estimer : Seulement 2 de 4 mthodes suggres existent.

Scrum

Indpendant, petit, quipes organisation automatique de dveloppement, cycles de 30 jours.

Transfrer de "dfini et rptitif" la"vue de dveloppement de produits nouveaux de Scrum"

Scrum spcifie en dtail comment grer la cycles de 30 jours mais la intgration et le test dacceptation ne sont pas dtailes.

2.3

Mobile-D : une mthodologie pour le dveloppement des applications mobiles

2.3.1 Introduction du Mobile-D


Tandis que beaucoup de mthodes agiles ont t prsentes, aucune de elles est spcifiquement vise pour le dveloppement du logiciel mobile. Mobile-D est une approche agile pour lquipement mobile qui est bas sur XP Extreme Programming (pratique), mthodologie Crystal (scalability) et Rational Unified Process (assurance de cycle de vie). Elle est conue pour rencontrer les caractristiques spcifiques de dveloppement de lapplication mobile et le standard de qualit de lindustrie. Le cas idal est davoir moins de dix dveloppeurs travaillant dans un espace du bureau.
NGUYEN Van Tien Page 9 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Les ralisateurs visent fournir une application mobile entirement fonctionnelle de faon incrmentale dans plusieurs itrations. Le travail de dveloppement est divis en diffrentes phases qui sont l'explorez, initialisez, productionize, stabilisez, et test et corrig de systme. Les pratiques des diffrentes phases se composent de neuf principaux lments : phase et tape, ligne d'architecture, mobile dveloppement test-conduit, intgration continue, programmation en binme, mtrique, amlioration du processus de logiciel agile, client offsite, et concentration de lUtilisateur-Centr.

2.3.2 Pourquoi Mobile-D est adapt mobile application


En faisant la combinaison des avantages de trois mthode agile XP, Crystal et RUP, Mobile-D satisfait les caractristiques du dveloppement de lapplication mobile. Cela est reprsent dans le tableau 2. Tableau 2 : Mobile-D et caractriques du dveloppement du logiciel mobile (Rfrence [11]) Caratriques de Mobile-D changement leve d'environnement Rationale Logiciel mobile

En raison du changement lev des exigences, on a besoin de lapproche de dveloppement incrmental et itratif

Incertitude leve, dynamique environnement : Centaines de nouveau les tlphones portables sont fabriqus chaque anne Majorit de logiciel mobile sont dvelopps par micro (<10) ou moyens (<250) socit. La taille de lquipe est souvent infrieur 20 personnes.

Petit quipe de dveloppement

Les petites quipes peuvent ragir plus rapidement, partager linformation, documentation ncessaire nest pas beaucoup, etc.

Client identifiable

Pour viter le malentendu d'affaires

Nombre potentiellement illimit dutilisateurs. Client d'affaires plus facile identifier, par exemple. distributeur. Utilise souvent Java et C++

Environnement de dveloppement dobjet orient Non scurit critique logiciel

Flexible, extensive,etc.

Les checs ne causent pas la perte des vies.

Majorit de logiciel mobile existant sont pour le but de divertissement. Les quipements mobiles sont non fiable. Tandis que mobiles les systmes sont complexes et
P12 - IFI

Logiciel de niveau d'application


NGUYEN Van Tien

Les grands systmes embarqus exigent la communication


Page 10

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

tendue et mcanismes de vrification.

fortement dpendants, les applications mobiles peuvent tre applications autonomes

Petit systme

Moins de conception d'upfront requise.

La taille des applications mobiles varie, mais gnralement elles sont moins que 10000 lignes de code. Les cycles de dveloppement varient. En gnrale, applications mobiles peuvent tre dvelopps de 1 6 mois.

Cycle de dveloppement court

Pour les buts de la rtroaction rapide

partir du tableau au-dessus, on peut conclure que Mobile-D est adapt au le dveloppement de lapplication mobile.

2.3.3 Mobile-D en dtail


La mthodologie Mobile-D se compose 5 phases principales : 1 2 3 4 5 Explore Initialize Productionize Stabilize System test & fix

Figure 1 : Les phases de la mthode Mobile-D La phase explore se concentre sur la planification et tablir le nouveau projet. Par consquent, la base pour l'excution du dveloppement de logiciel le produit est tablie. Dans cette phase, documents crs a pu tre le plan de projet, document initial de exigences, description de processus, plan de mesure, et ligne description d'architecture. La phase initialize se concentre sur la prparation et la vrification de tout le problme de dveloppement concernant le projet. Les buts principaux de cette phase sont que lquipe de dveloppement du projet peut comprendre globalement le projet. Dautre part, son but est de prparer toutes les ressources ncessaires, plans de projet, et toutes les problmes critiques de dveloppement. Ainsi, des documents suivants ont pu tre crs : document darchitecture de logiciel et document de description de conception, fonctionnalits implmentes,notes de ralisateur, illustrations d'interface utilisateur, et test de acceptation. La phase productionionize se concentre sur limplmentation de la fonctionnalit requise dans le produit. Dans cette phase, les documents crs peuvent inclure la documentation de test dacceptation, les cartes des tches, la liste de dfaut, et le rapport de statut quotidien. La phase stabilize se concentre sur finissage de limplmentation, laugmentation et assurance de la qualit de produit. La documentation du produit devrait tre finie dans cette phase. La phase system test & fix concentre sur produire le systme sans erreur en examinant le
NGUYEN Van Tien Page 11 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

systme, fournir des informations des dfauts trouvs, et corriger les dfauts. Par consquent, des documents suivants ont pu tre crs : release final (examin et systme stable), documentation des dfauts trouvs, rapport de test de systme, et log de test. Figure 2 reprsente les tapes de chaque phase.

Figure 2 : Les tapes de chaque phase de la mthode Mobile-D Chaque phase est reprsente en dtail dans les parties suivantes.

2.3.3.1 Explore
La phase explore est ralise en 3 tapes pour obtenir 3 buts suivants : Etablissement des groupes de stakeholders ncessaires dans la planification et la surveillance du projet Dfinition du port du projet Planification du projet en considrant des problme concernant lenvironnement, personnelle, et processus Tableau 3 reprsente les tapes et les tches correspondantes de cette phase Tableau 3 : Les tches de chaque tape de la phase Explore tape Stakeholder Establishment Scope Definition Project Establishment Tches 1. tablissement de client 2. tablissement du groupe de stakeholder 1. Dterminer les exigences initiales 2. Planification initiale du projet 1. Slection de lenvironnement 2. Allocation personnelle 3. Dfinition de la ligne de larchitecture 4. tablissement du processus

2.3.3.2 Initialize
La phase Initialize est ralise en 4 tapes pour obtenir 3 buts principaux suivants :
NGUYEN Van Tien Page 12 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Laugmentation de la comprhension de quipe du projet : Cela est ralise en se basant sur les exigences initiales et la description de la ligne de larchitecture. Prparation les ressources physiques, techniques, humaines et la communication avec client ; prparation du plan du projet et des solutions pour tous les problmes critiques du dveloppement. Cette phase assure que elles sont toutes prtes pour la ralisation des exigences du client. Tableau 3 reprsente les tapes et les tches correspondantes de cette phase Tableau 4 : Les tches de chaque tape de la phase Initialze tape Project setup Tches 1. Installation de lenvironnement, ressources techniques et physiques 2. Enseignement dveloppement pour lquipe du

3. tablissement la mthode pour la communication avec client Planning day in 0 iteration Working day in 0 iteration 1. Planification de la ligne de architecture 2. Analyse des exigences initiales 1. Peut implmenter quelques fonctionnalits noyaux du systme 2. Rsoudre des problmes critiques de dveloppement sans crire le code source

2.3.3.3 Productionize
La phase Productionize est ralise en 3 tapes pour obtenir 2 buts principaux suivants : Implmentation de la fonctionnalit prioritaire par client au produit. Concentrer sur la fonctionnalit cruciale, la fonctionnalit de noyau. Tableau 5 reprsente les tapes et les tches correspondantes de cette phase Tableau 5 : Les tches de chaque tape de la phase Productionize tape Planning day Tches 1. Analyse des exigences 2. Planification de itration 3. Gnration du test de lacceptance 4. Revue de test de lacceptance Working day 1. Documentation 2. Dveloppement test-rduit 3. Programmation programming) 5. Refractoring existant Release day : en binme (pair

4. Intgration continue amliorer le logiciel

6. Informer au client 1. Intgration du systme 2. Test de pre-release 3. Test de lacceptation


NGUYEN Van Tien Page 13 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

4. Vrification cette itration est bonne

2.3.3.4 Stabilize
La phase Stabilize est ralise en 3 tapes pour obtenir 3 buts principaux suivants : Finissage de limplmentation du produit Amlioration et assurance de la qualit du produit Finissage de la documentation du produit Dans cette phase, il y a 4 tapes : planning day, working day, documentation wrap-up, release day. Les tches des trois tapes planning day, working day, release day sont identiques aux celles de la phase productionize. Le but de ltape documentation wrap-up est de finir la documentation de conception, de UI et de architecture du logiciel. Il faut assurer que les documents crs dans cette tape sont courts, saillants, utiles, comprhensibles et cohrents avec le le code source.

2.3.3.5 System test & fix


La phase Stabilize est ralise en 4 tapes pour obtenir 5 buts principaux suivants : Test de systme en se basant sur la documentation produite dans le projet Fournissez les informations des dfauts trouvs Permettez l'quipe de projet de planifier corriger les dfauts trouvs Corriger les dfauts Produire le systme moins erreur que possible

Il y a 4 tapes : une pour test du systme et les trois pour corriger les dfauts. Le but de ltape System test est de identifier les dfauts dans le logiciel et produire les informations concernant ces dfauts pour les corriger.

Figure 3 : Les tapes du test du systme Les trois tapes pour corriger les dfauts est une itration normale similaire la phase productionize. 2.3.4 Evaluation de la mthode Mobile-D A mon avis, la mthode-D possde les avantages et les dsavantags comme suit. Avantages Mobile-D est bien adapt au dveloppement de logiciel mobile ralis par petite quipe Capable de satisfaire rapidement au changement des besoins des utilisateur grce aux courte itration (les phases initialize, productionize, stabilize) Programmation en binme dans ltape working day de chaque itration est trs efficace.
NGUYEN Van Tien Page 14 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

La documentation du logiciel est complte. Lenseignement de chaque tape est claire et en dtail Facile contrler lavancement du projet Tches de chaque tape sont dtaills Dsavantags Mobile-D est conue pour adapter au petit systme dvelopp par petit quipe -> peut ntre pas adapter pour complexe systme daffaire (eg M-commerce) sur le tlphone portable dans le futur. Il ny a aucune denseignant sur la slection des technologies et les outils pour dveloppements le logiciel mobile. Dans la partie suivante, je vais prsenter les technologies et les outils pour le dveloppement des applications sur le tlphone portable.

2.4

Technologies et outils pour le dveloppement des logiciels mobiles

2.4.1 Introduction gnrale


Actuellement, il existe beaucoup de langages pour le dveloppement des applications sur le systme mobile dont deux technologies qui sont utiliss plus, ce sont la technologie J2ME de Sun utilisant le langage Java, et la technologie .NET Mobile (ou Microsoft Mobile Internet Toolkit) de Microsoft utilisant des langages de la technologie .NET. Pour Pocket PC, smartphone, on peut utiliser autre technologie de Microsoft appele Microsoft's Embedded Visual Tools assistant les langages Visual C++ embarqu et Visual Basic embarqu pour construire les applications. Au dbut du mois septembre 2006, la socit canadienne ArianeSoft a lanc au dbut du mois Pocket Programming Language (PPL), un nouveau langage de programmation visant la simplicit d'utilisation. Le langage est un mlange du meilleur de langages classiques comme C, C++, Pascal et Basic, tout en tant trs facile apprhender et utiliser. PPL fonctionne sur Pocket PC 2000, 2002, Windows Mobile 2003 et WM 5. Dans les parties suivantes, je vais prsenter deux technologies plus connus dans le march : J2ME de Sun et .Net mobile de Microsoft.

2.4.2 Java 2 Micro Edition J2ME


Java 2 Micro Edition est une architecture technique dont le but est de fournir un socle de dveloppement aux applications embarques. Lintrt est de proposer toute la puissance dun langage tel que Java associ aux services proposs par une version bride du Framework J2SE : J2ME. Les terminaux nayant pas les mmes capacits en terme de ressources que les ordinateurs de bureau classiques (mmoire, disque et puissance de calcul), la solution passe par la fourniture dun environnement allg afin de sadapter aux diffrentes contraintes dexcution. Cependant, comment faire en sorte dintgrer la diversit de loffre un socle technique dont la cible nest pas dfinie priori ? La solution propose par J2ME consiste regrouper par catgories certaines familles de produits tout en proposant la possibilit dimplmenter des routines spcifiques un terminal donn. L'architecture J2ME se dcoupe donc en plusieurs couches : Les profiles : Ils permettent une certaine catgorie de terminaux dutiliser des caractristiques communes telles que la gestion de laffichage, des vnements dentres/sorties (pointage, clavier, ) ou des mcanismes de persistance (Base de donnes lgre intgre). Ces profiles sont soumis spcifications suivant le principe du JCP (Java Community Process)
NGUYEN Van Tien Page 15 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Les configurations : Elles dfinissent une plate-forme minimale en terme de services concernant un ou plusieurs profiles donns. Les machines virtuelles : En fonction de la cible, la machine virtuelle pourra tre allge afin de consommer plus ou moins de ressources (KVM, CVM, ) Le systme dexploitation : Lenvironnement doit sadapter au systme dexploitation existant (Windows CE, Palm Os, SavaJe, )

Figure 4 : Architecture de J2ME Cette architecture en couche a pour but de factoriser pour des familles de produits donnes un ensemble dAPI permettant une application de sexcuter sur plusieurs terminaux sans modification de code. Dans cette optique, la plate-forme propose deux configurations : CDC (Connected Device Configuration) : Spcifie un environnement pour des terminaux connects de forte capacit tels que les set top boxes , les tlphones cran, la tlvision numrique, CLDC (Connected Limited Device Configuration) : Cible les priphriques ressources limites ou faibles tels que les tlphones mobiles, les assistants personnels, ou les priphriques lgers sans fil (wireless) Voyons de plus prs les contraintes en terme de ressources imposes par ces deux configurations.

NGUYEN Van Tien

Page 16

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Figure 5 : Architecture de J2ME CDC (Connected Device Configuration) Les caractristiques de lenvironnement matriel propos par la configuration CDC sont : Minimum de 512Ko de ROM et 256Ko de RAM, processeur 32 bits Une connexion rseau obligatoire (sans fil ou pas) Support des spcifications compltes de la machine virtuelle Java (CVM)

Cette configuration sinscrit donc dans le cadre dune architecture Java presque complte. CLDC (Connected Limited Device Configuration) Cette configuration sadresse aux terminaux lgers tels que les tlphones mobiles ou les assistants personnels. Ces priphriques tant limits en terme de ressources, lenvironnement classique ne permet pas de respecter les contraintes doccupation mmoire lis ces appareils. J2ME dfinie donc un ensemble dAPI spcifiques CLDC et destines utiliser les particularits de chaque terminal dune mme famille (profile). La liste suivante rsume lensemble de ces caractristiques : Minimum de 160Ko 512Ko de RAM, processeur 16 ou 32 bits, vitesse 16Mhz ou plus Alimentation limite, prise en charge dune batterie Connexion rseau non permanente, sans fil. Interface graphique limite ou inexistante

Dfini par un sous-ensemble de classes Java sexcutant dans la KVM (KiloByte Virtual Machine). Cette configuration sinscrit donc dans une logique dconomie de ressources avec une KVM de 40 80 Ko sexcutant 30 80% moins vite quune JVM normale. Il ny aucun compilateur Just-In-Time ni mme de prise en charge des nombres flottants. Quant au Multi-threading et au Ramasse miettes, ils demeurent supports.

NGUYEN Van Tien

Page 17

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Toutefois, CLDC nintgre pas la gestion des interfaces graphiques, la persistance ou les particularits de chaque terminal. Ces aspects ne sont pas de sa responsabilit. Le tableau suivante rsume les packages et classes prsentes dans cette couche : Liste des packages de CLDC Java.io Java.lang Java.util Javax.microedition.io Fournit la gestion des flux dentres/sorties Classes de base du langage (types, ) Contient les collections et classes utilitaires Classes permettant de se connecter via TCP/IP

MIDP (Mobile Information Device Profile) MIDP est la base de limplmentation des classes lies un profile donn. Vous y trouverez les mthodes permettant de grer laffichage, la saisie utilisateur et la gestion de la persistance (base de donnes). Il existe aujourdhui deux implmentations majeures de profiles MIDP. Lune, plus spcifique, destine aux Assistants de type Palm Pilot (PalmOs) et lautre, totalement gnrique, propose par Sun comme implmentation de rfrence (RI). Ces profiles sont en libre tlchargement sur le site de Sun et intgrent plusieurs mulateurs permettant de tester les applications de manire logicielle. Les API lies MIDP font aussi partie de ce package : Liste des packages de CLDC javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms Fournit la gestion de linterface utilisateur (contrles, ) Socle technique destin grer le cycle de vie des midlets Base de donnes persistante lgre

Figure 6 : La bibliothque de J2ME

NGUYEN Van Tien

Page 18

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

LAPI lcdui est charge de grer lensemble des contrles graphiques proposs par ce profile. Quant la gestion des vnements, elle suit le modle des listeners du J2SE avec un CommandListener appel en cas dactivation dun contrle. Pour finir, io et rms, eux, fournissent les routines ncessaires aux entres/sorties rseau et la prise en charge dune zone physique de stockage. Les Midlets Les Midlets sont l'lment principal d'une application Java embarque. Pour bien saisir leur mode de fonctionnement, il suffit de prendre comme analogie les Applets ou les Servlets. Le cycle de vie dune Applet est gr par un conteneur, en loccurrence le Navigateur Web, dont le rle est dinteragir avec celle-ci sous la forme de mthodes de notifications prdfinies (init(),paint(),destroyed(),). Une servlet possde les mmes caractristiques quune Applet except le fait que le conteneur est un moteur de servlet (Tomcat, WebSphere, WebLogic, ). Quant aux Midlets, ils reprsentent le pendant des Applets et des Servlets pour J2ME avec comme conteneur votre tlphone mobile ou votre assistant personnel. Ainsi, en cas de mise jour dune application embarque, un simple tlchargement de code Midlet est ncessaire partir dun quelconque serveur. De cette manire, un programme dvelopp pour un profile donn est en mesure de sexcuter sur tous les priphriques correspondant cette famille. Cest aussi une manire de dcoupler le socle technique des applicatifs puisque le seul lien existant entre les logiciels embarqus et le terminal est lAPI J2ME.

A quoi ressemble le code d'une Midlet ? Et bien par rapport ce qui vient dtre dit, vous imaginez aisment que le code dune MidLet ne peut tre foncirement diffrent de celui dune Applet. Nous nous intresserons ces programmes lorsque nous aborderons le comparatif avec larchitecture de Microsoft. Pour lheure, regardons de lautre cot ce que Microsoft propose en terme doffre embarque. Il sera difficile dmettre un jugement tranch quant larchitecture adopte de part et dautre tellement leur mise en uvre diffrent. Mais nous tcherons dillustrer leurs approches respectives tout en gardant un il critique et la fois objectif dans notre analyse. Une Simple program : HelloWorld.java // contient les lments de base import javax.microedition.midlet.*; // contient les lments permettant de grer l'interface import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet implements CommandListener {
NGUYEN Van Tien Page 19 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

private private private private

Display _display; TextField _textField1; Command _commandExit; Form _form1;

public HelloWorld() { // fait un lien avec l'affichage _display = Display.getDisplay(this); // creation d'un objet formulaire sur lequel on peut placer des composants _form1 = new Form("Test de HelloWorld"); // creation d'un bouton pour sortir du programme _commandExit = new Command("Exit", Command.SCREEN,1); // creation d'un champ de texte contenant notre Hello World _textField1 = new TextField("","Hello World !",15,TextField.ANY); // ajout des composants au formulaire _form1.addCommand(_commandExit); _form1.append(_textField1); _form1.setCommandListener(this); } // vnement excut au dmarrage de l'application public void startApp() { // affichage du formulaire _display.setCurrent(_form1); } // vnement excut lors de la mise en pause de l'application public void pauseApp() { } // vnement excut lorsque l'application se termine public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { // lors du clic sur le bouton Exit if (c == _commandExit) { // appel manuel la fonction de fermeture destroyApp(false); // on demande au manager de fermer l'application notifyDestroyed(); } }

}
Rsultat

NGUYEN Van Tien

Page 20

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Figure 7 : Rsultat de program HelloWorld

2.4.3 Microsoft Windows Embedded


Prsentation A travers le temps, lapproche de Microsoft concernant le monde de lembarqu a considrablement volu. De Microsoft Embedded Visual Tools (eVB et C++), nous sommes pass la plate-forme .NET et les diffrents langages qui l'accompagnent (C#, VB.NET, ...). Mme sil est vrai que lengouement autour de cet univers des terminaux lgers est all croissant ds lors que les PDA et autres tlphones mobiles ont fait leur apparition, il nen demeure pas moins que ce segment de march a toujours t dlaiss par les deux diteurs au profit dentreprises et de technologies propritaires. Aujourdhui, loffre de Microsoft est essentiellement base sur son systme dexploitation embarqu : Windows CE. Cela ne signifie aucunement que Microsoft oublie Windows XP ou Windows 2000, bien au contraire, mais ces systmes dexploitation sadressent une gamme de priphriques moins contraints au niveau des ressources. Microsoft Embedded propose une approche plus oriente systme de lembarqu. Un constructeur dsireux dintgrer un environnement Windows dans un terminal donn, devra extraire les briques logicielles dune version standard en fonction des caractristiques du rcepteur. Par exemple, dans le cas dun priphrique sans fil, les composants embedded wireless accompagns des drivers adquats seront proposs l'intgrateur. Lorsque le terminal ncessite une base de donnes embarque, il suffira de gnrer une image du
NGUYEN Van Tien Page 21 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Systme dexploitation prenant en compte cette contrainte. Bref, Microsoft propose une panoplie de composants systmes en tout genre et adapts tout type de besoin, charge ensuite lintgrateur de dfinir sa propre configuration. Cette approche compare Java est donc sensiblement diffrente. Nous nous intresserons plus aux appareils de types tlphones mobiles et assistants qu'aux terminaux complexes (Routeurs, SmartPhone, etc ...). Dans ce cadre, la cible sera Windows CE et plus prcisment Windows CE .NET travers son environnement de dveloppement Smart Device Extensions pour Visual Studio .NET. Le .NET Compact Framework et Windows CE.NET Avec lavnement du Framework .NET, la partie embarque de loffre de Microsoft a subi quelques volutions majeures. Ainsi, le .NET Compact Framework en version bta a fait son apparition au sein de larchitecture avec une philosophie proche de J2ME pour Java : Un ensemble dAPI allgs permettant de rpondre aux exigences des priphriques en terme de ressources. Pour l'heure, .NET CF se destine aux plate-formes Windows CE bien quil ait t conu pour tre portable. A l'avenir, nous pourrions trs bien voir apparatre des versions Windows CE destines d'autres OS. Enfin, il est noter quil existe des machines virtuelles Java permettant dexcuter une application J2ME sur Windows CE. Ainsi, MicroJBlend, une extension de la KVM de Sun, propose nativement ce genre de solution (Applix Software). L'architecture embedded de Microsoft n'intgre pas de notion de configuration ou de profile proprement parl telle quil en existe dans Java. Smart Device Extensions (SDE) Les Smart Devices Extensions sont des outils permettant dtendre les capacits de Visual Studio .NET dans le but de fournir un environnement totalement intgr de bout en bout. SDE propose ainsi un mulateur PocketPC et Windows CE ainsi quune extension de lIDE permettant de concevoir graphiquement les applications mobiles tout en se conformant au Compact Framework . La cration dun programme destin aux pocketPC se fait exactement sur le mme principe quune application classique VB.NET ou C# . 2.4.4Les outils de dveloppement J2ME du march Il existe plusieurs environnements de dveloppement (IDE) proposant l'intgration de l'API J2ME directement dans l'diteur sur le principe de SDE .NET avec la possibilit de lancer l'excution et le dbogage directement dans l'outil : Le MobileSet Plug-In de JBuilder : tlchargeable sur le site de Borland Forte de Sun : Le J2ME Toolkit pouvant tre paramtr l'installation comme un Plug-In de Forte. Visual Age Micro Edition (connu aussi sous le nom de VAME) : Permet de tester des applications J2ME sous WebSphere Studio en ciblant des mulateurs tels que les PocketPC (Compaq iPaq), Palm, etc ... Oracle 9i DS : Un plug-in pour l'IDE d'Oracle, JDeveloper. Eclipse : Cet IDE OpenSource promit un bel avenir intgrera un Plug-In qui permettra de dvelopper des applications J2ME contenant la librairie graphique SWT destination de divers priphriques (PocketPC, Palm, Mobiles, ...) Eclipse : Netbean IDE avec Mobility Pack permet de dvelopper des applications mobiles
Page 22 P12 - IFI

NGUYEN Van Tien

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

3 Travail pratique
3.1 Introduction de l'application pratique
Jai fait un systme qui permet de contrle lordinateur distance. Ce systme se compose de deux sous-systmes : un marche sur le tlphone portable et lautre marche sur lordinateur. Deux sous-systmes se connectent laide de la technologie Bluetooth. Avec ce systme lutilisateur ct de tlphone portable peut contrler le souris de lordinateur dans le cadre disponible du signal de Bluetooth. Ce systme fournit lutilisateur deux fonctionnalit : recherche des ordinateurs et contrle des ordinateurs distance.

3.2

Principe du fonction du systme

La fonction du systme peut tre dcrite comme suit.

Toucher bouton gauche (code = 253)

Dplacer la souris vers gauche

Toucher bouton droit (code = 252)

Dplacer la souris vers droite

Toucher bouton haut (code = 255)

Dplacer la souris vers haut

Toucher bouton bas(code = 254)

Dplacer la souris vers bas

Toucher bouton entre (code = 251) Toucher bouton 2 (code = 2)

Cliquer souris sur gauche

Cliquer souris sur droit

Figure 8 : Principe de fonction du systme Recherche des ordinateurs Le sous-systme sur lordinateur bluetooth marche comme un serveur pour attendre la connexion de tlphone portable. Quand lutilisateur lance le sous-systme ou clique sur le bouton search, le tlphone portable bluetooth va dtecter les ordinateurs qui lattendent. Une liste des ordinateurs trouvs est affiche sur lcran pour que lutilisateur choisisse pour le contrler distance. Contrle de lordinateur distance Lordinateur attente toujours des donnes partir de tlphone portable.
NGUYEN Van Tien Page 23 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Lutilisateur slectionne un ordinateur dans la liste des ordinateurs trouvs. Lutilisateur du tlphone portable touche un bouton sur le mobile phone. Le sous-systme qui marche sur tlphone portable va vrifier si ce bouton est bouton dfinit pour but de contrle distance. Si oui, il va envoyer de donne vers lordinateur. Le sous-systme cot de lordinateur reoit de donne qui est le code de bouton que lutilisateur a touch. Il va le comparer avec les codes dfinis de contrle pour contrler de faon automatique la souris Par exemple, si sur tlphone portable lutilisateur clique sur le bouton gauche (code = 253), lordinateur va dplacer la souris vers gauche. Tous les cas de contrle est reprsents dans la Figure 8

3.3

Processus, technologies et outils choisis pour le dveloppement du systme

Processus Le processus Mobile-D que je prsente dans la partie 2.3 est adapt au le dveloppement de logiciel mobile. Mais pour appiquer ce processus, il faut avoir un lquipe pour que on puisse profiter ses points fort (par exemple techniques de programmation en binme). En fait, dans le cadre de ce TPE, je suis un seul pour construire ce systme avec le temps limit. Je choisis donc le processus que jai dj propos dans le premier semestre pour le dveloppement de ce systme. Ce processus est reprsent dans la Figure 9. Ce processus se compose 6 tapes : Analyse et conception, implmentation, test sur des simulateurs, empaquetage, test avec des quipements rels diffrents et dploiement. Je vais prsenter les technologies et outils que jutilise dans chaque tape du dveloppement. Technologies et outils Tableau 6 : Les outils pour chaque tape tape Analyse et conception Implmentation Rational rose Technologie : J2ME IDE : Netbean Java Bluetooth Development Kit : Bluecove2.0 J2MEUnit J2ME Wireless Toolkit Bluetooth outil

Test dunit Simulateurs Dploiement

NGUYEN Van Tien

Page 24

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre Exigences

Version : finale Date : Le 23 juillet 2007

1. Analyse et conception

Oui Des eureurs ?

2. Implmentation

3. Test sur des mulateurs

Non

4. Empaquetage

Oui

5. Test avec des quipements diffrents

Des eureurs ?

Non 6. Dploiement

Finir

Figure 9 : Processus utilis

3.4

Analyse et conception

Dans cette tape, je analyse et conoit le systme en fonction de la mthodologie de conception dobjet oriente. Il existe beaucoup de outils pour concevoir le systme dobjet orient en UML par exemple Rational Rose, Eclipse UML2, Netbean avec enterprise pack, AgroUML, etc. On doit faire attention que la conception de linterface dutilisateur et des donnes doivent adapter aux caractristiques des quipements mobiles. Tableau 7 : Les outils de conception Outil Rational Rose Modeler Eclipse UML Netbean UML Aris 6 Collaborative suite Enterprise Architects UML Altova UModel Describe
NGUYEN Van Tien

URL http://www306.ibm.com/software/awdtools/developer/rose/modeler/ http://www.eclipseuml.com/ http://uml.netbeans.org/downloads.html http://www.ids-scheer.de/produkte.htm http://www.sparxsystems.com.au/ http://www.altova.com/downloadtrialumodel.html?gclid=CPn zsOubuo0CFQp4TAod4D8mFg http://www.embarcadero.com/products/describe/describe_da tasheet.htm
Page 25 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Objecteering Opentool AgroUML Together Visio System Architect

http://www.objecteering.com/ http://www.tni.fr/ http://www.argouml.org/ http://www.borland.com/together/index.html http://www.microsoft.com/office/visio http://www.uml.de/sa2001.html

Pour mon application, jutilise le logiciel Rational Rose 2002 de lIBM pour la conception.

3.4.1 Cas dutilisation

Search Bluetooth computer

Mobile Phone User Remote control selected computer

Figure 10 : Cas dutilisation

3.4.2 Le diagramme de classe

computer + ComputerBTHandle - Comput erApp

mobile + Bluet oothComput er + MainGUI + MobileBTHandle + MobileMidlet + RemoteControlGUI

Figure 11 : La diagramme de classe

NGUYEN Van Tien

Page 26

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

ComputerBTHandle computerApp : ComputerApp localDevice : LocalDevice server : StreamConnectionNotifier conn : StreamConnection inputStream : InputStream SERVER_UUID : UUID ATTRIBUTE_ID : int processorThread : Thread ComputerBTHandle() run() setupDiscoverable() openService() processRequest() finalize()

ComputerApp computerBTHandle : ComuterBTHandle main()

Figure 12 : Les classes dans paquet computer

NGUYEN Van Tien

Page 27

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

RemoteControlGUI exit : Command back : Command direction : String parentMidlet : MobileMidlet controlledComputer : BluetoothComputer btHandle : MobileBTHandle RemoteControlGUI() BluetoothComputer getControlledComputer() setControlledComputer() paint() commandAction() keyPressed()

MobileMidlet display : Display mainGUI : MainGUI remoteControlGUI : MobileMidlet MobileBTHandle btHandle MobileMidlet() exitMIDlet() viewMainGUI() viewRemoteControlGUI() MobileBTHandle parentMidlet : RemoteControlGUI localDevice : LocalDevice discoAgent : DiscoveryAgent computerList : Vector remoteDevices : Vector connection : StreamConnection os : OutputStream processorThread : Thread SERVER_UUID : UUID ATTRIBUTE_ID : int state : int controlledComputer : BluetoothComputer data : int MobileBTHandle() run() deviceDiscovered() servicesDiscovered() serviceSearchCompleted() searchBluetoothComputer() mySearchDevice() mySearchService() sendAction() processUserEvent() requestSearch() requestControl() requestSend()

MainGUI parentMidlet : RemoteControlGUI exitCommand : Command searchCommand : Command controlCommand : Command computerList : Vector btHandle : MobileBTHandle MainGUI() commandAction() viewBTComputerList() controlComputer()

BluetoothComputer name : String connectionURL : String

Figure 13 : Les classes dans paquet mobile

NGUYEN Van Tien

Page 28

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

3.4.3 Le diagramme de squence

: Mobile Phone User commandAction( )

: MainGUI

: MobileBTHandle

requestSearch( ) set state = SEARCH processUserEvent( ) Check if state = SEARCH

searchBluetoothComputer( ) viewBTComputerList() View found bluetooth computers

Figure 14 : Le diagramme de squence pour recherche des oridinateurs

: Mobile Phone User commandAction( )

: MainGUI

: RemoteControlGUI

: MobileMidlet

: MobileBTHandle

requestControl( )

check if state = CONTROL processUserEvent( )

controlComputer( ) viewRemoteControlGUI( ) RemoteControlGUI() keyPressed() requestSend() check if state = CONTROL processUserEvent( )

sendAction( )

Figure 15 :Le diagramme de squence pour contrle distance


NGUYEN Van Tien Page 29 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

: Bluetooth Computer User main() Run program

: ComputerApp

: ComputerBTHandle

ComputerBTHandle() setupDiscoverable( ) openService( ) processRequest( )

Figure 16 :Le diagramme de squence pour lordinateur (serveur)

3.5

Implmentation

Dans la phase de limplmentation, il y a deux problme principaux : programmation pour la communication entre le tlphone portable et lordinateur ; et la programmation pour le contrle de la souris. Ils sont prsents dans cette partie. Dans cette tape, on peut utiliser la technologies J2ME de Sun ou .Net mobile de Microsoft. Jai choisi la technologie J2ME en utilisant IDE Netbean avec Mobility Pack plugin. Netbean permet de crite le code source en Java, le compiler et ensuit lancer le programme sur les simulateurs qui y sont intgrs.

3.5.1 Introduction gnrale de programmation de Bluetooth en Java


Imaginez que vous pouvez fermer clef et ouvrir votre voiture, actionner votre porte de garage, tlcommander votre tlvision, lecteur DVD, et d'autres appareils avec votre tlphone portable. C'est trs magnifique mais comment le faire ? Aujourd'hui, J2ME (Java 2 Platform, Micro Edition) et Bluetooth sont deux des technologies qui ont obtenu beaucoup de succs dans l'industrie sans fil. J2ME a tous les avantages du langage Java 'criture dune fois et excution n'importe ou'. Bluetooth est une norme sans fil universelle courte porte de connectivit pour les appareils lectroniques et les quipements mobiles. Bluetooth permet aux quipements de communiquer sans fil et J2ME permet d'crire des applications et de les dployer sur les quipements mobiles. Ces deux technologies peuvent travailler ensemble pour construire des applications qui permettent les quipements disponibles Bluetooth de se communiquer de faon que lon souhaitiez. Cette partie concentre sur la programmation des applications sans fil en utilisant J2ME et Bluetooth. Il a pour but de fournir une brve vue d'ensemble du Java APIs pour la technologie sans fil de Bluetooth, et de montrer comment employer ces APIs. API de Java pour Bluetooth
NGUYEN Van Tien Page 30 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Il n'y a aucune eu manire normalise pour le dveloppement des applications de Bluetooth jusqu' lapparition de JSR 82. JSR 82 permet de concentrer sur le dveloppement des applications plutt que le dtail bas niveau de Bluetooth. JSR 82 est un pont entre application et le matriel de bluetooth. Pour le faire, JSR 82 fournit deux paquetages principaux : javax.bluetooth est le noyau dAPI de Bluetooth et ; javax.obex se compose dAPIs servis au protocole dchange dobjet OBEX.

Figure 17 : Architecture de Bluetooth JSR 82 est prvu pour fournir les possibilits suivantes : Dcouvrir les quipements et les services Inscrire les services Etablir les connexions RFCOMM, L2CAP, et OBEX entre les quipements Utiliser ces connexions pour envoyer et recevoir des donnes. Grer et contrler les connexions de communication Fournir la scurit pour ces activits.

Les APIs sont conus pour que les dveloppeurs puissent utiliser le langage Java pour construire de nouveaux profils de Bluetooth sur ces APIs tant que les spcifications de couche de noyau ne changent pas. JSR 82 comprend les APIs qui sont utiliss pour le fonctionnement dOBEX et L2CAP de sorte que de futurs profils de Bluetooth puissent tre implments dans Java. La Figure 18 indique la place approprie des APIs pour quelles soient adaptes aux spcifications de larchitecture de CLDC/MIDP. Programmation des applications
NGUYEN Van Tien Page 31 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Chaque application Bluetooth se compose de 5 parts suivants : linitialisation de stack, la gestion de l'quipement, la dcouverte de l'quipement, la dcouverte du service, la comunication. Les APIs de chaque part sont utiliss dans le systme que je construis. La partie suivant va prsenter comment utiliser ces APIs dans ce systme.

Figure 18 : APIs de Bluetooth en architecture de J2ME Programmation Bluetooth sur lordinateurs Pour le tlphone portable soutenant Bluetooth, JSR82 peut tre intgr et il est disponible pour que le dveloppeur puisse utiliser. Mais pour utiliser JSR sur loridinateur, il faut avoir un Java Bluetooth Development Kit. Java Bluetooth Development Kit founit des APIs de programmation de Bluetooth sur ordinateur. Tableau 8 : Java Bluetooth Development Kit Plateformes Nom de socite javax.bluetoot javax.obex Systme Java h assistant assistant dexpoitation Atinav Avetana Oui Oui Oui Oui J2SE, J2ME J2SE Win-32, Linux, Pocket PC Win-32, Mac OS X, Linux, Pocket PC WinXP SP2 WinXP SP2 beaucoup

Blue Cove Electric Blue Harald

Oui Oui Non

Non Oui Non

J2SE J2SE Des platesformes assistant javax.comm Des platesformes assistant javax.comm J2SE, J2ME

JavaBluetooth.org

Oui

Non

beaucoup

Rococo

Oui

Oui

Linux, Palm OS

Jai chosi Bluecove 2.0 parce que cest gratuit.


NGUYEN Van Tien Page 32 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

3.5.2 Programmation pour la communication entre tlphone portable et l'oridinateur


Dans ce systme le tlphone portable est programm comme client, cependant lordinateur est programm comme serveur. Initialisation de stack Stack de Bluetooth est responsable de contrler lquipement Bluetooth, on doit donc initialiser le stack avant que vous puissiez faire toute autre chose. ... // set the port number BCC.setPortNumber("COM1"); // set the baud rate BCC.setBaudRate(50000); // set the connectable mode BCC.setConnectable(true); // set the discovery mode to Limited Inquiry Access Code BCC.setDiscoverable(DiscoveryAgent.LIAC); ... La gestion de l'quipement Les API de Java pour Bluetooth fournissent deux classes LocalDevice et RemoteDevice qui sont destines la gestion de lquipement. On utilise la classe LocalDevice pour recueillir des informations concernant cet quipement telle que : type dquipement, type de services fournis. Par exemple : ... // retrieve the local Bluetooth device object LocalDevice local = LocalDevice.getLocalDevice(); // retrieve the Bluetooth address of the local device String address = local.getBluetoothAddress(); // retrieve the name of the local Bluetooth device String name = local.getFriendlyName();

Cependant, on utilise la classe RemoteDevice pour collecter des informations de lquipement distance (dans le cadre du signal Bluetooth). Par exemple : ... // retrieve the device that is at the other end of // the Bluetooth Serial Port Profile connection, // L2CAP connection, or OBEX over RFCOMM connection RemoteDevice remote = RemoteDevice.getRemoteDevice( javax.microedition.io.Connection c); // retrieve the Bluetooth address of the remote device String remoteAddress = remote.getBluetoothAddress(); // retrieve the name of the remote Bluetooth device String remoteName = local.getFriendlyName(true); ... La classe de RemoteDevice fournit galement des mthodes pour authentifier, autoriser, ou chiffrer des donnes transfres entre les quipements locaux et distance. La dcouverte de l'quipement

NGUYEN Van Tien

Page 33

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

J2ME fournit la classe DiscoveryAgent et inteface DiscoveryListener pour trouver les quipements et les accder. Lquipement Bluetooth peut utiliser la classe DiscoveryAgent pour obtenir la liste dquipements accessibles. La mthode de DiscoveryAgent.startInquiry place le dispositif dans un mode d'enqute. Par exemple : ... // retrieve the discovery agent DiscoveryAgent agent = local.getDiscoveryAgent(); // place the device in inquiry mode boolean complete = agent.startInquiry(); Quand l'enqute est accomplie ou annule, DiscoveryListener.inquiryCompleted est appel. On utilise la mthode DiscoveryAgent.retrieveDevices pour avoir la liste dquipement, par exemple : ... // retrieve the discovery agent DiscoveryAgent agent = local.getDiscoveryAgent(); // return an array of pre-known devices RemoteDevice[] devices = agent.retrieveDevices(DiscoveryAgent.PREKNOWN); ... La dcouverte du service Avant qu'un service puisse tre dcouvert, il doit d'abord tre enregistr sur le serveur. Le serveur est responsable de : Crer un service record qui dcrit le service offert Ajouter un service record la base de donnes de dcouverte du service du serveur (SDDB), il est visible et disponible pour les clients potentiels Enregistrer les mesures de scurit de Bluetooth lies au service Accepter les connexions en provenance du client. Mettre jour un service record dans la base de donne SDDB. Supprimer un service record

Pour crer un nouveau service record qui reprsente les service, on appelle Connector.open avec un argument d'URL de connexion de serveur : ... StreamConnectionNotifier service = (StreamConnectionNotifier) Connector.open("someURL"); Obtenir le service record cr par lquipement de serveur : ServiceRecord sr = local.getRecord(service); Indiquez que le service est prt accepter une connexion du client : StreamConnection connection = (StreamConnection) service.acceptAndOpen(); Quand le serveur est prt quitter, fermer la connexion et enlever le service record : service.close(); ... La communication : transmission entre le tlphone portable et loridinateur

NGUYEN Van Tien

Page 34

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Pour que lquipement local utilise le service sur lquipement distance, tous les deux doivent partager un protocole commun de communication. Le serveur (ordinateur) doit : Construire lURL qui indique comment connecter serveur et le stocke dans service record Rendre le service record disponible au client Accepter la connexion partir du client Envoyer et recevoir des donnes du et au serveur ... // assuming the service UID has been retrieved String serviceURL = "btspp://localhost:"+serviceUID.toString()); // more explicitly: String ServiceURL = "btspp://localhost:10203040607040A1B1C1DE100;name=SPP Server1"; try { // create a server connection StreamConnectionNotifier notifier = (StreamConnectionNotifier) Connector.open(serviceURL); // accept client connections StreamConnection connection = notifier.acceptAndOpen(); // prepare to send/receive data byte buffer[] = new byte[100]; String msg = "hello there, client"; InputStream is = connection.openInputStream(); OutputStream os = connection.openOutputStream(); // send data to the client os.write(msg.getBytes()); // read data from client is.read(buffer); connection.close(); } catch(IOException e) { e.printStackTrace(); } ... Pour tablir la connexion au serveur, le client (tlphone portable) doit : Initialiser la dcouverte de service pour rendre le service record Construire la connexion URL utilisant le service record Ouvrir une connexion au serveur Envoyer et recevoir des donnes du et au serveur ... // (assuming we have the service record) // use record to retrieve a connection URL String url = record.getConnectionURL( record.NOAUTHENTICATE_NOENCRYPT, false); // open a connection to the server StreamConnection connection = (StreamConnection) Connector.open(url); // Send/receive data try { byte buffer[] = new byte[100]; String msg = "hello there, server"; InputStream is = connection.openInputStream(); OutputStream os = connection.openOutputStream(); // send data to the server
NGUYEN Van Tien Page 35 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

os.write(msg.getBytes); // read data from the server is.read(buffer); connection.close(); } catch(IOException e) { e.printStackTrace(); } ...

3.5.3 Programmation pour le contrle automatique de la souris


Pour contrler de faon automatique la souris, on utilise la classe java.awt.Robot. chaque fois lordinateur reoit la donne qui est le code de bouton touch partir de tlphone portable, il va analyse cette donne pour avoir une action correspondante sur la souris. Cela est ralise de faon automatique par mthode controlMouse comme suit. private void controlMouse(int actionCode) { Robot controller = new Robot(); MouseEvent mouse; int x=mouse.getX();//current X int y=mouse.getY();//current Y switch(actionCode){ case 253 : //left controller.mouseMove(x-1, y); break; case 252 : //right controller.mouseMove(x+1, y); break; case 255 : //above controller.mouseMove(x, y+1); break; case 254 : //below controller.mouseMove(x, y-1); break; case 251 : //left click controller.mousePress(MouseEvent.BUTTON1); break; case 2 : //right click controller.mousePress(MouseEvent.BUTTON2); break; } }

3.6

Test sur les simulateurs diffrents

Dans ce systme, il y a deux tapes test : test de la communication entre tlphone portable et lordinateur et test du contrle de la souris. Le test de la communication se compose de types de test : test sur les simulateurs et test sur lquipement rel. Test sur les simulateurs diffrents Aprs la compilation avec succs, on peut choisir quelques simulateurs et puis lancer l'application sur chacun des simulateurs pour la tester. Si on dtecte ses erreurs, on retourne ltape implmentation ou conception. Dans cette tape, on utilise des simulateurs de Wireless J2ME Toolkit pour tester si lapplication marche bien sous la plate-forme commune de modlisation dun tlphone portable. Puisque chaque famille de tlphone mobile a des caractristiques propres, une application peut bien marcher sur une machine mais pas sur lautre. On utilise donc ensuite des simulateurs de
NGUYEN Van Tien Page 36 P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

chaque marque de tlphone mobile (Nokia, Samsung, Siemens, Sonny Errisson, etc.) pour savoir si lapplication peut marcher sous la plate-forme de chaque famille de tlphone mobile. Cela a pour but dconomiser le temps de tester sur lquipement rel car des simulateurs de chaque marque est plus similaire son environnement rel que les autres simulateurs. Quand on a install un simulateur sur ordinateur, NetBean va le dtecter. Cela veut dire que l'on peut tester lapplication sur tous les simulateurs en utilisant NetBean. Test sur lquipement rel Aprs le dploiement sur le tlphone mobile, on doit tester lapplication pour garantir qu'elle marche bien sur une machine relle. S'il y a des erreurs, on a besoin de retourner ltape de limplmentation ou ltape de conception pour la modification et la correction. Tableau 9 : Le rsultat dest test Phone Ordinateur Simulateur - simulateur Nokia 6131 PC Bluetooth Dongle Nokia 6131 Bluetooth Portable Nokia 7610 Bluetooth Portable Dtection lquipement Oui Oui Oui Oui de Transmission de donne Oui Une fois Une fois Non

Test du contrle de la souris sur lordinateur : a marche bien en utilisant la class java.awt.Robot. La communication entre le tlphone portable et lordinateur marche de faon non stable, le systme marche donc de faon non stable. Lordinateur ne reoit quune fois la donn partir de tlphone mobile, la souris est donc contrl une fois. Ensuite, la connexion est coupe.

3.7

Empaquetage et dploiement

Aprs avoir test avec succs sur des simulateurs diffrents, on a besoin de crer des fichiers JAR et JAD de lapplication pour dployer sur lquipement rel. NetBean peut le faire automatiquement et on peut trouver ces deux fichiers dans le sous-rpertoire ../dist dans rpertoire de projet. Avec Wireless J2ME Toolkit, on aura ces deux fichier aprs avoir cliqu sur le menu Project/Package/Create Pakage (ou Create Obfuscated Pakage) . Pour dployer une application sur un tlphone portable, on utilise un rseau entre ordinateur et tlphone portable par USB ou Bluetooth ou autre techonologie pour recopier les fichiers .JAR et .JAD de lapplication vers le tlphone mobile. La plupart de tlphones mobiles disponible Java permettent d'installer J2ME application sous forme de .JAR. Cest facile de cliquer sur le fichier .JAR pour que tlphone mobile installe automatiquement cette application. Jai install le programme laide de Bluetooth connexion.

3.8

valuation du processus propos

Avantages Cycle de logiciel est courte, elle est donc adapte au logiciel mobile Facile appliquer : les tapes sont claires avec des outils soutenants Peut tre appliqu pour les applications de la taille petite dvelopps par une seule personne ou petite quipe. Dsavantages Il naborde pas la faon de communication avec le client -> difficile adapter au le dveloppement des applications des entreprises

NGUYEN Van Tien

Page 37

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

NGUYEN Van Tien

Page 38

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

4 Conclusion et perspective
Maintenant, le tlphone portable joue un rle de plus en plus important dans la vie quotidienne. Il est ncessaire davoir une mthode pour le dveloppement du logiciel mobile. Mobile-D est une mthode propose par VTT [10] pour rsoudre ce problme. En profitant les avantages de RUP, XP et Crystal ; Mobile-D est bien adapt au logiciel mobile qui est dvelopp par petit quipe (<20 personnes). Les avantages de cette mthode est la cycle courte afin de satisfaire les exigences des utilisateurs et le changement rapide de la technologie mobile. Autre point fort de cette mthode est lapproche de programmation en binme. Dans lavenir, je pense que cest intressant davoir des petits quipes des tudiants qui utilise Mobile-D pour explorer la relle puissance de cette mthode dans le dveloppement du logiciel mobile. J2ME est une bonne slection parmi plusieurs technologies pour les applications mobiles. Avec Netbean, il est facile de dvelopper des logiciels mobiles qui crits en J2ME. Ds sa naissance, la technologie Bluetooth a beaucoup dapplications utiles. Dans ce TPE, jutilise cette technologie en faisant la combinaison avec J2ME pour construire un systme qui permet de contrler lordinateur distance partir de tlphone portable. Il nest pas trs difficile pour trouver que le dveloppement du logiciel mobile a besoin de beaucoup defforce pour le test intgration. Dans le future, on peut ajouter les nouvelles fonctions pour le systme de contrle de lordinateur distance : afficher lcran de lordinateur sur le tlphone portable, choisir une application particulire pour contrler (Power point, Winamp, etc.). Cela peut tre ralis en quipe en appliquant la mthode Mobile-D.

NGUYEN Van Tien

Page 39

P12 - IFI

Outils et mthodes pour le dveloppement des applications embarques TPE : Deuxime semestre

Version : finale Date : Le 23 juillet 2007

Rfrences
[1] [2] [3] Real-Time Concepts for Embedded Systems Qing Li with Caroline Yao, CMP Books 2003. Introduction to Embedded Systems, ICS 212 Winter 2002 Prof. R. Gupta http://www1.ics.uci.edu/~rgupta/ics212/w2002/intro.pdf Les systmes embarqus : une introduction Patrice Kadionik, Matre de Confrences l'ENSEIRB, Dcembre 2005 http://www.enseirb.fr/cosynux/grand_public/embedded_intro_2006.pdf [4] Programmation sur PDA http://www.kallisys.com/files/newton/Waba/ECE-200211/Programmation_sur_PDA.pdf [5] J2ME Wireless toolkit http://java.sun.com/products/sjwtoolkit/ [6] [7] Sun ONE Studio, Mobile Edition http://wwws.sun.com/software/sundev/jde/studio_me/index.html Nokia Developer's Suite http://forum.nokia.com/ [8] Netbean 5.0 http://www.netbeans.org/downloads/ [9] Siemens Mobility Toolkit http://www.siemens-mobile.de/ [10] [11] [12] Mobile-D http://agile.vtt.fi/mobiled.html Keynote: Mobile software development - the business opportunity of today, Pekka Abrahamsson J2ME tutorial http://developers.sun.com/mobility/midp/articles/wtoolkit/ [13] Using the Java APIs for Bluetooth Wireless Technology, Part 1 - API Overview, C.Enrique Ortiz http://developers.sun.com/mobility/apis/articles/bluetoothintro/ JSR-000082 JavaTM APIs for Bluetooth http://jcp.org/aboutJava/communityprocess/final/jsr082/index.html AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE, Pekka Abrahamsson http://www.mit.jyu.fi/opetus/kurssit/jot/2005/kalvot/agile%20sw%20development.pdf

[14] [15]

NGUYEN Van Tien

Page 40

P12 - IFI