JUG Sardegna Java Summer Meeting 16 Luglio 2005 1



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

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

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Argo Mobile. Gestione Assenze. Manuale d Installazione e d uso del prodotto

Tecniche di progettazione e sviluppo di applicazioni mobile


View Mobile User s Guide

De Gaetano Andrea JAVA 4 EMBEDDED

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Rasip, MIDlet per scambio di messaggi SIP

Manuale d'uso del Connection Manager

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

Progetto: Servizio location based per la ricerca di punti di interesse

European Master on Critical Networked Systems Modulo su Mobile Systems

PAWSN. Wireless social networking

VPN RETI PRIVATE VIRTUALI: ACCESSO REMOTO

GUIDA RAPIDA NOKIA PC SUITE per Nokia Copyright Nokia Mobile Phones Tutti i diritti sono riservati Issue 4

Una architettura peer-topeer per la visualizzazione 3D distribuita

Collegamento remoto vending machines by do-dots

P A D. Private A Distanza.

Socket & RMI Ingegneria del Software - San Pietro

maggio 2013 Elevend srl Pag. 1/25

GUIDA RAPIDA. Installazione di Nokia Connectivity Cable Drivers

Un applicazione client per la localizzazione via Bluetooth e Wi-Fi di dispositivi Smartphone Anno Accademico 2005/2006

View Mobile User s Guide

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Installazione e caratteristiche generali 1

BrokerINFO La soluzione integrata per la distribuzione dei dati dei mercati finanziari. Advanced Advanced Technology Solutions

Introduzione a Java 2 Micro Edition. Dr. Francesca Martelli f.martel@di.unipi.it Stanza: 382 DB Tel:

Programmazione ad Oggetti. Java Parte I

Istruzioni per l installazione

ARGOMOBILE Argo Software S.r.l. -

Corso sul linguaggio Java

GUIDA RAPIDA NOKIA PC SUITE 4.81 PER NOKIA 6310i

Si applica a: Windows Server 2008

STELLA SUITE Manuale d'uso

Introduzione alle applicazioni di rete

Business Mobile nuove imprese, nuovi agenti >

Manuale LiveBox WEB ADMIN.

Panoramica: che cosa è necessario

Programmazione Client-Server

GUIDA ALL'INSTALLAZIONE PER NOKIA NETWORK BRIDGE. Copyright 2004 Nokia. Tutti i diritti sono riservati. 1/6

Il web server Apache Lezione n. 3. Introduzione

Implementazione di MVC. Gabriele Pellegrinetti

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Un applicazione per il trasferimento file in ambiente Symbian

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

Architetture Applicative

NOKIA 3650 COLLEGAMENTO TRAMITE IRDA. +cgdcont=1, ip, ibox.tim.it. Sul telefono: Sul PC: CONFIGURAZIONE INTERNET WINDOWS 2000 XP

Aggiornamento Protocollo Jsibac

Acronis License Server. Manuale utente

Approccio stratificato

Applicativo SBNWeb. Configurazione hardware e software di base di un server LINUX per gli applicativi SBNWeb e OPAC di POLO

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

Introduzione a Java 2 Micro Edition Francesca Martelli

la tua presenza e il tuo BUSINESS ON-LINE

Sistemi Operativi. Conclusioni e nuove frontiere

Client - Server. Client Web: il BROWSER

Lezione 19 Blackberry. Dr. Paolo Casoto, Ph.D

Il tuo manuale d'uso. F-SECURE MOBILE SECURITY 6 FOR ANDROID

GUIDA RAPIDA. Installazione di Nokia Connectivity Cable Drivers

Perché? Non occorre eseguire alcuna scomoda sincronizzazione della rubrica telefonica ed è possibile accedere ai contatti in qualsiasi momento.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

VirtualOffice CRM Vendite. La soluzione per gestire con successo i rapporti commerciali con i clienti e le trattative di vendita

Connettere due PC Windows 95/98/Me Rete Pannello di Controllo Client per Reti Microsoft

FileMaker Pro 11. Esecuzione di FileMaker Pro 11 su Servizi Terminal

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938

Application Server per sviluppare applicazioni Java Enterprise

DW-SmartCluster (ver. 2.1) Architettura e funzionamento

