SlideShare a Scribd company logo
J2ME - Il micro mondo Java Java miniaturizzato per i dispositivi wireless
Le versioni di Java
Le configurazioni Sun distingue ciò che si può tenere in mano CLDC 128 Kb di memoria per l’esecuzione di Java 32 Kb per l’allocazione a run time Interfaccia utente limitata Alimentazione elettrica ridotta (batterie) Connettività wireless, banda stretta, discontinua Da ciò che si può connettere ad una presa murale CDC 518 Kb minimo di memoria per l’esecuzione di Java 257 Kb per l’allocazione a run time Connettività a banda larga
KVM – Kylobyte Virtual Machine Dietro ogni programma Java c’è una Virtual Machine, quella di J2ME ha queste caratteristiche: Necessita di soli 40-80 Kb di memoria Di soli 20 Kb di memoria dinamica Può essere eseguita su cpu con Clock di 25 Hz
La configurazione CLDC Destinata a Cellulari, PDA, Pager. Si occupa di: Definire le caratteristiche del linguaggio Java Fornire un set minimo di librerie di base  Gestire gli stream di I/O Sicurezza Networking Internazionalizzazione Lasciando ai profili: La gestione del ciclo di vita delle applicazioni L’implementazione di interfaccie utenti La cattura e la gestione degli eventi L’interazione tra l’utente e l’applicazione
Il package java.lang Differenze con l’omonimo package di J2SE Niente float Niente double Classe math: tenuti solo max, min, abs Niente Daemon Thread e Gruppi di thread Niente Java Native Interface Per adattarsi meglio alle caratteristiche dei  dispositivi
Classi di utilità: java.util Uniche classi presenti: Enumeration HashTable Vector Stack Calendar Date TimeZone Random Nella configurazione CDCL c’è solo lo “stretto necessario”!
La gestione degli stream: java.io La maggior parte dei dispositivi CDCL non possiedono un file system, sono state eliminate tutte le operazioni su file. L’unico supporto all’internazionalizzazione è garantito da queste due classi: InputStreamReader(InputStream is, String encoding); OutputStreamWriter(OutputStream os, String encoding); Che permettono la conversione da sequenze di byte a caratteri unicode e viceversa
Il Generic Connection Framework Qualunque tipo connessione viene aperta utilizzando il metodo open() della classe Connector: Connector.open(string_connection); dove string_connection ha il seguente formato: <protocol>:<address>;<parameters> protocol indica il tipo connessione che si intende utilizzare (es. http, datagram, scrittura su file, ecc.) address permette di individuare la destinazione (può essere un indirizzo IP ma anche il nome di un file) parameters contiene una serie di informazioni aggiuntive che possono essere funzionali per un dato tipo di connessione (ad es. baudrate per comunicazioni su porta seriale)
Gerarchia del Generic Connection Framework
La sicurezza I meccanismi di J2SE richiedono troppa memoria, in J2ME è stato utilizzato un approccio a più livelli: Virtual Machine Applicazione Con due livelli di verifica: Fuori dal dispositivo (off-device pre-verification) Nel dispositivo (in-device verification)
Il processo di verifica
SandBox Model Modello di sicurezza: Ogni applicazione deve aver superato il processo di verifica Ha accesso ad un ben determinato set di API (quelle previste dalla CLDC, dal profilo utilizzato e eventuali altri classi) Non è prevista la possibilità di ridefinire caricatori di classe a livello applicazione Il codice nativo non è accessibile alle applicazioni
Mobile Information Device Profile – MIDP Si occupa: Di gestire il ciclo di vita delle applicazioni (caricamento esecuzione - distruzione delle applicazioni)  Di gestire l'interfaccia utente (dispositivi di input/output) Del salvataggio persistente dei dati  Del networking (implementazione dei protocolli)  Questi quattro punti sono implementati in altrettanti packages, rispettivamente: javax.microedition.midlet  javax.microedition.lcdui  javax.microedition.rms  javax.microedition.io
Architettura MIDP
Ciclo di vita di una MIDlet
I file Manifest e Jad File MANIFEST: MIDlet-1: HelloWorld, HelloWorld.png MIDlet-Name: HelloWorld MIDlet-Vendor: Csp S.c.a r.l. MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 File JAD: (Java Application Descriptor) MIDlet-1: HelloWorld, HelloWorld.png MIDlet-Jar-Size: 100 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Csp S.c.a r.l. MIDlet-Version: 1.0
Metodi di approvvigionamento OTA Over The Air Initiated Provisioning Recommended Pratice  è un addendum del MIDP 1.0 per il download delle midlet. In pratica nel file JAD viene indicato l’url del file JAR Wap Push Viene inviato al cellulare un messaggio con un link al file JAD
Il futuro: MIDP 2.0 Multimedia Immagini in RGB Game API Modello di Sicurezza Migliorato HTTPS Gestione della rete migliorata Distribuzione delle applicazioni migliorata
Conclusioni J2ME è una tecnologia molto potente e può essere integrata con le numerose API liberamente scaricabili da internet Jxta.org per il P2P Bouncycastle.org per la crittografia … Limitata dall’Hw degli attuali dispositivi Con i cellulari 3G sarà possibile sviluppare applicazioni molto potenti  Sistemi GIS Applicazioni Multimediali

