Inhaltsverzeichnis
Beschreibung des wissenschaftlichen und praktischen Anliegens sowie der
wichtigsten Erkenntnisse
Im Rahmen des Studienganges Wirtschaftsinformatik an der Universität Leipzig widmete sich der
Verfasser mit nachfolgender Diplomarbeit zum Themenblock „Mobil Information Device Profile
Applications (MIDlets)“ eingehend der Bluetooth-Technologie im Allgemeinen sowie der Java
Bluetooth API (JSP 82 ) im Speziellen
Ein Anliegen des Verfassers war es, mit der Abhandlung zunächst einen Einblick in die Entwicklung
von Java-Anwendungen für mobile Geräte zu geben. Diesem Ziel dient insbesondere Kapitel 2 , das
eine umfassende Beschreibung aller hierfür notwendigen Hilfsmittel und grundlegender
Vorgehensweisen beinhaltet
Hauptaugenmerk lag jedoch auf der Java Bluetooth-API. Mit deren Hilfe ist es erstmalig möglich,
kabellos Datenübertragungen über kurze Strecken zu realisieren und in die Entwicklung mobiler
Anwendungen unter Java einzubeziehen. Nach umfangreichen Literatur- und Internetrecherchen,
existiert auf dem deutschen Markt noch keine umfassende Abhandlung hierüber, sodass vorliegende
Arbeit einen ersten komplett in deutsch verfassten Leitfaden für den Umgang mit der Bluetooth-API
darstellt und sich eingehend mit dieser beschäftigt. Die im Rahmen der Arbeit entwickelte
Musteranwendung veranschaulicht den praktischen Umgang mit der API und zeigt gleichzeitig
Grenzen der aktuellen Version auf
Am Ende steht die Erkenntnis, dass Java und MIDlets derzeit unbegründet ein Schattendasein im
Bereich der Unterhaltungsanwendungen fristen, die Nutzungsmöglichkeiten dieser Technologie damit
jedoch keineswegs ausgereizt sind. Bluetooth stellt auf dem Weg vom Spaßsektor hin zu einem
Einsatz im Consumerbereich einen weiteren vielversprechenden Schritt in die richtige Richtung dar
Anhand der Musteranwendungen werden einige seriöse Einsatzmöglichkeiten beleuchtet
Aufgrund der derzeit nur marginalen Verbreitung der Bluetooth-Technik im Consumerbereich legen die
Hersteller noch zu wenig Augenmerk auf die Einhaltung einschlägiger Sicherheitsstandards im
Bereich der Datenübertragung. Diesem Problemkreis widmet sich insbesondere Kapitel 3 3 , in dem
die Sicherheitsaspekte der Technik abgehandelt werden. Das gehäuft anzutreffende Vorurteil,
Bluetooth sei eine mit gravierenden Sicherheitsmängeln behaftete Technologie, wird nicht von den
durch die Spezifikationen festgelegten Systemeigenschaften, sondern vielmehr von den aus der
Unerfahrenheit der Hersteller resultierenden Umsetzungsfehlern, genährt
Seite 2 von 64
Inhaltsverzeichnis
Inhaltsverzeichnis
Beschreibung des wissenschaftlichen und praktischen Anliegens sowie der
wichtigsten Erkenntnisse 2
Inhaltsverzeichnis 3
Abbildungsverzeichnis 5
Tabellenverzeichnis 6
1 Einführung 7
2 JAVA 2 Micro Edition 8
2.1 Einführung 8
2.1.1 J2 ME 9
2.1.2 Konfigurationen, Profile und Virtual Machine 10
2.2 Java auf mobilen Geräten 12
2.2.1 MIDlet Ausführungsumgebung und Lebenszyklus 12
2.2.2 MIDlet Suite 13
2.3 MIDP Packages und Klassen 14
2.3.1 CLDC Packages und Generic Connection Framework (GCF) 14
2.3.2 MIDP API 15
2.3.2.1 Das MIDP GUI 16
2.3.2.2 High-Level und Low-Level API 17
2.3.2.3 Record Management System (RMS) 18
2.3.2.4 Timer und TimerTask 19
2.4 MIDP 2 0 20
2.4.1 MIDP 2 0 Push Registry 20
2.4.2 Secure Networking 21
2.4.3 Töne und Klänge 22
2.4.4 MIDP 2 0 GUI 22
2.4.5 MIDP 2 0 Security 22
2.5 Ausblick - J2 ME und dann? 23
3 Bluetooth 25
3.1 Grundlagen der Bluetooth-Technologie 25
3.1.1 Vergleich von kabellosen Kurzstreckenkommunikationstechnologien 25
3.1.2 Geschichte der Bluetooth-Technologie 26
3.1.3 Bluetooth-Stack, Protokolle und Profile 26
3.1.4 Bluetooth-Netzwerke 28
3.1.5 Bluetooth-Produktpalette 28
3.2 Java meets Bluetooth 29
Seite 3 von 64
Inhaltsverzeichnis
3.2.1 Java APIs for Bluetooth Wireless Technology (JABWT) 29
3.2.2 Verwendung der JABWT 30
3.2.3 Geräte- und Dienstesuche 31
3.2.4 Verbindungsaufbau 34
3.2.5 Registrierung eigener Dienste 34
3.3 Bluetooth-Sicherheit 35
4 Musteranwendung 37
4.1 Szenario und Anforderungen 37
4.2 Entwicklungs- und Testumgebungen 38
4.3 Design 39
4.3.1 View, Model und Controller 39
4.3.2 Programmablauf und Funktionen 41
4.3.3 Datenübertragung 44
4.4 Einsatzmöglichkeiten der Musteranwendung 46
4.4.1 Musteranwendung - Musteranwendung 46
4.4.2 Musteranwendung - PC 47
4.4.3 Musteranwendung - Peripherie 49
4.5 Sicherheit und Grenzen der Anwendung 50
5 Ausblick 51
Anhang AAAAAAAA Tabellen 52
Anhang BAAAAAAA Klassendiagramm 57
Literaturverzeichnis 59
Abkürzungsverzeichnis 61
Urhebererklärung 63
Datenträger 64
Seite 4 von 64
Abbildungsverzeichnis
Abbildungsverzeichnis
Abbildung 2 1 : Zusammenhang der Java 2 Plattformen
Abbildung 2 2 : Übersicht Java Plattformen mit jeweiliger JVM
Abbildung 2 3 : Struktur der J2 ME mit Konfigurationen und Profilen
Abbildung 2 4 : MIDlet Lebenszyklus - Zustände und Änderungen
Abbildung 2 5 : Übertragung eines MIDlet auf ein Mobiltelefon
Abbildung 2 6 : Display Objekt und Screen Zuweisung
Abbildung 2 7 : MIDP 1 0 und MIDP 2 0 UI Klassenübersicht
Abbildung 2 8 : Aufbau eines MIDlet Screen
Abbildung 2 9 : MIDP 2 0 Push Registry Aktivierung
Abbildung 2 10 : Nokia 6820
Abbildung 2 11 : Nokia 7700
Abbildung 3 1 Bluetooth Protokoll-Stack mit den wichtigsten Protokollen
Abbildung 3 2 : Bluetooth-Netzwerke
Abbildung 3 3 : Bluetooth-Module
Abbildung 3 4 : Architektur von J2 ME CLDC/MIDP und Bluetooth
Abbildung 4 1 : Musteranwendungsfunktionen
Abbildung 4 2 : Use-Case Diagramm, Musteranwendung
Abbildung 4 3 : Model-View Controller Architektur
Abbildung 4 4 : Screens der Musteranwendung
Abbildung 4 5 : Ablaufdiagramm: Start der Musteranwendung
Abbildung 4 6 : Haupt-Screen der Musteranwendung
Abbildung 4 7 : Hauptmenü
Abbildung 4 8 : Versenden einer Datei über den Record Store-Screen
Abbildung 4 9 : LogScreen
Abbildung 4 10 : Settings Screen
Abbildung 4 11 : Sequenzdiagramm: Dateiübertragung
Abbildung 4 12 : Sequenzdiagramm Verbindungsaufbau
Musteranwendung-Musteranwendung
Abbildung 4 13 : Bluetooth-Dongle und virtuelle COM Ports
Abbildung 4 14 : Virtual Bluetooth Communication Port Application
Abbildung 4 15 : Beispiele für Flyer Images
Seite 5 von
Tabellenverzeichnis
Tabellenverzeichnis
Tabelle 3 1 : Vergleich von Kurzstreckendatenübertragungsstandards 25
Tabelle A 1 : Attribute und deren Bedeutung der MANIFEST MF und der JAD-Datei 52
Tabelle A 2 : Neue Klassen und Interfaces in MIDP 2 0 53
Tabelle A 3 : Klassen und Interfaces des Package javax bluetooth 54
Tabelle A 4 : LocalDevice getProperty() Eigenschaften und Werte 55
Tabelle A 5 : Service-Discovery Komplettcodes 56
Seite 6 von 64
Einleitung
1. Einleitung
Noch vor einigen Jahren, als man unter einem Mobiltelefon einen Apparat verstand, der die Größe eines Handkoffers hatte und mit einem Gewicht von 5 kg alles andere als "für die Hosentasche" geeignet war, konnte man sich kaum vorstellen, dass ein Handy innerhalb weniger Jahre zu einem kleinen mobilen Alleskönner werden wird, der es ermöglicht, damit Musik zu hören, Videos abzuspielen oder Mitteilungen mit farbigen Fotos zu verschicken. Ende 2003 wurden in Deutschland 64,8 Millionen Mobilefunkteilnehmer erreicht. 1 Es ist noch nicht abzusehen, welchen Zuspruch mobile Anwendungen in Zukunft finden werden, erkennen die Besitzer, dass ein Handy neben dem Ausführen von Spielen, die den größten Teil der aktuell zur Verfügung stehenden mobilen Anwendungen ausmachen, auch in der Lage ist, praktisch wertvolle Anwendungen auszuführen. Ein weiterer Schritt in Richtung sinnvoller mobiler Anwendungen vollzieht sich derzeit mit der Einführung der Bluetooth -Technologie für mobile Geräte.
Die Bluetooth-Technologie wurde bereits 1984 von Ericsson entwickelt und erfreut sich seitdem angesichts der durch sie eröffneten vielfältigen Anwendungsmöglichkeiten zunehmender Beliebtheit sowohl bei ambitionierten Privatanwendern sowie bei kommerziellen Verwendern. Derzeit haben sich bereits über 2000 Elektronikunternehmen zu einer Bluetooth Special Interest Group (SIG) zusammengeschlossen, um ihrem Interesse an dieser Technologie und dem Ziel der Produktentwicklung auf Basis dieser neuen Möglichkeiten geschlossen Ausdruck zu verleihen. Bei der Bluetooth-Technologie handelt es sich um eine Funk-Kurzstrecken-Netzwerktechnologie, die eine Möglichkeit zur drahtlosen Kommunikation zwischen Desktop- und Laptop-Computern, PDAs, Mobilfunktelefonen, Druckern, Scannern und digitalen Kameras bietet. Mit dem Java Bluetooth Application Programming Interface (API) wurde den Entwicklern und Verwendern nunmehr ein Werkzeug an die Hand gegeben, um die nahezu unbegrenzten Möglichkeiten der Bluetooth-Technik auf Geräten, welche die Java-Technologie unterstützen, zu erschließen.
Das Hauptaugenmerk dieser Arbeit liegt in einer umfassenden Beschreibung der Bluetooth API und dem Umgang mit dessen Klassen und Interfaces. Die erforderlichen Grundlagen zur Entwicklung von mobilen Anwendungen, die Voraussetzung für den Umgang mit der Bluetooth API sind, werden zunächst in Kapitel 2 erläutert. Dabei vermittelt dieser Abschnitt einen Einblick in die Architektur der Java Plattform auf mobilen Endgeräten, beschreibt die für die Erstellung notwendigen Hilfsmittel und leitet in Programmierpraktiken ein. Dieses Wissen ist für das Verständnis der Darstellungen zur Bluetooth-Technologie in Kapitel 3 unerlässlich. Beide Kapitel können als Leitfaden für die Programmierung eigener Anwendungen genutzt werden.
Die Ausführungen zur Musteranwendungen in Kapitel 4 verstehen sich schließlich als beispielhafte Erläuterung der zunächst theoretisch vermittelten Erkenntnisse und soll Anregungen für weitere kreative Entwicklungen vermitteln.
1 Vgl.: [REGTP] Seite 32
Seite 7 von 64
Java 2 Micro Edition
2 JAVA 2 Micro Edition
2.1 Einführung
Java ist eine objektorientierte Programmiersprache, deren Entwicklung 1990 bei der nordamerikanischen Computerfirma Sun Microsystems Inc. (im Weiteren kurz Sun) zunächst wenig öffentlichkeitswirksam begann. Java trug ursprünglich den Namen Oak und war als eine universelle Hochsprache im Consumer-Electronic Bereich konzipiert. Geplant war ein Einsatz der Sprache in Geräten mit minimalen Hardwareeigenschaften wie Fernbedienungen mit kleinem Liquid Crystal Display (LCD) oder zur Steuerung von Waschmaschinen. Im aufkommenden Internetboom 1993 erkannte man bei Sun, dass die Programmiersprache sich durch ihre Plattformunabhängigkeit, die eine der Grundanforderungen bei der Konzeption war, ideal eignen würde, die bis dahin statischen HTML-Seiten interaktiv zu gestalten.
Mit der Herausgabe des Java Development Kit (JDK) 1.0 im Jahre 1996 wurde dem Entwickler alles für die Entwicklung von Java-Programmen Notwendige an die Hand gegeben. Die Version 1.1 war 1997 erstmals als JDK oder Java Runtime Environment (JRE) erhältlich, wobei das JRE lediglich die Laufzeitumgebung enthielt, die zum Starten von Java-Programmen erforderlich ist. Der größte Sprung in der Geschichte des JDK fand wohl Ende 1998 mit Erscheinen des JDK 1.2 statt. Zeitgleich mit dieser Herausgabe etablierte Sun den Begriff „Java 2 Plattform“, der untersteichen sollte, dass Java nunmehr alles bot, was zur Entwicklung komplexer Applikationen notwendig war. Bis zum Jahre 1999 waren derart viele API enthalten, dass sich Sun entschloss, gleich drei auf spezielle Entwicklergruppen zugeschnittene Ausgaben des JDK herauszubringen.
Java 2 Plattform, Standard Edition (J2SE )
Diese Edition enthält im Wesentlichen die Kernklassen des JDK 1.2 zur Entwicklung von Applets und Applikationen. Die JRE, die zuvor getrennt erhältlich war, wurde Teil der J2SE.
Java 2 Plattform, Enterprise Edition (J2EE )
Diese Version ist speziell auf die Entwicklung von Datenbanksystemen, Netzwerkanwendungen und verteilten Anwendungen, insbesondere im Unternehmensbereich zugeschnitten. Die Enterprise Edition beinhaltet neben den Schnittstellen der Standard Edition weitere wie unter anderem CORBA, Servlets, Java Server Pages (JSP) und Java Enterprice Beans.
Java 2 Plattform, Micro Edition (J2ME ) 2
Diese Variante ist die jüngste Entwicklung der J2-Familie. Ihr Einsatzbereich liegt vor allem in der Entwicklung von mobilen und vernetzten Anwendungen. Sie soll Java für Geräte mit begrenzten Speicher-, Prozessor- sowie Ein- und Ausgaberessourcen wie Mobiltelefone, Smartphones, Personal Digital Assistents (PDA) oder TV Set-Top Boxen zugänglich machen.
Abbildung 3.1 veranschaulicht den Zusammenhang zwischen den unterschiedlichen Java Spezifikationen im Bezug auf die Anzahl ihrer enthaltenen Klassen und der damit verbundenen Funktionalität.
2 [J2ME], [JAVA2]
Seite 8 von 64
Java 2 Micro Edition
2.1.1 J2ME
J2ME ist ein Java Framework, welcher speziell auf mobile Geräte zugeschnitten ist, die folgende Eigenschaften aufweisen und sich dadurch auch unterscheiden:
• Eingeschränkte Prozessorleistung
• Eingeschränkte Speicherkapazität
• Niedrige Bandbreiten, Übertragungsgeschwindigkeiten
• Begrenzte Eingabemöglichkeiten (wenige Tasten, Stifteingabe)
• Begrenzte Darstellungsmöglichkeit (geringe Auflösung, kleine Displays)
• Reduzierte Stromaufnahme (Akkus)
Um dennoch ein möglichst breites Spektrum aus der Vielzahl dieser Geräte mit unterschiedlichsten Hardwarevoraussetzungen zu erreichen, entschied sich Sun, eine gerätegruppenspezifische Unterteilung der Spezifikation vorzunehmen. Die J2ME unterteilt sich in die beiden Komponenten Konfiguration und Profil. Folgende Abbildung gibt einen Überblick über die Java 2 Plattformen sowie über die Profile und Konfigurationen der J2ME.
Die Konfiguration enthält die für eine bestimmte Gruppe von Endgeräten mit festgelegten Merkmalen minimale Menge an unterstützten Funktionen der Javasprache. Sie beinhaltet die für diese Produktgruppe benötigten Funktionalitäten der Java Virtual Maschine (JVM) und eine Teilmenge der J2SE Bibliotheken und Schnittstellen. Für jede Konfiguration gibt es verschiedene Profile, die zusammen eine vollständige Laufzeitumgebung bilden. Die Struktur einer J2ME stellt Abbildung 2.3 grafisch dar.
3 [J2MEDOC], [BLUE] Seite 14.
Seite 9 von 64
Java 2 Micro Edition
2.1.2 Konfigurationen, Profile und Virtual Machine
Derzeit stehen zwei verschiedene Konfigurationen zur Verfügung. 4 Dies ist zum einen die Connected Device Configuration (CDC) 5 , JSR 6 -36 sowie JSR-218 und zum anderen die Connected Limited Device Configuration (CLDC) 7 , JSR-30 und JSR-193.
Die CDC ist die typische Konfiguration für TV Set-Top Boxen, High-End PDAs oder Fahrzeuginformationssystemen sowie für Geräte mit größerem Speicher von mindestens 2 Megabyte, einem schnelleren Prozessor mit wenigstens 32 Bit CPU Architektur und höherer Netzwerkbandbreite. Für die CDC stehen aktuell drei Profile zur Verfügung, welche die von ihr zur Verfügung gestellten APIs erweitern.
• Foundation Profile (JSR-46): ist das Basisprofil für weitere Profile und stellt Klassen, für Grundfunktionalitäten wie Netzwerk-, Ein- und Ausgabeverbindungen bereit. Es enthält keine Klassen, die Grafik- oder Graphical User Interface (GUI) Funktionen unterstützen.
• Foundation Personal Basis Profile (JSR-129): enthält alle Foundation APIs. Darüber hinaus bietet es Unterstützung für die Darstellung einfacher grafischer Komponenten.
• Personal Profile (JSR-62): ermöglicht Abstract Windowing Toolkit (AWT), Applet und eingeschränkte Java Bean Nutzbarkeit. Zusätzlich enthält es alle APIs des Foundation Personal Basis und Foundation Profile.
Die CDC implementiert nahezu alle Klassen der J2SE und arbeitet mit der üblichen Java Virtual Machine (JVM). 8 In dieser Diplomarbeit wird nicht weiter auf die CDC, deren Profile und JVM eingegangen, da die zu entwickelnde Anwendung für mobile Endgeräte ausgelegt ist, die der heutigen Generation von Mobiltelefonen entspricht und für diese die zweite Konfiguration zum Einsatz kommt. Die CLDC, die im Umfang kleinere der beiden Konfigurationen, findet üblicherweise Verwendung in mobilen Endgeräten, PDAs, Pagern und ähnlichen Geräten mit den typischen Eigenschaften:
• 16- oder 32 Bit CPU
• Mindestens 128- 512 Kilobyte Speicher für die Java Umgebung
4 Bearbeitungsstand Mai 2004.
5 [CDC]
6 Standard APIs werden in Java durch den Java Community Process SM (JCP) definiert. Der JCP koordiniert die
Entwicklung der Java Programmiersprache. Jede neue API wird in Form eines Java Specification Request (JSR) entwickelt. Alle J2ME Konfigurationen, Profile und optional Pakete sind als JSR definiert.
7 [CLDC]
8 Weiterhin ist eine „CDC HotSpot“- VM in Form einer Referenzimplementation in Entwicklung, siehe [J2ME].
Seite 10 von 64
Java 2 Micro Edition
• Verbindung zu einem, wahlweise auch drahtlosen, Netzwerk, dessen Bandbreite unter 9600 Baud liegen darf
• Vorhandensein mindestens einer mobilen Stromquelle 9
Für diese Konfiguration existieren zwei Virtual Machines (VM). Die erste speziell für diese Konfiguration entwickelte VM wird KVM genannt. Das „K“ steht dabei für Kilo und soll darauf hinweisen, dass diese VM sehr wenig Speicherressourcen benötigt. Geringer Speicherbedarf bedeutet aber auch gleichzeitig einen eingeschränkten Funktionsumfang, sodass diese VM keine Kommazahlen (Float Point), keine Thread-Gruppen, kein Java Nativ Interface (JNI) oder finalization() Methoden unterstützt. Die zweite neuere Entwicklung aus dem Hause Sun für mobile Geräte nennt sich „CLDC HotSpot “ und ist eine VM auf Basis der auch schon in der J2EE und J2SE eingesetzten HotSpot-VM. CLDC HotSpot zeichnet sich hauptsächlich durch eine gesteigerte Leistung, eine effektivere Nutzung der Stromversorgung und eine robustere Plattform aus. Allerdings müssen für diese Version der VM die Hardwarevoraussetzungen im oberen Bereich der Minimalanforderungen für diese Geräteklasse liegen. So sollten mindestens folgende Anforderungen erfüllt sein:
• CPU - ARM Prozessor mit 60 MHz
• RAM - 600 Kilobyte
• ROM/Flash - 1,5 Megabyte
Mit der CLD-Konfiguration sind die grundlegenden Java Methoden und Interfaces für den Umgang mit mobilen Geräten zusammengefasst. Das CLDC API enthält die Pakete: 10
• java.io
• java.lang
• java.util
• javax.microedition.io
Die aktuelle Konfiguration ist CLDC 1.1. 11 Sie ist vollständig abwärtskompatibel und bringt einige wenige Verbesserungen mit sich. Die wichtigste Neuerung ist die Unterstützung von Fließkommaoperationen, zudem wurden die Klassen Float und Double hinzugefügt. Hauptsächlich wurden allerdings kleine Fehler der CLDC 1.0 12 beseitigt. Um eine bessere Konformität zur J2SE herzustellen, wurden einige Klassen wie Calendar, Date und TimeZone überarbeitet. Das Mobile Information Device Profile (MIDP) 13 ist das einzige zur Zeit zur Verfügung stehende Profil, das auf die CLDC aufsetzt. In der MIDP Spezifikation 1.0 14 werden folgende Mindestanforderungen für die Geräteklasse genannt:
Display:
♦
Displaygröße mind. 96*54 Pixel
♦ Auflösungstiefe mindestens 1 Bit ♦ Längenverhältnis der Pixelform von etwa 1:1 Eingabe:
♦
Einhandtastatur (Tastatur eines Mobiltelefon)
♦
Zweihandtastatur
♦
Touchscreen Speicher:
♦
128 Kilobyte nicht flüchtigen, für MIDP Komponenten
♦ 8 Kilobyte nicht flüchtigen, für durch die Anwendung erzeugte Daten ♦ 32 Kilobyte flüchtigen, für die Java Laufzeit Umgebung Netzwerk: ♦ Zweiwegekommunikation ♦ Schnurlos
9 Diese Voraussetzung ist nicht zwingend, Smatcards mit CardVM besitzen keine Stromquelle.
10 [CLDCAPI]
11 Java Secification Request 139.
12 Java Secification Request 30.
13 [MIDP], [JAVA2], [BLUE]
14 [MIDP1SPEC]
Seite 11 von 64
Java 2 Micro Edition
♦ Beschränkte Bandbreite 15
MIDP existiert in der Version 1.0 16 sowie in Version 2.0 17 . Beide basieren auf der CLDC 1.0. Die Unterschiede zwischen beiden Versionen werden in Kapitel 2.4 eingehender dargestellt werden. Viele J2ME Geräte verfügen über erweiterte Funktionen wie Bluetooth, Multimedia Messaging und Datenbanktechnologien. Um diese Funktionen den Java Programmierern zugänglich zu machen, können die Gerätehersteller Java Standard APIs integrieren. Optionale Pakete für CDC sind RMI Optional Package (JSR-66) und JDBC Optional Package (JSR-169). CLDC kann dagegen wahlweise durch Mobile Media API (JSP 135) , Wireless Messaging API (JSP-120) und Bluetooth API (JSR-82) erweitert werden. Die Schnelligkeit der technischen Entwicklung und die damit einhergehende Erweiterung der Hardwareausstattung der typischerweise für die jeweiligen Konfigurationen angeführten Geräte, relativiert die scharfen Grenzen zwischen CDC und CLDC. So verfügen moderne Mobiltelefone mittlerweile über Prozessoren mit Taktfrequenzen von mehr als 100 MHz und Speicherkartentechnologien, die den flüchtigen wie auch nichtflüchtigen Speicher der Geräte auf weit über 20 MB erhöhen. Damit erfüllt schon heute ein Mobiltelefon, als typisches Anwendungsgerät für CLDC, problemlos die Anforderungen, die an Geräte der CDC Konfiguration gestellt werden.
2.2 Java auf mobilen Geräten
2.2.1 MIDlet Ausführungsumgebung und Lebenszyklus
Eine J2ME-Anwendung für Endgeräte mit CLDC und MIDP wird MIDlet genannt. Ähnlich einem Applet, das von der Klasse java.applet.Applet alle Klassen und Methoden erbt, muss ein MIDlet von der Klasse javax.microedition.midlet.MIDlet abgeleitet sein. Ein MIDlet wird von einer Ausführungsumgebung mit einer VM verwaltet, die es im Gegensatz zu herkömmlichen Java Anwendungen nicht beenden kann. Im Unterschied zu einem Applet wird ein MIDlet nicht durch den Aufruf einer main() Methode, sondern durch die Methode startApp(), die den Lebenszyklus eines MIDlet einleitet, gestartet.
Ein MIDlet muss von der Klasse MIDlet abgeleitet sein, damit die Ausführungsumgebung, die Application Management Software (AMS), das MIDlet instanzieren und dessen Ablauf kontrollieren kann. Für die Kontrolle stehen Methoden zum Starten, Anhalten und Beenden sowie die daraus resultierenden Zustände des MIDlet Active, Paused und Destroyed zur Verfügung. Die wichtigsten zur Steuerung eines MIDlet benötigten Methoden sind startApp(), pauseApp() und
destroyApp()und müssen in der MIDlet Klasse überschrieben werden. Weiterhin existieren Methoden, um den Zustand eines MIDlet zu ändern bzw. die Forderung nach einer Zustandsänderung des MIDlet an AMS weiterzuleiten. Der AMS ist es beispielsweise erlaubt, im Hinblick auf Verteilung der zur Verfügung stehenden Ressourcen, das MIDlet anzuhalten. Methoden dafür sind:
• notifyDestroy()
• notifyPaused()
• resumeRequest().
Vorliegendes Statusdiagramm verdeutlicht die Zustände und ihre möglichen Änderungen und Übergänge.
15 Vgl.: [MIDP1SPEC] Seite 21 f.
16 Java Secification Request 37.
17 Java Secification Request 118.
Seite 12 von 64
Java 2 Micro Edition
Wird ein MIDlet geladen, geht es zunächst in den Paused Zustand über. Es werden anschließend alle nötigen Klassen und Instanzen initialisiert und der public Konstruktor geladen. Sollte eine Exception 18 während der Ausführung des Konstruktors auftreten, wird das MIDlet beendet, anderenfalls wechselt der Status von Paused zu Active und die startApp() Methode wird aufgerufen. Es besteht die Möglichkeit, dass das MIDlet während der Ausführung in den Paused Zustand zurückkehrt. Dies kann zum einen durch die Plattform des Gerätes geschehen, wenn eine Aufgabe höherer Priorität, wie beispielsweise ein eingehender Anruf, ansteht. Zum anderen kann der Nutzer das MIDlet über den Aufruf pauseApp() anhalten. Über destroyApp() ist es zudem jederzeit dem Benutzer und der Plattform des Gerätes möglich, das MIDlet völlig zu beenden. Der Zustand Destroyed ist erreicht, wenn das MIDlet beendet ist und alle Ressourcen wieder freigegeben sind. 19
2.2.2 MIDlet Suite
MIDlet Suite ist ein Oberbegriff, der alle MIDlet und Ressourcen umfasst, die innerhalb eines Java Archivs (JAR) zusammengefasst werden und durch eine Java Application Descriptor (JAD) Datei erklärt werden. Mit anderen Worten bilden alle MIDlet, alle Dateien, Icons und Ressourcen dann eine MIDlet Suite, wenn sie in ein einziges JAR-File gepackt sind. Alle MIDlet einer MIDlet Suite nutzen die zur Verfügung stehenden Ressourcen gemeinsam und haben die Möglichkeit, miteinander zu interagieren. Das Erstellen einer MIDlet Suite setzt das Vorliegen eines MIDlet als preverifizierten Bytecode voraus. Um ein vollständiges JAR zu erzeugen, wird weiterhin eine MANIFEST.MF Datei benötigt, die in das Archiv einzubinden ist. Diese Datei enthält Information über den Namen, die Version, den Urheber und eine Beschreibung der MIDlet Suite, sowie Namen und Version des verwendeten Profils und der Konfiguration. Eine solche Angabe hat die Form:
Eine Übersicht über Attribute und deren Bedeutung ist der Tabelle A.1 „Attribute und deren Bedeutung der MANIFEST.MF und der JAD-Datei“ im Anhang zu entnehmen. Eine minimale Manifest-Datei muss wie folgt beschaffen sein:
18 Engl.: Ausnahme, Ausnahmesituation, beschreibt die Möglichkeit eine unvorhergesehenen Zustand zu erkennen und entsprechend darauf zu reagieren.
19 [JAVA2]
Seite 13 von 64
Quote paper:
Mario Leonhardt, 2004, Wireless Communication mit J2ME und JAVA Bluetooth API am Beispiel einer Multimedia Messaging Application, Munich, GRIN Publishing GmbH
This text can be quoted and accessed from this url:
Embed
DOI
DV-Revision hinsichtlich Ordnungsmäßigkeits- und Sicherheitsanforderun...
Business economics - Revision, Auditing
Diploma Thesis, 136 Pages
Der risikoorientierte Prüfungsansatz der Internen Revision
Business economics - Revision, Auditing
Diploma Thesis, 104 Pages
Closed-Loop-Konzepte im Bereich Customer Relationship Management
Computer Science - Commercial Information Technology
Scholary Paper (Seminar), 38 Pages
Countertrade als Aktionsparameter global agierender Unternehmen unter ...
Business economics - Trade and Distribution
Diploma Thesis, 249 Pages
Bilanzielle Behandlung von Mietkaufgeschäften nach HGB und IAS/IFRS
Business economics - Controlling
Scholary Paper (Seminar), 24 Pages
Joint Ventures in der Immobilienwirtschaft
Business economics - Investment and Finance
Termpaper, 23 Pages
Signalübertragung auf Leitungen und Visualisierung mit Matlab
Engineering - Communication Technology
Scholarly Research Paper, 64 Pages
Kritische Analyse der Bilanzierung bei Langfristfertigung nach HGB und...
Business economics - Accounting and Taxes
Diploma Thesis, 90 Pages
Das EFQM-Modell - Möglichkeiten und Grenzen
Business economics - Business Management, Corporate Governance
Scholarly Research Paper, 26 Pages
The Evolution of Innovation - TRIZ Trends and Bionics
Engineering - Industrial Engineering and Management
Scholarly Research Paper, 33 Pages
Stahlbetonbemessung polygonal umrandeter Querschnitte - eine Implement...
Engineering - Civil Engineering
Diploma Thesis, 137 Pages
Konzept und Umsetzung eines versionsunabhängigen IT-Grundschutzbaustei...
Master's Thesis, 436 Pages
Analyse der Stromgestehungskosten von Erneuerbaren Energien heute und ...
Engineering - Industrial Engineering and Management
Scholarly Research Paper, 76 Pages
Eine syntaktische Analyse
Scholarly Paper (Advanced Seminar), 21 Pages
Key Account Management und Customer Value im internationalen Umfeld mi...
Engineering - Industrial Engineering and Management
Diploma Thesis, 169 Pages
Anwendung der Balanced Scorecard für das Supply Chain Management
Diploma Thesis, 105 Pages
Eine Branchenstrukturanalyse des deutschen Strommarktes nach Porter
Business economics - Business Management, Corporate Governance
Diploma Thesis, 115 Pages
Implementierung des Versagenskriteriums nach Puck in das Programmsyste...
Scholarly Research Paper, 30 Pages
Mario Leonhardt has published the text Wireless Communication mit J2ME und JAVA Bluetooth API am Beispiel einer Multimedia Messaging Application
Mario Leonhardt has uploaded a new text
Smart Antennas for Wireless Communications: Is-95 and Third Generation...
Joseph C. Liberti, Theodore S. Rappaport
Wireless Communication Technologies
New Multimedia Systems
Norihiko Morinaga, Ryuji Kohno, Seiichi Sampei
Performance Analysis of Multi-Channel and Multi-Traffic on Wireless Co...
Yutaka Matsumoto, Wuyi Yue
Detection Algorithms for Wireless Communications: With Applications to...
Gianluigi Ferrari, Giulio Colavolpe, Riccardo Raheli
Multimedia Messaging Service: An Engineering Approach to Mms
Gwenael Le Bodic, Gwenakl Le Bodic
Short-Range Wireless Communications: Emerging Technologies and Applica...
Rolf Kraemer, Marcos D. Katz
New Horizons in Mobile and Wireless Communications, Volume 2: Networks...
Ramjee Prasad, Albena Mihovska
H Schulze
0 comments