LE POSSIBILITA' DI ACCESSO DA REMOTO ALLE RETI DI CALCOLATORI

Hardware delle reti LAN

Manuale LiveBox WEB ADMIN.

Progetti F.O.S.S. Ieri e Oggi

BACHECA ELETTRONICA Display a messaggi variabili a tecnologia Led

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Centralizzazione. Centralizzazione Gams

Software di gestione della stampante

Programma per l elaborazione delle buste paga. dei collaboratori domestici VERSIONE /07/2010

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

BMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Interfaccia ottica Iskraemeco Sonda 5 / Sonda 6 Guida all installazione del driver per i sistemi operativi Windows 7 e Windows XP

Corso App modulo Android. Antonio Gallo

SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0

Mov . Symbian S60 3th edition

Istruzioni di installazione di IBM SPSS Modeler Text AnalyticsServer per Windows

Come valutare e scegliere un Sistema Operativo Embedded

Metti il GPS sul cellulare Nokia

Mida Directory. Introduzione. Mida Directory

FIREWALL: LA PROTEZIONE PER GLI ACCESSI ESTERNI

Contenuto del pacchetto

Registratori di Cassa

PIATTAFORMA DOCUMENTALE CRG

Archiviazione digitale per SAP con DocuWare

Transcript:

JUG Sardegna Java Summer Meeting 16 Luglio 2005 1

J2ME Introduzione allo sviluppo di applicazioni per dispositivi mobili Stefano Sanna gerdavax@tiscali.it gerda@crs4.it JUG Sardegna Java Summer Meeting 16 Luglio 2005 2

Java ME Introduzione allo sviluppo di applicazioni per dispositivi mobili Stefano Sanna gerdavax@tiscali.it gerda@crs4.it JUG Sardegna Java Summer Meeting 16 Luglio 2005 3

La piattaforma Java... Fonte: Sun Microsystems JUG Sardegna Java Summer Meeting 16 Luglio 2005 4

Virtual Machine, Configurazioni, Profili Virtual Machine E' il motore Java che fornisce la prima astrazione rispetto all'hardware del dispositivo Configurazione Rappresenta il set di classi comune ad una famiglia di dispositivi caratterizzati da potenza hardware simile. Non definisce una GUI! Profilo Rappresenta la specializzazione della Configurazione su una tipologia di prodotto. Definisce la GUI (se esiste...) JUG Sardegna Java Summer Meeting 16 Luglio 2005 5

CDC, CLDC, PP, MIDP, IMP... CDC (palmari, set-top box, navigatori): Foundation Profile Personal Basis Profile Personal Profile CLDC (cellulari, pager, palmari): Mobile Information Device Profile (MIDP) Information Module Profile (IMP) JUG Sardegna Java Summer Meeting 16 Luglio 2005 6

Mobile Information Device Profile E' il profilo per eccellenza in ambito telefonico: Definisce un set minimo ma funzionale per la creazione di interfacce grafiche per display mouse- & pen- less Offre connettività wireless e un servizio base di persistenza locale E' sufficientemente leggero e astratto da poter essere portato su una grande varietà di dispositivi e di piattaforme E' continuamente aggiornato e arricchito da librerie opzionali JUG Sardegna Java Summer Meeting 16 Luglio 2005 7

MIDP 1.0 Rilasciata a settembre 2001 Funzionalità: Interfacce grafiche elementari Connessioni HTTP Persistenza dei dati sul dispositivo Principali limiti: Nessuna funzione multimediale Nessun supporto a connessioni sicure Nokia 7650 Uno dei primi cellulari J2ME Mancanza di componenti personalizzabili JUG Sardegna Java Summer Meeting 16 Luglio 2005 8

MIDP 2.0 Rilasciata a fine 2002 Miglioramenti: Possibilità di definire componenti grafici personalizzati Maggior numero di protocolli di rete supportati Funzionalità di base per gestione file audio Gestione connessioni HTTP sicure Nokia 6600 Uno dei primi cellulari MIDP 2.0 API avanzate per lo sviluppo di videogiochi e Push Registry JUG Sardegna Java Summer Meeting 16 Luglio 2005 9

