Was ist Java? - My Web Application

Werbung
Trainingsunterlage
Java 2 Micro Edition
Programmierung mit MIDP 1.0 und
MIDP 2.0
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 1
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick - MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 2
Java Architektur und Releases

1.0 : Einführung

1.1 : Laufzeitumgebung

1.2 : Spezifikationen für Anwendungen (API)

1.3 : Releases
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 3
Was ist Java?
 Eine objektorientierte Sprache.
 Ein kommunaler Prozess zur Spezifikation objektorientierter
Modelle, zur Entwicklung von Konzepten und
technologischer Lösungen für alle für die Entwicklung von
Software interessanten Bereiche (der Java-Baukasten).
 Ein Baukasten für Entwickler (Spezifikationen für
Application Program Interfaces, Bibliotheken, Quelltexte,
Beispiele, Referenzimplementierungen)
 Eine Software-Umgebung für portable Anwendungen
(virtuelle Maschine, ladbarere Bytecode, Absicherung der
Systeme durch Beschränkungen der Rechte der
Anwendungen)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 4
Die Java Architektur
Java Applications and Applets
Java API + Libraries
Java Virtual Machine
Operating Sytem
Java
Plattform
System
Plattform
Hardware Drivers
Hardware
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 5
Was ist eine Programmierschnittstelle (API)?
 Spezifikation von Objektklassen, Methoden und Attributen
 Nach Anwendungspaketen geordnet, wie z.B.
 graphische Benutzerschnittstellen (z.B. Swing)
 Kommunikation über Netze
 Verwendung von Datenbanken (z.B. JDBC)
 verteilte Anwendungen (z.B. RMI, JINI)
 Verarbeitung von Medien (z.B. Java Media Framework)
 Intranet, Internet, Software-Integration in Unternehmen,
mobile Endgeräte, TV, Chip-Karten, ...
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 6
API-Spezifikation als HTML-Framesets (1)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 7
API-Spezifikation als HTML-Framesets (2)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 8
Java Community Process
 Offene Organisation von Java Entwicklern und
Lizenznehmnern weltweit
 Ziel: Entwicklung und Weiterentwicklung technischer
Spezifikationen, Referenzimplementierungen, sowie Tools
und Testspezifikationen für die Kompatibiltität von Java
Technologien
 Von SUN Microsystems 1995 initiiert und inzwischen eine
eigenständige Organisation, siehe www.jcp.org
 Hauptprodukt für Entwickler: Java Specification Requests
(JSRs), z.B. JSR-82 für künftige Bluetooth APIs oder JSR118 über die Programmierung mobiler Telefone (MIDP,
mobile independent device profile)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 9
Was benötigt man für die Anwendungsentwicklung?
 Das geeignete Java Release:
 für Desktop Anwendungen die Standard Edition
 für Mobiltelefone und Consumer-Elektronik die Micro Edition
 für Anwendungen in Unternehmen die Enterprise Edition
 Laufzeitumgebung (Virtual Machine, Compiler,
Bibliotheken, Referenzimplementierung, ...)
 Entwicklungs-Toolkit (Integrierte Tools, Emulatoren,
gerätespezifische Tools)
 Dokumentation (API-Spezifikationen, ...)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 10
Java Releases
Workstation
Server
Network
Computer
PC,
Notebook
Java 2
Enterprise
Edition
Communicator
Mobile phone
Set-Top
Box
PDA
Point of
Sales
Screenphone
Smartcard
Java 2
Standards
Edition
CDC
CLDC
Java 2 Micro Edition
Java Programming Language
Hot Spot
Physical memory:
Processor:
JVM
10 MB
64 Bit
KVM
1 MB
32 Bit
512 kB
32 Bit
© S. Rupp, 2003, Symbian_j2me.ppt
Card VM
32 kB
16 Bit
8 Bit
Page: 11
Was ist die Standard Edition (J2SE)?
 Zweck der Java Releases ist die Ordnung der mit der Zeit
stark gewachsenen APIs nach Anwendungsgruppen.
 Die Java Standard Edition beinhaltet alles, was zur
