Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit...

72
Page: 1 © S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0

Transcript of Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit...

Page 1: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 1© S. Rupp, 2003, Symbian_j2me.ppt

Java 2 Micro Edition

Trainingsunterlage

Programmierung mit MIDP 1.0 und MIDP 2.0

Page 2: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 2© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 3: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 3© S. Rupp, 2003, Symbian_j2me.ppt

1.0 : Einführung

1.1 : Laufzeitumgebung

1.2 : Spezifikationen für Anwendungen (API)

1.3 : Releases

Java Architektur und Releases

Page 4: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 4© S. Rupp, 2003, Symbian_j2me.ppt

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)

Was ist Java?

Page 5: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 5© S. Rupp, 2003, Symbian_j2me.ppt

JavaPlattform

Hardware

SystemPlattformOperating Sytem

Hardware Drivers

Java Virtual Machine

Java API + Libraries

Java Applications and Applets

Die Java Architektur

Page 6: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 6© S. Rupp, 2003, Symbian_j2me.ppt

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, ...

Was ist eine Programmierschnittstelle (API)?

Page 7: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 7© S. Rupp, 2003, Symbian_j2me.ppt

API-Spezifikation als HTML-Framesets (1)

Page 8: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 8© S. Rupp, 2003, Symbian_j2me.ppt

API-Spezifikation als HTML-Framesets (2)

Page 9: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 9© S. Rupp, 2003, Symbian_j2me.ppt

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 JSR-118 über die Programmierung mobiler Telefone (MIDP, mobile independent device profile)

Java Community Process

Page 10: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 10© S. Rupp, 2003, Symbian_j2me.ppt

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, ...)

Was benötigt man für die Anwendungsentwicklung?

Page 11: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 11© S. Rupp, 2003, Symbian_j2me.ppt

Java Programming Language

Hot Spot JVM KVM Card VM

Java 2Enterprise

EditionJava 2

StandardsEdition Java 2 Micro Edition

Server

Workstation

Set-Top Box

PC, Notebook

Network Computer

Communicator

PDA

Screenphone

Smartcard

Mobile phone

Point of Sales

CLDCCDC

Physical memory:Processor:

10 MB64 Bit

512 kB32 Bit 8 Bit

1 MB32 Bit

32 kB16 Bit

Java Releases

Page 12: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 12© S. Rupp, 2003, Symbian_j2me.ppt

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.

Was ist die Standard Edition (J2SE)?

Page 13: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 13© S. Rupp, 2003, Symbian_j2me.ppt

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 Client-Anwendung (Application Client Container)

Server im Web bzw. im Unternehmen (Web-Container bzw. Enterprise Java Beans Container)

Datenverwaltung (Datenbank)

Was ist die Enterprise Edition (J2EE)?

Page 14: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 14© S. Rupp, 2003, Symbian_j2me.ppt

J2EE Architektur und Komponenten

Applet

AppletContainer

J2SE

J2SE

ClientApplication

ClientApplicationContainer

Database

JMS

JND

I

RM

I

JDB

C

JMS

JND

IJT

AJ-

Mai

lJA

FR

MI

JDB

C

J2SE

WebContainer

JSP Page

Servlet

JMS

JND

IJT

AJ-

Mai

lJA

FR

MI

JDB

C

J2SE

EJBContainer

Enterprise Bean

HTTP

HTTP

RMI-IIOP

Page 15: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 15© S. Rupp, 2003, Symbian_j2me.ppt

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

Erläuterungen zu J2EE (1)

Page 16: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 16© S. Rupp, 2003, Symbian_j2me.ppt

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.

Erläuterungen zu J2EE (2)

Page 17: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 17© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 18: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 18© S. Rupp, 2003, Symbian_j2me.ppt

2.0 : Übersicht

2.1 : Zielsysteme

2.2 : Aufbau von J2ME

2.3 : Funktionsumfang von CDC und CLDC

2.4 : MIDP 1.0

Java 2 Mirco Edition