Il futuro: MIDP 3.0 Il Java Community Process ha iniziato a lavorare al JSR 271, nella cui agenda figurano: Multitasking e background MIDlets Potenziamento GUI e uso del secondo display Internazionalizzazione più potente Supporto per diversi tipi di reti (Wi-Fi, telefonica...) Standardizzazione delle interfacce per l'installazione delle applicazioni Se ne parla nel 2006...! :-) JUG Sardegna Java Summer Meeting 16 Luglio 2005 10

Differenze rispetto a Java SE A parte le specificità dello sviluppo in ambito mobile, queste sono alcune delle differenze significative tra Java SE e Java ME: Managed Application Model Processo di sviluppo e deployment Libreria di classi ridotta (java.lang, java.util...) Generic Connection Framework LCDUI Modularità spinta JUG Sardegna Java Summer Meeting 16 Luglio 2005 11

Libreria di classi ridotta (cenni) Multithreading, I/O e collection semplificati Mancano: Serializzazione Java Native Interface Reflection Dynamic class loading remoto (solo dal Jar) Aritmetica floating point (CLDC 1.0)... mancano StringTokenizer, BufferedReader... JUG Sardegna Java Summer Meeting 16 Luglio 2005 12

La differenza principale... Le applicazioni girano su dispositivi molto diversi tra loro (non esiste una piattaforma di riferimento!) e caratterizzati da differenti: Prestazioni e architettura dell'hardware Sistemi operativi Interfacce utente (es, Soft Button...) Comportamento della Java Virtual Machine... e... interpretazioni della specifica Utenti target (consumer, professional, business) JUG Sardegna Java Summer Meeting 16 Luglio 2005 13

MIDlet e ciclo di vita L'applicazione definita dal profilo MIDP è la MIDlet. Questo il suo ciclo di vita: destroyapp() Paused Active Destroyed startapp() destroyapp() caricamento pauseapp() JUG Sardegna Java Summer Meeting 16 Luglio 2005 14

MIDlet import javax.microedition.midlet.*; public class MIDletSkeleton extends MIDlet { public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { } } JUG Sardegna Java Summer Meeting 16 Luglio 2005 15

Java Application Descriptor Contiene le informazioni sull'applicazione, mostrate all'utente prima che si proceda con il download e l'installazione del software Viene generato automaticamente dai tool di sviluppo Attenzione: l'indicazione della dimensione del file JAR deve essere esatta; in caso contrario alcuni dispositivi rifiutano il caricamento dell'applicazione JUG Sardegna Java Summer Meeting 16 Luglio 2005 16

Esempio di file JAD MIDlet-Version: 1.0.0 MIDlet-Vendor: Stefano Sanna MIDlet-Jar-URL: http://www.gerdavax.it/jpizza.jar MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 MIDlet-1: JPizza,, jpizza.jpizza MIDlet-Jar-Size: 10819 MIDlet-Name: Jpizza...... JUG Sardegna Java Summer Meeting 16 Luglio 2005 17

Deployment L'installazione di una applicazione sul dispositivo può essere effettuata: Over-The-Air (OTA): attraverso connessione HTTP a server web Sincronizzazione: attraverso apposita utility fornita dal produttore del terminale OBEX Push: attraverso oggetti inviati attraverso Bluetooth (non supportato da tutti i cellulari) Deployment OTA Affinché l'application Manager del dispositivo riconosca gli oggetti restituiti dal server, questi devono essere qualificati con i mime-type: - application/java-archive (JAR) - text/vnd.sun.j2me.app-descriptor (JAD) JUG Sardegna Java Summer Meeting 16 Luglio 2005 18

LCDUI Il modello di componenti per le GUI su Java ME sono sostanzialmente diverse da quelle per Java SE... perché diversi sono i dispositivi coinvolti! Particolarità: Assenza di finestre flottanti Visualizzazione non bloccante Comandi condivisi Maschere di input native JUG Sardegna Java Summer Meeting 16 Luglio 2005 19

Un semplice Form Form Item Command JUG Sardegna Java Summer Meeting 16 Luglio 2005 20

LCDUI JUG Sardegna Java Summer Meeting 16 Luglio 2005 21

Generic Connection Framework La varietà mezzi di comunicazione ha portato alla definizione di un framework astratto per la gestione delle connessioni remote La factory Connector fornisce Connection specializzate per ciascun protocollo supportato, mentre I/O Stream e relativi Adapter/Decorator forniscono gli strumenti di lettura, scrittura e conversione dei dati Connector.open(...) JUG Sardegna Java Summer Meeting 16 Luglio 2005 22