Entwickung von Client-Anwendungen benötigt wird.
 Zielsysteme für J2SE sind vorwiegend Desktop-Systeme
bzw. mobile Computer und Netzcomputer.
 J2SE entspricht weitgehend dem Funktionsumfang des
Development Kits JDK 1.2 (ca. 1500 Klassen in 1999) und
enthält ausserdem die Laufzeitumgebung (JRE).
 Inzwischen stehen mit JSE 1.4 zusätzliche Funktionen
bereit, wie z.B. die HotSpot Virtual Machine und APIs zur
Verarbeitung von XML Dokumenten.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 12
Was ist die Enterprise Edition (J2EE)?
 Ein Konzept zur Realisierung und Integration von
Anwendungen im Web und in Unternehmen.
 Alle dazu benötigten Komponenten, die über den Bedarf
der Standard Edition hinausgehen, sind in der Enterprise
Edition enthalten.
 Die Architektur unterscheidet folgende Schichten:
 Client für Präsentation und Benutzerschnittstellen z.B. in
einem Browser (Applet Container), bzw. in einer ClientAnwendung (Application Client Container)
 Server im Web bzw. im Unternehmen (Web-Container bzw.
Enterprise Java Beans Container)
 Datenverwaltung (Datenbank)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 13
J2EE Architektur und Komponenten
Applet
Container
Applet
Web
Container
JSP Page
J2SE
HTTP
JDBC
RMI
JNDI
Client
Application
Enterprise
Bean
Servlet
JMS
JNDI
JTA
J-Mail
JAF
RMI
JDBC
Client
Application
Container
JMS
EJB
Container
J2SE
JMS
JNDI
JTA
J-Mail
JAF
RMI
JDBC
HTTP
Database
J2SE
RMI-IIOP
J2SE
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 14
Erläuterungen zu J2EE (1)
 J2EE beinhaltet die J2SE und bietet weitere Funkionen.
 Zu den zusätzlichen Funktionen gehören:
 Servlets (Server-seitige Anwendungen für Web-Server) und
die Server-seitige Unterstützung von Java Server Pages (zur
Erzeugung dynamischer Web-Seiten)
 Server-Applikationen mit Hilfe von Enterprise Java Beans. Der
Anwendungsentwickler konzentriert sich dabei auf seine
Anwendung. Infrastrukturaufgaben (wie z.B. die Behandlung
von Transaktionen und die Behandlung persistenter Daten)
übernimmt der EJB-Container.
 CORBA und Transaktionsdienste
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 15
Erläuterungen zu J2EE (2)
 Zur J2EE gehören:
 die Spezifikationen
 die Referenzimplementierung von SUN Microsystems
 die Test-Suite zur Kompatibilität von J2EE Technologien
 Design Richtlinien für Anwendungen
 Server für die J2EE Technologie werden von
Technologiepartnern realisiert und angeboten.
 Die Funktion der in der Abbildung aufgeführten
Komponenten werden in einem separaten Teil des
Trainings erläutert.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 16
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 17
Java 2 Mirco Edition

2.0 : Übersicht

2.1 : Zielsysteme

2.2 : Aufbau von J2ME

2.3 : Funktionsumfang von CDC und CLDC

2.4 : MIDP 1.0
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 18
Was ist die Java Micro Edition (J2ME)?
 Eine kleine virtuelle Maschine KVM (benötigt nur ca. 100
kBytes Arbeitsspeicher)
 Prä-verifizierter Bytecode zur Entlastung des Zielsystems
 Konfigurationen (Systemeigenschaften):
 CDC (Connected Device Profile): 32/64 Bit-Prozessor, 2MB
 CLDC (Connected Limited Device): 16 Bit Prozessor, 256 kB
 Profile (Gebrauchsmuster für Anwendungen):
 MIDP (Mobile Interconnected Device Profile) für CLDC: z.B.
