JSR
Tutte le informazioni sulle tecnologie legate al mondo J2ME č possibile reperirle attraverso le JSR (Java Specification Request). Attraverso questo meccanismo di pubblicazione delle specifiche, viene definita la linea guida, le API che devono essere implementate. Per quanto riguarda J2ME, partecipano alla definizione delle JSR le major della Telefonia. Queste API saranno poi quelle a cui devono attenersi i principali produttori di cellulari/palmari. Chiaramente ogni cellulare č diverso rispetto agli altri per caratteristiche fisiche e API implementate. Per maggiori informazioni sui vari dispositivi e le loro caratteristiche potete consultare i seguenti siti
Qui di seguito vengono elencate le JSR che definiscono tutto quello che riguarda il mondo J2ME.
MIDP 1.0 - JSR 037
Vengono qui definite le prime specifiche riguardanti MIDP (Mobile Information Device Profile). Sono le prime API disponibili per il mondo J2ME.
http://java.sun.com/javame/reference/apis/jsr037
http://jcp.org/en/jsr/detail?id=037
CLDC 1.0 - JSR 030
La versione base di CLDC (Connected Limited Device Configuration) viene definita in questa JSR. Praticamente qui possiamo trovare definite le classi base che sono state importate dalla versione J2SE e alcune classi che riguardano le connessioni che č possibile effettuare da J2ME.
http://java.sun.com/javame/reference/apis/jsr030
http://java.sun.com/aboutJava/communityprocess/final/jsr030/
MIDP 2.0 - JSR 118
L'evoluzione delle specifiche MIDP porta alla versione 2.0, in cui vengono ampliate le API base disponibili per questo profilo. Attualmente possiamo trovare questo tipo di API sulla maggior parte dei dispositivi che supportano J2ME.
http://java.sun.com/javame/reference/apis/jsr118
http://jcp.org/aboutJava/communityprocess/final/jsr118/
CLDC 1.1 - JSR 139
Un aggiornamento di CLDC, dove possiamo trovare novitą come virgola mobile e weak reference.
http://java.sun.com/javame/reference/apis/jsr139
http://java.sun.com/aboutJava/communityprocess/final/jsr139/
CDC 1.1.2 - JSR 218
In questa JSR possiamo trovare le API specifiche per quei dispositivi con maggiore potenza di calcolo, RAM, spazio su disco rispetto alla configurazione CLDC.
http://java.sun.com/javame/reference/apis/jsr218
http://java.sun.com/aboutJava/communityprocess/final/jsr218/
Foundation, Personal Basis e Personal Profile - JSR 219, 217 e 216
Questi profili sono stati pensati per dispositivi con capacitą di calcolo differenti dai classici cellulari. Possiamo trovarli su PDA, Smartphone e altri dispositivi evoluti. Racchiudono molte delle API J2SE, permettendo allo sviluppatore di creare applicazioni senza doversi scontrare troppo con le limitazioni del dispositivo.
http://java.sun.com/products/foundation/
http://java.sun.com/javame/reference/apis/jsr219
http://java.sun.com/products/personalbasis/
http://java.sun.com/javame/reference/apis/jsr217
http://java.sun.com/products/personalprofile/
http://java.sun.com/javame/reference/apis/jsr216
WMA 1.0, 1.1 e 2.0 - JSR 120 e 205
WMA (Wireless Messaging API) sono le API che permettono all'interno di un programma J2ME di creare applicazioni che possono mandare e ricevere messaggi di testo (SMS) o binari. Viene inoltre definito in queste API il concetto di Push Registry, ovvero un registro che permette di far avviare l'applicazione grazie ad un SMS che viene ricevuto sul dispositivo. La versione 2.0 introduce la possibilitą per lo sviluppatore di creare MMS, al cui interno č possibile inserire testo, immagini e suoni.
http://java.sun.com/products/wma/
http://jcp.org/aboutJava/communityprocess/final/jsr120/
http://jcp.org/aboutJava/communityprocess/final/jsr120/index2.html
http://jcp.org/en/jsr/detail?id=205
JABWT - JSR 82
JABWT (Java BlueTooth Wireless Technology) sono delle API che descrivono completamente le interazioni che č possibile fare da Java con una radio Bluetooth. Queste API sono disponibili sia per la versione J2ME, dove vengono implementate dai vari costruttori, sia nella versione J2SE con librerie ch aderiscono allo standard.
http://java.sun.com/javame/reference/apis/jsr082
J2ME Web Services API - JSR 172
Anche nel mondo embedded sono sbarcati i WebServices. Infatti grazie a questa JSR č possibile implementare un client che sfrutta un WebServices. Alla base di questa API ci sono le librerie per il parsing dell'XML e per l'invio di richieste stile RPC (JAXP e JAX-RPC). Diversi toolkit mettono a disposizione dei tool per creare le classi stub per l'utilizzo dei WebServices inserendo semplicemente l'url o il file WSDL. In questo modo vengono create le classi che si occupano di richiamare il servizio. Sono utili comunque anche i package relativi al parsing XML, che permettono di avere un parser di default senza ricorrere a librerie esterne.
http://java.sun.com/javame/reference/apis/jsr172
http://java.sun.com/j2me/docs/j2me_jsr172.pdf
Mobile 3D Graphics API - JSR 184
J2ME č il re incontrastato sui dispsitivi mobili per quanto riguarda i giochi. Infatti parte del suo successo lo deve proprio a questa fascia di mercato, che ha convinto piano piano tutti i produttori a includere una JVM nei propri dispositivi. Chiaramente essendo i giochi una parte importante dello sviluppo J2ME non poteva mancare una libreria per il rendering 3D. Grazie a questa API abbiamo ha a dispozione una serie di classi/interfacce che rendono possibile e molto agevole lo sviluppo di applicazioni 3D su dispositivi J2ME.
http://jcp.org/en/jsr/detail?id=184
http://developers.sun.com/techtopics/mobility/apis/articles/3dgraphics/
PIM e FileConnection - PDA Optional Packages - JSR 75
Questa API apre la strada verso nuovi orizzonti per i programmi J2ME. Infatti chi ha iniziato a sviluppare dalle prime versioni ha accolto questa nuova API con molto entusiasmo. Praticamente č ora possibile interagire con il filesystem del dispositivo (ram o memory card esterne) e con le classiche informazioni che possiamo avere su un celllare come rubrica, todo, note.
http://jcp.org/aboutJava/communityprocess/final/jsr075/
MIDP 3.0 - JSR 271
La specifica di MIDP č arrivata alla versione 3.0, introducendo molte novitą. Le principali riguardano la possibilitą di far girare diverse MIDlet su una JVM, di avere MIDlet in background, autostart, intercomunicazione tra MIDlet, miglioramenti vari riguardanti sicurezza, networking e interfaccia grafica. Allo stato attuale queste API sono state definite ma non implementate su nessun dispositivo.
http://www.jcp.org/en/jsr/detail?id=271
Location API - JSR 179
Questa JSR definisce un API ad alto livello per il reperimento di informazioni geografiche tramite Java. Leggendo dettagliatamente il documento di specifica di questa JSR ci si rende conto che lo scopo finale č di fornire una potentissima API per la localizzione. Sui dispositivi mobili questa API si scontra chiaramente con le implementazioni dei differenti produttori e soprattutto sulle informazioni reperibili a livello di rete cellulare GSM/GPRS/UMTS. Su alcuni dispositivi Motorola č possibile usufruire del sistema A-GPS (Assisted GPS) per avere queste informazioni di localizzazione. Questa č una di quelle API che č molto legata alla coppia dispositivo/rete quindi c'č bisogno di documentarsi ulteriormente quando si vuole implentare un programma che la utilizzi
http://jcp.org/jsr/detail/179.jsp
SIP API - JSR 180
SIP (Session Initiation Protocol) č un protocollo standard pensato per gestire le connessioni riguardanti comunicazioni multimediali su Internet. Praticamente questo č uno standard che viene utilizzato per la realizzazione di programmi VoIP (Voice over IP). Quello che di solito viene ignorato č che SIP gestisce soltanto le connessioni, mentre lo scambio di dati multimediali, come ad esempio la voce, deve essere realizzato con altri mezzi. Comunque troviamo a disposizione questa API negli ultimi modelli di dispositivi, utile per realizzare interessanti programmi di comunicazione.
http://jcp.org/jsr/detail/180.jsp
Advanced Multimedia Supplements - JSR 234
Queste API sono state definite per fornire sui dispositivi mobili maggiori potenzialitą dal punto di vista multimediale. Grazie infatti a queste API č possibile avere funzionalitą di manipolazione per quanto riguarda l'audio e le immagini.
http://jcp.org/en/jsr/detail?id=234
Scalable 2D Vector Graphics API - JSR 226
Questa specifica definisce un API per il rendering 2D su dispositivi mobili. Si basa principalmente sulla Java 2D API disponibile per la versione J2SE e permette inoltre la possibilitą di gestire immagini nel formato SVG (Scalable Vector Graphics).
http://www.jcp.org/en/jsr/detail?id=226
Altre JSR
Qui di seguito vengono riportate altre JSR definite per il mondo J2ME.
RMI - JSR 66
JDBC - JSR 179
JavaTV - JSR 927
Content Handler - JSR 211
OpenGL - JSR 239
SATSA - JSR 177
Payment API - JSR 229
Mobile Operational Management - JSR 232
Mobile Telephone API - JSR 253
JTWI - JSR 185
Lista completa delle JSR per la piattaforma J2ME