Modèles de mémoire en Java Card TM Introduction du concept de pré-persistance



Documents pareils
La technologie Java Card TM

La carte à puce. Jean-Philippe Babau

Projet de Veille Technologique

Annexe : La Programmation Informatique

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Leçon 1 : Les principaux composants d un ordinateur

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

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

SOMMAIRE. Installation et utilisation HP RDX.doc

Les bons réflexes : le bureau et la zone de notification : Les programmes qui s activent au démarrage ; Enlever / supprimer un programme ;

Service de lettre électronique sécurisée de bpost. Spécificités techniques

Conseils importants. Recommandations concernant le N91 et le N91 8 Go. Nokia PC Suite (en particulier Nokia Audio Manager) Gestion de fichiers

Chapitre 2. Classes et objets

G. Méthodes de déploiement alternatives

Vérification formelle de la plate-forme Java Card

Formation : WEbMaster

Programmation d'applications sur PDA

CommandCenter Secure Gateway

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur

NOOBÉ GUIDE DE PRISE EN MAIN SOMMAIRE. INSTALLER Installer le logiciel Lancer le logiciel Découvrir NOOBÉ

Présentation du SC101

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

Alfresco Guide Utilisateur

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

Descriptif de Kelio Protect

ORACLE TUNING PACK 11G

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

QU EST-CE QUE LA RFID?

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

EXAMEN PROFESSIONNEL DE VERIFICATION D APTITUDE AUX FONCTIONS D ANALYSTE-DEVELOPPEUR SESSION 2009

Guide de démarrage de Business Objects Crystal Decisions

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Héritage presque multiple en Java (1/2)

Cyberclasse L'interface web pas à pas

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Alcatel Si la carte IP-LAN maîtresse est hors service, tous les services VoIP (Passerelle H.323 et Téléphonie IP) sont indisponibles.

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

À propos de cette page Recommandations pour le mot de passe... 26

Initiation à JAVA et à la programmation objet.

EPSON. Knowledge Base. Messages d Etat et d erreur pour Alc 4000

Découverte de l ordinateur. Partie matérielle

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

OpenOffice.org IMPRESS. Notes de cours Novembre 2005 Version 1.0

Suivi de la formation

Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis

Technologie SDS (Software-Defined Storage) de DataCore

Notice d utilisation du serveur SE3 (Samba Édu 3) Version «élèves» 2.4 Lycée Jean-Pierre TIMBAUD

Programmation des Applications Réparties. Parsers XML DOM et SAX

Traduction des Langages : Le Compilateur Micro Java

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

L'intelligence en mouvement. Caméras AUTODOME 7000 avec fonction de suivi intelligent

Samsung Magician v.4.3 Guide d'introduction et d'installation

Vérification formelle de la plate-forme Java Card

L'explorateur de fichier de Windows 8.1

Manuel d'utilisation de Mémo vocal

contactless & payment des solutions de test pour mener à bien vos projets

LOGICIEL KIPICAM : Manuel d installation et d utilisation

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Projet : PcAnywhere et Le contrôle à distance.

A. À propos des annuaires

2. Technique d analyse de la demande

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Espace de travail collaboratif

Guide de réinstallation et de dépannage. Veuillez créer les disques de réinstallation immédiatement après la configuration.

ReadCard Guide Utilisateur

GROUPE CAHORS EXTRANET

CATALOGUE Parcours de Formations E-Learning BILAN FORMATION STAGE. e-learning

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Machines Virtuelles. et bazard autour. Rémi Forax

ISEC. Codes malveillants

Service intervenant. Version 6.3

Série Pro Toshiba Business Vision

Fiche technique: Archivage Symantec Enterprise Vault for Microsoft Exchange Stocker, gérer et rechercher les informations stratégiques de l'entreprise

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

protexial io Prop os ez vo tre exp e r ti s e da ns la s é c uri té de l ha b i ta t.

Module BD et sites WEB

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

SYSTÈME DE GESTION DE FICHIERS

Comprendre Merise et la modélisation des données

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Partie 7 : Gestion de la mémoire

Guide d'utilisation du Serveur USB

Java - la plateforme

Bases de données. Table des matières. Introduction. (ReferencePlus.ca)

L'accès aux ressources informatiques de l'ufr des Sciences

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Ordinateurs, Structure et Applications

Configuration de l'ordinateur Manuel de l'utilisateur

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Fedora 14. Images live de Fedora. Comment utiliser l'image live de Fedora. Paul W. Frields Nelson Strother Nathan Thomas

Axel Remote Management

Administration de systèmes

Logiciel photothèque professionnel GUIDE D UTILISATION - 1 -

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

Transcription:

Équipe Systèmes et Objets Distribués Modèles de mémoire en Java Card TM Introduction du concept de pré-persistance Serge Chaumette, Damien Sauveron chaumett@labri.fr, sauveron@labri.fr 1

Plan La carte à puce La technologie Java Card Les objets persistants et transients Introduction du concept de pré-persistance Exemple de code en Java Exemple de code en Java Card sans pré-persistance Exemple de code en Java Card avec pré-persistance Conclusion et perspectives 2