Mobiltelefon mit kleinem Display und Telefon-Tastatur
 Wireless Toolkit für die Entwickung und Tests von MIDlets
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 19
Zielsysteme für J2ME (1)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 20
Zielsysteme für J2ME (2)
 Mobiltelefone
 derzeit basierend auf CLDC und MIDP 1.0 im Handel
 für Spiele und Web-Clients
 Digitale Set-Top-Boxen (MHP)
 unidirektionale Netzanbindung
 Java Media Framework
 CDC nicht wörtlich umgesetzt
 Embedded Systems
 erste Bluetooth basierende Implementierungen nach
dem JSR-82 verfügbar
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 21
Der Aufbau von J2ME (1)
Mobiltelefone
Midlet
Foundation Profile
MIDP
CDC
CLDC
JVM
KVM
Java 2 Micro Edition
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 22
Der Aufbau von J2ME (2)
 CLDC verwendet eine kleinere VM (KVM)
 Speicherbedarf min. 160 kBytes (96 kB für KVM, 32 kB
Heap, 32 kB CLDC Klassenbibliotheken)
 MIDP ergänzt den Funktionsumfang des CLDC
 Speicherbedarf für MIDP 1.0 zusätzlich min. 168 kB (128
kB für MIDP Klassenbibliotheken, 32 kB Heap, 8kB für
persistente Daten)
 gleicher Compiler wie bei J2SE, jedoch andere Basisbibliotheken
 gegenüber der J2SE fängt J2ME wiederum klein an (als
erweitertes Subset des J2SE)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 23
Funktionsumfang von J2ME
J2SE (Standard Edition)
J2ME
CDC
CDC:
CLDC:
J2ME
CLDC
Funktionen
ausserhalb des
java.* Namensraumes
Connected Device Configuration
Connected Limited Device Configuration
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 24
Einschränkungen beim CLDC gegenüber J2SE (1)
 keine Floating Point Datentypen und Operationen
 keine Native Interfaces (zu anderen Programmen)
 keine Beeinflussung des Class Loaders möglich
 keine Reflexion (Sichtbarkeit von Systemeigenschaften zur Laufzeit wie Objekte, Threads etc),
dadurch auch keine Remote Method Invocation
 eingeschränkte Unterprozesse (keine Tread-Gruppen
und Demon Threads)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 25
Einschränkungen beim CLDC gegenüber J2SE (2)
 keine finalisation() Methode und keine schwachen
Referenzen (Objekte, die der Garbage Collector bei
Bedarf abräumen darf)
 Verlagerung des Aufwandes für die Klassenverifizierung auf das Entwicklungssystem als Präverifizierung. Vereinfachte Verifizierung auf dem
Zielsystem auf Basis von Attributen im Bytecode.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 26
Die Komponenten des MIDP 1.0
 MIDP User Interface: Benutzerführung an Bildschirm
und Tastatur
 MIDP Record Management System: Haltung
persistenter Daten
 MIDP Network Libraries: Herstellung von
Verbindungen über das Netz basierend auf dem CLDC
Generic Connection Framework
 Einige systemspezifische Funktionen wie z.B. die
Verwendung von Timern
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 27
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick - MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 28
Connected Limited Device Configuration

3.0 : Übersicht

3.1 : Sicherheitskonzept

3.2 : Das Generic Connection Framework
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 29
Connected Limited Device Configuration
Propr.
Midlet
Propr.
MIDP
Systemspezifische
Anwendungen
CLDC
KVM
Betriebssystem
Mobiltelefon
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 30
Die Komponenten des CLDC
 Verwendet eine erweiterte Untermenge des J2SE:
 java.io: Eingabe und Ausgabe durch Datenströme
 java.lang: Basisklassen
 java.util: Utilities für Zeit, Kalender usw.
 neues Paket javax.microedition.io für
Verbindungen mit der Aussenwelt
 Dadurch völlig neues und vereinfachtes Konzept für
unterschiedliche Typen von Verbindungen zur
Kommunikation: das Generic Connection Framework
 Laden fremder Anwendungen erfordert verschärftes