Page 19: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 19© S. Rupp, 2003, Symbian_j2me.ppt

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

Was ist die Java Micro Edition (J2ME)?

Page 20: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 20© S. Rupp, 2003, Symbian_j2me.ppt

Zielsysteme für J2ME (1)

Page 21: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 21© S. Rupp, 2003, Symbian_j2me.ppt

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

Zielsysteme für J2ME (2)

Page 22: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 22© S. Rupp, 2003, Symbian_j2me.ppt

JVM KVM

Java 2 Micro Edition

CLDCCDC

Foundation Profile

Midlet

Mobiltelefone

MIDP

Der Aufbau von J2ME (1)

Page 23: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 23© S. Rupp, 2003, Symbian_j2me.ppt

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 Basis-bibliotheken

gegenüber der J2SE fängt J2ME wiederum klein an (als erweitertes Subset des J2SE)

Der Aufbau von J2ME (2)

Page 24: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 24© S. Rupp, 2003, Symbian_j2me.ppt

J2SE (Standard Edition)

J2MECDC J2ME

CLDC Funktionen ausserhalb des java.* Namens-raumes

CDC: Connected Device ConfigurationCLDC: Connected Limited Device Configuration

Funktionsumfang von J2ME

Page 25: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 25© S. Rupp, 2003, Symbian_j2me.ppt

keine Floating Point Datentypen und Operationen

keine Native Interfaces (zu anderen Programmen)

keine Beeinflussung des Class Loaders möglich

keine Reflexion (Sichtbarkeit von System-eigenschaften zur Laufzeit wie Objekte, Threads etc), dadurch auch keine Remote Method Invocation

eingeschränkte Unterprozesse (keine Tread-Gruppen und Demon Threads)

Einschränkungen beim CLDC gegenüber J2SE (1)

Page 26: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 26© S. Rupp, 2003, Symbian_j2me.ppt

keine finalisation() Methode und keine schwachen Referenzen (Objekte, die der Garbage Collector bei Bedarf abräumen darf)

Verlagerung des Aufwandes für die Klassen-verifizierung auf das Entwicklungssystem als Prä-verifizierung. Vereinfachte Verifizierung auf dem Zielsystem auf Basis von Attributen im Bytecode.

Einschränkungen beim CLDC gegenüber J2SE (2)

Page 27: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 27© S. Rupp, 2003, Symbian_j2me.ppt

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

Die Komponenten des MIDP 1.0

Page 28: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 28© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 29: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 29© S. Rupp, 2003, Symbian_j2me.ppt

3.0 : Übersicht

3.1 : Sicherheitskonzept

3.2 : Das Generic Connection Framework

Connected Limited Device Configuration

Page 30: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 30© S. Rupp, 2003, Symbian_j2me.ppt

Propr.

KVM

Betriebssystem

CLDC

Midlet

Mobiltelefon

Propr.

MIDP

System-spezifische

Anwendungen

Connected Limited Device Configuration

Page 31: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 31© S. Rupp, 2003, Symbian_j2me.ppt

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.

Die Komponenten des CLDC

Page 32: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 32© S. Rupp, 2003, Symbian_j2me.ppt

Sicherheitskonzept (1)

Verifizierung des Bytecodes

vorgegebener Namensraum

Gesicherte Kommunikations-

schnittstellen

Voneinander isolierte Daten und

Anwendungen

Virtuelle Maschine

Page 33: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 33© S. Rupp, 2003, Symbian_j2me.ppt

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 Class-Loader und vorgegebene Bibliotheken

Zugriff auf Kommunikationsschnittstellen nur mit Einverständnis des Benutzers (Dialog)

Midlets (Midlet-Suites) laufen in einer Anwendungs-umgebung und können nicht miteinander kommuni-zieren oder auf Daten anderer Midlets zugreifen.

Sicherheitskonzept (2)

Page 34: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 34© S. Rupp, 2003, Symbian_j2me.ppt

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"); Datei

Generic Connection Framework (1)

