• Aucun résultat trouvé

Plateforme logicielle

Dans le document Intégration d'un client mobile à CTH (Page 83-87)

Chapitre III : Environnements mobiles !!!!!!!!

5.2 Plateforme logicielle

Après avoir présenté les composants essentiels d’un téléphone mobile, nous abordons dans cette section le logiciel nécessaire à la gestion et à la coordination de ces composants, le système d’exploitation (OS : Operating System). Nous présentons ensuite les principales plateformes de développement pour les appareils mobiles.

5.2.1 Système d’exploitation

Tout comme dans le cas des ordinateurs personnels, le choix du système d’exploitation est très important car il détermine quelles autres technologies ou logiciels peuvent coexister sur l’appareil. Certains systèmes d’exploitation sont des systèmes exclusifs, souvent détenus par des constructeurs d’appareils téléphoniques, alors que d’autres font l’objet d’une licence d’utilisation par plusieurs constructeurs. La majorité des appareils vendus aujourd’hui sont équipés de systèmes d’exploitation propriétaires développés par le constructeur de l’appareil

téléphonique; cependant, le pourcentage d’appareils équipés de systèmes d’exploitation sous licence est en évolution constante.

Ces systèmes fournissent des interfaces de programmation d’applications (API: Application Programming Interface) et des outils de développement (SDK : Software Development Kit) adaptés. Afin de faciliter les tests et le déboguage les applications sur les appareils réels, ses plateformes sont accompagnées d’un émulateur qui permet de déployer et de tester le code des applications sans avoir physiquement recours au téléphone mobile.

Dans ce qui suit, nous décrivons les différents systèmes d’exploitation tout en précisant leurs caractéristiques et les outils de développement disponibles sur ces plateformes.

Symbian OS. Symbian OS a été développé par Symbian, un consortium regroupant les

plus grands constructeurs d’appareils mobiles : Nokia, Ericsson, Sony Ericsson et Samsung. Basé sur le système EPOC, Symbian OS définit plusieurs modèles d’interface (UI : User Interface) pour différents types d’appareil ; par exemple, Crystal pour les téléphones classiques et les série 60 pour les téléphones intelligents (smartphones). Symbian OS est un système d’exploitation en temps réel supportant le multithreading. Il permet la gestion de la mémoire, l’ordonnancement des processus et des threads, la communication interprocessus, la gestion des ressources propres au processus ou au threads et le traitement des erreurs. Il inclut également des services de messagerie tel que le SMS (Short Message Service), des services multimédia et des protocoles de transmission de données. La dernière version de Symbian OS et la 9.

Etant implémenté en C++, Symbian OS supporte naturellement le développement d’applications C++. Il gère également les applications Java mobiles (J2ME : Java 2 Micro Edition). Les principaux constructeurs d’appareils utilisant Symbian OS (Nokia, Motorola) fournissent aussi des SDK spécifiques à leurs téléphones

Windows Mobile. Microsoft Windows Mobile inclut un système d’exploitation basé sur

Windows CE, des outils de développement et un environnement d’exécution et de programmation : .Net Compact Framework.

Le développement d’applications utilise les outils Visual Studio .Net et les programmeurs peuvent choisir entre C# ou Visual Basic. Aussi, il existe des machines virtuelles Java permettant d’exécuter une application J2ME sous Windows CE. Ainsi, MicroJBlend, une extension de la KVM (Kilobyte Virtual Machine) de Sun, propose nativement ce genre de solution.

Embedded Linux. De plus en plus de constructeurs (Motorola, NEC, PalmSource)

adoptent une version de Linux adaptée aux environnements embarqués : Embedded Linux. Ce système supporte le multithreading et le temps réel.

Le développement d’application se fait en C/C++.

Le système Symbian OS tient la place de leader car il équipe 60% des téléphones intelligents contre moins de 20% pour Microsoft Mobile et moins de 10% pour Linux [MAC05]

5.2.2 Plateformes de développement

Java. La plateforme Java est constituée d’un langage de programmation et d’un

environnement d’exécution. Elle comprend trois éditions : l’édition entreprise (J2EE : Java 2 Entreprise Edition) dédiée aux serveurs, l’édition standard (J2SE : Java 2 Standard Edition), destinée aux ordinateurs de bureau et l’édition micro (J2ME : Java 2 Micro Edition) adaptée aux appareils à faible ressource tels que les téléphones ou les PDA. Elle inclut en plus une plateforme destinée à la programmation de cartes à puce, Java Card. Cette classification vise à mieux adapter l’environnement de développement à l’appareil cible et à améliorer les performances des applications; en effet, un téléphone portable ne peut pas traiter l’information de la même façon qu’un serveur.

La quasi-totalité des téléphones portables, mêmes les modèles les plus anciens utilisant un système d'exploitation propriétaire, embarquent une machine virtuelle Java. Comme les appareils mobiles possibles sont très hétérogènes, J2ME définit plusieurs spécifications et s’appuie sur une architecture modulaire composée de configurations et de profiles.

Les configurations définissent les caractéristiques de base d'un environnement d'exécution et se composent d'une machine virtuelle et d'un ensemble d'API de base. Deux configurations sont actuellement définies : la CDC (Connected Device Configuration) adaptée aux terminaux relativement puissants comme les PDA ou les smartphones et utilisant une machine virtuelle optimisée appelée CVM (Compact Virtual Machine) ; et la CLDC (Connected Limited Device Configuration) dédiée aux appareils à très faibles capacités comme les téléphones mobiles et utilisant une machine virtuelle allégée KVM.

Les profiles se composent d'un ensemble d'API spécifiques et doivent être associés à une configuration. Sun Microsystems propose deux profiles de référence : le Profile Foundation

destiné à la configuration CDC et le profile MIDP (Mobile Information Device Profile) destiné à la configuration CLDC.

La figure III.1 résume les différentes éditions et les diverses couches de J2ME.

Figure III.6 Plateforme Java

J2ME est un sous-ensemble de la spécification Java 2 Standard Edition, et comprend des ajouts spécifiques aux appareils mobiles. J2ME permet ainsi de gérer l’interface utilisateur, les mécanismes de stockage permanent, l’accès au réseau, le multithreading et les applications audio et vidéo. De plus, des paquetages additionnels peuvent être ajoutés mais ne garantissent pas la portabilité de l’application. Néanmoins, J2ME ne supporte pas les chargeurs de classes, les appels réflexifs et la finalisation.

Autres plateformes. Si la plateforme Java comprend un environnement d’exécution

autonome et indépendant du système d’exploitation, la plupart des autres plateformes sont associées à un système d’exploitation propriétaire, comprenant un environnement d’exécution natif et fournissant des fonctionnalités additionnelles, telles que des API pour les appareils photos ou la messagerie.

Outre les kits de développement logiciel (SDK) propriétaires spécifique à chaque constructeur, d'autres technologies essayent d’adopter des approches indépendantes du matériel ; par exemple, le Microsoft .NET Compact Framework est un environnement permettant d'exécuter des programmes sur divers périphériques informatiques à ressources

limitées : assistants numériques personnels (PDA, Personal Data Assistant) tels que le Pocket PC, téléphones mobiles, décodeurs, périphériques informatiques automobiles et périphériques personnalisés. Cependant, ces périphériques doivent intégrer un système d'exploitation Windows CE .NET.

6 Limitations des environnements mobiles

Après avoir exposé les concepts et les caractéristiques des réseaux mobiles et étudié les propriétés des téléphones mobiles, nous pouvons déduire leurs limitations.

Dans le document Intégration d'un client mobile à CTH (Page 83-87)

Documents relatifs