Livre blanc de J2ME La mobilité pour tous avec J2ME ... Net Innovations L’architecte des e-solutions de nouvel âge Présentation Octobre 2002 SOMMAIRE Introduction Le marché L’architecture Collaboration Web Les fonctionnalités Contrôle Messagerie Connaissances Généralités Conclusion Le marché Téléphones mobiles : •• Début Début 2000, 2000, on on comptait comptait 400 400 millions millions de de terminaux terminaux mobiles mobiles dans dans le le monde. monde. •• On On en en attend attend 11 milliard milliard pour pour fin fin 2002 2002 (source (source :: IDC IDC 2001). 2001). Téléphones J2ME : •• Nokia Nokia devrait devrait distribuer distribuer 50 50 millions millions de de téléphones téléphones mobiles mobiles J2ME J2ME d'ici d'ici àà fin fin 2002, 2002, le le double double l'année l'année suivante suivante (source (source :: Nokia). Nokia). Le marché Expérience iMode : •• Utilisé Utilisé 17,2 17,2 minute minute par par jour jour (autant (autant que que la la navigation navigation Web) Web) •• 63,4 63,4 % % des des utilisateurs utilisateurs ont ont augmenté augmenté leur leur facture facture de de communication communication data data après après l’achat l’achat d’un d’un téléphone téléphone J2ME J2ME Le marché 421 millions en 2003 1200 1000 442 millions en 2004 1 100 millions en 2006 (source : ARC Group) 800 2003 2004 2006 600 400 200 0 Téléphones J2ME Le marché WAP : décevant 5,5 millions d’utilisateurs en Europe de l’Ouest (fin 2000) SMS : explosion Taux de croissance annuel : 400 % 30 SMS en moyenne par mois par abonné GSM Le marché iMode : Leader des services de données mobiles (juin 2001) 40,4 millions d’abonnés utilisateurs de l’iMode GSM : Succès Européen Le marché Les freins au développement Ergonomie des terminaux taille des écrans, clavier numérique, noir et blanc, stockage local de données, difficulté de configuration, standard d’utilisation des téléphones Bande passante et qualité de service insuffisants temps d’établissement de la connexion, risque de saturation du réseau Facturation au temps de communication facturation au volume de données, à l’acte d’usage ou forfaitaire (GPRS) Manque de service et de contenus de qualité Tests insuffisants sur les terminaux Le marché Paiement à l’acte de téléchargement Paiement à la mise à jour / évolution Paiement par upload de meilleur score (jeux) Paiement à la période d’utilisation Paiement à la requête / à l’événement Les acteurs du marché Les acteurs du marché Opérateurs Constructeurs Cegetel Siemens France Telecom Nokia Bouygues Motorola BT 3COM Oracle DT HP Borland Telecom Italia Plate-formes, … Sun Autres Fournisseurs / intermédiaires Service Portails Net Innovations Infusio Fi System (Ubicco) Agrégateurs Cross Systems Branding Les acteurs du marché Les constructeurs Ressources techniques Programmes de certification pour garantir que l’application fonctionnera comme prévu sur leurs terminaux Annuaire Assistance Constructeurs : Casio, Fujitsu, Hitachi, LG, Matsushita (Panasonic), Mitsubishi, Motorola, NEC, Nokia, RIM, Samsung, Sharp, Siemens, Sony Ericcson, Toshiba Constructeurs Siemens Nokia Motorola 3COM HP Les acteurs du marché Les opérateurs Deux orientations : B2C B2B (exemple : Nextel) Outils et de ressources pour développer des applications Facturation Opérateurs : Etats-Unis : Nextel, Cingular, Sprint PCS Canada : Telus Mobility Japon : NTT DoCoMo, KDDI, J-Phone Grande Bretagne : Vodafone, One 2 One, MMO2 Italie : Omnitel, TIM Espagne : Telefonica Hong Kong : Hutchison Telecom, SmarTone, Hong Kong telecom Corée : LG Telecom Taiwan : FarEastone Opérateurs Cegetel France Telecom Bouygues BT DT Telecom Italia Les acteurs du marché Les intermédiaires Portails de logiciels à téléchargements Dont des logiciels mobiles (CNET, Tucows, ZDNet) Spécialisés (Micro Java Network) Certification Vente (MidletCentral prend une commission de 15 %) Gestion des partenariats entre les développeurs et les fournisseurs de plate-forme sans fil (certification, fonds, marketing) (WirelessDevelopper.com) Services liant les développeurs et les opérateurs : Mformat (loisirs) : présente les applications à l’opérateur, distribue et récolte les revenus des applications (coût pour le développeur : 40 % des revenus d’utilisation) Qpass (eCommerce) : plate-forme d’accès aux opérateurs (facturation, traitement de la transaction, reporting) B2B : personne pour l’instant ? Fournisseurs / intermédiaires Net Innovations Infusio Les acteurs du marché Editeurs et constructeurs informatiques : Constructeurs terminaux : Vodafone, France Telecom, BT, DT, Telecom Italia, etc. Agences Web : Palm, Psion, Nokia, Ericsson, Alcatel, Sagem, Motorola, Siemens, Samsung, etc. Opérateurs : Oracle, Microsoft, IBM, Sun Icon Medialab, Frame Fab, Cross Systems, Fi System (Ubicco) Nombreuses start-ups : Aether, Saraide, Nocom, iobox, Brokat, etc. Les acteurs du marché La chaîne de valeur x% x% Contenu à haute valeur et/ou propriétaire x% x% x% $$ x% x% Plate-forme Création Publication de contenu Aggrégateurs Distributeurs Opérateur Terminal Service géré Editeurs de jeux (Electronic Arts, THQ, WWF, Disney) Portails mobiles (Yahoo! Mobile) x% Net Innovations Fabricants Fabricants Opérateur Client Les acteurs du marché Les objectifs de l’opérateur Vendre du temps de communication; des terminaux et du contenu également Entretenir sa base de clients : facturation marketing Distribuer et vendre au détail Fidéliser le client Leur challenge : Aujourd’hui … faire de l’argent Demain … créer de nouveaux revenus Les acteurs du marché Les terminaux des fabricants Présence de nombreux fabricants Existence de nombreux terminaux pour chaque fabricant Nécessité de faire les tests sur de nombreux téléphones Les acteurs du marché Le grand problème : le contrôle de version du logiciel De nouveaux terminaux arrivent … Motorola … T720i Nokia … 7650, 7210, 3510i et 6100 Siemens … C55 et S55 Sony Ericsson … P800 Les acteurs du marché a388, a820, Accompli 008/6288, i80s, i85s, i50sx, i55sr, i90c, i95cl, T280i, T720, T725, V60i, V66i 6688i, M50, S55, SL42, Sl45i, SX45 Les principaux téléphones J2ME Motorola Siemens Samsung Nokia SCH-X130, SCHX350, SGHS100, SPH-I300, SPH-n400, SPHa500 3410, 3510i, 3585, 3590, 3650, 6310i, 6610, 7210, 7650, Communicator 9290, Communicator 9210/9210i La place de J2ME Utilisateurs finaux Fournisseurs de service Acheter des terminaux qui se synchronisent avec une plus grande quantité de données Fournir une connectivité à une plus large sélection d’applications Bénéfices pour … Fabricants de terminaux Développeurs d’application Rendre le terminal interopérable avec une plus grande quantité d’applications, de services et de technologies réseau et de transmission Développer une application qui peut se connecter à un ensemble de terminaux plus varié de terminaux et de données en réseau La place de J2ME Les enjeux 1. 2. 3. 4. 5. 6. Créer un marché pour les services de données via des réseaux sans fil. Identifier les usages principaux des terminaux mobiles. Inventer les applications génératrices de revenus. Identifier les acteurs clefs dans la chaîne de valeur. Identifier les standards de déploiement des services de données. Trouver les modèles économiques associés. La place de J2ME Pourquoi J2ME ? 1. 2. 3. 4. 5. 6. 7. 8. 9. Rend intelligent le téléphone (logique, gestion de la bande passante) Portabilité Indépendance de la plate-forme Téléchargement sécurisé Standard de fait Open source Interactivité Mode connecté comme déconnecté Nombreux développeurs Java La place de J2ME J2ME en quelques mots Sécurité • Pas de pointeurs vers la mémoire • Modèle “Sandbox” Petite taille mémoire • Tient en peu de ROM • Format de Bytecode Java plus petit que le code natif • Chargement / déchargement dynamique quand nécessaire Portable • Réutilisation de code grâce à l’orienté objet • Porté sur de nombreux systèmes d’exploitation et processeurs Dynamique • Permet le chargement de nouvelles fonctionnalités • Sécurisé La place de J2ME Définition de J2ME Java adapté aux terminaux à ressources limitées : Petit noyau Extensible avec des “profils de terminaux" PDAP MIDP Personal Profile J2ME, CDC J2ME, CLDC CVM KVM Profils Définissent les classes du JDK et/ou de l’industrie Configurations Définissent la machine virtuelle et les classes noyau La place de J2ME Les avantages de J2ME Capacité de téléchargement de logiciel puis d’exécution en local Contrôle sur l’interface utilisateur du terminal Capacité à sécuriser les transactions Existence d’une communauté importante de développeurs Java La place de J2ME Pour les utilisateurs de téléphone : • Amélioration des fonctionnalités de téléphonie • Personnalisation, “téléphone individuel" • Interactivité, applications dynamiques Utilisateurs de téléphone Avantages de J2ME Opérateurs Développeurs d’application Pour les opérateurs : • Services pratiques et à haute valeur ajoutée pour l’utilisateur • Différenciation des concurrents • Nouvelles opportunités de business Pour les développeurs d’application : • Accès à un grand nombre de terminaux qui sont proches de l’utilisateur • Portabilité à travers les terminaux compatibles Java • Java est un langage de programmation répandu La place de J2ME Les objectifs de J2ME 1 2 3 4 Permettre le déploiement dynamique de solutions de bout-en-bout Définir une plate-forme Java standard pour un ensemble de terminaux petits, à ressources limitées et connectées Permettre la diffusion dynamique et sécurisée de contenu Java interactif sur les petits terminaux Permettre le développement de logiciels pour ces terminaux par des tiers L’architecture de J2ME Serveur Pager PDA Station de travail Communicator NC POS Set-top box, net TV Smartphone Screenphone PC, laptop Profile Téléphone cellulaire Profile Profile J2EE (Java 2 Enterprise Edition) Profile TV Profile J2SE (Java 2 Standard Edition) Screen Phone Profile Personal Profile Car Profile Carte PDA Profile Java 2 Micro Edition MID Profile Smart Card Profile Java Language HotSpot JVM KVM Card VM L’architecture de J2ME Les concepts de base de J2ME Machine virtuelle et ensemble minimal de classes de base et d’API. Spécifie un environnement d’exécution généralisé pour les terminaux ¾ Configuration embarqués et agit comme plate-forme Java sur le terminal. Spécification des API Java définie par l’industrie. Utilisé par les fabricants et les développeurs à destination des différents ¾ Profil types de terminaux spécifiques. Package qui peut ne pas être implémenté sur un terminal particulier. ¾ Package optionnel L’architecture de J2ME Les caractéristiques d’un MIDlet Une application Java peut tirer parti des propriétés d’un terminal mobile disposant de la technologie Java : 1 Toujours avec l’utilisateur 5 Réseau sans fil 2 Personnel 6 Stockage persistent sur le terminal 3 Interface utilisateur simple 7 Certifié 4 Traitement local L’architecture de J2ME Les principales JSR actuelles JSR 30 - CLDC (Connected Limited Device Configuration) JSR 36 - CDC (Connected Device Configuration) JSR 37 - MIDP (Mobile Information Device Profile) JSR 46 - Foundation Profile JSR 62 - Personal Profile JSR 66 - RMI Profile L’architecture de J2ME Les machines virtuelles KVM (Kilo Virtual Machine) Implémentation runtime extrêmement légère de la machine virtuelle Java pouvant être utilisée dans les terminaux avec peu de mémoire. Le K signifie Kilobyte, indiquant que cette machine virtuelle fonctionne avec un total de mémoire de quelque 100 Ko. L’architecture de J2ME Les machines virtuelles CVM (Convergence Virtual Machine) Machine virtuelle Java 2 conçue pour les terminaux ayant besoin de l’ensemble des fonctionnalités de la JVM mais avec des capacités plus réduites. Les terminaux utilisant CVM sont généralement des terminaux compacts et connectés, orientés consommateur. L’architecture de J2ME Les configurations CLDC (JSR 30) Consiste en la machine virtuelle K (KVM) et un ensemble de bibliothèques de classes noyau appropriées à l’utilisation dans un profil de l’industrie. Les terminaux concernés sont dotés d’interfaces utilisateur simplifiées, d’au moins 128 Ko de mémoire et de connexions réseau intermittentes à faible bande passante. L’architecture de J2ME CDC (JSR 36) Basé sur la spécification de machine virtuelle classique, qui définit un environnement runtime complet. Destinée aux terminaux plus gros et qui peuvent se connecter à Internet ou à d’autres terminaux, comme les visiophones fonctionnant sur Internet, les communicateurs et les systèmes de navigation. L’architecture de J2ME Les profils MIDP Nécessite l’implémentation de référence CLDC. Fournit des classes pour l’écriture d’applications téléchargeables qui tournent sur des terminaux mobiles comme les téléphones cellulaires et les pagers bidirectionnels. Permet le téléchargement de nouveaux services comme les jeux, les applications de commerce et les services de personnalisation. Plate-forme standard pour les petits terminaux d’information mobiles : 512 Ko de mémoire totale (ROM + RAM) disponible pour le runtime Java et ses bibliothèques ; puissance et batterie limitées ; connectivité à réseaux sans fil à bande passante limitée ; interfaces utilisateur à différents niveaux de sophistication. L’architecture de J2ME MIDP 2 (ou MIDP NG) Sécurité : nouveau modèle de sécurité avec les MIDlets certifiées et HTTPS Réseau et push étendu Livraison d’application Interface utilisateur améliorée Nouvelles fonctionnalités pour les jeux et le son L’architecture de J2ME PDAP (JSR 75) Se trouve au niveau supérieur de la spécification CLDC. Fournit des API d’interface utilisateur et de stockage de données pour les petits terminaux Handheld aux ressources limitées aux caractéristiques suivantes : 512 Ko de mémoire au total (ROM + RAM) disponible pour le runtime Java et les bibliothèques ; puissance et batterie limitées ; interfaces utilisateur de différents degrés de sophistication, disposant d’un affichage d’une résolution supérieure à 20 000 pixels, d’un terminal de pointage et d’une entrée pour caractères. L’architecture de J2ME Foundation Profile (JSR 46) Destiné aux terminaux qui ont besoin de support pour une plate-forme Java avec un réseau riche mais ne nécessitent pas d’interface utilisateur. Fournit en outre un profil de base pour d’autres profils, qui auraient besoin de construire leurs propres fonctionnalités en ajoutant, par exemple, une GUI (Graphical User Interface). Cible les terminaux suivants : 1 024 Ko de ROM (sans compter les besoins mémoire des applications) ; 512 Ko de RAM (sans compter les besoins mémoire des applications) ; connectivité à certains types de réseaux ; aucune GUI. L’architecture de J2ME Personal Profile (JSR 62) Repackage l’environnement d’application PersonalJava pour fournir la spécification J2ME aux terminaux qui ont besoin d’un haut niveau de connectivité Internet et d’une fidélité Web. Conçu pour être compatible avec la spécification de l’environnement d’application PersonalJava. Cible les terminaux suivants : 2,5 Mo de ROM ; 1 Mo de RAM ; connectivité robuste à certains types de réseaux ; GUI avec un haut degré de fidélité Web et la possibilité de faire tourner des applets. L’architecture de J2ME RMI (JSR 66) Supporte le RMI interapplication sur des connexions TCP/IP pour des applications écrites en Foundation Profile. Interopérable avec l’API J2SE RMI. MIDP Les concepts de base L’API de haut niveau Objectif : portabilité (aucun accès direct aux fonctionnalités de terminal natif n’est autorisé) Elle permet de rendre les applications exécutables et utilisables sur tous les terminaux MIDP. MIDP L’API de bas niveau Objectif : fournir un accès aux primitives de dessin natif, des événements sur les touches du terminal, des terminaux de saisie natifs, … Elle permet aux développeurs de choisir le compromis entre portabilité et fonctionnalités plus spécifiques. MIDP RMS Objectif : stockage persistant de données Base de données orientée enregistrement léger Indépendante du terminal MIDP Connectivité réseau Obligation d’implémenter le protocole HTTP Etend le réseau du GCF (Generic Connection Framework) de CLDC Le GCF fournit un moyen uniforme et pratique d'effectuer des entrées / sorties quelque soit le type de protocole MIDP 2 La sécurité Modèle de sécurité Notion de MIDlets “certifiées” ou “privilégiées”, selon leur signature HTTPS/SSL Ajout de HTTPS pour établir une transaction sécurisée de bout en bout (avec SSL, TLS ou WTLS) Utilisation possible de SSL/TLS avec des sockets MIDP 2 Le push Capacité de push réseau Déclenchement d’un MIDlet lors d’une connexion entrante MIDP 2 Livraison d’application OTA (Over The Air) : Document de pratique recommandée Notifications d’installation réussie et de suppression Retrait du support des cookies MIDP 2 L’interface utilisateur Améliorations de l’interface utilisateur Objets personnalisés Formatage des objets Transparence d’image Amélioration des composants existants (jauge, listes, …) MIDP 2 Les jeux API de développement de jeux Décomposition d’une zone d’affichage en grille de cellules contrôlables Moteur de sprites supportant des transformations (rotation, …) Gestionnaire de couches Prise en charge de pressions de touche simultanées Mécanisme de tampon hors-écran MIDP 2 Le son API de son Génération de tonalité (note, duration, volume) Sons échantillonés wav mono PCM 8 bits, à 8 KHz (optionnel) MIDI (optionnel) PDAP PDAP Personal Digital Assistant Profil Nouveau profil CLDC ciblant les PDA PDAP L’interface utilisateur AWT Interface utilisateur AWT Interaction entre AWT et LCDUI Interaction au niveau des Frames AWT et du Displayable LCDUI Pas de mélange de composants entre les deux modèles PDAP Les APIs PIM Accès aux bases de données natives : Adresses Liste « To Do » Agenda PDAP Les connexions port série et système de fichier Port série Ouvre une connexion logique par le port série Le système de fichier Ouvre une connexion sur un simple fichier ou sur un répertoire PDAP PDAlet Nouveaux attributs de fichier JAD Possibilité de spécifier des MIDlets et des PDAlets dans le même Suite Conclusion Les technologies du succès Echange de données : XML Géolocalisation : GPS (EMEA) ou triangulation Wireless : Bluetooth, IrDA Traitement distribué : Web services, XMLRPC Synchronisation des données : SyncML Middleware : passerelle JDBC Messagerie : gateway SMTP, POP, IMAP Peer to peer : JXME, JXTA Fonctionne aussi sous Palm OS WAP : cohabitation possible avec le WAP : Appel de J2ME depuis une page WAP ou Navigateur WAP basé sur J2ME (upgradable) Conclusion Questions Conclusion A bientôt … Net Innovations Bruno Delb [email protected] Mob : 06 09 35 26 14