Page 35: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 35© S. Rupp, 2003, Symbian_j2me.ppt

Connection

StreamConnectionNotifier

InputConnection

OutputConnection

DatagramConnection

StreamConnection

ContentConnection

Klassenhierarchie des CLDC GCF

Page 36: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 36© S. Rupp, 2003, Symbian_j2me.ppt

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.

Generic Connection Framework (2)

Page 37: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 37© S. Rupp, 2003, Symbian_j2me.ppt

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

Generic Connection Framework (3)

Page 38: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 38© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 39: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 39© S. Rupp, 2003, Symbian_j2me.ppt

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

Mobile Information Device Profile

Page 40: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 40© S. Rupp, 2003, Symbian_j2me.ppt

Web-Server

ApplicationLogic

Client

HTTP

MidletSuite

MidletContainer/

OS

WebContainer

Servlet

Content

Download Server

load application(Midlet Suite)

Appli-cation

Midlets benehmen sich wie Applets (1)

Page 41: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 41© S. Rupp, 2003, Symbian_j2me.ppt

Kommunikation über HTTP (bei MIDP 1.0 einziger standardisierter Verbindungstyp)

Laufen in einer speziellen Umgebung (Applikations-manager 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.

Midlets benehmen sich wie Applets (2)

Page 42: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 42© S. Rupp, 2003, Symbian_j2me.ppt

JADDatei

JARDatei

WML-Link klicken

Browser lädt JAD

Programm installieren? Ok.

Browser lädt JARMidlet Suite

Programm wird installiert

Midlets laden und starten

Laden erfolgt in zwei Stufen: Beschreibung laden und anzeigen

Laden und Installation nach Einverständis des Benutzers

Midlet lässt sich vom Benutzer starten

Page 43: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 43© S. Rupp, 2003, Symbian_j2me.ppt

pauseApp

startApp

destroyAppdestroyApp

new myWorld()

Paused Active

Destroyed

Zustandsdiagramm eines gestarteten Midlets (1)

Page 44: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 44© S. Rupp, 2003, Symbian_j2me.ppt

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.

Zustandsdiagramm eines gestarteten Midlets (2)

Page 45: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 45© S. Rupp, 2003, Symbian_j2me.ppt

MyWorld.java

Compiler

Java Quellcode

Java Bytecode

Preverifyer

Java Bytecode

MyWorld.class

MyWorld.class JAD Datei

JAR Datei

archivejar -m MyWorld.jad, MyWorld.class

MyWorld.jad

MyWorldSuite.jar

Entwicklungs-system

Zielsystem

JAR Datei

JAD Datei

Download JAD?

Download JAR?

RuntimeVerifyer

Interpreter(KVM)

manifest

Resources

Erstellung von Midlets (1)

Page 46: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 46© S. Rupp, 2003, Symbian_j2me.ppt

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

Erstellung von Midlets (2)

Page 47: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 47© S. Rupp, 2003, Symbian_j2me.ppt

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

MIDP Persistent Libraries (Record Store)

Page 48: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 48© S. Rupp, 2003, Symbian_j2me.ppt

RecordId 1

RecordId 5

RecordId 3Midlet1Midlet2

Midlet_Suite_1

Midlet2

Midlet1

Midlet_Suite_2

Record Store

Struktur des MIDP Record Stores

Page 49: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 49© S. Rupp, 2003, Symbian_j2me.ppt

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

Die grafische Benutzeroberfläche des MIDP (1)

Page 50: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 50© S. Rupp, 2003, Symbian_j2me.ppt

Display

Displayable

StringItem

Screen(High Level UI)

Canvas (Low Level UI)

Alert

List

TextBox

Form

Item

ImageItem

TextField

DateField

ChoiceGroup

Gauge

0..1

0..n

Die grafische Benutzeroberfläche des MIDP (2)

Page 51: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 51© S. Rupp, 2003, Symbian_j2me.ppt

Alert

Textbox

Formular mit Regler

Auswahlmenüs (List)

Die grafische Benutzeroberfläche des MIDP (3)

Beispiele

Page 52: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 52© S. Rupp, 2003, Symbian_j2me.ppt

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, ...

Die grafische Benutzeroberfläche des MIDP (4)

Page 53: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 53© S. Rupp, 2003, Symbian_j2me.ppt

Zuordnung von Tastatureingaben zu einem Screen

Screen

Command1

Command2

CommandListener

Die grafische Benutzeroberfläche des MIDP (5)

Page 54: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 54© S. Rupp, 2003, Symbian_j2me.ppt

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.

Die grafische Benutzeroberfläche des MIDP (6)

Page 55: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 55© S. Rupp, 2003, Symbian_j2me.ppt

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, ...).