La carte à puce : un périphérique de nature persistante Les mémoires : Permanente : ROM 32 à 64 Ko Card Operating System + données permanentes Volatile : 1 à 2 Ko très rapide mémoire de travail (pile d'appels, etc.) Persistante : (ou Fe ou Flash) 24 à 64 Ko lente (200 fois plus que la ) mémoire de stockage durée de vie limitée à 100 000 cycles d'écriture 3

La technologie Java Card Difficultés pour adapter Java aux cartes : faible capacité mémoire périphérique de nature persistante Solutions : limitation au strict nécessaire sur la carte (types simples, tableaux de types simples,...) introduction des concepts de persistance et de transience Ap p let X Ap p let Z Java Card APIs JCRE Java Card Virtu al Machin e (in terp réteu r d e bytecod es) Hard ware d e la carte à p u ce et systèm e n atif 4

Objets persistants Un objet persistant est stocké en mémoire persistante : entête + champs. Spécifications : Un objet persistant devra être créé lorsque : la méthode Applet.register est appelée (enregistrement d'une application) ; une référence à l'objet est stockée dans un champ d'un objet persistant ou dans celui statique d'une classe. Quelques caractéristiques : il a été créé par le bytecode new avant de devenir persistant ; il conserve ses valeurs lors des sessions avec le lecteur. 5

Objets transients Un objet transient est un objet dont le contenu est temporaire : l'entête persiste et l'espace alloué au contenu également. entête contenu des champs Un objet transient est associé à un événement dont l'occurrence déclenche la réinitialisation de ses champs : CLEAR_ON_DESELECT ; CLEAR_ON_RESET. Les seuls types d'objets transients jusque dans les spécifications JC 2.2.1 sont les tableaux de types simples. Quelques caractéristiques : il a été créé par maketransientbooleanarray (et consoeurs de la classe JCSystem) ; il est réinitialisé lors de l'occurence d'un événement. 6

Introduction du concept de pré-persistance Spécifications : un objet est créé lors de : - l'exécution d'un bytecode new, anewarray et newarray ; - l'invocation d'une méthode de l'api maketransientxxxarray. le développeur rendra les objets persistants lorsqu'une référence à l'objet est stockée dans un champ d'un objet persistant ou dans celui d'une classe. Quelle est la nature des objets entre le moment de leur création et celui de leur affectation à un champ d'un objet persistant? Nous désignerons par espace pré-persistant l'espace où sont placés les objets lors de leur création par l'exécution d'un bytecode new, anewarray et newarray. Sa localisation reste à définir mais dans la suite nous le considérerons en Attention : pré-persistant n'implique pas que l'objet devriendra nécessairement persistant. 7

Exemple de code en Java (); Object o2 = (); <--------------- ICI s1 = 8

Exemple de code en Java (); Object o2 = (); <--------------- ICI s1 = this 0x0000 9

Exemple de code en Java (); Object o2 = (); <--------------- ICI 10

Exemple de code en Java (); Object o2 = (); <--------------- ICI this ref 11

Exemple de code en Java (); Object o2 = (); <--------------- ICI 12

Exemple de code en Java (); Object o2 = (); <--------------- ICI s2 = o2 = 13

Exemple de code en Java (); Object o2 = (); <--------------- ICI s2 = o2 = 0x0001 14

Exemple de code en Java (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 15

Exemple de code en Java (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = ref 16

Exemple de code en Java (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 17

Exemple de code en Java Remarques : sémantiques identiques et homogènes pour les variables locales et les variables d'instances (contenu et référence) Tous les objets sont dans une même mémoire. Tout est temporaire! Normal, Java est un environnement de programmation temporaire. s2 = 0x0001 o2 = 18

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); s1 = <--------------- ICI 19

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); s1 = <--------------- ICI this 0x0000 20

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI 21

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI this ref 22

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI 23

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI s2 = o2 = 24

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI s2 = o2 = 0x0001 25

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 26

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = ref 27

Exemple de code en Java Card sans pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 28

Exemple de code en Java Card sans pré-persistance Remarques : sémantiques identiques les variables d'instances (contenu et référence) sémantiques différentes pour les variables locales (contenu et référence) Tous les objets sont dans l'. Problèmes : Perte d'alimentation objet inaccessible et non ramassé s2 = 0x0001 o2 = 29

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); s1 = <--------------- ICI 30

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); s1 = <--------------- ICI this 0x0000 31

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI 32

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI this ref 33

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI 34

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI s2 = o2 = 35

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI s2 = o2 = 0x0001 36

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 37

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = ref 38

Exemple de code en Java Card avec pré-persistance (); Object o2 = (); <--------------- ICI s2 = 0x0001 o2 = 39

Exemple de code en Java Card avec pré-persistance Remarques : sémantiques identiques les variables d'instances (contenu et référence) sémantiques identiques pour les variables locales (contenu et référence) Les objets sont dans deux mémoires Avantages : sémantiques homogènes comme en Java sur la perte d'alimentation : ramasse-miette naturelle de la pas d'objet inaccessible non ramassé Inconvénients : Mécanisme de recopie des objets de la vers l' s2 = 0x0001 o2 = 40

Conclusion et perpectives Notre contribution : L'introduction du concept de pré-persistance : obtention de la sémantique originelle de Java Une clarification des spécifications concernant le TAS (définition, contenu, localisation). 4 modèles mémoires aux propriétés très différentes : fonctionnalités, sémantique et sécurité! Perspectives : Formalisation à l'aide d'une sémantique opérationnelle des interactions entre objets : persistants transients pré-persistants visualisation de la contamination lors de l'affectation d'un objet transient ou pré-persistant à un champ d'un objet persistant! But final : Proposer au Java Card Forum une modification des spécifications. 41

Comparatif des 2 solutions par rapport à Java Propriété Java Java Card sans PP Java Card avec PP Sémantique pour les variables d'instance cohérent cohérent mais persistant cohérent mais persistant Sémantique pour les variables locales cohérent incohérent avec Java cohérent avec Java Inaccessibilité des objets aucun grâce au ramasse-miette oui non sauf si le programmeur le désire! Il y a un mécanisme de ramasse-miette naturelle de la 42