More Related Content

PPT
Verdaderas Obras De Arte
PPS
ish boded
PDF
Enterprise 2.0
PPT
10th Ceepus – Biomedicine Students’ Council Summer Eng
PDF
Commitbell2.0
PPT
The Master Bath!!!
PPT
P3 Compo 1
PPT
Publizitate eta HHPP Sarrera 2. Gaia
Verdaderas Obras De Arte
ish boded
Enterprise 2.0
10th Ceepus – Biomedicine Students’ Council Summer Eng
Commitbell2.0
The Master Bath!!!
P3 Compo 1
Publizitate eta HHPP Sarrera 2. Gaia

Viewers also liked (15)

PPT
Web 2.0 Introductie (Infosessie Vlaams Agentschap Ondernemers)
PPT
PPT
Publizitate eta HHPP sarrera: 4. gaia
PPT
Medical Information Workshop (23 Jan 2007 )
PPT
Publizitate Eraginkortasunaren Baliospena 4
PPS
Postal De Nadal 2008 09 Manel Sons
PDF
Matadero Paneles
PPT
Advent - Otvorenost
PPTX
Lessons to be learnt from supporter-led appeals
PPT
Social media and local government
PPT
The permanent revolution
PPT
看图作文(三)
PPTX
Byť trpezliví jeden s druhým
PPT
Souper Bowl 2006
PDF
Fotomuseum
Web 2.0 Introductie (Infosessie Vlaams Agentschap Ondernemers)
Publizitate eta HHPP sarrera: 4. gaia
Medical Information Workshop (23 Jan 2007 )
Publizitate Eraginkortasunaren Baliospena 4
Postal De Nadal 2008 09 Manel Sons
Matadero Paneles
Advent - Otvorenost
Lessons to be learnt from supporter-led appeals
Social media and local government
The permanent revolution
看图作文(三)
Byť trpezliví jeden s druhým
Souper Bowl 2006
Fotomuseum
Ad

Similar to J2Me Il Micro Mondo Java (20)

PDF
Programma il futuro: una scelta open source
PDF
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
PPTX
Are you a Gadgeteer? - NetMF@Work
PDF
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
PDF
Sistemi Context-aware: Esercitazione 3
PDF
Il web service e i sistemi embedded - Tesi - cap2
PPTX
Dot net framework 2
PPTX
GWT Development for Handheld Devices
PPT
Il personal computer
PDF
Software libero nei sistemi embedded
PPT
Tesi Discussione
PPTX
Androidsdk appinventor
ODP
Asynchronous Java ME and XML
PDF
Programma il futuro : una scelta Open Source
PPTX
Delphi Day 2009 Win7 Dev Overview
PPT
JAMP DAY 2010 - ROMA (1)
PDF
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
PPT
3rd 3DDRESD: BSS
PDF
Cac Es3 2009
Programma il futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Are you a Gadgeteer? - NetMF@Work
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Sistemi Context-aware: Esercitazione 3
Il web service e i sistemi embedded - Tesi - cap2
Dot net framework 2
GWT Development for Handheld Devices
Il personal computer
Software libero nei sistemi embedded
Tesi Discussione
Androidsdk appinventor
Asynchronous Java ME and XML
Programma il futuro : una scelta Open Source
Delphi Day 2009 Win7 Dev Overview
JAMP DAY 2010 - ROMA (1)
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
3rd 3DDRESD: BSS
Cac Es3 2009
Ad

More from Antonio Terreno (12)

PDF
Serverless conference-labrador-at-2018
KEY
Blend it up - leancamp london presentation
PDF
Programmer Anarchy
KEY
Socket.io
PDF
Agiler without a schema @forward
PDF
Mongo db
PDF
Domain Driven Design Javaday Roma2007
PDF
Jc06 Antonio Terreno Fluidtime
PDF
PDF
From Amber To Green in Four Weeks
PPT
Time Boxing
PPT
Importance Of Being Driven
Serverless conference-labrador-at-2018
Blend it up - leancamp london presentation
Programmer Anarchy
Socket.io
Agiler without a schema @forward
Mongo db
Domain Driven Design Javaday Roma2007
Jc06 Antonio Terreno Fluidtime
From Amber To Green in Four Weeks
Time Boxing
Importance Of Being Driven

