Java per Sistemi Ubiqui

Documenti analoghi
Java per Sistemi Mobili e Ubiqui

Java per Sistemi Mobili e Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Java SE 7. Introduzione.

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Informatica. Prof. A. Longheu. Introduzione a Java

Architetture Applicative Altri Esempi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Introduzione a Java. Riferimenti

Connettività e Comunicazione

Prof. Pagani corrado JAVA

Programmazione ad Oggetti. Java Parte I

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Le basi del linguaggio Java

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Istallazione di Java - Uso delle librerie

Traduzione e interpretazione

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

Classi di Java introducono Oggetti e Tipi per il programma

CAPITOLO 1 - Il linguaggio Java e la Java Virtual Machine CAPITOLO I IL LINGUAGGIO JAVA E LA JAVA VIRTUAL MACHINE LA PIATTAFORMA JAVA

Esonero di Informatica I. Ingegneria Medica

Panoramica: che cosa è necessario

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

INFORMATICA. L informatica comprende:

Università degli Studi di Padova

Programmazione J2ME. Lezione 1. Le MIDlet. Di Blasi Gianpiero - D.M.I. - Università di Catania

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Sistema operativo & file system 1

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

La Gestione della Memoria. Carla Binucci e Walter Didimo

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Sistema Operativo. (hardware e software) della della macchina

Introduzione al corso. Obiettivo del corso

European Master on Critical Networked Systems Modulo su Mobile Systems

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Security Model (Java 1.0) Security Model (Java 1.1)

Dispositivi per il controllo

AMBIENTI DI PROGRAMMAZIONE

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Informatica. Terzo anno Prof. A. Longheu

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Spazio di indirizzamento virtuale

Macchine Astratte. Luca Abeni. February 22, 2017

Descrizione generale dell architettura del sistema e dell interazione tra i suoi componenti. Descrizione del sottosistema di sicurezza locale.

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

ACSO Programmazione di Sistema e Concorrente

Programmazione con Java

Fondamenti di Informatica T. Il Software

Linguaggi Object Oriented: Principi e Introduzione a Java

Il Sistema Operativo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Principi di OOP con JAVA

Introduzione al Sistema Operativo MS-Windows ed all Uso dell IDE DEV-C++

Programmazione. Fondamenti di Informatica

Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di

Il Sistema Operativo. Informatica Sistema Operativo 1

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Strutture Dati Dinamiche

Java & Linux. Stefano Sanna Gruppo Utenti Linux Cagliari

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Java: vantaggi e applicazioni di un linguaggio moderno in contesti aziendali e produttivi. Presentazione a cura di: Andrea Bertolini

Programmazione ad Oggetti. Java Parte II

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Italian Black Hats Speech. Sottotitolo (INFOSECURITY ITALIA 2002) Italian Black Hats Association

Lezione 15 Il Set di Istruzioni (1)

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3

Introduzione alla programmazione Android. Emanuel Di Nardo

Concetti base programmazione. Antonio Gallo

Java Native Interface Appunti

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication

6. Il Linguaggio Java

Corso sul linguaggio Java

Strumenti per l automazione del testing di applicazioni web Javascript-based

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Primi passi col linguaggio C

MODELLI ISO/OSI e TCP/IP

Variabili dinamiche. Obiettivi: Presentare le variabili dinamiche, allocate e deallocate nell area HEAP, e le funzioni malloc e free

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Sistema operativo. Avere un architettura multi-core è un vantaggio

La Programmazione. Programmare Macchine Astratte Compilazione / Interpretazione Java. Laboratorio di Programmazione - Luca Tesei

2011 Politecnico di Torino 1

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

MODELLI ISO/OSI e TCP/IP

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010.

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Transcript:

Griglie e Sistemi di Elaborazione Ubiqui Java per Sistemi Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1

Java per Ubiquitous Computing Java Micro Edition Real-time Java KVM Waba J9 JavaPhone Java Card Griglie e Sistemi Ubiqui - D. Talia - UNICAL 2

