Programmation d'applications sur PDA



Documents pareils
La technologie Java Card TM

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Éléments de programmation et introduction à Java

CH.3 SYSTÈMES D'EXPLOITATION

Linux embarqué: une alternative à Windows CE?

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Traitement de données

Environnements de développement (intégrés)

Programmation C. Apprendre à développer des programmes simples dans le langage C

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

La carte à puce. Jean-Philippe Babau

Plan du cours. Historique du langage Nouveautés de Java 7

Remise à niveau d un programme JAVA du domaine public

as Architecture des Systèmes d Information

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Documentation d information technique spécifique Education. PGI Open Line PRO

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Machine virtuelle Java pour Palm TX

Initiation à JAVA et à la programmation objet.

Chapitre 1 Retour en arrière

Chapitre I Notions de base et outils de travail

Java - la plateforme

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Java et les bases de données

Virtualisation sous Linux L'age de raison. Daniel Veillard

Guide d administration de Microsoft Exchange ActiveSync

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Utiliser Java sans BlueJ

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

3 logiciels «gratuits» pour gérer sa bibliographie

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Retrouver de vieux programmes et jouer sur VirtualBox

Sessions en ligne - QuestionPoint

Annexe : La Programmation Informatique

Systèmes en réseau : Linux 1ère partie : Introduction

Java 7 Les fondamentaux du langage Java

4D v11 SQL Release 5 (11.5) ADDENDUM

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

INFORMATION CONCERNANT LE PRODUIT LOCKING SYSTEM MANAGEMENT 3.2 SP2 ÉTAT AU : OCTOBRE 2014

EA D S INNOVA TION W ORKS. Mobilité et sécurité. Nicolas RUFF nicolas.ruff [à] eads.net

Découverte des Logiciels Libres. Gilles Dequen

Vulgarisation Java EE Java EE, c est quoi?

TMS THE MUSEUM SYSTEM

Cahier des charges (CDC)

Guide d installation JMap 5.0

java : Langage et Environnement

Capacité étendue d utilisation en réseau

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Annuaires LDAP et méta-annuaires

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

GUIDE D UTILISATION PARTICIPANT

Dématérialisation et travail collaboratif

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

PG208, Projet n 3 : Serveur HTTP évolué

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

HOLO-EDIT ONLINE : CONSTRUCTION D UNE APPLICATION JAVA SUR INTERNET

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Openmoko, free your phone!

Manuel d utilisation de ndv 4

Les outils de dessin. Sweet Home 3D 1 EAI NEWS

Point sur la virtualisation

Point sur les solutions de développement d apps pour les périphériques mobiles

Messagerie & Groupeware. augmentez l expertise de votre capital humain

Android 4 Les fondamentaux du développement d'applications Java

Chapitre 3 : Les technologies de la communication. I- Les TIC de la PME

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

CORBA. (Common Request Broker Architecture)

Mode d emploi pour lire des livres numériques

Manuel du logiciel PrestaTest.

Installation et prise en main

Bases Java - Eclipse / Netbeans

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Programmer en JAVA. par Tama

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Vérifier la qualité de vos applications logicielle de manière continue

Java pour le Web. Cours Java - F. Michel

NOUVELLES FONCTIONS WLANGAGE EDITEUR DE CODE. Menu contextuel partageable dans le projet. HtmlVersTexte, HtmlVersRTF

4D v11 SQL BREAKING THE LIMITS * Les nouveautés

Une introduction à Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Livret de Stages 2014 / 2015

Alcatel OmniPCX Office

Programmation Orientée Objet

La gestion du poste de travail en 2011 : Panorama des technologies

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Le tout à l usage dans un IaaS public «Comment une plateforme industrielle permet de déployer des usages applicatifs en accord avec cette promesse»

Transcription:

Programmation d'applications sur PDA l'exemple de Waba Paul Guyot - ECE - Systèmes Embarqués (14/12/01) 1

Introduction 2

Introduction Généralisation des PDAs Utilisation spécifique des PDAs Projet originel de Java Présentation de Waba 3

Introduction (1) - Présentation Généralisation des PDAs 1989: Portfolio d Atari (MS-DOS) 1992: John Sculley définit le PDA 1993: Apple Newton (NewtonOS) Mars 1996: Palm Pilot 1000 (PalmOS) Novembre 1996: Microsoft lance Windows CE 1997: Symbian lance EPOC Aujourd hui: environ 15 millions d utilisateurs 4

