1.21k likes | 1.34k Views
Java mobile. Hugues Sansen. Hugues Sansen. Fondateur de la société Peer2Phone, éditeur du logiciel de convergence fixe mobile GoSIP et du portail de téléphonie éponyme ( www.go-sip.com ). Fondateur et CEO de SHANKAA, opérateur télécoms, Secrétaire général du club des utilisateurs Java.
E N D
Java mobile Hugues Sansen Formation ITIN
Hugues Sansen • Fondateur de la société Peer2Phone, éditeur du logiciel de convergence fixe mobile GoSIP et du portail de téléphonie éponyme (www.go-sip.com). • Fondateur et CEO de SHANKAA, opérateur télécoms, • Secrétaire général du club des utilisateurs Java. • Conseil en stratégie et en stratégie d’innovation. Formation ITIN
Objectif de ce cours • à la fin de ce cours : • vous connaîtrez les solutions pour développer des applications Java sur les mobiles, l’architecture de la technologie Java Micro Edition et l’API de base MIDP. • Vous explorerez les possibilités de MIDP au cours du développement d’une MIDlet, application Java ME pour mobile . Formation ITIN
Agenda • Quelles sont les performances Java de votre téléphone : TastePhone • notre première MIDlet, Hello world. • les solutions pour développer en Java sur mobile, • J2ME : • CLDC • CDC • la machine virtuelle CLDC HotSpot • MIDP • Faisons évoluer notre application. Formation ITIN
Testez les capacités java de votre téléphone • TastePhone de Thibaut Régnier : L’application de référence mondiale pour tester les capacités Java de votre téléphone : • sur directement sur wap.club-java.com • ou www.club-java.com/TastePhone/TastePhone.jad • ou recherchez votre mobile sur : • http://www.club-java.com/TastePhone/J2ME/MIDP_Benchmark.jsp Formation ITIN
Notre première application J2MEHello World • Chargez J2ME et la documentation des APIs correspondantes • Chargez NetBeans, avec l’extension pour mobile. • Chargez le Wireless Toolkit : WTK… • Créez un « projet mobile » et une « application mobile ». • Regardez le programme Hello proposé en exemple. • Testez votre application dans l’émulateur. • Chargez la MIDlet sur votre mobile. Formation ITIN
Notre première application J2MEHello World • examinons le code Formation ITIN
* * HelloMidlet.java * Created on 1 octobre 2006, 12:09 */ package hello; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * * @author Hugues Sansen */ public class HelloMidlet extends MIDlet implements CommandListener { /** Creates a new instance of HelloMidlet */ public HelloMidlet() { } private Form helloForm; private StringItem helloStringItem; private Command exitCommand; /** This method initializes UI of the application. */ private void initialize() { // Insert pre-init code here getDisplay().setCurrent(get_helloForm()); // Insert post-init code here } /** Called by the system to indicate that a command has been invoked on a particular displayable. * @param command the Command that ws invoked * @param displayable the Displayable on which the command was invoked */ public void commandAction(Command command, Displayable displayable) { // Insert global pre-action code here if (displayable == helloForm) { if (command == exitCommand) { // Insert pre-action code here exitMIDlet(); // Insert post-action code here } } // Insert global post-action code here } /** * This method should return an instance of the display. */ public Display getDisplay() { return Display.getDisplay(this); } /** * This method should exit the midlet. */ public void exitMIDlet() { getDisplay().setCurrent(null); destroyApp(true); notifyDestroyed(); } Formation ITIN
/** This method returns instance for helloForm component and should be called instead of accessing helloForm field directly. * @return Instance for helloForm component */ public Form get_helloForm() { if (helloForm == null) { // Insert pre-init code here helloForm = new Form(null, new Item[] {get_helloStringItem()}); helloForm.addCommand(get_exitCommand()); helloForm.setCommandListener(this); // Insert post-init code here } return helloForm; } /** This method returns instance for helloStringItem component and should be called instead of accessing helloStringItem field directly. * @return Instance for helloStringItem component */ public StringItem get_helloStringItem() { if (helloStringItem == null) { // Insert pre-init code here helloStringItem = new StringItem("Hello", "Hello, World!"); // Insert post-init code here } return helloStringItem; } /** This method returns instance for exitCommand component and should be called instead of accessing exitCommand field directly. * @return Instance for exitCommand component */ public Command get_exitCommand() { if (exitCommand == null) { // Insert pre-init code here exitCommand = new Command("Exit", Command.EXIT, 1); // Insert post-init code here } return exitCommand; } public void startApp() { initialize(); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Formation ITIN
Regardons les exemples • Créez un projet, importez un WT project Formation ITIN
Regardons les exemples • Dans le WTK choisissez l’application BluetoothDemo Formation ITIN
lancez l’application deux fois, en mode serveur et en mode client dans le serveur, sélectionnez les images à publier, dans le client, lancez une recherche, acceptez une des images proposées. Regardons les exemples Formation ITIN
Regardons les exemples • Chargez l’exemple 3D demo • lancez le jeux de la vie Formation ITIN
Java mobile, introduction • Il existe plusieurs options pour déployer du JAVA embarqué: • J2ME : SUN, Esmertec etc.. • votre machine virtuelle ex : • ewe (www.ewe.com) machine virtuelle opensource utilisée dans les ordinateurs de voiture (GM) et dans Peer2Phone (même environnement sur PC, Mac, Linux, Windows mobile), permet d’utiliser des dll. • Mysaifu JVM (windows mobile), GPLv2 • IST (http://www.ist-eu.com) : fournit des micro JVM personnalisées, XML est intégré dans la VM pour de meilleures performances. Formation ITIN
Java Mobile Edition, SUN Formation ITIN
Java Mobile Edition • Java ME a été conçu par SUN pour fonctionner dans les contraintes imposées par les petits appareils et les mobiles. Il retient les bases de Java et permet de développer des applications sur des appareils limités en taille mémoire, en capacité de calcul, de visualisation et de batterie. • La plate-forme Java ME regroupe des technologies et des spécifications afin de construire un environnement d’exécution pour répondre aux besoins d’appareils ou de marchés particuliers. Ceci permet la diffusion du même environnement sur différentes plates-formes afin de permettre une industrialisation du déploiement d’applications dans des environnements différents. Formation ITIN
Java Mobile Edition • La technologie Java Mobile Edition repose sur trois éléments : • Une configuration offre un ensemble de base de librairies et de capacité de machine virtuelle pour une large gamme d’appareils. • un profile est un ensemble d’API qui s’applique à une gamme plus étroite d’appareils. • des paquetages optionnels, qui regroupent un ensemble d’API spécifiques à une technologie. Formation ITIN
Java Mobile Edition • La plate-forme Java ME a été divisée en deux types de configurations : • l’une pour les petits appareils mobiles, appelée « Connected Limited Device Configuration » (CLDC) • et l’autre pour des appareils mobiles plus évolués comme les smart phones et les set-top box (boîtier canal plus) appelée « Connected Device Configuration » (CDC). Formation ITIN
Java Mobile Edition, CLDC • La configuration pour les appareils mobiles à ressources réduites est appelée Connected Limited Device Configuration (CLDC). Elle a été spécifiquement conçue pour remplir les besoins d’exécution d’applications sur les appareils limités en mémoire, capacité de calcul et capacité graphique. Sur les mobiles on associe généralement le Mobile Information Device Profile (MIDP) qui fournit un environnement complet au développement d’applications pour les téléphones mobiles. Les applications reposent ainsi sur la configuration et le profile. • CLDC et MIDP représentent l’environnement le plus courant et les applications de cet environnement sont appelées MIDlet. Une MIDlet est une application Java dont le champ peut couvrir les jeux, les applications métier comme d’autres domaines (plan de métro interactif, calcul de marée, interaction avec un serveur Bluetooth etc.). • Ces applications peuvent ainsi être exploitée sur toutes les plates-formes qui respectent les spécifications Java ME. • Une MIDlet peut-être téléchargée depuis un serveur accessible par WAP, Bluetooth etc. • wap.club-java.com • les bornes Velib munies de Bluetooth. Formation ITIN
Java Mobile Edition, CLDC • La technologie J2ME est délivrée en API appelée configurations, profils et paquetages optionnels. L’environnement d’une application J2ME comprends à la fois : • une configuration comme CLDC • et un profil comme Mobile Information Device Profile (MIDP). • De plus des paquetages additionnels apportent des fonctionnalités spécifiques supplémentaires comme • le wireless messaging, • la capture multimédia et le playback. • La possibilité de choisir parmi différentes API permet aux concepteurs et aux développeurs d’applications d’adapter les capacités de leur logiciels à celles des machines cibles. Ils peuvent utiliser des API qui leur donnent un accès facilité aux composants de certains types d’appareils, sans la surcharge d’API conçues pour des fonctionnalités que l’appareil ne supporte pas. Formation ITIN
Java Mobile Edition, CLDC • La configuration CLDC • Une configuration apporte les librairies de base et les fonctionnalités de la machine virtuelle nécessaire à l’implantation de chaque environnement J2ME. • Quand il est couplé à un ou plusieurs profils, le « Connected Limited Device Configuration » donne au développeur une plate-forme solide pour la création d’applications d’électronique grand public et d’applications embarquées. • Profils • Un profil est une ensemble d’API standard qui supportent une catégorie déterminée d’appareils à l’intérieur d’une configuration donnée. • Un profil spécifique est couplé à une configuration comme CLDC pour apporter un environnement Java pour une classe donnée d’appareil. • MIDP est un profil pour mobile qui avec CLDC apporte un environnement parfaitement adapté au développement d’applicaiton sur mobile. • Paquetages Optionnels • Un paquetage optionnel est un ensemble d’APIs adapté à une technologie spécifique qui étendent les fonctionnalités. • CLDC supporte un certain nombre de paquetages optionnels qui permettent au concepteur d’applications d’adapter précisément les besoins de son application aux ressources physiques disponibles. Les paquetages optionnels de CLDC incluent : • Wireless Messaging API (WMA) • et Mobile Media API (MMAPI). Formation ITIN
Java Mobile Edition, CLDC • Objectifs • La spécification CLDC a pour but de standardiser une plate-forme Java hautement portable avec une empreinte minimale pour les appareils connectés à ressources contraintes. • Il est développé au travers du « Java Community Process (JCP) » qui regroupe 500 membres dont des opérateurs de téléphonie mobile, des constructeurs de téléphones mobiles et des éditeurs de logiciels. • CLDC a été conçu en gardant les objectifs suivant à l’esprit : • La réduction de l’empreinte à un niveau acceptable pour un déploiement mass-market, • La facilitation de la portabilité par l’abstraction des opérations natives du système au travers d’API standardisées. • Étendre les fonctionnalités en permettant un téléchargement dynamique d’applications. Formation ITIN
Java Mobile Edition, CLDC • Target Devices • La configuration CLDC est conçue pour apporter les avantages de la plate-forme Java aux appareils connectés dotés de capacités de calcul et graphiques limités : les téléphones mobiles, les pageurs, les organiseurs personnels de base et les équipement machine-to-machine. • De plus la configuration CLDC peut aussi être déployée sur les appareils de maisons comme les set-top boxes TV et les terminaux point de vente. Les cibles ont généralement les capacités suivantes : • un processeur 16-bit or 32-bit cadencés à 16MHz ou plus, • au moins 160kB de mémoire non volatile dédiée aux librairies CLDC et à la machine virtuelle • au moins 192kB de mémoire disponible pour la plate-forme Java, • une consommation électrique faible, généralement alimenté par batterie, • une connectivité à un type donné de réseau, généralement sans fil et intermittente avec une bande passante limitée. Formation ITIN
L’implantation CLDC HotSpot de SUN • La première génération de machines virtuelles du CLDC et dont les développement se poursuivent, était la KVM (Kilo Virtual Machine). • Sun a développé une nouvelle machine virtuelle optimisée pour les déploiement commerciaux appelée la Sun CLDC HotSpot Virtual Machine. Elle a pour objectif d’améliorer les performances en minimisant l’empreinte mémoire. Elle apporte un gain en performance doublé par rapport à la KVM tout en réduisant l’empreinte mémoire. • Elle respecte les spécification CLDC et inclut un certain nombre de fonctionnalités brevetées qui accélèrent l’exécution et utilise les ressources plus efficacement. Elle est disponible sur un certain nombre de machines ce qui permet aux fabricants de matériels de réduire substantiellement les délais de mise sur le marché. Formation ITIN
CLDC HotSpot Implementation de SUN • J2ME s’inscrit dans la famille des éditions Java comme J2SE et J2EE. • La KVM (kilo VM) est la machine virtuelle originellement déployée sur les petits appareils à batterie. • La KVM supportait le « Mobile Information Device Profile (MIDP) » Formation ITIN
Les challenges de la VM CLDC HotSpot de SUN • Vitesse contre empreinte. Il y a un conflit entre la vitesse d’exécution et les besoins en mémoire (empreinte mémoire). Comment concevoir un compilateur dynamique rapide sans faire exploser les coûts de mémoire? Le portage tel quel de la technologie HotSpot disponible sur les PC auraient résulté en une empreinte mémoire trop importante pour les appareils grand public à batterie. • De la bonne gestion du cache. La mémoire augmente le coût des appareils tandis que la loi de Moore tente les développeurs à gaspiller de la mémoire. Plus de mémoire augmente aussi la consommation des appareils avec un impact important sur la batterie. L’implantation du CLDC HotSpot a eu pour principal objectif de conception de garantir une utilisation optimale du cache de telle façon que la pile puisse tenir dans le cache primaire (dans le processeur) ou additionnel. Cette disposition améliore la tenue de la batterie en évitant les écritures et lectures sur la mémoire principale. • Les objectifs de conception d’une bonne gestion du cache impliquent les stratégies suivantes: • concevoir une machine virtuelle avec des objets les plus compacts possibles, • l’utilisation d’un ramasse-miettes générationnel qui ne touche la mémoire que localement, • garder le code compilé dans le tas des objets ou il sera facilement repositionné et effacé • Améliorer la durée de la batterie. L’amélioration de la vitesse d’exécution de la machine HotSport du CLDC a un impact direct sur la durée de la batterie : une exécution plus rapide consomme moins d’énergie. • Le besoin d’adapter les paramètres. Une conception de haut niveau doit se faire en considérant les appareils réels: • Le comportement du cache varie énormément d’un appareil à l’autre, • La conception de la machine HotSpot du CLDC permet un réglage par famille d’appareil. Formation ITIN
L’implémentation de la VM CLDC HotSpot de SUN • Une véritable machine virtuelle 32 bits • Ce qui lui procure un espace d’adressage important et évolutif et une architecture bien adaptée aux téléphones depuis le milieu de gamme jusqu’au haut de gamme. • Une organisation compacte des objets • L’implantation de la machine virtuelle HotSpot supporte une organisation compacte des objets ce qui diminue la consommation mémoire. Un objet est composé : • d’une entête qui donne les informations de réflexivité, le hashcode et les statuts de verrouillage, • d’un corps qui contient les champs de l’objet. • La plupart des machines virtuelles utilisent des entêtes de deux mots. Mais comme la taille moyenne des objets est faible, l’entête occupe un pourcentage important de son empreinte mémoire. La machine HotSpot CLDC n’utilise qu’un seul mot. L’empreinte des objets est non seulement plus faible mais cette approche permet aussi des allocations mémoires plus rapides. • Une gestion unifiée des ressources • Toutes les données allouées résident dans le tas dont : • Les objets Java • les objets réflectifs comme les méthodes et les classes, • le code généré par le compilateur, • Les structures de données internes à la machine virtuelle. • L’unification des ressources a pour avantage de permettre au ramasse-miettes de nettoyer toutes les ressources allouées et même le code compilé. A l’opposée, la plupart des machines virtuelles désignent des espaces pour les objets, les données réflectives, les données temporaires et le code généré. Ceci résulte dans une fragmentation de la mémoire, des stratégies de nettoyage multiple etc. La machine virtuelle HotSpot CLDC résout ce point par l’utilisation d’un ramasse-miettes unique qui marque, nettoie et compacte. L’espace du code compilé peut aussi être récupéré dynamiquement pour y allouer des objets créés par l’utilisateur. Formation ITIN
L’implantation de la VM CLDC HotSpot, le ramasse-miette • Un ramasse-miettes libère automatiquement la mémoire des objets qui ne sont plus pointés pour de nouvelles allocations. La machine HotSpot de CLDC utilise un ramasse-miettes qui marque, nettoie et compacte avec pour résultat : • une allocation de mémoire plus rapide, • des pauses nettoyage courtes, • pas de fragmentation de la mémoire. • Précision • Un ramasse-miettes précis mémorise tous les pointeurs au moment du nettoyage : • La récupération de la mémoire des objets inaccessibles est fiable, • Tous les objets peuvent être repositionnés, ce qui permet de compacter la mémoire et élimine la fragmentation. La fragmentation sur des espaces mémoire contraints peut conduire à des fuites mémoire imprévisibles. • Un ramasse-miettes qui marque, nettoie et compacte • La VM HotSpot utilise une ramasse-miettes bi-générations. • Le tas des objets est divisé en génération ancienne, nouvelle génération et mémoire libre. La génération ancienne contient les objets qui ont été gardés lors du précédent nettoyage/compactage. Les nouveaux objets sont alloués dans le segment de la nouvelle génération, généralement plus petit. Le ramasse-miettes se lance quand le segment de la nouvelle génération est complet et récupère la mémoire disponible. • Quand toute la mémoire du tas est occupée, la ramasse-miettes passe sur tout le tas et compacte les objets pointés dans une « nouvelle » ancienne génération. Ce nettoyage complet induit une pause notable mais peu fréquente. Cette approche repose sur la remarque que la plupart des objets sont à vie courte. • Comme la plupart des objets sont à vie courte, seule une faible portion des objets sont promus dans l’ancienne génération. La plupart des passages du ramasse-miettes ne se font que sur la nouvelle génération résultant dans des pauses courtes. Formation ITIN
L’implémentation de la VM CLDC HotSpot de SUN • Tracer les pointeurs entre générations • Les ramasse-miettes générationnels doivent garder la trace des références des générations anciennes jusqu’à la nouvelle génération de telle façon que les jeunes générations puissent être nettoyées sans avoir à inspecter chaque objet des anciennes générations. L’ensemble de localisations contenant potentiellement de nouveaux objets est souvent appelé « remembered set ». • A chaque nouvel enregistrement, le système doit garantir que le nouvel espace est bien alloué dans le « remembered set » si un objet ancien référencie un nouvel objet. Ce mécanisme est appelé barrière d’écriture (write barrier). • Allocation Rapide • Le compactage permet d’allouer de nouveaux objets de manière contiguë comme dans une pile. L’allocation de mémoire se réduit à augmenter un pointeur. Formation ITIN
La VM CLDC HotSpot de SUN,la machine d’éxecution • En général, les machines virtuelles Java à compilateur sont plus rapides que celles n’utilisant qu’un interpréteur. Aussi la VM HotSpot CLDC comporte-t-elle un compilateur dynamique qui apporte une exécution rapide du bytecode. • La compilation de bytecode en instruction native prend entre 4 et 8 fois l’espace du bytecode originel. La compilation adaptative contourne ce problème en compilant uniquement les méthodes les plus utilisées : les hotspots. La VM identifie les hotspots avec un profileur statistique. Pour minimiser la quantité de code compilé, la VM HotSpot utilise un interpréteur optimisé pour les méthodes peu utilisées. • Le compilateur de la VM HotSpot optimise le code en une simple passe en recourant : • au précalcul des constantes (constant folding), • la propagation des constantes, • l’éclatement des boucles. Formation ITIN
La VM CLDC HotSpot,Synchronisation rapide des threads • Le langage Java offre un mécanisme de synchronisation des Threads qui permet de développer des programmes avec un verrouillage à faible granularité. • La VM HotSpot utilise une variante de du mécanisme de verrouillage structuré par block. Les performances s’en trouvent tellement améliorées que la synchronisation ne représente plus un goulot d’étranglement pour les programmes Java. Formation ITIN
Java Mobile Edition, CDC : Connected Device Profile Formation ITIN
Java Mobile Edition, CDC • La configuration Connected Device Profile (CDC) cible les appareils avec plus de capacité et doté de connexion réseau comme les PDA haut de gamme, les set-top boxes avec pour objectif de se rapprocher des possibilités de Java SE en respectant les contraintes de leur ressources. • La configurations CDC apporte aux différents utilisateurs de la chaîne de valeur : • Les entreprises bénéficient de l’utilisation d’applications connectées pour étendre leur capacité business aux clients, partenaires et collaborateurs mobiles, • Les utilisateurs bénéficient de la compatibilité et de la sécurité apportés par la technologie Java, • Les développeurs bénéficient de la productivité de Java et de ses bibliothèque d’API, • La configuration CDC retient 3 profils différents: • la Foundation Profile (JSR 219) , • Le Personal Basis Profile (JSR 217), • Le Personal Profile (JSR 216). Formation ITIN
A CDC Java Runtime Environment • Le standard CDC offre une grande flexibilité pour le développement d’applications. • Le concepteur pour PDA peut intégrer un profil, le paquetages optionnels RMI (Remote Method Invocation) et Java Database Connectivity (JDBC™). • Attention, des produits intégrant des différents produits CDC peuvent utiliser des API différentes bien que conforme au standard CDC. Les choix faits par le concepteur de produit déterminent les API à utiliser par le développeur d’applications CDC. Formation ITIN
CDC Technical Overview • CDC Class Library CDC contient des librairies dérivées de Java SE mais adaptées aux appareils connectés. Les librairies incluent des classes utilisées par les développeurs dans de nombreuses applications pour PC et serveurs. Certaines interfaces ont été modifiées. CDC permet ainsi un portage rapide des applications classiques sur les mobiles. • CDC HotSpot™ Implementation La machine virtuelle Hotspot CDC a été développée spécialement pour les appareils connectés. • Survol de l’API CDC L’examen comparatif des différents profils disponibles Foundation Profile, Personal Basis Profile, and Personal Profile est utile pour la conception d’une application CDC. Le Foundation Profile apporte un ensemble de classes de base. Les autres profils étendent le Foundation Profile avec des fonctionnalités spécifiques. Formation ITIN
CDC et Sécurité • La sécurité est un des points essentiel de la technologie Java. Elle a guidé les évolutions de la plate-forme Java. CDC propose différents niveaux de sécurité qui apportent aux utilisateurs, aux développeurs, aux fournisseurs de services et aux entreprises un environnement particulièrement sécurisé. • La sécurité de la VM inclut la vérification des classes à l’utilisation et masquent les pointeurs. Ceci a éliminé les risques de débordement de la pile. Les livraisons initiales de Java utilisaient un modèle simple de sécurité : le bac à sable, offrant une sécurité bien adaptée au browser web. • Les classes signées étendent le bac à sable en vérifiant l’origine des classes Java à charger. • Les politiques de sécurité ont été introduites dans J2SE 1.2. Elles apportent un meilleur contrôle de la sécurité. Une politique de sécurité est un ensemble de permissions et de politiques qui peuvent être modifiées par l’administrateur système au déploiement. • Le Cryptage apporte un modèle standard de codage du logiciel et des données pour sécuriser le transfert et l’archivage. Il inclut Java Cryptography Architecture (JCA), un environnement standard de cryptage. CDC inclut le framework de cryptage de Java SE. Celui-ci est extensible car indépendant des algorithmes et inter opérable dans la mesure où il utilise différentes implantations de services de sécurité. Le Foundation Profile (JSR 219) intègre trois paquetages optionnels : • Java Authentication and Authorization Service (JAAS). Offre un canevas d’authentification et d’autorisation. Le composant d’autorisation spécifie le contrôle d’accès au code, aux signatures de code dans les fichiers de politique qui peuvent être maintenus par l’administrateur système. A l’exécution, l’environnement apporte différents modules tels que le stockage de clés sans avoir à modifier l’application. • Java Cryptography Extension (JCE). Étend le JCA et apporte le cryptage,la génération de clés, l’autorisation de clés et les services Messages Authentication Code (MAC) • Java Secure Socket Extension (JSSE). Apporte les Secure Socket Layer (SSL). Formation ITIN
Java ME Platform for Converged Services Formation ITIN
Java ME Platform for Converged Services • La plate-forme Java ME Platform for Converged Services permet de faire converger Java SE sur les environnements CLDC et CDC. Formation ITIN
Le profil MIDP, Mobile Information Device Profile Formation ITIN
MIDP, Mobile Information Device Profile, pour CLDC • Le Mobile Information Device Profile (MIDP) est l’élément de base de la plate-forme Java (Java ME). MIDP apporte un environnement de base pour la plupart des téléphones mobiles et des PDA. MIDP a été défini par un Java Community Process regroupant plus de 50 sociétés (constructeurs, opérateurs mobiles et éditeurs). Il définit une plate-forme pour déployer dynamiquement et en toute sécurité des applications optimisées, graphiques et connectées. • Ensemble, CLDC et MIDP apportent les fonctionnalités requises par les applications mobiles sous la forme d’API standardisées. Le développeur peut facilement déployer ses applications sur différents types de terminaux. MIDP est largement adopté pour le développement d’applications sur mobiles et PDA. Formation ITIN
MIDP, les spécifications • Le MIDP 1.0 (JSR 37) apporte les fonctionnalités centrales requises par les applications sur mobile avec interface utilisateur et sécurité réseau de base. • MIDP 2.0 (JSR 118) étend MIDP 1.0 avec une interface utilisateur étendue des fonctionnalités multimédia et jeu étendues, une connectivité plus riche, le téléchargement d’application en ligne (OTA) et une sécurité complète. MIDP 2.0 est compatible MIDP 1.0. Formation ITIN
L’interface utilisateur étendu de MIDP2 • MIDP 2.0 apporte : • Un nouveau Popup ChoiceGroup, plus visuel, • Les objets graphiques peuvent avoir leur propre ensemble de commande. • Les écrans d’alerte permettent de poser des questions à l’utilisateur. Les jauges peuvent être intégrées aux écrans d’alerte. • Une disposition des objets graphiques plus flexible pour une meilleure portabilité. • Une extensibilité supérieure, avec la possibilité d’intégrer des objets graphiques personnalisés Custom Items, que le développeur peut utiliser pour décrire ses propres objets comme les visionneurs de cartes et autres composants d’interface utilisateur. Formation ITIN
Support du Multimédia de MIDP2 • MIDP 2.0 intègre l’ Audio Building Block (ABB) qui fait partie du paquetage optionnel Mobile Media API (MMAPI). • ABB permet au développeur d’ajouter des tonalités, des séquences de tonalités et des fichiers WAV, sans avoir à importer MMAPI. • Sur les appareils intégrant MMAPI, les développeurs peuvent ajouter davantage de contenus multimédia comme des flux vidéo. Formation ITIN
Le support des Jeux dans MIDP2 • MIDP 2.0 comprend l’API de jeux Game qui apporte les bases au développement de jeux sur mobiles. • L’API MIDP Game comporte des fonctionnalités spécifiques au jeu comme les Sprites et les couches. • Cette fonctionnalité apporte un meilleur contrôle du graphisme et des performances. Formation ITIN
Les capacité de connectivité de MIDP2 • MIDP 2.0 apporte les connectivités au-delà de HTTP : HTTPS, Datagrammes, Sockets, serveur de Socket et communication par port série. • Ces capacités de connectivité permettent une intégration standardisée avec les infrastructures familières aux développeurs Java. Formation ITIN
l’Architecture PUSH • MIDP 2.0 intègre un modèle de serveurs Push auxquels les MIDlets peuvent s’enregistrer pour être activées quand le terminal reçoit des information d’un serveur. • Le paramétrage de l’application est un combinaison de paramétrage par défaut du terminal et de l’utilisateur pour déterminer s’il faut avertir l’utilisateur, démarrer l’application automatiquement ou ne pas la démarrer quand une autre application est lancée. • L’architecture PUSH permet aux développeurs de profiter des capacité de prise en compte des événements des terminaux et des réseaux des opérateurs mobiles. Ils peuvent facilement intégrer des alertes, de la messagerie et de la diffusion (broadcast) dans le cadre d’une approche standard de MIDP. Formation ITIN
Le téléchargement Over-the-air (OTA) • Une des avancées de MIDP réside dans la capacité maintenant imposée à déployer dynamiquement des applications et leurs mises à jour Over-The-Air (OTA). • La spécification MIDP 2.0 définit comment les suites de MIDlets sont découvertes, mises à jour et effacée des terminaux. • MIDP permet aussi au fournisseur de service d’identifier quelles suites de MIDlets fonctionnera sur un type donné de terminaux et d’obtenir un rapport à la suite d’installation, mise à jour ou de suppression. • Le modèle de téléchargement OTA garantit une approche unifiée et standard de déploiement opérant sur une large gamme de terminaux. • Le modèle a été défini et adopté par les principaux fabricants et éditeurs pour fournir une solution de téléchargement sure et sécurisée. Formation ITIN
Sécurité de bout en bout • MIDP 2.0 apporte un modèle de sécurité robuste. • MIDP 2.0 supporte HTTPS et profite des standards comme SSL et WTLS pour le transfert sécurisé d’informations. • La sécurité protège des accès non autorisés aux données, applications et autres ressources du réseau et du terminal. • Par défaut les suites de MIDlets n’ont aucun privilège. Pour obtenir un accès, une suite de MIDlets doit être signée par une PKI X.509. • Pour qu’une suite signée puisse être téléchargée, installée et munie d’autorisation elle doit être authentifiée avec succès. Formation ITIN
Les contraintes de la sécurité • Il est important de protéger les utilisateurs grand public des risques d’applications malveillantes : prise de contrôle de votre téléphone, usurpation d’identité et paiement par mobile. • Pour des raisons de sécurité, vous ne pouvez pas faire n’importe quoi en Java ME par exemple pas de JNI. Formation ITIN
Les librairies de base de MIDP • Interface utilisateur • javax.microedition.lcdui L’environnement de base d’interface utilisateur. • javax.microedition.lcdui.game Facilite le développement de jeux sur mobile. • Persistence • javax.microedition.rms Un mécanisme simple et sécurisé de persistence. • Application Lifecycle Package • javax.microedition.midlet Définit l’interaction entre l’application est l’environnement • Réseau • javax.microedition.io La gestion des connexions. • Audio • javax.microedition.mediaLes outils de base pour créer un player. • javax.microedition.media.controlLa commande du player. • Public Key • javax.microedition.pkiGestion des certificats utilisés en connexion sécurisée. • Core Packages • java.io Gestion des entrées sorties au travers des DataStreams.. • java.lang Les classes de base de Java. • java.util les collection classes, la date et le temps.. Formation ITIN