Java per Ubiquitous Computing Java Standard Edition non è adatto ad essere usato su dispositivi ubiqui con limitate risorse. Tuttavia, Java era stato inizialmente pensato sistemi di small computing. Java Standard Edition (J2SE): versione per PC tradizionali basato su JVM. Java Enterprise Edition (J2EE): versione per macchine server che include JSP, Java Beans, JDBC, Griglie e Sistemi Ubiqui - D. Talia - UNICAL 3

Java per Ubiquitous Computing Java Micro Edition (J2ME): versione per sistemi ubiqui e pervasivi che include diverse macchine virtuali. Servers Desktop High-End Pervasive Devices Opt. Packages Opt. Packages J2EE J2EE Core Core API API Java Java Hotspot Opt. Packages Opt. Packages J2SE J2SE Core Core API API Java Java programming language JVM JVM TV TV Car MIDP Car Profile MIDP Profile Profile Profile Personal Personal profile profile J2ME J2ME Core Core API API KVM KVM Smart cards Smart Smart Card Card Profile Profile Card Card VM VM Griglie e Sistemi Ubiqui - D. Talia - UNICAL 4

Java Micro Edition Java 2 Micro Edition (J2ME): versione per sistemi ubiui e pervasivi senza requisiti di elaborazione realtime. Piccole memorie (128-512 KB) Energia limitata (batterie) Connessi in rete Capacità grafiche limitate. Due configurazioni: Connected Device Configuration (CDC) Connected, limited Device Configuration (CLDC) Griglie e Sistemi Ubiqui - D. Talia - UNICAL 5

Java Micro Edition Connected Device Configuration (CDC) Dispositivi con ROM > 512 KB e RAM > 256 KB Libreria di user interface limitata. Connected, limited Device Configuration (CLDC) Dispositivi con RAM tra 128 e 512 KB Gestione messaggistica, sicurezza, wireless KVM per questa configurazione. Anche: Embedded Java, Real-time Java, Java Card. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 6

Java Micro Edition : Real-time Java Java Standard Edition non è adatta ad applicazioni real-time. Real-time Java : gestione di applicazioni hard realtime. Tempi di esecuzione predicibili Schedulers adattabili: schedulable objects e scheduler con comportamenti predicibili e cambio di scheduler. Gestione avanzata della memoria : per evitare garbage collection costosa. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 7

Java Micro Edition : Real-time Java Accesso alla memoria fisica: per leggere o scrivere direttamente nella memoria di sensori/dispositivi. Sincronizzazione di oggetti e thread: code sincronizzate e monitor efficienti. Gestione di eventi asincroni : con trasferimento di controllo asincrono ad altri oggetti e thread. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 8

Java Micro Edition : KVM KVM : Macchina virtuale Java per dispositivi pervasivi con memoria maggiore di 128 KB. Implementa le specifiche di JVM. Progettata per processori a 16 bit, funziona anche su processori a 32 bit. Uso di risorse minime, non massima performance. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 9

Java Micro Edition : KVM Differenze con Java Standard Edition: 1. Classi differenti per la User Interface: no Swing, no AWT, e uso di driver di I/O nativi. 2. Alcune restrizioni: no RMI, thread grouping, array multidimensionali (opzionali). 3. Sottoinsieme delle librerie J2SE: implementazione parziale di java.io e java.net. SDK per KVM. Disponibile su molti cellulari (Nokia, Sony,..) e su diversi SO (es., Symbian). Griglie e Sistemi Ubiqui - D. Talia - UNICAL 10

WABA WABA è molto simile a Java ma non è la stessa cosa! WABA definisce un linguaggio, una VM, e una insieme di classi. Occorre usare WABA SDK e Java SDK nell ambiente di sviluppo. La sintassi è identica, ma i linguaggi non sono compatibili. I programmi WABA possono essere compilati tramite il compilatore Java, ma poi il bytecode va tradotto nella WABA VM. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 11

WABA WABA VM ha bisogno di una memoria molto limitata per eseguire applicazioni su dispositivi ubiqui: circa 60 KB. Possono essere aggiunte funzioni native alla WABA VM. Disponibile su Palm OS, Windows CE. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 12