Introduction (2) - Présentation EPOC 7% Autres 8% WinCE 22% PalmOS 62% 5

Introduction (3) - Présentation Utilisation spécifique des PDAs Affichage et traitement de données Échange avec les ordinateurs de bureau HotSync de Palm ActiveSync de WinCE PDA = «Portable Data Access»? 6

Introduction (4) - Présentation Projet originel de Java Langage pour les clients dans une architecture avec des gros serveurs: adapté en théorie pour les machines peu puissantes Langage orienté objet et applicatif (possibilité de Frameworks) 7

Introduction (5) - Présentation Waba Une machine virtuelle Java (enfin, presque) Des APIs spécifiques Utilisation des compilateurs Java habituels Un langage et un modèle pour la programmation d applications pour PDA 8

Introduction (6) - Plan Waba: un paradigme de la programmation sur PDA Programmer une application pour PDA avec Waba (avec un exemple) Limites et ouvertures: la machine virtuelle et le projet Waba 9

Introduction (7) - Objectifs Objectifs théoriques Spécificité de la programmation sur PDA (développement croisé, limites des PDAs) Spécificité des applications sur PDA (modèle événementiel, interfaces graphiques, stockage, communication) 10

Introduction (8) - Objectifs Objectifs pratiques Le langage Waba (comme sous-ensemble du langage Java) Le modèle événementiel appliqué à Waba Présentation générale des APIs Waba Pourquoi développer (et ne pas développer) avec Waba 11

Waba: paradigme de la programmation sur PDA 12

Waba comme paradigme Le langage Java/Waba Les APIs Java et les APIs Waba Le problème de la mémoire 13

Le langage Waba/Java (1) Les différents langages de programmation sur PDA Palm (C, C++, Java, ) Newton (C++, NewtonScript, Java, Basic, ) WinCE (C++, Basic, Java, ) 14

Le langage Waba/Java (2) Les machines virtuelles Java Waba (Newton, Palm, WinCE, MS-DOS) KVM (Palm) & PersonalJava (WinCE) de Sun IBM J9 VM (Palm) Kada VM (Palm) Jeode (Zaurus) 15

Le langage Waba/Java (3) Les avantages de Java pour les PDAs Code aussi petit que possible A priori pour des machines pas trop puissantes Portabilité Avantage d un langage interprété pour les plateformes fragiles (e.g. Palm) 16

Le langage Waba/Java (4) Les inconvénients de Java pour les PDAs Lenteur de Java (e.g. threads) Gourmand en mémoire Les différences avec Waba Absence de thread APIs légères 17

Le langage Waba/Java (5) Le langage Waba: un sous-ensemble strict de Java Même format pour les classes, les éléments inutiles (e.g. tables pour les exceptions) sont ignorés. Les opcodes 0-201 («standard») sont supportés sauf ceux pour les threads, les longs, les doubles et les exceptions 18

Les APIs Java/Waba (1) L exemple de l interface graphique: complexité des APIs Java usuelles Le cas des menus La complexité des Layouts (idée que la dimension peut être variable) Les listeners Java & surcharge des méthodes sur Waba 19

Les APIs Java/Waba (2) Les PDAs requièrent des APIs très spécifiques: les données sur PDA Les catalogues: le stockage des données Les conduits: l échange de données 20

Les APIs Java/Waba (3) Le cas du son Applications Java: Java Sound API (javax.sound.*) MIDI, échantillons Applets Java: APIs documentées depuis la JDK 1.2 waba.fx.sound (bips, impulsions à une fréquence donnée) & waba.fx.soundclip (échantillons) 21

Le problème de la mémoire (1) Limitation essentielle du parc actuel des PDAs: Palm: de 512 Ko (Personal) à 8 Mo (derniers modèles) pour l exécution et le stockage Coût & avantage du ramasse miette Programmation plus aisée Peu de fuites dans les programmes Waba Un peu plus coûteux en mémoire/temps 22

Le problème de la mémoire (2) La division de la mémoire de Waba en différentes zones Object heap:mémoire pour les objets Java, RM Class heap: table pour les classes, pas de RM Pile Java (1 Ko) Pile Machine virtuelle (300 octets) 23

Le problème de la mémoire (3) Waba alloue les quatre zones au démarrage du programme La quantité de mémoire est spécifiée à la compilation et ne peut être changée sur le PDA (sauf Newton) Les quatre zones sont libérées à la fin du programme: pas de fuite 24

Le problème de la mémoire (4) 25