MIDP Network Library

Page 56: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 56© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 57: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 57© S. Rupp, 2003, Symbian_j2me.ppt

J2ME Wireless Toolkit

Page 58: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 58© S. Rupp, 2003, Symbian_j2me.ppt

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“.

Das J2ME WTK laden und starten

Page 59: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 59© S. Rupp, 2003, Symbian_j2me.ppt

Hello World im Wireless Toolkit (1)

Page 60: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 60© S. Rupp, 2003, Symbian_j2me.ppt

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 ); }

Hello World im Wireless Toolkit (2)

Page 61: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 61© S. Rupp, 2003, Symbian_j2me.ppt

protected void pauseApp() {}

protected void destroyApp(boolean unconditional) {}

public void commandAction( Command c, Displayable

d ) {if ( c == EXIT_CMD ) {

destroyApp( true );notifyDestroyed();

}}

}

Hello World im Wireless Toolkit (3)

Page 62: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 62© S. Rupp, 2003, Symbian_j2me.ppt

Hello World im Wireless Toolkit (4)

Page 63: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 63© S. Rupp, 2003, Symbian_j2me.ppt

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

Programmierung mit Java

Page 64: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 64© S. Rupp, 2003, Symbian_j2me.ppt

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)

MIDP 2.0

Page 65: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 65© S. Rupp, 2003, Symbian_j2me.ppt

Die API des MIDP 2.0

Page 66: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 66© S. Rupp, 2003, Symbian_j2me.ppt

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

Anforderungen des MIDP 2.0

Page 67: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 67© S. Rupp, 2003, Symbian_j2me.ppt

Wireless Toolkit 1.4 mit MIDP 2.0 Demos

Page 68: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 68© S. Rupp, 2003, Symbian_j2me.ppt

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.

Ausrichtung des MIDP 2.0

Page 69: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 69© S. Rupp, 2003, Symbian_j2me.ppt

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)

Künftige Erweiterungen nach MIDP 2.0 (1)

Page 70: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 70© S. Rupp, 2003, Symbian_j2me.ppt

Mobile Games

mehr Sound, 3D-Grafik, Anschluss von Gamepads etc.

Location Based Services

API zu Unterstützung von Navigationshilfen, Routen-planern, 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.

Künftige Erweiterungen nach MIDP 2.0 (2)

Page 71: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 71© S. Rupp, 2003, Symbian_j2me.ppt

JamtelHansNicoleMüller-Schulz

Select

Tel. geschäftl.

Mobiltel. geschäftl.

Tel. privat

Mobiltel. privat

IMS nach:• SMS • e-mail • inst. Message

Voice mail

... bin im Geschäft

... bin privat unterwegs

... bin off-line

Ziele der Verbindung

Mobiltelefon

Ausblick - Der Telefondienst neu aufgelegt?

Kommunikations-zustände

Page 72: Page: 1© S. Rupp, 2003, Symbian_j2me.ppt Java 2 Micro Edition Trainingsunterlage Programmierung mit MIDP 1.0 und MIDP 2.0.

Page: 72© S. Rupp, 2003, Symbian_j2me.ppt

ENDE

Trainingsunterlage

Programmierung mit MIDP 1.0 und MIDP 2.0

Java 2 Micro Edition