IBM J9 Visual Age Micro Edition J9: JVM implementata da IBM basata inizialmente su JDK 1.2. Sono disponibili varie configurazioni (class library): 1. jclxtr : usa 92 KB di memoria ROM/flash. 2. jclcore : usa 344 KB di memoria ROM/flash. 3. jclgateway : usa 563 KB di memoria ROM/flash. 4. jclmax : usa 2500 KB di memoria ROM/flash. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 13

IBM J9 Supporta code versioning e repository per lavoro in team di sviluppo. Smart Linker : elimina class file non usati. Ambiente di sviluppo disponibile su Windows e Linux. Piattaforme supportate: Windows CE, Embedded Linux, Palm OS, Neutrino. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 14

Confronto : KVM, WABA, J9 KVM WABA J9 Piattaforma Palm OS, Windows CE, Symbian, Linux Palm OS, Windows CE Palm OS, Windows CE, Neutrino, Linux Prestazioni Basse Elevate Elevate Uso Memoria Elevato Basso Basso Librerie Indipendenti dai disp. Dipendenti dai disp. Dipendenti dai disp. Standard J2ME J2ME, Java Codice Sorg. Sun Open Source No Ambiente di Svil. Java + KVM Java + WABA VM Ambiente + debug remoto Griglie e Sistemi Ubiqui - D. Talia - UNICAL 15

JavaPhone Una API di Java per telefoni cellulari supportata da Nokia, Sony Ericsson, Motorola, TI, Symbian. Obiettivo: sviluppo di servizi e applicazioni su dispositivi di telefonia mobile. API packages per Direct Telephony Control, Address book and Calendar, User Profile, Network Datagram (SMS), Power Monitoring, Power Management, Application Installation, Communication, SSL. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 16

JavaPhone Tramite queste API sono stati definiti due profili principali: Internet Screenphone profile Smart Phone profile Che raggruppano diversi package (alcuni obbligatori, altri opzionali). In base ai dispositivi fisici si usano configurazioni Java differenti (con applet o senza). Griglie e Sistemi Ubiqui - D. Talia - UNICAL 17

Java Card Java Card è un ambiente per lo sviluppo di applicazioni su smart card (es., la SIM di un cellulare) in Java. Permette lo sviluppo di servizi e codice indipendenti dalla piattaforma e permette card multi-applicazione. Gli eseguibili di Java Card sono detti Card applets. Java Card deve essere supportato da un sistema operativo nativo, ma rende le applicazioni indipendenti da esso. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 18

Java Card Indipendenza dalla piattaforma: un applicazione per Java Card (Java Card Applet), scritta rispettando le regole imposte dall API Java Card, può essere utilizzata senza modifiche su Java Card fornite da costruttori diversi (usando Card VM). Supporto a più applicazioni: su una stessa Java Card possono coesistere diverse applicazioni (Java Card Applet) indipendenti fra loro e selezionabili singolarmente in fase di esecuzione. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 19

Java Card Caricamento di nuove applicazioni dopo la consegna: dopo che una Java Card è stata consegnata all utente finale è ancora possibile caricare nuove applicazioni attraverso terminali addetti all espletamento dei servizi. Flessibilità: il linguaggio utilizzato per programmare le Java Card è un subset del linguaggio Java: programmazione ad oggetti su smart card. Compatibilità con gli standard delle SmartCard: le Java Card sono compatibili con lo standard ISO 7816, lo standard più diffuso nel campo delle Smart Card. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 20

Java Card Memoria ROM: è utilizzato per contenere il sistema operativo della JavaCard e la parte standard del JCRE (Java Card Runtime Environment) l infrastruttura che permette il funzionamento della JavaCard. La dimensione di questo tipo di memoria è di circa 32 KByte per buona parte delle Card attualmente in commercio, mentre la dimensione minima richiesta è di 24 KByte; Griglie e Sistemi Ubiqui - D. Talia - UNICAL 21

Java Card Memoria EPROM: questo tipo di memoria, riscrivibile elettronicamente, è utilizzato per contenere le estensioni del JCRE e i Java Card Applet, nonché gli oggetti non temporanei creati durante l esecuzione di Card Applet. La dimensione di questo tipo di memoria è di circa 16 KByte per buona parte delle Card attualmente in commercio, dimensione che rappresenta anche il limite minimo. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 22