Sicherheitskonzept gegenüber J2SE.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 31
Sicherheitskonzept (1)
Verifizierung des
Bytecodes
vorgegebener
Namensraum
Virtuelle Maschine
Gesicherte
Kommunikationsschnittstellen
Voneinander
isolierte Daten und
Anwendungen
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 32
Sicherheitskonzept (2)
 Virtuelle Maschine: Schutz des Systems vor
unberechtigtem Zugriff und Laufzeitfehlern
 Verifizierung des Bytecodes: gültige Datentypen,
Instruktionen und gültiger Adressraum
 Vorgegebener Namensraum durch fixierten ClassLoader und vorgegebene Bibliotheken
 Zugriff auf Kommunikationsschnittstellen nur mit
Einverständnis des Benutzers (Dialog)
 Midlets (Midlet-Suites) laufen in einer Anwendungsumgebung und können nicht miteinander kommunizieren oder auf Daten anderer Midlets zugreifen.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 33
Generic Connection Framework (1)
 Unabhängig von ihrem Typ werden Verbindungen
generell nach folgendem Schema hergestellt:
 Connector.open("<Protokoll>:<Adresse>;<Parameter>");
 Konkrete Beispiele hierfür wären:
 Connector.open(“http://www.netads.de");
HTTP-Verbindung
 Connector.open("socket://162.234.100.200:8090");
Socket-Verbindung
 Connector.open("comm:0;baudrate=9600");
Serieller Port
 Connector.open("file:/hiScore.dat");
© S. Rupp, 2003, Symbian_j2me.ppt
Datei
Page: 34
Klassenhierarchie des CLDC GCF
Connection
StreamConnectionNotifier
InputConnection
StreamConnection
OutputConnection
DatagramConnection
© S. Rupp, 2003, Symbian_j2me.ppt
ContentConnection
Page: 35
Generic Connection Framework (2)
 CLDC liefert mit dem Interface Connection und
seiner Basisklasse Connector den Rahmen.
 Unterstützte Protokolle werden im jeweiligen Profil
spezifiziert, z.B. HTTP bei MIDP 1.0.
 Zuordung eines Kommunikationsprotokolles erfolgt
dynamisch zur Laufzeit.
 Abstraktion unterschiedlicher Verbindungsarten:
eingehende Verbindung bzw. abgehende Verbindung
mit kontinuierlichem Datenstrom, Quelle bzw. Senke
der Daten in einer Datei, Datagramm.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 36
Generic Connection Framework (3)
 Aus der Klassenhierarchie des GCF:
 InputConnection: serieller Eingang
 OutputConnection: serieller Ausgang
 DatagramConnection: einzelnes Paket
 Eingehende bzw. abgehende Datenströme:
 StreamConnection: kontinuierlicher Datenstrom
 ContentConnection: Datei als Quelle oder Senke
 Benachrichtigung für Server bei eingehendem Verkehr:
StreamConnectionNotifier
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 37
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick - MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 38
Mobile Information Device Profile

4.0 : Einführung

4.2 : Midlets laden und starten

4.3 : Produktionsprozess für Midlets

4.4 : Midlet Record Store

4.5 : Midlet User Interface

4.6 : Midlet Kommunikationsschnittstelle
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 39
Midlets benehmen sich wie Applets (1)
Web-Server
Client
Midlet
Suite
Application
Application
Logic
Servlet
HTT
P
Content
Midlet
Container/
OS
load
application
(Midlet Suite)
Web
Container
Download Server
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 40
Midlets benehmen sich wie Applets (2)
 Kommunikation über HTTP (bei MIDP 1.0 einziger
standardisierter Verbindungstyp)
 Laufen in einer speziellen Umgebung (Applikationsmanager startet, stoppt und löscht Midlets)
 Werden über eine URL von einem Server geladen
 bleiben jedoch nach Installation im System erhalten
 statt Browser (WML, iMode) auch mit URL per SMS
 Einverständnis des Benutzers wird vor dem Laden per
Dialog abgefragt. Dabei werden dem Benutzer die
wichtigsten Eigenschaften des Midlets angezeigt.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 41
Midlets laden und starten
WML-Link klicken
Browser lädt JAD
JAD
Datei
Programm installieren? Ok.
Browser lädt JAR
JAR
Datei
Midlet
Suite
Programm wird installiert
Laden erfolgt in zwei Stufen:
 Beschreibung laden und anzeigen
 Laden und Installation nach
Einverständis des Benutzers
Midlet lässt sich vom Benutzer starten
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 42
Zustandsdiagramm eines gestarteten Midlets (1)
new myWorld()
pauseApp
Paused
Active
startApp
destroyApp
destroyApp
Destroyed
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 43
Zustandsdiagramm eines gestarteten Midlets (2)
 Die Midlet Maschine (Applikationsmodell):
 Jedes Midlet muss vorgegebene Klassen
implementieren, mit Hilfe derer die
Anwendungsumgebung die Zustände des Midlets
verwaltet.
 In einer Midlet-Suite gruppierte Midlets können
miteinander kommunizieren.
 Eine Midlet-Suite erhält einen eigenen persistenten
Speicher (Record Store).
 Das Zustandsdiagramm kennt die Zustände „actice“,
„paused“ (Wartezustand), und „destroyed“ (beendet und
aus dem Heap gelöscht), zwischen denen durch die
vorgegebenen Methoden geschaltet werden kann.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 44
Erstellung von Midlets (1)
MyWorld.java
Java Quellcode
Entwicklungssystem
Compiler
Download JAD?
JAD Datei
MyWorld.class Java Bytecode
Download JAR?
Preverifyer
JAR Datei
MyWorld.jad
MyWorld.class Java Bytecode
JAD Datei
Runtime
Verifyer
Resources
jar -m
MyWorld.jad,
MyWorld.class
MyWorldSuite.jar
manifest
archive
Interpreter
(KVM)
JAR Datei
© S. Rupp, 2003, Symbian_j2me.ppt
Zielsystem
Page: 45
Erstellung von Midlets (2)
 Sourcecode lässt sich mit regulärem Compiler in
Bytecode übersetzen
 präverifizierter Bytecode ist ebenfalls kompatibel zu
J2SE (regulärer Verifizierer ignoriert zusätzl. Attribute)
 Midlet-Suite wird in ein Java-Archiv gepackt (JAR), das
alle für die Anwendung benötigten Midlets und
Resourcen enthält
 Manifest enthält Informationen über den Inhalt der
Midlet-Suite (wie JAD-Datei)
 MIDP-Paket: javax.microedition.midlet
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 46
MIDP Persistent Libraries (Record Store)
 Basierend auf Datensätzen (Records) nach dem
Prinzip eines Bandgerätes (anhängen, überschreiben
an einer vorgegebenen Stelle)
 Der Record Store repräsentiert die logische Sicht der
API, die Implementierung ist herstellerspezifisch.
 Record Stores sind persistent, z.B. für die Speicherung
von Spielständen.
 Record Stores einzelner Midlet-Suites sind
voneinander isoliert (getrennte Namensräume).
 MIDP-Paket: javax.microedition.rms
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 47
Struktur des MIDP Record Stores
Midlet_Suite_1
RecordId 1
Midlet1
Midlet2
Record Store
RecordId 5
RecordId 3
Midlet_Suite_2
Midlet1
Midlet2
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 48
Die grafische Benutzeroberfläche des MIDP (1)
 Minimalanforderungen:
 96x54 Bildpunkte monochrom
 Telefontastatur
 Eine ggf. umfangreichere Ausstattung verwaltet die
MIDP-Implementierung des Herstellers (z.B. vertikales
Scrollen, spezielle Tasten für Key-Events)
 Prinzip: Abstraktion von Display (anzeigbare
Komponenten) und Tastatur (Ereignisse)
 MIDP-Paket: javax.microedition.lcdui
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 49
Die grafische Benutzeroberfläche des MIDP (2)
Display
Alert
List
Screen
(High Level UI)
0..1
Displayable
TextBox
StringItem
Form
ImageItem
0..n
Item
Canvas
(Low Level UI)
TextField
DateField
Gauge
ChoiceGroup
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 50
Die grafische Benutzeroberfläche des MIDP (3)
Beispiele
Auswahlmenüs (List)
Textbox
Alert
Formular mit Regler
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 51
Die grafische Benutzeroberfläche des MIDP (4)
 Komponenten des User Interfaces:
 Alert: Hinweise für begrenzte Zeit bzw. mit Quittung des
Benutzers (ALARM, CONFIRMATION, ERROR, INFO,
WARNING)
 List: Auswahlmenü. Auswahlobjekte werden per
list.append angehängt.Typen von Auswahllisten:
implizite, explizite und multiple-choice.
 TextBox: Textfenster mit Eingabemöglichkeit, z.B. für
Texte, Passworter, telefonnummern, URL, E-Mail etc.
 Form: Formular in Art eines HTML-Formulars zur
Komposition verschiedener „Items“ wie Textstrings,
Bilder, Texteingabe, Auswahllisten, Schieberegler, ...
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 52
Die grafische Benutzeroberfläche des MIDP (5)
Command1
Screen
Command2
CommandListener
Zuordnung von
Tastatureingaben zu
einem Screen
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 53
Die grafische Benutzeroberfläche des MIDP (6)
 Screen als zentrale Abstraktion des MIDP UI
 klassische Menüführung:
 jeweils gültiger Bildschirm (Screen) wird mit den jeweils
möglichen Auswahlmöglichkeiten angezeigt
 vorgegebene abstrakte Elemente und Ereignisse
 jedem „Screen“ lassen sich Anweisungen (Commands)
zurodnen, die mit passenden Tasten des Gerätes
korrespondieren oder durch die Implementierung
wiederum als Auswahlmenü wiedergegeben werden, z.B.
OK, BACK, CANCEL, STOP, HELP.
 Ein dem Screen zugeordneter CommandListener
übermittelt Tastatureingaben als Ereignisse.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 54
MIDP Network Library
 CLDC-Paket javax.microedition.io durch MIDP
erweitert um Interface HttpConnection
 Anwendung nach der Methode des CLDC GCF:
 string Target_URL =
„http://localhost:8008/myPlayer?status=start“
 HttpConnection c = (HttpConnection)
Connector.open(Target_URL);
 InputStream is = c.openInputStream();
 Eigenschaften der HTTP-Verbindung sind über Methoden
des HttpConnection einstellbar (GET, POST, Response
Code, ...).
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 55
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick - MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 56
J2ME Wireless Toolkit
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 57
Das J2ME WTK laden und starten
 Das J2ME gibt es auf der Web-Seite von Sun
Microsystems kostenlos zum Laden
(java.sun.com/products/j2mewtoolkit)
 Enthält Emulator zum Ausprobieren fertiger Midlets
(z.B. falls kein Java-fähiges Mobiltelefon zur Hand ist).
 Erstellung eigener Midlets
 als „Projekt“ mit Verzeichnisstruktur unterstützt
 Informationen für JAD-Datei und Manifest werden
abgefragt
 Compiler, Präverifizierung und Packen in JAR-Datei
durch Bedienelement „Build“.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 58
Hello World im Wireless Toolkit (1)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 59
Hello World im Wireless Toolkit (2)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements
CommandListener {
private Form myScreen;
private static final Command EXIT_CMD = new Command(
"Exit", Command.EXIT, 1 );
protected void startApp() {
myScreen = new Form( "MIDlet-Titel" );
myScreen.addCommand( EXIT_CMD );
myScreen.setCommandListener( this );
myScreen.append( "Hello World!" );
Display.getDisplay( this ).setCurrent( myScreen );
}
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 60
Hello World im Wireless Toolkit (3)
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) {}
public void commandAction( Command c, Displayable d ) {
if ( c == EXIT_CMD ) {
destroyApp( true );
notifyDestroyed();
}
}
}
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 61
Hello World im Wireless Toolkit (4)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 62
Programmierung mit Java