Le problème de la mémoire (5) Malgré cette contrainte, Waba répond assez bien aux impératifs des PDAs: Machine virtuelle très petite (60 Ko) Programmes très petits (byte code Java) Programmes peu gourmands en mémoire 26

Waba comme paradigme Langage & MV adaptés aux contraintes de la programmation sur PDA Taille du code Utilisation de la mémoire APIs adaptées au développement d applications pour PDA 27

Programmer une application pour PDA avec Waba Un exemple: logiciel de base de données pour une bibliothèque personnelle 28

Programmer une application Les stages de développement L interface graphique Le modèle événementiel Le stockage et l échange des données 29

Les stages de développement (1) Le développement croisé, typique sur PDAs 1. Édition 2. Compilation 3. Correction des erreurs à la compilation 4. Retour à l étape 1 5. Génération du paquet 6. Installation 7. Test 8. Retour à l étape 1 30

Les stages de développement (2) Le développement croisé avec Waba Edition: n importe quel éditeur (e.g. vim, emacs, CodeWarrior) Compilation: javac, jikes ou autre Génération du paquet Warp (.exe ou classe Java) Exegen (idem) Installation: dépend du PDA 31

Les stages de développement (3) Utilisation de l émulateur (Palm, WinCE) Permet de réduire le temps d installation et de test Permet de tester sur plusieurs PDAs sans trop de difficultés ROMs Palm accessibles aux développeurs enregistrés 32

Les stages de développement (4) La Waba SDK APIs Waba émulées avec AWT Non complètes mais en source libre Classes requises pour la compilation 33

Les stages de développement (5) Avantages de la Waba SDK Permet l exécution du programme sur l ordinateur de développement Le programme est appelé comme le compilateur/le générateur de paquet java waba.applet.applet Biblio Exécution dans un butineur Programmes utilisables à la fois sur PDA et ordinateurs de bureau 34

Les stages de développement (6) VisualWaba de DMIC Utilisation par glisser-déposer Ecrit en Java et fonctionne sur toute plateforme Logiciel gratuit, support technique payant Un peu bogué 35

Les stages de développement (7) Inconvénients de Waba: Pas de cruci-dévermineur System.out.println n existe pas (mais il y a des équivalents) La WabaSDK corrige ces problèmes, mais: Elle ne donne pas une bonne idée de la gestion de la mémoire Elle est incomplète 36

L interface graphique (1) Biblio version 1: Hello World Une fenêtre principale (et unique) pour l application: MainWindow La structure de Waba: des composants (classe Control et sous-classes) et des conteneurs (classe Container) Un élément de base: les étiquettes (Label) 37

L interface graphique (2) L ajout d éléments se fait en général en précisant les coordonnées Pas de Layout, mais: RelativeContainer (précise la position relative d un objet par rapport au précédent) GridContainer 38

L interface graphique (3) Dessin Méthode onpaint appelée par la machine virtuelle Texte, lignes, couleur, images, etc. Mais bogues de PalmOS Clip AND 39

Le modèle événementiel (1) Boucle des événements gérée par l OS Elément essentiel des applications sur PDA Permet des économies d énergie Incite à la coopération entre les applications 40

Le modèle événementiel (2) Avec Waba Méthode onevent à surcharger Plusieurs types d événements prédéfinis: PenEvent & KeyEvent (viennent de la machine virtuelle) ControlEvent: entre les objets Waba Possibilité d ajouter des événements 41

Le modèle événementiel (3) Synthèse: Biblio version 2 Composants: titre & menus Dessin: boîte à propos Gestion des événements: réponse à un menu 42

Le stockage des données (1) Les catalogues Spécificité des PDAs: un catalogue par type de données/application Synchronisation avec les ordinateurs de bureau Accès depuis n importe quelle application: intégration des données entre les programmes 43

Le stockage des données (2) Les catalogues dans Waba Ouverture/création/suppression de catalogue Ajout/suppression d enregistrements Accès octet par octet Fermeture avec le ramasse-miettes 44

Le stockage des données (3) Biblio version 3: une petite base de données L interface Storable La classe ObjectCatalog (et son extension ObjectCatalogX) Limitation de l occupation mémoire 45

L échange des données Classes Socket et SerialPort Lecture synchrone: grande simplicité Difficultés pour le port série Ajout de caractères sur Palm Problèmes de l accès synchrone sur Newton Limitations pour les sockets TCP/IP Synchrones: 1 seul échange de données à la fois Pas de serveur possible 46