Generic Connection Framework JUG Sardegna Java Summer Meeting 16 Luglio 2005 23

Una semplice MIDlet: JPizza! Implementiamo una semplice MIDlet che permette all'utente di effettuare, con il proprio cellulare, l'ordine di una pizza a domicilio: Scegliamo le pizze (tipo e quantità) Indichiamo il nostro indirizzo e recapito telefonico Usiamo gli SMS come mezzo di trasporto JUG Sardegna Java Summer Meeting 16 Luglio 2005 24

JPizza JUG Sardegna Java Summer Meeting 16 Luglio 2005 25

JPizza: altro che MicroEdition! Comunicazione: Interfaccia web service per la ricezione del menù aggiornato (pizza con asparagi!) e l'invio dell'ordine GUI: possibilità di specificare modifiche agli ingredienti di ciascuna pizza (doppia mozzarella, niente origano...) Storage: Possibilità di memorizzare le pizze più gradite (dopo la cena...) JUG Sardegna Java Summer Meeting 16 Luglio 2005 26

API opzionali CLDC e MIDP permettono di costruire applicazioni elementari : la vera ricchezza è nelle API opzionali: Wireless Messaging API (JSR 120 & 205) Mobile Media API (JSR 135) Mobile 3D Graphics (JSR 184) Bluetooth API (JSR 82) FileConnection & PIM API (JSR 75) Web Services API (JSR 172) Location API (JSR 179)... molte altre in arrivo! :-) JUG Sardegna Java Summer Meeting 16 Luglio 2005 27

Ambienti di sviluppo Sun J2ME Wireless Toolkit http://java.sun.com/j2me Netbeans + Mobility Pack http://www.netbeans.org Eclipse + EclipseME http://www.eclipseme.org Nokia Developer's Suite for J2ME http://www.forum.nokia.com Sony-Ericsson J2ME SDK http://developer.sonyericsson.com Motorola J2ME SDK http://www.motocoder.com JUG Sardegna Java Summer Meeting 16 Luglio 2005 28

Anche su Linux! :-) JUG Sardegna Java Summer Meeting 16 Luglio 2005 29

Due ottime letture Beginning J2ME Jonathan Knudsen, Sing Li APress, 2005 ISBN: 1-59059-479-7 Programming Java 2 Micro Edition for Symbian OS: A developer's guide to MIDP 2.0 Martin De Jode Wiley, 2004 ISBN: 0-470-09223-8 JUG Sardegna Java Summer Meeting 16 Luglio 2005 30

Conclusioni: il presente... Java ME è una piattaforma matura ed affidabile per lo sviluppo di applicazioni mobile-centric di classe business Il vastissimo parco installato rende MIDP leader indiscusso nella telefonia mobile La ricchezza della API e la complessità del processo di porting/testing su diverse classi di terminali richiede una forte specializzazione degli sviluppatori Il 2006 porterà uno straordinario potenziamento della piattaforma JUG Sardegna Java Summer Meeting 16 Luglio 2005 31

... e il (bellissimo!) futuro... Nokia ha presentato N91, un terminale con caratteristiche decisamente interessanti: GSM, GPRS, EDGE, WCDMA SymbianOS 9 HD 4GB Fotocamera 2MPixel J2ME con MIDP 2.0, CLDC 1.1, WMA, MMA, M3G, BTA, FC&PIM, WSA, LocationAPI... JUG Sardegna Java Summer Meeting 16 Luglio 2005 32

Grazie... :-) Java ME Introduzione allo sviluppo di applicazioni per dispositivi mobili (Versione 1.0) (C) 2005 Stefano Sanna (gerdavax@tiscali.it) è garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della Licenza per Documentazione Libera GNU, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation. Una copia della licenza in lingua italiana è disponibile presso: http://www.softwarelibero.it/gnudoc/fdl.it.html Realizzato in ambiente Linux con OpenOffice 1.1.2 Tutti i marchi commerciali sono di proprietà dei rispettivi titolari e sono stati citati in questa presentazione a solo scopo illustrativo. JUG Sardegna Java Summer Meeting 16 Luglio 2005 33