Java Card Memoria RAM: è utilizzato per contenere l heap e lo stack necessari per l esecuzione, quindi le variabili e gli oggetti temporanei creati durante l esecuzione dei card Applet. La dimensione di questo tipo di memoria è di circa 1 KByte per buona parte delle Java Card attualmente in commercio, mentre la dimensione minima richiesta è di 500 Byte. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 23

Java Card Il Java Card Run Time Environment (JCRE) ha le interfacce: 1. Card Executive : gestisce la card e le comunicazioni con l esterno. 2. La JVM che esegue i Card applet e le funzioni di libreria. 3. Metodi Nativi per l I/O e la sicurezza. 4. Il Java Card Framework che fornisce le funzioni di libreria tramite 4 packages. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 24

Java Card Il framework Java Card ha la seguente architettura: APDU Card Executive Applet 3 Applet 2 Applet 1 Java Card Framework Java Virtual Machine (VM Card) Sistema Operativo CARD HARWARE Griglie e Sistemi Ubiqui - D. Talia - UNICAL 25

Java Card Griglie e Sistemi Ubiqui - D. Talia - UNICAL 26

Java Card Metodi Nativi: metodi che forniscono le funzionalità di I/O, le funzionalità crittografiche e i servizi di allocazione della memoria. JCVM (Java Card VM): l entità che si occupa dell interpretazione del bytecode Java Card e che fornisce il supporto al linguaggio. Java Card Framework: classi che implementano l API Java Card e include i package e le eventuali estensioni standard. Provvede alla distribuzione agli altri componenti dei comandi provenienti dall esterno, e all installazione delle JavaCard Applet. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 27

Java Card Java Card API: interfaccia utilizzata dai Java Card Applet per l accesso al JCRE e ai Metodi Nativi. Questo componente fornisce quindi un insieme di classi che permette di accedere alle risorse standardizzate presenti sulla Java Card. JCRE (Java Card Runtime Environment): è l ambiente JavaCard che permette la portabilità del codice scritto per una JavaCard su un altra Java Card. Estensioni Proprietarie: classi aggiuntive definite dal costruttore della Java Card, che possono essere utilizzate dagli Applet. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 28

Java Card : Due Ambienti Griglie e Sistemi Ubiqui - D. Talia - UNICAL 29

Java Card Il Java Card Framework consiste di 4 packages. 1. java.lang : sottoinsieme di Java 2. javacard framework : classi e interfacce per i card applet. 3. javacard.security : classi e interfacce per la sicurezza della card. 4. javacardx.cripto : classi e interfacce per la sicurezza di funzionalità esportate. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 30

Java Card : applet su una smart card Gli applet installati su una smart card possono avere un tempo di vita pari a quello della card. Per terminarli bisogna de-installarli. Gli oggetti sono allocati nella EPROM e sono persistenti. Esistono array transienti, ma non oggetti transienti. Un applet installato può essere selezionato e usato da una applicazione esterna che invia all applet i dati. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 31

Java Card : applet su una smart card Il caricamento dinamico delle classi non è supportato. Non è possibile multithreading. La classe String non è disponibile. I tipi base char, double, float, e long non sono implementati. Il tipo int è opzionale. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 32

Java Card : applet su una smart card import javacard.framework.*; // importazione di classi del framework... public class <Nome Java Card Applet> extends Applet {... private <Nome JavaCard Applet>() { // metodo costruttore // si creano qui gli oggetti utilizzati dall Applet } public static void install(apdu apdu) { // metodo invocato durante l installazione dell Applet } Griglie e Sistemi Ubiqui - D. Talia - UNICAL 33