1 : Übersicht über Architektur und Releases

2 : Java 2 Micro Edition

3 : Connected Limited Device Configuration

4 : Mobile Information Device Profile

5 : Wireless Toolkit

6 : Ausblick - MIDP 2.0 und weiter
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 63
MIDP 2.0
 Basiert auf dem CLDC 1.0 und erweitert den
Funktionsumfang des MIDP 1.0 um:
 abgesicherte Verbindungen (HTTPS, Secure Sockets)
und signierte Midlets mit besonderen Privilegien (z.B.
Kommunikatrionsschnittstelle ohne individuellen Dialog
mit dem Benutzer bedienen)
 mehr Protokolle zur Vernetzung: Sockets, UDP
 Push-Dienste: Nachrichten von subskribierten Diensten
im Netz wecken Midlets auf
 mehr Multimedia für Audio, Video und Spiele (Teil der
Multi Media API, Graphik, Benutzerschnittstelle)
 standardisiertes Over-the-Air Provisioning (OTA)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 64
Die API des MIDP 2.0
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 65
Anforderungen des MIDP 2.0
 Noch einige kBytes mehr: Über den Bedarf des CLDC
hinaus erfordert MIDP 2.0 min. 256 kB für
Klassenbibliotheken, 128 kB Heap, 8 kB persistente
Daten
 Pakete des MIDP 2.0:
 Erweiterungen von javax.microedition.lcdui und
