Mobile Computing

Werbung
Mobile Computing
Betriebssysteme und
Entwicklungsumgebungen
Ausarbeitung zum Hauptseminar
vorgelegt von
6
am
Gabriele Frings
12. Juni 2002
Betreuer
Dr. Jürgen Nützel
?
Inhaltsverzeichnis
1 Einleitung
1
2 Schichten-Architektur
3
3 (Mobile) Kommunikationskanäle
5
3.1
Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.2
Die erste Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.3
Die zweite Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.4
Interim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.5
Die dritte Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.6
Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4 (Mobile) Hardware
9
4.1
Mobile Geräte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Rahmenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 (Mobile) Betriebssysteme
9
11
5.1
Palm OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2
Windows CE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3
Symbian EPOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4
Embedded Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 (Mobile) Entwicklungsumgebungen
15
6.1
Entwicklungsansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2
Proprietäre und plattformgebundene SDKs . . . . . . . . . . . . . . . . . . 16
6.3
Microsoft .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.4
Plattformübergreifende SDKs . . . . . . . . . . . . . . . . . . . . . . . . . 19
7 Java 2 Micro Edition
21
7.1
Die verschiedenen Editionen . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2
Unterschiede J2ME / J2SE . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2.1
Sprachumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2.2
Kompatibilität zur Java Virtual Machine Specification . . . . . . . 22
........................................................................................
Inhaltsverzeichnis
i
7.3
Konfigurationen und Profile . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.4
J2ME Profile und APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.5
7.4.1
MIDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.4.2
PDA Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.4.3
Java APIs for Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . 25
7.4.4
Foundation Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.4.5
Personal Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.4.6
RMI Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.4.7
Mobile Media API . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Hardware für CLDC und MIDP . . . . . . . . . . . . . . . . . . . . . . . . 26
7.5.1
CLDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.5.2
MIDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.6
Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.7
J2ME und i-mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 Beispiel J2ME
29
9 Zusammenfassung und Ausblick
33
Literaturverzeichnis
35
Alle Quellen alphabetisch
44
........................................................................................
ii
Inhaltsverzeichnis
1
Einleitung
Was ist Mobile Computing“?
”
Leichte, tragbare aber dennoch leistungsfähige Rechner werden drahtlos vernetzt und transparent in Kommunikations- und Informationsinfrastrukturen
eingebunden.”
aus: [15]
Mobilität ist ein wichtiges Kennzeichen unserer modernen Gesellschaft. Daraus resultiert der Wunsch, umfassende Informationen nicht nur zu Hause, sondern auch unterwegs
abrufen zu können.
Mobile Computing“ bezeichnet nicht nur portable Geräte – sie müssen auch über
”
drahtlose Kommunikationskanäle verfügen. Die Verbindung zum Netz wird auch während
der Fortbewegung aufrecht erhalten. Sie ist nicht an einen festen Ort wie etwa ein Gebäude
oder den Campus gebunden. Beispiele sind WAP-fähige Handies oder UMTS-Geräte.
Mobile Computing“ wird in der Literatur oft um die Bedeutung von Nomadic Compu”
”
ting“ erweitert.
Nomadic Computing“ steht für portable Geräte, die durch ihre Netzwerk-Verbindung
”
an einen Ort gebunden sind. Zu dieser Gruppe gehört beispielsweise ein Laptop. Dieser
kann über einen festen Anschluß (z. B. Ethernet) oder durch räumlich begrenzte Funktechnologien (z. B. W-LAN) in ein Netzwerk eingebunden sein – oder ohne Netzwerk
arbeiten.
Mobile Computing
portabel + mobil + vernetzt
Nomadic Computing
No
Network
Fixed
Network
Fixed
Wireless
Network
portabel + räumlich begrenzt mobil,
evtl. vernetzt
Ubiquitious Computing
Nomadic Computing
Wireless
Network
Mobile
Computing
Ubiquitious Computing
Nomadic + Mobile Computing
Da der Unterschied zwischen mobiler Kommunikation und Mobile Computing“ zu”
nehmend verschwimmt, werden auch die Begriffe oft synonym verwendet. Einen Überblick
über die Begriffswelt gibt obige Abbildung.
........................................................................................
Kapitel 1. Einleitung
1
2
Schichten-Architektur
Die (mobilen) Kommunikationskanäle bilden mit der Hardware die Rahmenbedingungen
für darauf aufsetzende Schichten wie Betriebssysteme, Entwicklungsumgebungen und Anwendungen. Einen Überblick über die Architektur gibt die folgende Abbildung.
Abbildung 2.1: Schichten
Es scheint offensichtlich, dass gewöhnliche Betriebssysteme für die effektive Ressourcenverwaltung nicht zu gebrauchen sind. Spezielle Entwicklungen in diesem Bereich werden
auch unter dem Begriff Operating Systems for Handicapped Devices“ geführt – um die
”
notwendigen Einschränkungen zu betonen.
Es existieren verschiedene Ansätze zur Anwendungsentwicklung. Die Applikationen setzen
auf dem jeweilgen Betriebssystem auf. Auch hier ist eine ressourcenschonende Programmierung empfehlenswert.
Die einzelnen Schichten werden in den folgenden Kapiteln erläutert.
........................................................................................
Kapitel 2. Schichten-Architektur
3
3
(Mobile) Kommunikationskanäle
3.1
Überblick
Die Entwicklung der Mobilfunknetze lässt sich in einzelne Schritte unterteilen. Diese werden auch oft als Generationen bezeichnet. Wir befinden uns heute im Interim,
dem Übergang von der zweiten zur dritten Generation. Die folgende Tabelle bietet eine
Übersicht.
Generation
Übertragungs-Technologie
Verbreitung
1G
AMPS
USA
(analog)
Advanced Mobile Phone Service
CDMA
USA
Code Division Multiple Access
2G
TDMA
(digital)
Time Division Multiple Access
GSM
USA
Japan, Europa
Global System for Mobile Communications
2.5G
cdma2000 (1X), GPRS / EDGE, ...
USA, Europa
(digital)
Verbesserungen bestehender Technologien
3G
CDMA2000 Breitband CDMA
USA
(digital)
W-CDMA Wideband CDMA
Japan, Europa, USA
Tabelle 3.1: Überblick Mobilfunk-Generationen
3.2
Die erste Generation
Als erster Mobilfunk-Standard konnte sich AMPS (Advanced Mobile Phone Service)
etablieren. Dieses System basiert auf FDMA (Frequency Division Multiple Access). Dabei
wird das zur Verfügung stehende Frequenz-Spektrum in Bänder von 0.03 MHz aufgeteilt.
Jedes Band kann einen Anruf übertragen. Benachbarte Sender dürfen nicht die selben
Bänder verwenden. Deshalb sind maximal 118 Verbindungen zur selben Zeit möglich.
AMPS ist weitverbreitet in den USA, aber in Großstädten nimmt die Nutzung ab.
........................................................................................
Kapitel 3. (Mobile) Kommunikationskanäle
5
3.3
Die zweite Generation
TDMA (Time Division multiple Access) und GSM (Global System for Mobile Communications) multiplexen die Verbindungen über Zeitschlitze. TDMA teilt das Spektrum
in 3 Teile, GSM bildet 8 Zeitsegmente. TDMA und CDMA sind in den US-Städten
verbreitet, GSM im Rest der Welt, vor allem in Europa und Japan.
Nicht durch die Bandbreite wird CDMA (Code Division Multiple Access) begrenzt, sondern durch die Verarbeitungsgeschwindigkeit der Geräte. Es basiert auf einem komplexen
mathematischen Modell, das es erlaubt, viele Gespräche simultan zu übertragen. Bei
CDMA empfängt jeder Teilnehmer alle Gespräche und filtert seines durch Multiplikation
mit einem Identifier heraus.
3.4
Interim
Um den Dienstanbietern den Umstieg zu erleichtern und das unternehmerische Risiko zu
senken erfolgt der Übergang von der zweiten zur dritten Generation mittels eines Zwischenschrittes. In dieser Zeit werden die Technologien der zweiten Generation durch Verbesserungen leistungsfähiger gemacht – angeblich um den Faktor 40. Die Investitionen
können auch in der dritten Generation weiterbenutzt werden.
Eine Verbesserung von CDMA ist cdma2000 (1X). Sie verspricht die Datenraten von 9.6
- 14.4 auf maximal 144 kbps zu erhöhen. Ziel ist die Umstellung auf die dritte Generation:
cdma2000 (3X).
GSM wird durch folgende Technologien ergänzt: HSCSD, GPRS und EDGE. HSCSD
(High Speed Circuit Switched Data) ist eine Verbesserung der leitungsvermittelten GSMNetze durch neue Software. GPRS (General Packet Radio System) ermöglicht paketvermittelte Verbindungen. Es ist optimiert für kurze, sporadische Übertragung und erlaubt Datenraten von bis zu 144 kbps. EDGE (Enhanced Data for Global Evolution)
ist der große Bruder von GPRS. Es bietet noch höhere Bandbreiten mit Geschwindigkeiten von maximal 384 bps. Mit dieser Schnelligkeit ermöglicht es mobile MultimediaAnwendungen.
3.5
Die dritte Generation
UMTS (Universal Mobile Telecommunications System) ist das Schlagwort der dritten
Generation. Es umfasst alle Technologien der dritten Generation. Die Versteigerungen
........................................................................................
6
3.3. Die zweite Generation
der UMTS Lizenzen haben bereits vor Augen geführt, welch hohe Investitionen nötig
sind. Schließlich sollen Übertragungen zwischen 156 kbps und 2 Mbps möglich werden.
Zum ersten Mal überhaupt soll globales Roaming, also das Einbuchen in jegliche Art von
Netzen, möglich werden.
3.6
Protokolle
Die Datenübertragung erfolgt leitungsvermittelt (Circuit Switched) oder paketvermittelt
(Packet Switched). Bei der Leitungsvermittlung ist ein Kanal während der gesamten
Nutzungsdauer besetzt. Durch Paketvermittlung ist eine effizientere Nutzung möglich.
Man kann also ständig eingebucht bleiben, da nach Volumen abgerechnet wird.
Um Informationen darzustellen, stehen verschiedene Sprachen zur Verfügung. HDML
(Handheld Device Markup Language) ist in den USA weit verbreitet. Eine Teilmenge von
XML (Extensible Markup Language) ist WML (Wireless Markup Language). Sie wird
von WAP (Wireless Application Protocol) verwendet und ist daher in Europa und Asien
gebräuchlich. Über WAP kommuniziert der mobile Nutzer mit einem Gateway. Dieses
übersetzt seine Anfrage, schickt sie an den Server und verpackt die Antwort wieder, um
sie zum mobilen Gerät zurückzuschicken. Über das Gateway können Dienst-Anbieter
entscheiden, welche Angebote für ihre Kunden verfügbar gemacht werden.
In Japan findet man die Sprache cHTML (compact Hypertext Markup Language). Diese
Untermenge von HTML wird über i-mode (information-mode) genutzt. i-mode bezeichnet ein Bündel aus Diensten, Software und Geräten, die von NTT DoCoMo bereitgestellt
werden. Ein Gateway wird nicht benötigt. Man kann auf jedes beliebige Internet-Angebot
zugreifen.
........................................................................................
Kapitel 3. (Mobile) Kommunikationskanäle
7
4
(Mobile) Hardware
4.1
Mobile Geräte
Es existiert bereits eine Vielzahl mobiler Geräte. Diese lassen sich grob in 3 Kategorien
einteilen. Diese Aufteilung spiegelt sich in Referenzdesigns der (mobilen) Betriebssysteme
wider.
Sehr kleine Display und geringe Funktionalität kennzeichnen die erste
Gruppe von Geräten. Unter dem Begriff Handset werden Handies vom
einfachen Modell bis zum Smartphone subsummiert. Die Eingabe erfolgt
tastaturbasiert, die Geräte sind sprachzentriert bzgl. der Kommunikation. Symbian nennt das entsprechende Referenzdesign Pearl, bei Microsoft
trägt es den Namen Smartphone.
Personal Digital Assistants (PDAs) bilden die zweite Kategorie. Das
bekannteste Beispiel ist wohl der Palm“. Die Eingabe erfolgt mit einem
”
Stift auf dem Touchscreen oder über wenige Funktionsknöpfe. Handschriftenerkennung und Emulation einer Tastatur durch Software erleichtern
die Benutzung. Geräte dieser Gruppe verfügen über ein vergleichsweise
großes Display (ca.
1
4
VGA) und sind informationszentriert. Quartz heißt
das Referenzdesign bei Symbian, Microsoft spricht vom Pocket PC.
Hinter dem etwas mißverständlichen Begriff Personal Computer (PC) verbirgt sich das Spektrum vom leistungsstärkeren
PDA bis hin zum Notebook. Ihnen gemeinsam ist die tastaturbasierte Eingabe und eine informationszentrierte Nutzung. Geräte
mit einem Display von ca.
1
2
VGA fallen bei Symbian unter den
Namen Crystal. Bei Microsoft firmieren sie als Handheld PCs.
Der Trend für mobile Geräte ist klar: Sie werden kleiner, billiger und verfügen über mehr
Funktionen. Durch Personalisierung werden sie intimer. Diese Entwicklung ist der bei den
Uhren vergleichbar. Heute ist Zeitinformation überall vorhanden und selbstverständlich.
Uhren werden unbewußt genutzt. Vielleicht sind Wearables (intelligente Kleidung) die
Armbanduhr der Computer-Entwicklung?
........................................................................................
Kapitel 4. (Mobile) Hardware
9
4.2
Rahmenbedingungen
Aus den Kategorien mobiler Geräte lassen sich folgende Beschränkungen bezüglich Hardware und Kommunikation ableiten:
• Eingabe
Die Möglichkeiten zur Eingabe unterliegen Beschränkungen durch die fortschreitende Miniaturisierung der Geräte. Neben winzigen Tastaturen, mehrfacher Tastenbelegung (z. B. beim SMS-Tippen am Handy) existieren auch neue Bedienkonzepte.
Vom etablierten Stift bei den PDAs über Touchscreen bis hin zu innovativen Designs mit druckempfindlichen Gehäuseteilen gibt es viele Ideen. Sie können jedoch
alle nicht den Komfort einer gewohnten Tastatur ersetzen.
• Verarbeitung
Arbeits- und Massen-Speicher ist kostbar wie vor Jahren bei Desktop-Geräten. Auch
die Leistungsfähigkeit der Prozessoren reicht nicht an das gewohnte Niveau heran.
Deshalb sollte man bei der Programmierung schonend mit diesen Ressourcen umgehen und unnötigen Verbrauch vermeiden.
• Ausgabe
Die Ausgabe ist nicht nur in der Größe beschränkt, es muß auch Rücksicht auf die
Umgebung genommen werden. Die Entwicklung von ausreichend hellen Displays
auch in dunklem Umfeld wird noch erforscht. Bei der Gestaltung sollte man nicht
nur auf eine klare Strukturierung achten, sondern auch bedenken, dass ältere Geräte
nur Graustufen unterstützen.
• Netzwerk
Die Netzwerk-Verbindung ist nicht immer stabil. Durch Fortbewegung können Unterbrechungen entstehen. Die drahtlose Anbindung verursacht auch mehr Übertragungsfehler, die die knappe Bendbreite noch zusätzlich begrenzen. Befindet sich
ein Gerät mal im Netzwerk und mal nicht, muß auch die Synchonisation zwischen
offline bearbeiteten Dateien und den im Netzwerk befindlichen beachtet werden.
........................................................................................
10
4.2. Rahmenbedingungen
5
(Mobile) Betriebssysteme
Diese Kapitel bietet einen Überblick über die wichtigsten Betriebssysteme für mobile
Geräte. Eine Link-Sammlung mit einigen Exoten findet sich unter [53].
5.1
Palm OS
Das bekannteste Betriebsystem für einen PDA ist Palm OS. Um sicherzustellen, dass ein Palm-Programm auf jedem Palm funktioniert existiert
das sog. Palm OS Ready Program. Die teilnehmenden Hardware-Hersteller
müssen ihre Bausteine nach den vorgegebenen Normen entwickeln. Über den
Silicon Porting Kit erhalten sie die Möglichkeit, den Hardware and Device Abstraction
Layer anzupassen. Beides wird geprüft, bewertet und empfohlen. Das Zertifikat erlaubt
es dem Hersteller dann, seine Bauteile samt Software an Lizenznehmer von Palm OS zu
verkaufen. Zu diesen zählen z. B. Sony und IBM.
Palm OS ist ein 32-Bit-Betriebssystem, das für den Einsatz auf Palm PDAs spezialisiert
ist. Durch die Beschränkung auf ein Referenzdesign soll wiederum die Kompatibilität der Palm-Programme abgesichert werden. Basis für den Erfolg von Palm OS war
die Handschriftenerkennungssoftware Graffitti. Diese erkennt Buchstaben eines schnell
erlernbaren, vereinfachten Alphabets. Die Zeichen werden auf die wichtigsten Linien reduziert.
5.2
Windows CE
Microsoft’s Betriebssystem für eingebettete Systeme ist Windows CE. Frühere Versionen
zeichneten sich noch durch die Unterstützung sehr vieler Referenzdesigns und Prozessoren aus. Doch diesen Vorteil verspielte Microsoft durch die Fixierung auf den Strong
ARM Prozessor. Bei den Nachfolgern herrscht Namens-Verwirrung. Zu Windows CE
3.0 gibt es verschiedene Nachfolger mit Codenamen wie Talisker oder Merlin. Zusätzliche
Irritationen ruft die Versionsnummer hervor. Hinter Pocket PC 2002 verbirgt sich Windows CE für Pocket PC Version 2.1, das unter der OS-Version 3.0 läuft. Ähnlich verhält
es sich bei Handheld PC 2002. Das Spektrum umfasst spezielle Versionen für Smartphones, Automotive, ... bis hin zu Windows XP embedded. Kürzlich propagierte Microsoft
Windows CE .NET, um auf das generelle Ziele – die Plattform .NET – Bezug zu nehmen.
........................................................................................
Kapitel 5. (Mobile) Betriebssysteme
11
Windows CE bietet ein komplettes präemptives Multitasking mit acht Prioritätsleveln für
Applikationen. Auch Threads können gestartet werden. Zu deren Synchronisation stehen
dem Programmierer viele Möglichkeiten offen. Nutzer von Microsoft Produkten wie Office
empfinden es als angenehm, dass abgespeckte Versionen dieser Produkte für Windows
CE verfügbar sind. Das einheitliche Look and Feel“ der Microsoft Mobile Software
”
erleichtert den Einstieg. Die umfasst Adaptionen der bekannten Office-Produktpalette.
5.3
EPOC
Der PDA wurde 1984 von Psion definiert. Man konnte ihn mit der BASIC-ähnlichen Programmiersprache OPL programmieren. Mit der Serie 3 erhielt er einen BetriebssystemKern, der EPOC hieß. Eine mögliche Erklärung für diese Abkürzung ist die Hoffnung auf
eine neue Epoche. Eine andere Interpretation geht von Electronic Piece of Cheese“ aus.
”
Mit der Serie 5 wurde der Name auf das 32-bit-Betriebssystem ausgeweitet.
EPOC sollte zum Standard werden, deshalb entstand ein Joint Venture von Psion mit
Nokia, Motorola, Ericsson, Sony Ericsson und Panasonic unter dem Namen Symbian.
Deshalb spricht man auch von Symbian OS. EPOC ist auf jede Hardwarearchitektur
portierbar und verfügt über drei Referenzdesigns (vgl. Abschnitt 4.1 Mobile Geräte
auf Seite 9).
5.4
Embedded Linux
Prognosen zufolge ist Embedded Linux auf dem besten Weg dazu, den Markt zu erobern.
Eigentlich ist der skalierbare Kernel gut geeignet, aber viele Firmen schrecken aus kommerziellen Gründen zurück. Ein Open-Source-Betriebssystem zu verwenden, verpflichtet
quasi dazu, den Konkurrenten die eigene Arbeit auf dem Silbertablett zu präsentieren.
Zweifelhafte Berühmtheit erlangte der Yopy. Lange angekündigt, kam der
PDA vor kurzem nicht wie geplant von Samsung, sondern nur über den
Hardware-Hersteller G.Mate auf den Markt. Das versprochene AllroundTalent wurde stark in der Funktionalität beschnitten. Da nur wenige mobile
Geräte mit embedded Linux ausgeliefert werden stellt Compaq’s Angebot, den iPAQ mit
dem Open Handheld Program“ nachzurüsten, eine interessante Alternative dar.
”
Mittlerweile sind auf dem Markt für mobile Geräte fast so viele Linux-Distributionen
zu finden wie für Desktop Computer. Kommerzielle Produkte sind genauso verfügbar wie
........................................................................................
12
5.3. Symbian EPOC
Open Source Alternativen. Die wichtigsten frei verfügbaren Implementationen werden im
Folgenden kurz vorgestellt. Sie basieren alle auf dem Kernel von handhelds.org [23].
Compaq ist Sponsor dieses Entwicklerforums, das ursprünglich mit der Portierung von
Linux auf den iPAQ begann.
Century Software hat auf dem genannten Kernel basierend das Microwindows PDA
Operating Environment entwickelt. In feinster Open Source Tradition wurden dabei verschiedene Tools, Cross-Compiler und andere Komponenten zu einer GUI-Entwicklungsumgebung zusammengefügt. Microwindows bietet alle Funktionalitäten eines
gewöhnlichen Windows-Systems. Durch die Emulation der Schnittstellen sowohl von
Windows GDI als auch des X Systems wird die Portierung von Applikationen erheblich erleichtert. Darauf aufsetzend, ist es möglich, eine angepasste Variante des Fast
Light Toolkits (FLTK) zu benutzen, die FLNX heisst. Neben der Portierung von FLTK Anwendungen wird auch Qt unterstützt. Die Anbindung des Qt Frameworks wird durch
eine Kompatibilitätsschicht realisiert, die die Qt Aufrufe nach FLNX übersetzt. Weitere
Informationen zu Microwindows findet man unter [49].
Das bereits erwähnte Qt Framework stammt von Trolltech. Dort wurde das Qt Palmtop
Environment entwickelt. Dieses setzt auf Qt/Embedded auf, welches direkt mit der
Linux Ein-/Ausgabe interagiert. Die Anwendungsentwicklung erfolgt beispielsweise unter
C++ mit der Qt API. Diese kompakte Umgebung ermöglicht eine schnelle Portierung
existierender Anwendungen. Unter [51] sind weitere Informationen erhältlich.
Eine weitere Möglichkeit stellt Pocket Linux dar. Die Architektur dieser Umgebung von
Transvirtual Technology läßt sich kurz und knapp als Implementierung einer Java Virtual
Machine unter Linux beschreiben. Die Benutzerschnittstelle wird in XML beschrieben,
die damit verknüpften Events werden unter Java abgearbeitet. Alle Anwendungen sind
von einer Basisklasse abgeleitet, die ein standardmäßiges Event-Handling zur Verfügung
stellt. Es sind also nur die Ausnahmebehandlungen explizit zu codieren. Von Nachteil
dürfte jedoch die Performanz von Java sein. Weiterführende Angaben sind unter [50]
verfügbar.
Einen Überblick über die verschiedenen GUI / Windowing Systeme für Embedded Linux
findet man bei [45].
........................................................................................
Kapitel 5. (Mobile) Betriebssysteme
13
6
(Mobile) Entwicklungsumgebungen
Auf den (mobilen) Betriebssystemen setzen Entwicklungsumgebungen auf (vgl. Abbildung 2.1 auf Seite 3). Mit den verschiedenen Software Development Kits (SDKs) können
Entwickler eigene Anwendungen erstellen.
6.1
Entwicklungsansätze
Aus dem breiten Spektrum mobiler Geräte, der Vielfalt an Betriebssystemen und der Vielzahl an Anwendungsszenarien ergeben sich drei Möglichkeiten, Applikationen zu erstellen:
die Anwendung setzt auf einem Browser auf (Browser Based), man programmiert für den
jeweiligen Prozessor (Native Code) oder eine plattformunabhängige Programmiersprache
wie Java wird verwendet.
Naheliegend, ist der Ansatz, speziell für ein Gerät in dessen Sprache und für dessen
Betriebssystem angepassten Code zu schreiben. Der Ansatz, Native Code zu verwenden,
bietet folgende Vorteile:
• umfangreichere Funktionalität,
• höhere Flexibilität und
• er ist off-line verwendbar.
Eine zweite Möglichkeit, bietet sich über den auf jedem Betriebssystem vorhandenen
Browser. Man nutzt dessen Darstellungsmöglichkeiten. Für diese Überlegung spricht:
• die geringe Komplexität,
• die Schnittstellen sind standardisiert und
• damit die Anwendungen portabel.
Möchte man jedoch portable Applikationen erstellen, die auch off-line verwendbar sind,
ist keiner der beiden genannten Ansätze ausreichend. Man kann jedoch auf eine plattformunabhängige Programmiersprache wie Java zurückgreifen. Diese vereint die Vorteile
der ersten beiden Überlegungen. Was ist dann der Haken daran? Man bezahlt in Form
von Ressourcen. Java wird manchmal als langsam und fett bezeichnet. Es sind jedoch
abgespeckte Varianten verfügbar.
........................................................................................
Kapitel 6. (Mobile) Entwicklungsumgebungen
15
Der plattformunabhängige Ansatz erscheint also akzeptabel. Dennoch werden zuerst proprietäre und plattformgebundene Entwicklungsumgebungen genannt und am Beispiel von
Microsoft .NET vorgestellt. In den nächsten Kapiteln wird dann auf Java eingegangen
und ein Beispiel vorgestellt.
6.2
Proprietäre und plattformgebundene SDKs
Zu jedem der in Kapitel 5 vorgestellten Betriebssysteme gibt es proprietäre SDKs. Sie
sind speziell darauf zugeschnitten und plattformgebunden.
Möchte man Applikationen für Palm OS entwickeln, kann man auf das frei verfügbare
SDK, den kostenlosen Emulator und viele Entwicklungsumgebungen zurückgreifen. Zum
Einstieg bieten sich die freien GNU-PRC-Tools an. Eine Windows-Portierung dieser
Linux/Unix-Tools ist auch kostenlos verfügbar. Ein Vorteil dieser Lösung ist, dass jede auf dem GCC aufsetzende Entwicklungsumgebung benutzt werden kann. So lassen
sich C- oder C++-Programme entwickeln. Möchte man auf BASIC basierende Sprachen
verwenden, ist dies mit Kosten verbunden.
Bisher wurde die Windows Plattform wegen der vielen internen Inkompatibilitäten
eher übergangen. Deshalb existieren hier auch vergleichsweise wenige Applikationen. Das
Microsoft SDK ist frei erhältlich. Als integrierte Entwicklungsumgebung bietet sich Visual Studio an. Die Betaversion des .NET Compact Frameworks und die Extensions for
Smart Devices sollen Windows XP mit der Microsoft-PDA-Plattform zusammenführen.
Mit diesem Schritt versucht Microsoft, den Entwicklern diese Plattform schmackhaft zu
machen.
Auf fast allen mobilen Geräten mit Symbian EPOC ist eine komplette Entwicklungsumgebung vorinstalliert. Aufgrund der kleinen Tastatur greift man jedoch gerne auf die
SDKs für den PC zurück. Sie sind frei verfügbar und erlauben es mit dem Emulator
in C++, Java oder OPL zu entwickeln. Eine Portierung von Windows auf Linux ist im
Gange. Momentan ist nur C++-Programmierung möglich und ein Emulator wie WINE
wird benötigt.
........................................................................................
16
6.2. Proprietäre und plattformgebundene SDKs
6.3
Microsoft .NET
Was ist .NET?
Microsoft .NET ist eine Plattform zur Entwicklung von Internet-Anwendungen. Dabei
werden offene Standards wie http und XML verwendet. Die Plattform .NET gliedert sich
in vier Komponenten:
• Framework und Tools,
• Building Block Services,
• Enterprise Servers und
• Devices.
Für Entwickler interessant ist der Bereich Framework und Tools. Hier wird die einheitliche Klassenbibliothek Common Language Runtime für Visual Studio.NET bereitgestellt. Das .NET-Framework ist eine Entwicklungsplattform für Anwendungen. Es
existieren Compiler für Visual Basic.NET, Visual C++ und C#. Nur für C++ kann der
Compiler noch nativen Code erzeugen. Aus jeder Sprache kann man einen Zwischencode
erzeugen. Die Zwischensprache Microsoft Intermediate Language (MSIL) ist offengelegt
und dokumentiert. Bringt man ihn unter Aufsicht der Common Language Runtime zur
Ausführung, spricht man von Managed Code. Dieser wird per Just In Time Compiler (JIT-Compiler) in Maschinensprache übersetzt und ausgeführt. Microsoft .NET ist
ein entfernter Nachfahre von COM (Component Object Model). Das Konzept der CodeIntegration auf binärer Ebene wurde weiterverfolgt. Ergebnis ist die Sprachintegration
von .NET. Komponenten können in jeder der unterstützten Sprachen geschrieben werden und von allen anderen Sprachen aus benutzt werden. Die problematische Verteilung
und Installation der Komponenten wurde drastisch vereinfacht. Alte COM-Komponenten
können von .NET aus benutzt werden.
Die Building Block Services stellen vorgefertigte WebServices zur Verfügung. Man
kann sie über den Verzeichnisdienst UDDI auffinden und in eigene Anwendungen integrieren. Hinter Enterprise Servers verbirgt sich die 2000-Server-Familie bzw. die .NET
Enterprise Server. Unter Devices fallen mobile Geräte, die angebotene Anwendungen
nutzen können, z. B. ein Handy oder Handheld.
........................................................................................
Kapitel 6. (Mobile) Entwicklungsumgebungen
17
Das .NET Compact Framework
Eben für diese mobilen Geräte wurde das .NET Compact Framework (CF) entwickelt.
Diese Light-Version des .NET Framework weist folgende Unterschiede zum großen Bruder
auf:
• kein ASP.NET,
• keine COM-Interoperabilität (Nutzung der COM-Komponenten von .NET aus),
• keine ActiveX-Unterstützung,
• einige Windows-Forms-Steuerelemente fehlen,
• die Nutzung beliebiger OLEDB-Provider fehlt,
• keine Dateisystemüberwachung,
• kein Remoting, das über WebService-Clients hinausgeht,
• die Grafik-Bibliothek GDI+ fehlt,
• kein Drucken,
• Drag & Drop fehlt,
• keine binäre Serialisierung,
• kein XPath,
• keine XML-Validation per XML-Schemas,
• keine Laufzeitgenerierung und
• die Erzeugung eines Native Image (Install Time Compilation) fehlt.
Die Smart Device Extensions
Die Smart Device Extensions sind ein Add-On für Visual Studio.NET. Sie enthalten Werkzeuge für die Entwicklung auf Basis des CF. Auch ein Pocket PC Emulator zum Testen
der Anwendung liegt bei. Eine Alternative für die Hardware-nahe Entwicklung stellt eMbedded Visual C++ dar. Damit kann man jedoch keinen Zwischencode erzeugen. Eine
Entwicklung mit Visual Basic ist nicht mehr möglich; der Umstieg auf Visual Basic.NET
wird empfohlen.
........................................................................................
18
6.3. Microsoft .NET
Fazit
Die Bezeichnung der Plattform .NET führt zu weiterer Begriffsverwirrung. War die Namensgebung bei der Betriebssystemen schon undurchsichtig, kann man nun nicht einmal mehr Entwicklungsumgebung und Betriebssystem unterscheiden. Hinter dem Namen
Windows CE.NET vermutet man fälschlicherweise eine Unterstützung der .NET Plattform und nicht Windows CE Version 4.0. Die Plattform wird oft auch als plattformunabhängig angepriesen, was sie aber nicht ist. Bibliotheken zur Nutzung der (Windows-)
Betriebssystemfunktionalitäten unterminieren diesen Gedanken. Aufgrund vieler Ähnlichkeiten wirkt die Ankündigung des .NET Compact Framework wie ein Schachzug, um
Java den Rang abzulaufen. Ein weiterer Grund könnte das geringe Software-Angebot für
Windows CE im Vergleich zu Palm OS darstellen. Unterstützt wird diese These durch die
Ankündigung Microsofts, eine Bibliothek ähnlich wie DirektX für PDAs herauszugeben.
Damit sollen die Spiele-Programmierer ins Boot geholt werden. Letzendlich werden die
Programmierer entschieden, ob Microsoft auf diesem Markt Fuss fassen kann.
6.4
Plattformübergreifende SDKs
Die Wabasoft Corporation stellt mit Waba eine Entwicklungsumgebung für Java mit
angepasster virtueller Maschine zur Verfügung. Diese ist auf mobile Geräten mit Windows
CE oder Palm OS zugeschnitten und wird als Open-Source-Produkt vertrieben. Diese
eingeschränkte Portabilität wird mit enormer Geschwindigkeit aufgewogen. Auch stellt
Waba viel mehr GUI-Komponenten zur Verfügung als andere virtuelle Maschinen.
IBM’s virtuelle Maschine trägt den Namen J9. Mit Visual Age Micro Edition (VAME) verfügt man über eine komfortable IDE. Diese wichtigsten Funktionen dieser preisgekrönte Entwicklungsumgebung sind nun als Plug-In für WebSphere Studio Workbench
frei verfügbar. Durch diesen Schritt lösten sich auch Probleme, die bei der Portabilität
und der Verwendung der API aufgetreten waren.
Java ist fast untrennbar mit der Firma SUN verknüpft. Deshalb verwundert es auch
kaum, dass aus diesem Hause Referenzimplementierungen und Standardisierungsbemühungen stammen. In den folgenden Kapiteln wird diese Entwicklungsumgebung näher
beleuchtet.
........................................................................................
Kapitel 6. (Mobile) Entwicklungsumgebungen
19
7
Java 2 Micro Edition
7.1
Die verschiedenen Editionen
Einen Überblick über die verschiedenen Editionen der Java 2 Plattform und ihre Einsatzgebiete stellt folgende Abbildung dar.
Servers & enterprise
computers
Desktop & personal
computers
Optional
Packages
High-end consumer
devices
Low-end consumer
devices
Optional
Packages
Smartcards
Personal
Profile
Java 2
Enterprise
Edition
(J2EE)
Java 2
Standard
Edition
(J2SE)
Foundation
Profile
MIDP
Profile
CDC
CLDC
Configuration
Java 2 Micro Edition (J2ME)
HotSpot
VM
JVM
CVM
KVM
10 MB
512 kB
64 bit
32 bit
32 kB
16 bit
Java
Card
APIs
Edition
Card
VM
Virtual Machine
Memory
8 bit
Abbildung 7.1: Die Java 2 Plattform
Für mobile Geräte ist die Java 2 Micro Edition, kurz J2ME, gedacht. Sie setzt auf
der C Virtual Machine (CVM) oder der Kilo (Byte) Virtual Machine (KVM) auf. Beides
sind virtuelle Maschinen, die für den ressourcenschonenden Einsatz optimiert wurden.
7.2
Unterschiede J2ME / J2SE
7.2.1 Sprachumfang
Eine CLDC konforme Virtual Machine ist zur Java Language Specification kompatibel
mit folgenden Abweichungen:
........................................................................................
Kapitel 7. Java 2 Micro Edition
21
• Keine Gleitkomma-Berechnungen
Aufgrund der fehlenden Hardware-Unterstützung werden die Datentypen float und
double und entsprechende Wrapper-Klassen nicht unterstützt. Die software-seitige
Simulation über Festkomma kann durch das Paket MathFP erfolgen.
• Kein finalize()
Diese Methode aus der Klasse Object wird vom Garbage Collector aufgerufen. Um
diesen zu vereinfachen ist finalize() nicht in der CLDC-Bibliothek enthalten.
• begrenzte Internationalisierung
Grundlegende Konvertierungen zwischen Byte Streams und Unicode sind möglich,
weitergehende Konzepte wie Locale, ResourceBundle und DateFormat sind in
J2ME nicht definiert.
• eingeschränktes Error-Handling
Im Wesentlichen ist das Error-Handling für CLDC auf zwei Klassen beschränkt:
java.lang.VirtualMachineError und java.lang.OutOfMemoryError.
Dieser Schritt resultiert aus den Ressourcen-Beschränkungen der Geräte. Auch soll
sich der Programmierer nicht mit gerätespezifischen Fehlern befassen, um Plattformunabhängigkeit zu gewährleisten.
7.2.2 Kompatibilität zur Java Virtual Machine Specification
Hier sind folgende Abweichungen der KVM zu nennen:
• Keine Gleitkomma-Berechnungen
Begründung siehe oben.
• Kein finalize()
Auch hier gelten obige Betrachtungen.
• eingeschränktes Error-Handling
Neben den oben erwähnten Grenzen sollte das Error-Handling an das Zielgerät
angepasst werden.
• Kein Java Native Interface (JNI)
Das Sicherheitsmodell von CLDC setzt voraus, dass der Satz an nativen Funktionen
fest ist. Ein Nachladen ist wegen der implementations-abhängigen Funktionsweise
nicht sinnvoll. Auch wäre eine vollständige Umsetzung von JNI zu speicherintensiv.
........................................................................................
22
7.2. Unterschiede J2ME / J2SE
• Keine Nutzer-definierten Class Loader
Aus Sicherheitsgründen kann der eingebaute Class Loader nicht überschrieben, ersetzt oder rekonfiguriert werden.
• Keine Reflection
Reflection ist für CLDC nicht vorgesehen. Darauf basierende Möglichkeiten wie Remote methode Invocation (RMI), Serialisierung von Objekten, JVM Debugging
Interface (JVMDI) und Profile Interface (JVMPI) sowie weitergehende Funktionalitäten der J2SE sind nicht verfügbar.
• Keine Thread Groups und Daemon Threads
Multithreading ist implementiert, aber Operationen auf Gruppen von Threads können nur durch explizite Collections realisiert werden.
• Keine lose Kopplung
Die KVM sieht keine Möglichkeit vor, ein Programm lose an ein Objektes zu koppeln.
7.3
Konfigurationen und Profile
Bei den mobilen Geräten wird grob in 2 Kategorien unterschieden: High-end consumer
devices können die CVM benutzen und low-end consumer devices steht die KVM zur
Verfügung. Diese Unterteilung spiegelt sich in den sogenannten Konfigurationen wider.
Die Connected, Limited Device Configuration (CLDC) umfasst die einfacheren Geräte und
charakterisiert sie weniger über die Funktion als über technische Gegebenheiten wie wenig
Speicherplatz und geringe Bandbreite. Eine Konfiguration umfasst die Menge aller
implementierten Bibiliotheken und Funktionen der virtuellen Maschine. Sie stellt einen
kleinsten gemeinsamen Nenner dar. Deshalb ist die CLDC auch in der etwas mächtigeren
Connected Device Configuration (CDC) vollständig enthalten. Ihr werden Geräte wie
Set-Top Boxen oder High-End Communicator zugeordnet. Einen Vergleich von CDC und
CLDC anhand der Hardware gibt die untenstehende Tabelle.
(Massen-)
Netzwerk-
Band-
TCP/
Energie-
Speicher
verbindung
breite
IP
versorgung
CDC
2-4 MB
persistent
hoch
ja
fest
CLDC
ab 128 kB
flüchtig
gering
nein
Batterie
Konfiguration
Tabelle 7.1: CDC und CLDC
........................................................................................
Kapitel 7. Java 2 Micro Edition
23
Während eine Konfiguration einer horizontalen Einteilung entspricht, definiert ein Profil eine vertikale Einteilung.
Ein mobiles Gerät kann mehrere Profile erfüllen, z. B.
gerätespezifisch als Smartphone und applikationsspezifisch als Homebanking-Einrichtung.
Die Homebanking-Software muss dazu nicht wissen, auf welchem Gerät sie läuft, sondern
nur, dass es dieses Profil unterstützt. Die Hardware-Hersteller können selbst entscheiden, welche Profile sie für ein Gerät implementieren. Das wichtigste Profil ist derzeit das
Mobile Information Device Profile (MIDP).
7.4
J2ME Profile und APIs
7.4.1 MIDP
Das Mobile Information Device Profile (MIDP) setzt auf der CLDC auf und ist für Mobile
Information Devices ausgelegt. Darunter versteht man den kleinsten gemeinsamen Nenner
mobiler Geräte. Die genauen Hardware-Anforderungen werden später aufgelistet. Man
kann sich ein MID z. B. als Handy vorstellen. Das MIDP stellt APIs auf den folgenden
Gebieten zur Verfügung:
• Anwendungen definieren und steuern,
• Text und Graphik darstellen und Eingaben verarbeiten,
• Daten in einfachen Datenbanken ablegen,
• eine Netzwerk-Verbindung über eine Untermenge von HTTP herstellen und
• einen Timer verwenden.
Die Version 2.0 des MIDP ist bereits in Vorbereitung.
7.4.2 PDA Profile
Wie das MIDP setzt dieses Profile auf dem CLDC auf. Es zielt jedoch auf PDAs ab, die
mehr Speicher und bessere Darstellungsmöglichkeiten bieten als die Ziel-Geräte des MIDP.
Es wird 512 kB Speicher vorausgesetzt – entweder als RAM oder als Kombination aus
RAM und ROM. Auch für das Display gelten strengere Richtlinien. Die Auflösung beträgt
mindestens 20.000 Pixel, ein Zeigegerät muss bereitgestellt werden und eine Möglichkeit,
Buchstaben einzugeben. Eine Untermenge des AWT soll unterstützt werden.
........................................................................................
24
7.4. J2ME Profile und APIs
7.4.3 Java APIs for Bluetooth
Da Bluetooth in Verbindung mit J2ME große Potentiale verspricht wurde eine API dafür
spezifiziert. Protokolle zur Auffindung von Diensten, RFCOMM und OBEX werden unterstützt. Die Voraussetzungen entsprechen denen des MIDP. Die APIs basieren auf dem
CLDC.
7.4.4 Foundation Profile
Das Foundation Profile setzt auf dem CDC, nicht auf dem CLDC, auf. Es dient als
Basis für weitere Profile und stellt deshalb keine Klassen für das Benutzerinterface zur
Verfügung. Es dient im Wesentlichen dazu, die Pakete des CDC konzeptuell integer
verfügbar zu machen. Enthalten sind java.lang, java.util, java.net, java.io, java.
text und java.security. Die Hardware-Anforderungen werden auf 1024 kB persistenten
Speicher und 512 kB Arbeitsspeicher erhöht.
7.4.5 Personal Profile
Auf dem Foundation Profile setzt das Personal Profile auf. Es macht PersonalJava auf
Basis von J2ME verfügbar. Dieses Profil bietet volle Unterstützung des AWT und ist
auf Web Applets ausgerichtet. Es umfasst folgende Pakete: java.applet, java.awt,
java.awt.datatransfer, java.awt.event, java.awt.font, java.awt.im, java.awt.
im.spi, java.awt.image, java.beans und javax.microedition.xlet. Der Ressourcenbedarf ist dadurch auch signifikant höher: 2,5 MB persistenter und 1 MB flüchtiger
Speicher.
7.4.6 RMI Profile
Ein weiteres Profile, das auf dem Foundation Profile aufsetzt, ist das RMI Profile. Ein
Teil von RMI wird bereitgestellt. Datailliertere Informationen enthält [61]. Es stellt die
gleichen Hardware-Anforderungen wie das Personal Profile.
7.4.7 Mobile Media API
Neben den Profilen wird eine Multi Media API für verschiedene multimediale Typen,
z. B. Töne, bereitgestellt werden. Sie wird auf dem CLDC basieren, aber auch CDC
unterstützen.
........................................................................................
Kapitel 7. Java 2 Micro Edition
25
7.5
Hardware für CLDC und MIDP
7.5.1 CLDC
Für eine effiziente Nutzung der KVM mit den CLDC Bibliotheken gelten folgende Empfehlungen ( [63, 17]).
Art
Minimum
Maximum
Bemerkung
Speicherbedarf, gesamt
160 kB
512 kB
für die Java Plattform
persistenter Speicher
128 kB
JVM und CLDC Bibliotheken
Arbeitsspeicher
32 kB
Java Runtime und Heap
Prozessor
16 bit
Geschwindigkeit
25 MHz
Energieversorgung
Batterie
Netzwerk-Verbindung
32 bit
9600 bps
flüchtig, drahtlos
Tabelle 7.2: Hardware-Empfehlungen für CLDC
7.5.2 MIDP
Nach [63, 17] wird für MIDP mindestens die folgende Hardware vorausgesetzt.
Art
Minimum
Bemerkung
persistenter Speicher
128 kB
für MIDP Komponenten
persistenter Speicher
8 kB
für Daten, die von Anwendungen erstellt wurden
Arbeitsspeicher
32 kB
VM Runtime und Heap
Speicherbedarf
Display
Größe
96 ? 54
Farbtiefe
1 bit
Verhältnis
1:1
Form der Pixel
Eingabe
1 Mechanismus
Tastatur oder Touch Screen
Netzwerk
drahtlos
bidirektional, begrenzte Bandbreite, evtl. flüchtig
Tabelle 7.3: Minimal-Anforderungen für MIDP
........................................................................................
26
7.5. Hardware für CLDC und MIDP
7.6
Vorgehensweise
Eine Anwendung, die das MIDP erfüllt, wurde in Analogie zu den Applets MIDlet getauft. Folgende Vorgehensweise ist beim Erstellen einer solchen Applikation zu beachten.
Man erstellt also den Code und speichert ihn in Form einer *.java Datei. Der Compiler erzeugt daraus ein *.class File. Dieses wird durch das Preverifizieren um ca. 5 %
größer. Dabei werden Informationen eingefügt, die das Verfizieren zur Laufzeit erleichtern. Einige Prüfungen werden aber auch schon am Entwicklungsrechner durchgeführt.
Die Emulation ist ein erster Test der Implementierung. Dieser ganze Prozess wird durch
Tools unterstützt. So umfasst ein Build compilieren und preverifizieren. Anschliessend
packt man das Ergebnis mittels Package in ein *.jar Archiv.
Dieses Archiv wird dann auf das Zielgerät geladen und installiert. Zur Laufzeit wird
noch einmal Verifiziert. Dies geht jedoch rasch vonstatten durch die vorher eingefügten
Zusatzinformationen. Während der Ausführung kann man die Anwendung erneut testen.
Ein Beispiel, das diese Vorgehensweise illustriert, wird im nächsten Kapitel vorgestellt.
7.7
J2ME und i-mode
Die japanische Firma NTT DoCoMo wurde durch der Erfolg von i-mode in Japan bekannt.
Sie hat einige Java-fähige i-mode Handies im Angebot. Deren J2ME-Implementation ist
nicht Standard. Sie erfüllt die CLDC, aber nicht die Anforderungen des MIDP. NTT DoCoMo hat seine eigenen proprietären Klassen für Netzwerk, GUI etc. auf Basis der KVM
und CLDC entwickelt. Da diese ein Äquivalent zum MIDP sind, ist eine Unterstützung
des Standards nicht vorgesehen.
Deshalb heissen die Anwendungen bei NTT DoCoMo auch nicht Midlets, sondern iAppli.
Sie erben von com.nttdocomo.ui.iApplication. Ein Midlet implementiert die Methoden startApp(), pauseApp() und destroyApp(). Beim iAppli ist nur start() Pflicht.
Optional können resume() und terminate() überschrieben werden.
Auch die Verteilung der Anwendungen unterscheidet sich. Bei NTT DoCoMo kommt zur
Beschreibung eine *.jam Datei zum Einsatz. Diese unterscheidet sich nicht nur in der
Endung vom *.jad File Descriptor bei Midlets. Auch der interne Aufbau ist anders. Des
weiteren ist die Größe eines iAppli *.jar Archives auf 10 kB beschränkt.
........................................................................................
Kapitel 7. Java 2 Micro Edition
27
8
Beispiel J2ME
Für mobile Geräte, die das MIDP erfüllen, kann man mit J2ME programmieren. Man
erstellt dabei sogenannte MIDlets. Dazu benötigt man:
• Java 2 SDK Standard Edition, Version 1.3.0 oder höher
oder Java 2 Runtime Environment, Version 1.3.0 oder höher,
falls man keine Entwicklungsumgebung benötigt
• J2ME wireless Toolkit, aktuell ist die Version 1.0.3
• einen Editor
Nach der Installation öffnet man KToolbar. Ein Fenster erscheint:
Durch Klicken auf New Project legt man ein neues Projekt mit Einstellungen wie in
folgender Abbildung an.
Darauf hin öffnet sich ein Fenster mit Projekt-Einstellungen, das man mit OK bestätigt.
........................................................................................
Kapitel 8. Beispiel J2ME
29
Im Ausgabefenster erhält man Hinweise, wo man die Quellcode-Dateien und andere Ressourcen ablegen soll.
Nun öffnet man den Editor und erstellt eine Datei namens HelloMidlet.java. Zum Speichern verwendet man den vorher empfohlenen Pfad. Die Datei sollte folgenden Code
beinhalten:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet
extends MIDlet
implements CommandListener {
private Form mMainForm;
public HelloMIDlet() {
mMainForm = new Form("HelloMIDlet");
mMainForm.append(new StringItem(null, "Hello, MIDP!"));
mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));
mMainForm.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mMainForm);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}
}
Man geht zurück zur KToolbar. Dort stößt man Build an. Die folgende Abbildung zeigt
ein korrektes Ergebnis.
........................................................................................
30
Durch Build wird das Projekt compiliert und preverifiziert. Dieser Mechanismus ist nötig,
um dem mobilen Gerät später Arbeit abzunehmen. Beim Preverifizieren wird der Code
geprüft und um Informationen für das spätere Verifizieren erweitert. Dadurch wächst die
Klasse um etwa 5%. Folgende Abbildung verdeutlicht den Ablauf.
Mit Run startet man eine Emulation, z. B. auf einem Standard-Handy mit GraustufenDisplay. Die linke Abbildung zeigt das erwartete Ergebnis. Über den Button unter Launch
gelangt man zum nächsten Bildschirm, den die rechte Abbildung zeigt.
Über Project—Package kann man das Projekt als *.jar-File bündeln lassen, um es auf die
mobilen Geräte zu übertragen. In Verbindung mit Java Servlets und HTTP lassen sich
viele verschiedene Anwendungen entwickeln.
........................................................................................
Kapitel 8. Beispiel J2ME
31
9
Zusammenfassung und Ausblick
Es wurden die wichtigsten Betriebssysteme für moRest
15%
bile Geräte vorgestellt. Ihre Marktanteile im 4. Quartal 2001 in Westeuropa können der nebenstehenden
Symbian
14%
Palm OS
43%
Grafik (nach [69]) entnommen werden. Zu jedem Betriebssystem gibt es entsprechende Entwicklerkits für
Windows CE
28%
die proprietäre Anwendungsentwicklung. Auch plattformübergreifende Lösungen wurden vorgestellt.
Welcher Ansatz den Vorzug erhält, hängt im Wesentlichen vom Zielpublikum
ab. Möchte man möglichst viele Nutzer und Geräte ansprechen, liegt Java
nahe. Ob Microsoft’s Bemühungen, das .NET Framework in diesem Bereich
zu etablieren, Erfolg hat wird größtenteils vom Zuspruch der Entwickler
abhängen.
Dabei sollte man auch an die mobilen Geräte von morgen denken. Diese erfordern teils komplett neue Bedienkonzepte. Studien über See-through Displays“ oder Wearables“ wecken große
”
”
Erwartungen. Wearables“ sind Kleidungsstücke, in die die Technik
”
integriert ist. Man kann diese sogar waschen, ohne vorher etwas entfernen zu müssen. Ein Beispiel für ein See-through Display“ gibt
”
das nebenstehende Bild.
Aber auch Technologien, die es erleichtern, bisherige Konzepte auf
mobile Geräte zu übertragen, wie der Anoto Pen“ oder ein Cross
”
”
Pad“, erscheinen vielversprechend. Damit kann man wie gewohnt
auf einem Block schreiben, aber die Notizen liegen zugleich auch
digital vor. Die Informationen werden beim Anoto Pen“ über die
”
Schreibbewegungen erfasst, beim abgebildeten Cross Pad“ werden
”
sie über das Klemmbrett des Blocks erfasst. Diese Technologien erleichtern den Einstieg
in eine moderne Technik-Welt.
Auch Visionen wie Networked Surfaces“ oder “Intra-Body Kommu”
nikation“ wecken Interesse. Spektakulär wirkt das abgebildete Beispiel von
Intra-Body Kommunikation“ bei dem Informationen
”
über Nano-Ströme durch den menschlichen Körper übertragen werden.
........................................................................................
Kapitel 9. Zusammenfassung und Ausblick
33
Networked Surfaces“ ermöglichen es, über besondere Werkstoffe z. B.
”
für Tische mit eingearbeiteten Kontaktpunkten, Informationen zu erfassen. Ein Beispiel
gibt die untenstehende Abbildung.
Innovative Geräte, wie eine Milchtüte, die selbst feststellt,
dass sie zu lange in der Sonne steht, oder eine Tasse, die
ihren Füllstand erkennt, könnten das Leben erleichtern.
Die
Idee vom vernetzten Heim könnte also bald Wirklichkeit werden.
Man kommt nach Hause und kann sich in der Ba-
dewanne entspannen,
die man vorher per Handy eingelassen
hat.
........................................................................................
34
Literaturverzeichnis
Alle Quellen alphabetisch
[1] David Adamczewski: Handy-Spielereien. In c’t, Ausgabe 10, Seiten 190 – 195,
Mai 2002.
[2] allnetdevices.com: allNetDevices – Wireless Devices.
URL
http://www.allnetdevices.com/wireless/
[3] Prof. Michael Amberg: Mobile Computing (RWTH Aachen, 2001). Material
zur Vorlesung.
URL
http://www.rwth-aachen.de/wi/lehre/lv/ss2001/EBmobile/
[4] Prof. Michael Amberg: Mobile Entwicklungsumgebungen. In Vorlesung [3].
Video zur Vorlesung vom 11.07.01.
URL
http://www.rwth-aachen.de/wi/videos/mc/mc_s00_v07.rm
[5] Prof. Michael Amberg: Mobile Entwicklungsumgebungen. In Vorlesung [3].
Folien zur Vorlesung vom 11.07.01.
URL
http://www.rwth-aachen.de/wi/lehre/lv/ss2001/EBmobile/eb-mc-ss01-7entwicklung.ppt
[6] Christoph Andriessens, Olaf Seng und Michael Winter: Proseminar Mobile Computing und web-basierte Anwendungen: Literaturverweise.
URL
http://app2web.fzi.de/proseminar-SS2002/literaturverweise.html
[7] Verschiedene Autoren: Diverse Artikel zum Stichwort Mobile Computing”. In
c’t, 1999 – 2002.
[8] Dr. Joachim Baumann: Mobile Computing. Material zur Vorlesung.
URL
http://www.informatik.uni-stuttgart.de/ipvr/vs/lehre/ss00/vorlesungen/MobileComputing/
[9] Holger Bleich: Wozu noch WAP? In c’t, Ausgabe 26, Seiten 92 – 94, Dezember
2001.
[10] Holger Bleich: E-Plus startet i-mode. In c’t, Ausgabe 6, Seite 54, März 2002.
[11] Carlos Camacho: The Situation in Japan.
URL
http://www.allnetdevices.com/wireless/opinions/2001/01/05/the_situation.html
........................................................................................
Alle Quellen alphabetisch
37
[12] Dimitris N. Chorafas: High-Performance Networks, Personal Communications
and Mobile Computing (Macmillan Press Ltd., Houndmills, 1997). ISBN 0-33366683-6.
[13] GeoComm International Corporation: Wireless Developer Network - Online
PDA Programming Training and Tutorials.
URL
http://www.wirelessdevnet.com/channels/pda/training/
[14] Bill Day: J2ME Archive.
URL
http://www.billday.com/j2me/
[15] Nobert Diehl und Albert Held: Mobile Computing (International Thompson
Publishing, Bonn, 1995). ISBN 3-929821-80-X.
[16] Hannes Federrath: Sicherheit in der Mobilkommunikation.
URL
http://www.inf.tu-dresden.de/~hf2/mobil/mobil20011211.pdf
[17] Yu Feng and Dr. Jun Zhu: Wireless Java Programming with J2ME (Sams
Publishing, Indianapolis, 2001). ISBN 0-672-32135-1.
[18] Frank Fitzek, James Gross und Andreas Köpsel: Kurzstrecken-Sprinter .
In c’t, Ausgabe 26, Seiten 214 – 219, Dezember 2001.
[19] Tom Fitzpatrick: WAP and i-mode: A Comparison.
URL
http://www.allnetdevices.com/wireless/opinions/2000/09/15/wap_and.html
[20] formulasys: The Basics of Wireless - A WHITE PAPER.
URL
http://www.formulasys.com/Whitepapers/Basics-of-Wireless_Formulasys.pdf
[21] David Fox: Java 2 Micro Edition and the Mobile Information Device Profile.
URL
http://www.allnetdevices.com/developer/tutorials/2001/02/16/java_2.html
[22] Gundolf S. Freymuth: Telefonie 3.0 . In c’t, Ausgabe 8, Seiten 244 – 250, April
2002.
[23] Jim Gettys: handhelds.org.
URL
http://www.handhelds.org
[24] Eric Giguère: Java 2 Micro Edition (Wiley Computer Publishing, New York,
2000). ISBN 0-471-39065-8.
........................................................................................
38
Alle Quellen alphabetisch
[25] golem.de: Studie: Mobile Computing boomt in Deutschland .
URL
http://www.golem.de/0202/18188.html
[26] Daniel Görlich: Operating Systems for Handicapped Devices. In Reinefeld und
Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[27] Abdelsalam Helal, Bert Haskell, Jeffery L. Carter, Richard Brice,
Darrell Woelk and Marek Rusinkiewicz: Any Time, Anywhere Computing
(Kluwer Academic Publishers, Dordrecht, 1999). ISBN 0-7923-8610-8.
[28] Werner Heuser: PDAs/Handheld PCs and UniX .
URL
http://mobilix.org/pda_linux.html
[29] Sebastian Hochstetter: Antriebskräfte. In c’t, Ausgabe 1, Seiten 168 – 172,
Januar 2001.
[30] hpc.net: Pocket PC 2002 Information and Update Guide.
URL
http://www.hpc.net/html_nav.asp?ObjectID=52132
[31] Tomasz Imielinski and Henry F. Korth, (editors): Mobile Computing (Kluwer
Academic Publishers, Dordrecht, 1996). ISBN 0-7923-9697-9.
[32] Yahoo! Inc.: indowireless forum Wireless Indonesia - Engineer Forum.
URL
http://groups.yahoo.com/group/indowireless_forum/files/
[33] Zucotto Wireless Inc.: Zucotto Wireless Inc. - See Us At...
URL
http://www.zucotto.com/content/industrylinks.html
[34] Mobile Media Japan: I-mode Java Specifications.
URL
http://www.mobilemediajapan.com/newsdesk/imode-java/
[35] javamobiles.com: javamobiles.com.
URL
http://www.javamobiles.com/
[36] Martin Kirst: IRDA und Bluetooth.
URL
http://www-user.tu-chemnitz.de/~kirst/prosem/
[37] Jonathan Knudsen: Wireless Development Tutorial Part II .
URL
http://wireless.java.sun.com/midp/articles/tutorial2/
........................................................................................
Alle Quellen alphabetisch
39
[38] Jonathan Knudsen and Dana Nourie: Wireless Development Tutorial Part I .
URL
http://wireless.java.sun.com/midp/articles/wtoolkit/
[39] Arndt Kritzner: Geschenkte Pakete. In c’t, Ausgabe 20, Seiten 216 – 223,
Oktober 2001.
[40] Ulrike Kuhlmann: Elektronisches Papier . In c’t, Ausgabe 1, Seite 27, Januar
2001.
[41] Gordon Kunkel: Routing und Roaming. In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[42] Jürgen Kuri: LAN unplugged . In c’t, Ausgabe 25, Seiten 132 – 139, Dezember
1999.
[43] Daniel Lüders: ... und jetzt alle zusammen. In c’t, Ausgabe 10, Seite 19, Mai
2002.
[44] Daniel Lüders: Kleiner, schneller, smarter . In c’t, Ausgabe 7, Seiten 18 – 19,
April 2002.
[45] DeviceForge LLC: The Embedded Linux GUI/Windowing Quick Reference
Guide.
URL
http://www.linuxdevices.com/articles/AT9202043619.html
[46] DeviceForge LLC: The Embedded Linux Overview Quick Reference Guide.
URL
http://www.linuxdevices.com/articles/AT9888936014.html
[47] DeviceForge LLC: Exploring Linux PDA software alternatives.
URL
http://www.linuxdevices.com/articles/AT3058975992.html
[48] DeviceForge LLC: The Linux PDAs Quick Reference Guide.
URL
http://www.linuxdevices.com/articles/AT8728350077.html
[49] DeviceForge LLC: The Microwindows and NanoGUI Projects.
URL
http://www.linuxdevices.com/links/LK4761626139.html
[50] DeviceForge LLC: PocketLinux .
URL
http://www.linuxdevices.com/products/PD9917117472.html
[51] DeviceForge LLC: Qtopia – a Qt-based mobile palmtop environment.
URL
http://www.linuxdevices.com/products/PD8467855387.html
........................................................................................
40
Alle Quellen alphabetisch
[52] Basti Lotz: WAP für alle! Die ersten Schritte in WML.
URL
http://selfaktuell.teamone.de/artikel/xml/wml-intro/index.htm
[53] Emmanuel Marty: Review of Operating Systems.
URL
http://www2.tunes.org/Review/OSes.html
[54] Microsoft: Windows Embedded Homepage.
URL
http://www.microsoft.com/windows/Embedded/default.asp
[55] Dejan Milojicic, Frederick Douglis and Richard Wheeler, (editors): Mobility (Addison-Wesley, Reading, Massachusetts, 1999). ISBN 0-201-37928-7.
[56] ARCHmatic Alfons Oebbeke:
ARCHmatic-Glossar und -Lexikon: EDV-
Glossar, Internet, Grafik, Graphik, EDV, IT, Bildverarbeitung, Video, CAD,
CAAD, Architektur, WEB, Multimedia, Glossar, Glossare, Lexikon, FAQ, FAQs,
Nachschlagewerk, Nachschlagewerke, Lexika, Lexikas, Know-How, Wissen, suchen,
nachschlagen.
URL
http://th-bandt.de/glossar/
[57] Rudolf Opitz: Klapp-Handy mit GPRS-Turbo. In c’t, Ausgabe 2, Seite 47, Januar
2002.
[58] Rudolf Opitz: Mobilfunk-Multimedia. In c’t, Ausgabe 6, Seiten 28 – 30, März
2002.
[59] Rudolf Opitz: Web-Handy. In c’t, Ausgabe 4, Seite 32, Februar 2002.
[60] Christopher Pace: Microsoft Mobilizes .NET .
URL
http://www.allnetdevices.com/wireless/news/2002/04/18/microsoft_mobilizes.html
[61] Vartan Piroumian, Bill Joy and Mike Clary, (editors): Wireless J2ME Platform Programming. 1. edition (Prentice Hall Computer Books, Upper Saddle River,
2002). ISBN 0130449148. First Chapter Online for Test Reading.
URL
http://wireless.java.sun.com/midp/chapters/j2mevartan/0130449148.pdf
[62] Alexander Reinefeld und Florian Schintke, (Herausgeber): Seminar Mobile Computing (Konrad-Zuse-Zentrum für Informationstechnik Berlin, 2002).
URL
http://www.zib.de/schintke/lehre/mobile-computing/
........................................................................................
Alle Quellen alphabetisch
41
[63] Roger Riggs, Antero Taivalsaari and Mark Vanden Brink: Programming Wireless Devices with the Java 2 Platform, Micro Edition (Addison-Wesley,
Reading, Massachusetts, 2001). ISBN 0-201-74627-1.
[64] Jürgen Rink: Bluetooth-Spezifikation endlich verabschiedet. In c’t, Ausgabe 17,
Seite 44, August 1999.
[65] Jürgen Rink: Infra-Rotlichtbezirk . In c’t, Ausgabe 25, Seiten 114 – 125, Dezember
1999.
[66] Jürgen Rink: Leinen los! In c’t, Ausgabe 25, Seiten 110 – 113, Dezember 1999.
[67] Jürgen Rink: PalmSource 2000 . In c’t, Ausgabe 1, Seiten 28 – 29, Januar 2001.
[68] Jürgen Rink: Microsoft serviert den Tablet PC . In c’t, Ausgabe 7, Seite 19, April
2002.
[69] Jürgen Rink: PDA-Markt in Europa bleibt auf niedrigem Niveau. In c’t, Ausgabe 4, Seite 24, Februar 2002.
[70] Jürgen Rink: Pocket PC auf Sendung. In c’t, Ausgabe 7, Seiten 56 – 57, April
2002.
[71] Prof. Dr. Kurt Rothermel: Mobile Computing. Material zur Vorlesung.
URL
http://www.informatik.uni-stuttgart.de/ipvr/vs/de/teaching/ss02/lectures/MobileComputing/
[72] Florian Schintke und Alexander Reinefeld: Einführung Mobile Computing.
In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[73] Dr. Hans-Peter Schüler: Spaltendrucker . In c’t, Ausgabe 10, Seite 72, Mai
2000.
[74] Herbert Schmid: Embedded-Betriebssystem Windows CE.NET . In c’t, Ausgabe 3, Seite 16, Februar 2002.
[75] Achim Schrepfer: Das Web in der Tasche.
URL
http://selfaktuell.teamone.de/artikel/design/pocket/index.htm
[76] Holger Schwichtenberg: Mobiles Erlebnis. In iX, Ausgabe 6, Seite 18, Juni
2002.
........................................................................................
42
Alle Quellen alphabetisch
[77] Chrisitan Siemers: Einbau-Prozessoren. In c’t, Ausgabe 6, Seite 78, März 2002.
[78] Peter Siering: Vorsicht Nachbar! In c’t, Ausgabe 22, Seite 62, Oktober 2000.
[79] Robert Sperling: Programmierung von mobilen und eingebetteten Computersystemen. In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[80] Jan Steuer, Michael Meincke und Peter Tondl: Hightech-Mobilfunk . In
c’t, Ausgabe 8, Seiten 222 – 227, April 2002.
[81] Sun Microsystems, Inc.: MIDP Articles.
URL
http://wireless.java.sun.com/midp/articles/
[82] Sun Microsystems, Inc.: MIDP for Palm OS .
URL
http://java.sun.com/products/midp4palm/index.html
[83] Larry Swasey: Reality Is Reality When It Comes to 3G.
URL
http://www.allnetdevices.com/wireless/opinions/2001/07/13/reality_is.html
[84] syfex.com: syfex Handheld Computing glossar .
URL
http://www.syfex.com/pages/techno/glossar/glossar.htm
[85] Andrew S. Tanenbaum, (Herausgeber): Computernetzwerke. 3. revidierte Auflage (Pearson Studium, München, 2000). ISBN 3-8273-7011-6. Kapitel 1.2.4 Drahtlose
Netze, 2.3 Drahtlose Übertragung, 2.7 Zellfunknetz, 2.8 Kommunikationssatelliten,
4.2.6 Protokolle für drahtlose LANs, 4.2.7 Digitales Zellfunknetz, 5.5.8 Mobiles IP,
5.6.1 Zellenformate, 6.4.9 Drahtloses TCP und UDP.
[86] Karsten Violka: Java für Handys. In c’t, Ausgabe 21, Seite 266, Oktober 2001.
[87] Karsten Violka: Kaffee unterwegs. In c’t, Ausgabe 1, Seiten 184 – 187, Januar
2002.
[88] Karsten Violka: Mobile Intelligenz . In c’t, Ausgabe 12, Seiten 234 – 235, Juni
2002.
[89] Karsten Violka: ONE World . In c’t, Ausgabe 8, Seite 50, April 2002.
[90] David Weese: Wireless Networks - Bluetooth und WLAN . In Reinefeld und
Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
........................................................................................
Alle Quellen alphabetisch
43
[91] Thomas Wenckebach: GSM und UMTS . In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[92] Stefan Wianke: IrDA und GPRS . In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[93] Michael Willers: Weite Reise. In c’t, Ausgabe 6, Seiten 252 – 259, März 2001.
[94] Jochen Witte: Mobile-IP . In Reinefeld und Schintke [62].
URL
http://www.zib.de/schintke/lehre/mobile-computing/
[95] Ilse Wolf und Rudolf Wolf: Mobile Zukunft.
URL
http://www.monitor.co.at/index.cfm?storyid=3852
[96] Regina Wong and Richard Jesty: The Wireless Internet: Applications, Technology and Market Strategies.
URL
http://www.allnetdevices.com/wireless/opinions/2001/01/10/the_wireless.html
[97] Dusan Zivadinovic: Drahtlos anknüpfen. In c’t, Ausgabe 7, April 1999.
[98] Dusan Zivadinovic: Privatfunk . In c’t, Ausgabe 25, Seiten 126 – 130, Dezember
1999.
[99] Dusan Zivadinovic: Drahtlose Mehrspur-Infobahn. In c’t, Ausgabe 22, Seiten
214 – 218, Oktober 2000.
[100] Dusan Zivadinovic: Hören mit dem Finger . In c’t, Ausgabe 22, Seite 26, Oktober
2000.
[101] Dr. Volker Zota: Westentaschen-Pinguin. In c’t, Ausgabe 3, Seiten 136 – 141,
Februar 2001.
........................................................................................
44
Alle Quellen alphabetisch
Herunterladen