Java Card : applet su una smart card public boolean select(apdu apdu) { // metodo invocato durante la selezione dell Applet } public void deselect() { // metodo invocato durante la deselezione dell Applet } public void process(apdu apdu) { // metodo invocato alla ricezione di un comando APDU }... } Griglie e Sistemi Ubiqui - D. Talia - UNICAL 34

Java Card : Metodi install(): questo metodo è richiamato dal JCRE come ultimo passo dell installazione del JavaCard Applet. All interno di questo metodo, il programmatore dovrebbe inserire tutte le istruzioni new di creazione degli oggetti che il Java Card Applet intende utilizzare durante l esecuzione. Fra le istruzioni del blocco di codice relativo a questo metodo, il programmatore deve inserire anche una chiamata al metodo System.register() per la registrazione del Java Card Applet presso il JCRE. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 35

Java Card : Metodi select(): questo metodo è richiamato dal JCRE quando un Card Applet è selezionata (questo implica che il JCRE ha ricevuto un APDU riportante un istruzione di selezione del Card Applet). Il Java Card Applet può accettare o rifiutare la selezione facendo restituire al metodo rispettivamente true o false. Notare che a questo metodo è passato come parametro l APDU di selezione; Griglie e Sistemi Ubiqui - D. Talia - UNICAL 36

Java Card deselect(): questo metodo è richiamato dal JCRE sul JavaCard Applet correntemente selezionato quando riceve un APDU contenente un istruzione di selezione. Questa chiamata precede immediatamente la chiamata della select() del JavaCard Applet cui la selezione fa riferimento. Questo è quello che accade anche se il Card Applet correntemente selezionato è lo stesso cui l APDU di selezione fa riferimento. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 37

Java Card process(): questo metodo è richiamato dal JCRE immediatamente dopo la chiamata di select() la prima volta, ed ogni volta che arriva un APDU di comando dall entità esterna, salvo che questo non sia un APDU di selezione per una JavaCard Applet installata o la richiesta di un metodo nativo. Dopo che sono state eseguite le operazioni, l Applet risponde con un APDU di risposta, contenente gli eventuali dati di risposta e la Status Word di risposta. Quest ultima informa l entità esterna dello stato finale dell esecuzione all interno dell Applet. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 38

Java Card Il mezzo che permette la comunicazione fra le Java Card ed i dispositivi esterni di controllo, che possono essere PC o workstation oppure dispositivi di controllo dedicati, prendono il nome di CAD (Card Acceptance Device). I CAD sono una gamma di dispositivi estremamente ampia che va da semplici lettori a dispositivi più complessi che presentano, ad esempio, anche un display e un tastierino numerico per l inserimento di dati. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 39

Java Card : APDU La comunicazione tra una smart card e l esterno è realizzata tramite lo scambio di dati tramite lo standard Application Protocol Data Unit. Un APDU di comando è una sequenza di byte contenente le istruzioni inviabili dall applicazione esterna alla Java Card e gli eventuali dati associati a queste istruzioni. La struttura degli APDU di comando è definita dallo standard ISO 7816 parte 4. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 40

Java Card : APDU Ogni APDU di comando può essere suddiviso in due parti, un header ed una parte dati: L header è composto da quattro byte: il CLA (byte di classe), l INS (byte di istruzione), il P1 (primo byte del parametro) il P2 (secondo byte del parametro). Griglie e Sistemi Ubiqui - D. Talia - UNICAL 41

Java Card : APDU Il byte di classe codifica, secondo lo standard ISO 7816 parte 4, la classe dell istruzione. Il byte di istruzione codifica, sempre secondo lo standard ISO 7816 parte 4, l istruzione che la Java Card deve eseguire. Il primo ed il secondo byte del parametro codificano invece il parametro a 16 bit relativo all istruzione. La parte dati degli APDU di comando serve per comunicare eventuali dati al Card Applet destinatario dell istruzione. Questa parte dati è a lunghezza variabile e può anche non essere presente. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 42

Java Card : APDU La parte Dati è composta da: DATA : i dati da scambiare (opzionali) Lc : un byte che indica la lunghezza dei dati inviati nell APDU Le : un byte che indica la lunghezza dei dati attesi in risposta dell APDU Griglie e Sistemi Ubiqui - D. Talia - UNICAL 43

Java Card : APDU Ogni APDU di risposta è composto da i dati e da due word di stato DATA SW1 SW2 I dati sono opzionali. La loro lunghezza è indicata nell APDU di comando. I due byte di stato contengono informazioni di stato dell operazione richiesta. Griglie e Sistemi Ubiqui - D. Talia - UNICAL 44