javax.microedition.io
 neu sind javax.microedition.lcdui.games und
javax.microedition.media (Subset des Multi Media
API nach JSR-135 inklusive Media-Controller)
 ebenfalls neu ist javax.microedition.pki
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 66
Wireless Toolkit 1.4 mit MIDP 2.0 Demos
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 67
Ausrichtung des MIDP 2.0
 Mit den Erweiterungen gegenüber MIDP 1.0 zielt MIDP
2.0 hauptsächlich auf
 Spiele (inkl. Multimedia)
 mobile Clients
 Standardisierung der OTA-Schnittstelle schafft
Kompatibiltiät mit den „Verkaufsmaschinen“ (Java
Vending Machines) unterschiedlicher Anbieter.
 Kopplung über asynchrone Anchrichten, geicherte
Verbindungen und Public Key Infrastruktur schaffen
Voraussetzungen für mobile Clients in Unternehmen.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 68
Künftige Erweiterungen nach MIDP 2.0 (1)
 Mobile Media
 WTK unterstützt bereits Mobile Media API (JSR-135)
 MIDP 2.0 fordert nur monophonen Audio-Player, künftig
ggf. auch echte multimediale Formate im Standard
 Mobile Messaging
 WTK unterstützt Wireless Messaging API (JSR-120)
 Wireless Messaging API: SMS nach dem GCF mit