J2Me Il Micro Mondo Java

  • 1. J2ME - Il micro mondo Java Java miniaturizzato per i dispositivi wireless
  • 3. Le configurazioni Sun distingue ciò che si può tenere in mano CLDC 128 Kb di memoria per l’esecuzione di Java 32 Kb per l’allocazione a run time Interfaccia utente limitata Alimentazione elettrica ridotta (batterie) Connettività wireless, banda stretta, discontinua Da ciò che si può connettere ad una presa murale CDC 518 Kb minimo di memoria per l’esecuzione di Java 257 Kb per l’allocazione a run time Connettività a banda larga
  • 4. KVM – Kylobyte Virtual Machine Dietro ogni programma Java c’è una Virtual Machine, quella di J2ME ha queste caratteristiche: Necessita di soli 40-80 Kb di memoria Di soli 20 Kb di memoria dinamica Può essere eseguita su cpu con Clock di 25 Hz
  • 5. La configurazione CLDC Destinata a Cellulari, PDA, Pager. Si occupa di: Definire le caratteristiche del linguaggio Java Fornire un set minimo di librerie di base Gestire gli stream di I/O Sicurezza Networking Internazionalizzazione Lasciando ai profili: La gestione del ciclo di vita delle applicazioni L’implementazione di interfaccie utenti La cattura e la gestione degli eventi L’interazione tra l’utente e l’applicazione
  • 6. Il package java.lang Differenze con l’omonimo package di J2SE Niente float Niente double Classe math: tenuti solo max, min, abs Niente Daemon Thread e Gruppi di thread Niente Java Native Interface Per adattarsi meglio alle caratteristiche dei dispositivi
  • 7. Classi di utilità: java.util Uniche classi presenti: Enumeration HashTable Vector Stack Calendar Date TimeZone Random Nella configurazione CDCL c’è solo lo “stretto necessario”!
  • 8. La gestione degli stream: java.io La maggior parte dei dispositivi CDCL non possiedono un file system, sono state eliminate tutte le operazioni su file. L’unico supporto all’internazionalizzazione è garantito da queste due classi: InputStreamReader(InputStream is, String encoding); OutputStreamWriter(OutputStream os, String encoding); Che permettono la conversione da sequenze di byte a caratteri unicode e viceversa
  • 9. Il Generic Connection Framework Qualunque tipo connessione viene aperta utilizzando il metodo open() della classe Connector: Connector.open(string_connection); dove string_connection ha il seguente formato: <protocol>:<address>;<parameters> protocol indica il tipo connessione che si intende utilizzare (es. http, datagram, scrittura su file, ecc.) address permette di individuare la destinazione (può essere un indirizzo IP ma anche il nome di un file) parameters contiene una serie di informazioni aggiuntive che possono essere funzionali per un dato tipo di connessione (ad es. baudrate per comunicazioni su porta seriale)
  • 10. Gerarchia del Generic Connection Framework
  • 11. La sicurezza I meccanismi di J2SE richiedono troppa memoria, in J2ME è stato utilizzato un approccio a più livelli: Virtual Machine Applicazione Con due livelli di verifica: Fuori dal dispositivo (off-device pre-verification) Nel dispositivo (in-device verification)
  • 12. Il processo di verifica
  • 13. SandBox Model Modello di sicurezza: Ogni applicazione deve aver superato il processo di verifica Ha accesso ad un ben determinato set di API (quelle previste dalla CLDC, dal profilo utilizzato e eventuali altri classi) Non è prevista la possibilità di ridefinire caricatori di classe a livello applicazione Il codice nativo non è accessibile alle applicazioni
  • 14. Mobile Information Device Profile – MIDP Si occupa: Di gestire il ciclo di vita delle applicazioni (caricamento esecuzione - distruzione delle applicazioni) Di gestire l'interfaccia utente (dispositivi di input/output) Del salvataggio persistente dei dati Del networking (implementazione dei protocolli) Questi quattro punti sono implementati in altrettanti packages, rispettivamente: javax.microedition.midlet javax.microedition.lcdui javax.microedition.rms javax.microedition.io
  • 16. Ciclo di vita di una MIDlet
  • 17. I file Manifest e Jad File MANIFEST: MIDlet-1: HelloWorld, HelloWorld.png MIDlet-Name: HelloWorld MIDlet-Vendor: Csp S.c.a r.l. MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 File JAD: (Java Application Descriptor) MIDlet-1: HelloWorld, HelloWorld.png MIDlet-Jar-Size: 100 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Csp S.c.a r.l. MIDlet-Version: 1.0
  • 18. Metodi di approvvigionamento OTA Over The Air Initiated Provisioning Recommended Pratice è un addendum del MIDP 1.0 per il download delle midlet. In pratica nel file JAD viene indicato l’url del file JAR Wap Push Viene inviato al cellulare un messaggio con un link al file JAD
  • 19. Il futuro: MIDP 2.0 Multimedia Immagini in RGB Game API Modello di Sicurezza Migliorato HTTPS Gestione della rete migliorata Distribuzione delle applicazioni migliorata
  • 20. Conclusioni J2ME è una tecnologia molto potente e può essere integrata con le numerose API liberamente scaricabili da internet Jxta.org per il P2P Bouncycastle.org per la crittografia … Limitata dall’Hw degli attuali dispositivi Con i cellulari 3G sarà possibile sviluppare applicazioni molto potenti Sistemi GIS Applicazioni Multimediali