Limites et ouvertures: La machine virtuelle et le projet Waba 47

Limites et ouvertures L empreinte de PalmOS sur Waba Une version trop restreinte de Java? Un projet Open Source: possibilités d ouverture 48

L empreinte de PalmOS (1) L aspect de l interface graphique Les APIs Waba: L aspect visuel Les menus à la Palm La machine virtuelle: La gestion des polices La gestion des fenêtres La reconnaissance d écriture 49

L empreinte de PalmOS (2) Le cas des catalogues Une interface octets par octets Conventions de nommage Absence d index Aspect objet devant être inclus dans l application (extra.ui.objectcatalog) Non transactionnel 50

L empreinte de PalmOS (3) Une limite de PalmOS: mono-application et mono-tâche D où aucune interaction avec les autres applications, pas de fenêtre, pas de threads Le cas des sockets TCP/IP et du port série Bloquants Gestion des noms des ports inexistante Aucune gestion de la propriété des ports 51

Une version trop restreinte de Java? (1) Lacunes dans les classes standard java.object & java.string Hiérarchie java.util.* 52

Une version trop restreinte de Java? (2) Absence des doubles Pas de FPU sur Palm Requièrent les longs Pas de réel gain de vitesse ou de mémoire 53

Une version trop restreinte de Java? (3) Absence des exceptions Choix de l auteur Simplifie grandement l exécution (une seule pile) Mais pas de réel gain de performance/mémoire Ampute la programmation java Une des fonctions les plus demandées 54

Une version trop restreinte de Java? (4) Absence des threads Compromis pour la performance: le mauvais exemple de KVM Héritage de PalmOS Conflit avec la gestion des ports série/sockets 55

Un projet Open Source (1) Licences open source GPL (pour Waba) LGPL (pour SuperWaba) BSD & IBM PL (pour la version Newton) Projet désormais sur SourceForge 56

Un projet Open Source (2) Possibilités de fonctions natives Permettent de rajouter des APIs particulières Permettent des traitements plus rapides Mais besoin de coordination 57

Un projet Open Source (3) Les machines virtuelles alternatives (1) Waba de Rick Wild PalmPilot et WinCE SuperWaba (Guilherme Campos et alii) Palm et WinCE Beaucoup plus rapide APIs supplémentaires (très orientées Palm) Longs et doubles Meilleure gestion de l unicode 58

Un projet Open Source (4) Les machines virtuelles alternatives (2) Isao s WabaVM Palm Couleur avant le projet original Multitâche coopératif (bancal) Newton Waba (Sean Luke et alii) APIs Newton Gestion de la mémoire modifiable par l utilisateur 59

Un projet Open Source (5) Les machines virtuelles alternatives (3) WabaCE de Michael Brereton Waba pour DOS Waba pour TI Waba pour ipaq 60

Un projet Open Source (6) Classes supplémentaires (1) Waba extras de Rob Nielsen (désormais standard) Désormais standard Offrent un complément d interface (e.g. titre & menus à la Palm) ObjectCatalog & Storable RelativeContainer & Container 61

Un projet Open Source (7) Classes supplémentaires (2) MathFP bibliothèque FPU comme celles de KVM mais sans les exceptions ListBox mwaba (TextAreas, etc.) 62

Limites et ouvertures Un projet très marqué par PalmOS Une version un peu trop réduite de Java (avec surtout le manque des exceptions) Mais un projet open source, d où des possibilités d évolution 63

Conclusion 64

Conclusion Programmation objet sur PDA Rapidité de programmation avec Waba Perspectives et alternatives 65

Conclusion (1) Programmation Java sur PDA Par rapport au C (standard sur Palm): programmation par objet Par rapport au C++: ramasse-miettes, taille du code Bibliothèques de classes partagées (Newton seulement) 66

Conclusion (2) Rapidité de programmation avec Waba Waba SDK: limite l utilisation de l émulateur pour Palm & WinCE (et pallie son manque sur d autres plateformes) Peu de risque de réinitialisation du PDA (surtout sur Palm) Réutilisation du code avec les paquetages et facilitée par le modèle par événements 67

Conclusion (3) Perspectives Création d un framework multiplateforme Extension de Waba à une version moins réduite de Java, possible avec la montée en puissance des PDAs Utilisation avec les butineurs Web pour les applets (déjà le cas sur Newton avec Newtscape) 68

Conclusion (4) Alternatives Généralisation de la KVM Firmes plus enclines à suivre Sun ou IBM Un projet qui n a que deux ans 69