Connector „sms://+491717654321“ als Textstring
 Bluetooth (JSR-182)
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 69
Künftige Erweiterungen nach MIDP 2.0 (2)
 Mobile Games
 mehr Sound, 3D-Grafik, Anschluss von Gamepads etc.
 Location Based Services
 API zu Unterstützung von Navigationshilfen, Routenplanern, bzw. Anwendungen aus dem Personenschutz
 Die weitere Entwicklung ist abhängig von
 der Aktzeptanz von MIDP 1.0 und 2.0
 der Akzeptanz systemspezifischer Lösungen (z.B. auf
Basis des Symbian-Betriebssystems), die sich als
Kandidaten für Java-Standards eignen.
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 70
Ausblick - Der Telefondienst neu aufgelegt?
Ziele der Verbindung
Jamtel
Hans
Nicole
Müller-Schulz
Tel.
geschäftl.
Mobiltel.
geschäftl.
Select
... bin im Geschäft
Mobiltelefon
Tel. privat
Mobiltel.
privat
... bin privat unterwegs
... bin off-line
Kommunikationszustände
© S. Rupp, 2003, Symbian_j2me.ppt
IMS nach:
• SMS
• e-mail
• inst. Message
Voice
mail
Page: 71
Trainingsunterlage
ENDE
Java 2 Micro Edition
Programmierung mit MIDP 1.0 und
MIDP 2.0
© S. Rupp, 2003, Symbian_j2me.ppt
Page: 72
Herunterladen