Diplombericht Kartenloser Datenaustausch der LSVA

Werbung
Eidgenössisches Finanzdepartement EFD
Eidgenössische Zollverwaltung EZV
Oberzolldirektion
Sektion LSVA 1
Diplombericht
Kartenloser Datenaustausch der
LSVA-Deklarationsdaten (BLUDEC)
Version:
1.0 vom 31.05.2007
Diplomarbeit B37.07 / Klasse B37 / Software Schule-Schweiz
Betreuer:
Christian Hennecke
Oberzolldirektion, Sektion LSVA 1
Gutenbergstrass 50, 3003 Bern
Tel. 031 323 07 81
Experte:
Andres Scheidegger
GLUE Software Engineering AG
Zieglerstrasse 34, 3007 Bern
Tel. 031 385 30 32
Diplomand:
Paolo Dünner
Oberzolldirektion, Sektion LSVA 1
Gutenbergstrass 50, 3003 Bern
Tel. 031 323 17 55
Abstract:
Es wird eine Applikation für Standard-Mobilgeräte (Handy, PDA) für den Datenaustausch zwischen einem Erfassungsgerät mit Bluetooth-Schnittstelle und
einer PC-Applikation mit Internetschnittstelle entwickelt.
Das Programm wird als MIDlet realisiert, so dass es in einer Java MIDP2.0
Laufzeitumgebung ausgeführt werden kann.
Keywords:
J2ME, Bluetooth, FTP, HTTP, SOAP
DA_Bericht_BLUDEC.doc
S LSVA 1
1 Management Summary
Mit dieser Arbeit konnte der Nachweis erbracht werden, dass sich das Konzept der kartenlosen Deklaration in die Praxis umsetzten lässt und die im Pflichtenheft festgelegen Technologien für diese Anwendung geeignet sind.
Das iterative Entwicklungsvorgehen wurde für diese Aufgabenstellung (Prototypenentwicklung mit vielen Unbekannten) als sehr zweckmässig empfunden. Es minimiert das Risiko,
eine Fehlentwicklung (zu) spät zu erkennen. Nach Abschluss der Prototypenphase muss
aber unbedingt vermieden werden, die Weiterentwicklung bis zum Produkt auf Basis des
Prototypen durchzuführen. Für eine Produktentwicklung wird der iterative Design als ungenügend eingestuft.
Es wurde die Erfahrung gemacht, dass die Java Micro Edition Technologie noch nicht in allen Punkten genügend vollständig spezifiziert ist. Dies hat als Konsequenz, dass die Entwicklung mit dieser Technologie sehr viel Erfahrung erfordert und sehr defensiv entwickelt
werden muss. Für die Entwicklung eins kommerziellen Produkts ist zu berücksichtigen, dass
die Unterstützung verschiedener Geräte einen nicht zu unterschätzenden Testaufwand zur
Folge hat.
Es hat sich herausgestellt, dass die im Pflichtenheft definierten Ziele zu hoch gesteckt waren. So konnten nicht alle definierten Funktionen vollständig implementiert werden. Auf die
Realisierung der „soll“ Anforderungen musste vollständig verzichten werden und die Softwarearchitektur konnte nicht überarbeitet werden.
2/44
DA_Bericht_BLUDEC.doc
S LSVA 1
2 Inhaltsverzeichnis
1
Management Summary ..............................................................................................2
2
Inhaltsverzeichnis .......................................................................................................3
3
3.1
3.2
3.3
Übersicht.....................................................................................................................5
Sinn und Zweck......................................................................................................5
Abgrenzung............................................................................................................5
Leserkreis...............................................................................................................5
4
Werdegang des Dokuments .......................................................................................5
5
5.1
5.2
Einleitung und Übersicht.............................................................................................6
Beschreibung des Produkts ...................................................................................6
Herausforderung ....................................................................................................8
6
6.1
6.1.1
6.1.2
6.2
6.2.1
6.2.2
6.2.3
6.2.4
Technologien ..............................................................................................................9
Bluetooth ................................................................................................................9
Die Bluetooth-Funk Technologie .......................................................................9
Bluetooth Protkoll-Stack-Architektur................................................................12
Java 2 Micro Edition.............................................................................................14
Produktepalette der durch J2ME unterstützten Endgeräte..............................16
J2ME Konfigurationen und Profile ...................................................................17
Anwendung BLUDEC ......................................................................................19
Alternativen zu Java 2 ME...............................................................................19
7
7.1
7.1.1
7.1.2
7.1.3
7.2
7.2.1
7.2.2
7.3
7.3.1
7.3.2
7.4
7.4.1
7.4.2
7.4.3
7.4.4
Analyse .....................................................................................................................21
OBU Simulator .....................................................................................................21
OBU Simulator als MIDlet................................................................................21
OBU Simulator als Java Standard Edition Applikation ....................................22
Zusammenfassung Erkenntnisse OBU Simulator ...........................................22
FZHSW Simulation...............................................................................................23
Beschreibung der FZHSW Simulation.............................................................23
Erkenntnisse FZHSW Simulation ....................................................................23
BLUDEC Demonstrator........................................................................................23
Beschreibung Vorgehen ..................................................................................23
Erkenntnisse Entwicklung BLUDEC ................................................................24
Klassendiagramme aus den Iterationen A und B.................................................25
BLUDEC OBEX Client.....................................................................................25
OBEX Server ...................................................................................................26
WebService Client ...........................................................................................27
Skizze des Kommunikationsschnittstelle zur OBU ..........................................28
8
8.1
8.2
8.3
8.3.1
8.3.2
8.3.3
8.3.4
Design und Implementierung....................................................................................29
Grundsätze und Annahmen .................................................................................29
Vorgehen..............................................................................................................29
Softwarearchitektur ..............................................................................................30
Klassenmodell .................................................................................................30
Beschreibung der Klassen...............................................................................31
Package Diagram ............................................................................................33
Sequenzdiagramm eines Imageaustausch mit der OBU.................................34
9
Test...........................................................................................................................34
10
Erreichte Ziele...........................................................................................................35
11
Ausblick ....................................................................................................................35
12
Schlusswort ..............................................................................................................36
A
Anhang .....................................................................................................................37
3/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A.1
A.2
A.3
A.3.1
A.3.2
A.3.3
A.3.4
A.4
A.4.1
A.4.2
A.5
A.6
Literaturverzeichnis ..............................................................................................37
Abbildungsverzeichnis .........................................................................................38
Einrichten der Entwicklungsumgebung ................................................................39
Eclipse .............................................................................................................39
Java ME Wireless Toolkit: ...............................................................................39
JavaME Plugin.................................................................................................39
Tools................................................................................................................39
Einrichten des Entwicklungssystems ...................................................................40
FZHSW Simulation ..........................................................................................40
WebServer für OTA Provisioning ....................................................................40
Programmieren mit Java Micro Editon .................................................................40
Kurzanleitung BLUDEC Demonstrator.................................................................43
4/44
DA_Bericht_BLUDEC.doc
S LSVA 1
3 Übersicht
3.1 Sinn und Zweck
Dieser Bericht dokumentiert die Entwicklung einer mobilen Applikation für die „kartenlose
Deklaration“ der LSVA Erfassungsdaten. Die mobile Applikation für die „kartenlose Deklaration“ der LSVA Erfassungsdaten ist im Rahmen einer Diplomarbeit der Software Schule
Schweiz entstanden.
Das Thema der Diplomarbeit ist motiviert durch den Wunsch, Software für die Optimierung
betrieblicher Abläufe zu entwickeln. Ermöglicht wird die Optimierung durch ein geändertes
technologisches Umfeld auf der Basis der Bluetooth Kommunikations- Technologie und der
Verfügbarkeit von Internet Services auf Mobiltelefonen.
Dieser Bericht dokumentiert die verwendeten technologischen Grundlagen, das methodische
und praktische Vorgehen und die gewonnen Erkenntnisse und Erfahrungen beim Design und
der Realisierung der mobilen Applikation für die „kartenlose Deklaration“ der LSVA Erfassungsdaten.
3.2
Abgrenzung
Der erste Teil der Arbeit bestand im Verfassen des Pflichtenheftes der Diplomarbeit und des
zu entwickelnden Produktes. Ein grosser Teil der Analysearbeit wurde bereits in diesem Zusammenhang durchgeführt. Dieser Teil der Analyse ist im Pflichtenheft dokumentiert. Der
Inhalt des Pflichtenheftes wird in diesem Bericht nicht wiederholt.
3.3
Leserkreis
Dieses Dokument richtet sich an den Experten der Diplomarbeit, an den Auftrageber der Arbeit, den Betreuer der Arbeit sowie alle weiteren interessierten Personen. Vom Leser wird
die Kenntnis des Pflichtenheftes und ein technisches Verständnis erwartet. Auf ein Begriffund Abkürzungsverzeichnis wird deshalb bewusst verzichtet. Wo nötig werden Begriffe und
Abkürzung direkt im Text oder in einer Fussnote erklärt.
4 Werdegang des Dokuments
Ver.
1.0
Datum
Änderung
Autor
31.05.07
Erstellung Dokument
Paolo
Dünner
Freigabe
5/44
DA_Bericht_BLUDEC.doc
S LSVA 1
5 Einleitung und Übersicht
5.1 Beschreibung des Produkts
Mit Hilfe des BLUDEC1 und einem Mobilgerät mit Internetzugang und Bluetoothschnittstelle
kann der Fahrzeugführer die LSVA Erfassungsdaten aus dem Erfassungsgerät (OBU) im
Fahrzeug auslesen und elektronisch zur Fahrzeughaltersoftware am Standort des Fahrzeughalters übermitteln. Die übermittelten Erfassungsdaten werden in der Fahrzeughaltersoftware gespeichert.
Der BLUDEC Demonstrator dient der Systembetreiberin zu Test- und Demonstrationszwecken für diese neue Art der Übermittelung.
Mit Hilfe der Fahrzeughaltersoftware, einer PC Applikation, kann der Fahrzeughalter die gespeicherten Erfassungsdaten einsehen, weiterverarbeiten (z.B. für buchhalterische Zwecke)
oder per Internet an das Hintergrundsystem der LSVA senden, wo die Berechnung der Abgabe erfolgt.
Der Datenaustausch zwischen der OBU und dem Hintergrundsystem erfolgt in Form von
Aufträgen und Meldungen die in so genannte LSVA-Datenimages (Images) verpackten sind.
Die Systemübersicht auf der nächsten Seite stellt die Zusammenhänge bildlich dar.
IST – System
Für die Übertragung der Erfassungsdaten zwischen dem Erfassungsgerät (OBU) und der
Fahrzeughaltersoftware (FZHSW) wird eine 16kB Speicher-Chipkarte (Chipkarte) verwendet.
Die Chipkarte dient als Transportmedium für die LSVA Aufträge und Meldungen.
SOLL – System
Für die Übertragung der Erfassungsdaten zwischen dem Erfassungsgerät und der Fahrzeughaltersoftware (FZHSW) wird eine Netzwerkverbindung verwendet. Zu diesem Zweck ist
die OBU mit einer Bluetooth Schnittstelle und die FZHSW mit einem Imageserver als Datenschnittstelle ausgestattet. Die Aufträge an die OBU und die Meldungen von der OBU werden
über eine Netzwerkverbindung, die zwischen OBU und der FZHSW aufgebaut wird, ausgetauscht. Als Gateway dient ein Mobilgerät, das mit einer Bluetooth und einer Internet Schnittstelle z.B. auf Basis von GPRS oder WLAN und der Applikationssoftware, dem BLUDEC,
ausgerüstet ist.
1
„BLUDEC Demonstrator“ (BLUDEC = Bluetooth Declaration System)
6/44
DA_Bericht_BLUDEC.doc
S LSVA 1
SOLL - System
Internet
Internet
Mobilgerät
Bluetooth
CH-OBU-2
Fahrzeughalter-
Erfassungsgerät
software
Hintergrundsystem
Chipkarte
IST - System
Abbildung 1: Systemübersicht
7/44
DA_Bericht_BLUDEC.doc
S LSVA 1
5.2
Herausforderung
Das Kommunikationsumfeld des BLUDEC mit zwei grundsätzlich verschiedenen Kommunikationsschnittstellen mit jeweils grundlegend verschiedenen Protokollstacks mit ihren vielfältigen Variablen und Unsicherheiten stellt die grundlegende Herausforderung des Themas
dar.
Die Bluetooth Technologie und die Software Entwicklung für Mobilgeräte sind neu für den
Verfasser. Ein wesentlicher Teil der Aufgabe umfasst den Aufbau des benötigten technologischen Wissens, das Sammeln von methodischen Erfahrungen und deren Anwendung in die
Entwicklung des BLUDEC.
Das Umsystem der Entwicklung (das Erfassungsgerät und die FZHSW) befinden sich
momentan noch in der Realisierungsphase und steht noch nicht für Systemtests zur
Verfügung. Die Kommunikationsschnittstellen und die Software, die die Schnittstellen
bedient, können also nur simuliert werden. Im Rahmen der Diplomarbeit wurden die
benötigten Simulationen erstellt und in die entsprechenden Simulationsumgebungen
integriert.
Die für den BLUDEC Demonstrator benötigten Schnittstellendefinitionen sind noch nicht finalisiert. Die vorgelegte Version des BLUDEC wurde auf der Basis von „plausiblen“ Schnittstellenspezifikationen entwickelt. Aufgrund dieses Vorgehens konnte die zugrunde liegende
Technologie kennen gelernt und die eigentliche Applikation entwickelt werden.
Es ist möglich und wahrscheinlich, dass der BLUDEC Demonstrator an die finalisierten Spezifikationen der Schnittstellen angepasst werden muss.
8/44
DA_Bericht_BLUDEC.doc
S LSVA 1
6 Technologien
Dieses Kapitel stellt eine Einführung in die begrifflichen und in die technologischen Grundlagen des BLUDEC dar. Dabei werden die entsprechenden Themen in Umfang und Detail nur
so weit behandelt, wie es zum Verständnis dieser Arbeit nötig ist. Für eine tiefergreifende
Auseinandersetzung mit den Themen wird an dieser Stelle an die entsprechende Fachliteratur [A.1] verwiesen.
6.1
Bluetooth
6.1.1
Die Bluetooth-Funk Technologie
Bluetooth ist ein Industriestandard für die drahtlose Vernetzung von Geräten über kurze Distanz und bietet eine drahtlose Schnittstelle, über die sowohl mobile Kleingeräte wie Mobiltelefone und PDA2 als auch Computer und Peripheriegeräte miteinander kommunizieren können. Hauptzweck von Bluetooth ist das Ersetzen von Kabelverbindungen zwischen Geräten.
Die Technik dient vorrangig zur Realisierung von Ad-hoc-Pikonetzen, die eine sehr geringe
räumliche Ausdehnung von wenigen Metern haben.
Bluetooth sendet - wie viele andere Standards auch - im unregulierten lizenzfreien ISMBand3 im Frequenzbereich um 2,4 GHz, welcher mit gewissen nationalen Einschränkungen
weltweit zur Verfügung steht.
Grundlage für die Funktionsweise von Bluetooth ist das so genannte ”Frequency Hopping
Spread Spectrum” (Frequenzsprungverfahren). Dabei werden 79 Kanäle innerhalb des Frequenzbandes zur Kommunikation verwendet. Ein Zufallsgenerator bestimmt die Folge der
Frequenzen, auf die gewechselt wird. Damit unterschiedliche Geräte miteinander kommunizieren können, müssen sie die Reihenfolge und die Zeitspanne für die Nutzung einer Frequenz kennen. Die beteiligten Geräte müssen also den gleichen Startparameter erhalten,
damit sie synchron bleiben können. Durch diesen Wechsel wird die Verbindung robust gegenüber Störungen auf einzelnen Frequenzen und ein Abhören der Daten wird erschwert.
Die theoretischen Reichweiten und Sendeleistungen für Bluetooth-Geräte sind:
Klasse I:
100 mW,
100 m
Klasse II:
2.5 mW,
20 m
Klasse III:
1 mW,
10 m
Die Angaben der theoretischen Reichweiten sind mit Vorsicht zu geniessen, da sie den Einfluss der Antenne nicht berücksichtigen.
Mit einem modifizierten Bluetooth-USB-Adapter mit Richtfunkantenne soll es sogar möglich
sein, ein Bluetooth-Handy bei Sichtkontakt noch aus etwa 1,6 km Entfernung anzusprechen
(http://www.golem.de/0408/32854.html)
Bluetooth unterstützt seit der Version 1.0 zwei Sprach- und Datenübertragungsdienste:
2
Personal Digital Assistant
das ISM-Band (Industrial, Scientific, and Medical Band) ist ein Frequenzbereich für HochfrequenzSendegeräte in Industrie, Wissenschaft und Medizin, der nicht der staatlichen Regulierung unterliegt und
lizenzfrei genutzt werden darf
3
9/44
DA_Bericht_BLUDEC.doc
S LSVA 1
•
Eine asynchrone Datenübermittlung, ein verbindungsloser Dienst, welcher paketvermittelte Übertragung anbietet. Ist die Vollständigkeit der Übertragung von Wichtigkeit,
so wird diese Methode verwendet. Zusätzlich kann unterschieden werden in asymmetrische Verbindungen, mit Geschwindigkeiten von bis zu 723,2 kbit/s in eine, beziehungsweise 57,6 kbit/s in die andere Richtung und symmetrische Verbindungen,
mit Geschwindigkeiten von bis zu 433,9 kbit/s in beide Richtungen.
•
Eine synchrone Datenübermittlung, ein verbindungsorientierter Dienst, welcher symmetrische, leitungsvermittelte Dienstkanäle bietet. Für zeitkritische Anwendung, wie
zum Beispiel der Sprachübertragung, wird diese Art der Kommunikation verwendet.
Hier ist die Reihenfolge der Daten wichtiger als die Vollständigkeit - lieber ein abgehacktes Gespräch als ein Gespräch mit vertauschten Stimmenlauten. Die Nutzung
von maximal drei paralllen Kanälen mit einer Datenübertragungsgeschwindigkeit bis
zu 64 kbit/s ist möglich.
Im aktuellen Bluetooth-Standard Version 2 - auch mit EDR (Enhanced Data Rate) betitelt sind bis zu drei mal höhere Datenübertragungsgeschwindigkeiten – also bis zu 2.3 Mbit/s möglich. Die verschiedenen Versionen sind zueinander kompatibel.
Bluetooth stellt unter anderem auch Schutzmechanismen für die Datenübertragung zur Verfügung, die aus Verschlüsselungs- und Authentifizierungsverfahren bestehen.
Bluetooth-Geräte, die sich in gegenseitiger Reichweite befinden, können eine Kommunikationsverbindung aufbauen, ohne dass weitere Geräte oder eine zentrale Administration notwendig sind. Ein solches auch als Piconet bezeichnetes Netzwerk kann aus zwei bis maximal acht aktiv kommunizierenden Teilnehmern bestehen, wobei sich die Geräte die Bandbreite teilen. Ein ausgezeichnetes Gerät (meist das Gerät, welches die Verbindungsaufnahme initiiert), der sog. Master, regelt den Zugriff auf die Funkschnittstelle. Die weiteren Geräte
(Slaves) sind nicht direkt, sondern über den Master miteinander verbunden. Im Fall einer
Überlappung solcher Piconets ist es einem Gerät möglich, Teilnehmer mehrerer Netze zu
sein und man spricht von einem Scatternet. Abbildung 2 zeigt solche Szenarien. Bis zu zehn
Piconets können sich ohne gegenseitige Störungen überlagern (Schiller 2000).
Abbildung 2: Beispiele für Piconets und Scatternets
10/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Der Aufbau einer Bluetoothverbindung gliedert sich in drei Stufen:
1. Inquiry:
Dabei wird der bereitstehende Funkraum nach kommunikationsbereiten Geräten abgesucht.
Wird eines gefunden, so werden Informationen über die Zeittakte und die Zugehörigkeit zur
Geräteklasse ausgetauscht. Soll nun eine Verbindung aufgebaut werden, so wird vom Sender der Inquiry die Paging Prozedur angestossen.
2. Paging:
Darunter versteht man den eigentlichen Verbindungsaufbau. Es werden die Frequenzfolge,
der Zeittakt, sowie die Master- und Slaverolle festgelegt. Der Slave erhält eine Active Member Address, mittels dieser er Datenpakete an den Master senden kann.
3. Pairing:
Beim Pairing wird eine Zutrittsberechtigung zum Piconet in Form eines 128 bit langen
Schlüssels erstellt. Dieser wird ebenfalls, durch einen bei der Initialisierung einmalig erzeugten Schlüssel, verschlüsselt übersandt und auf beiden Geräten gespeichert. Für eine sichere
Datenübertragung wird auf Basis des Zutrittsberechtigungsschlüssels eine Verschlüsselung
initialisiert. Die Adressierung zwischen den Bluetoothgeräten erfolgt, ähnlich den Ethernet
Netzwerkkarten, über eine weltweit eindeutige 48 bit lange Gerätekennung.
Anwendung BLUDEC:
Diese drei Stuften des Verbindungsaufbaus verbergen sich hinter der BLUDEC Funktion
Bluetooth Verbindungsaufbau.
11/44
DA_Bericht_BLUDEC.doc
S LSVA 1
6.1.2
Bluetooth Protkoll-Stack-Architektur
6.1.2.1 Einführung
Dieser Abschnitte bietet einen kurzen Überblick über den Bluetooth-Protokoll-Stack. Der
Bluetooth-Protokoll-Stack kann allgemein in zwei Komponenten eingeteilt werden: den Bluetooth Host und den Bluetooth Controller (oder auch Bluetooth Funkmodul). Das Host Controller Interface (HCI) stellt eine standardisierte Schnittstelle zwischen Host und Controller bereit. Diese Klassifikation wird in der Abbildung 3 illustriert. Der Bluetooth Host wird auch als
Upper-Layer-Stack bezeichnet und ist üblicherweise als Software implementiert und in die
System-Software oder das Betriebssystem integriert. Bluetooth Profile setzen auf diese Protokolle auf. Beim Bluetooth Controller handelt es sich normalerweise um ein Hardwaremodul,
das einen festen Bestandteil des Systems bildet oder über USB, PCMCIA, UART, etc. mit
dem System verbunden wird. In einigen Geräten sind sowohl Controller als auch Host fest
integriert und das HCI wird nicht für eine Verbindung dieser benutzt. Ein Beispiel hierfür sind
die mittlerweile weit verbreiteten Headsets, die als Freisprecheinrichtung mittels Bluetooth an
ein Mobiltelefon gekoppelt werden. Einige der in Abbildung 3 dargestellten Bestandteile des
Bluetooth-Stacks werden im Folgenden näher erläutert.
Abbildung 3: Bluetooth Host und Controller Klassifikation
6.1.2.2 Bluetooth-Protokolle
In der Bluetooth Spezifikation sind mehrere Protokolle definiert, Abbildung 4 zeigt die gebräuchlichsten als Blockdiagramm des Bluetooth Protokoll-Stacks. Die schattierten Blöcke
repräsentieren die Protokolle, die von den Java APIs für Bluetooth Wireless Technology
(JABWT) adressiert werden. Der Protokoll-Stack baut sich aus Bluetooth-spezfischen Protokollen, wie z.B. dem Service Discovery Protokoll (SDP) und anderen, adaptierten Protokollen, wie z.B. dem Object Exchange Protokoll (OBEX) auf. Die einzelnen Schichten und Protokolle sollen im Folgenden kurz beschrieben werden.
12/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Abbildung 4: Bluetooth-Protokoll-Stack
Bluetooth radio ist die unterste in der Bluetooth-Spezifikation definierte Schicht und bestimmt
die Anforderungen des Bluetooth Sende- und Empfangsgerätes für den Betrieb auf dem 2,4GHz ISM Band bezüglich Modulationen und Sendeleistungen. Diese Schicht entspricht im
Wesentlichen der Bitübertragungsschicht des OSI-Modells4.
Die Schicht Baseband and Link Control ermöglicht die physikalische Funkverbindung zwischen Bluetooth-Einheiten. Sie ist zuständig für die Abwicklung der Funkkanäle und die zeitliche Koordinierung, setzt die Pakete für die Übertragung zusammen und synchronisiert sie.
Dabei werden zwei Arten von physikalischen Verbindungen unterstützt: Ein synchroner, verbindungsorientierter Anschluss (SCO, synchronous connection oriented) und ein asynchroner, verbindungsloser Anschluss (ACL, asynchronous connectionless).
Audio stellt keine Schicht des Protokoll-Stacks im eigentlichen Sinn dar, sondern wird bei der
Bluetooth-Kommunikation eigenständig behandelt. Reine Audiodaten werden typischerweise
über eine SCO-Verbindung direkt zu und von der Baseband-Schicht geleitet.
Das Link Manager Protocol (LMP) ist verantwortlich für den Verbindungsaufbau und die Konfiguration einer solchen Verbindung zwischen Bluetooth-Geräten und handhabt Sicherheitsaspekte wie Authentisierung und Verschlüsselung.
Das Logical Link Control and Adaptation Protocol (L2CAP) schirmt in der Stack-Architektur
weiter oben liegende Protokolle von den Details der unteren Protokolle ab und ermöglicht
das Multiplexen zwischen verschiedenen logischen Verbindungen, die durch höher angesiedelte Schichten initiiert wurden.
SDP stellt Applikationen ein Hilfsmittel bereit, um Bluetooth Services und deren Charakteristiken zu erkunden. Im Gegensatz zu einer üblichen LAN5-Verbindung, bei der zuerst eine
4
Das OSI-Modell (engl. Open Systems Interconnection Reference Model) beschreibt modellhaft eine Art der
Datenübertragung für die Kommunikation offener, informationsverarbeitender System.
5
Local Area Network
13/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Verbindung mit dem Netzwerk und dann das Auffinden von Geräten stattfindet, werden in
einer Bluetooth-Umgebung zuerst die Geräte und erst dann die Dienste gefunden. Zusätzlich
gestaltet sich das Angebot an Diensten dynamisch, wenn sich die Geräte in Bewegung befinden und sich die Umgebung dadurch verändert. SDP setzt auf L2CAP auf.
Serielle Ports sind eine der am weitesten verbreiteten Schnittstellen bei Computern und
Kommunikationsgeräten. Mit dem RFCOMM Protokoll können solche seriellen Verbindungen
über L2CAP emuliert werden. Mit RFCOMM sind mehrere gleichzeitige Verbindungen zu
einem Gerät und zu unterschiedlichen Geräten möglich.
Damit Bluetooth-Geräte in einem Netzwerk interagieren und Informationen austauschen
können, muss ein allgemeines Paketformat definiert werden, um die unterschiedlichen Netzwerkprotokolle zu kapseln. Das Bluetooth Network Encapsulation Protocol (BNEP) kapselt
Pakete diverser Netzwerkprotokolle und transportiert diese direkt über L2CAP. BNEP ist ein
optionales Protokoll, das nach der Bluetooth-Spezifikation Version 1.1 entwickelt wurde und
auf dieser Version basiert.
Die Telephony Control Protocol Spezification (TCS binary) definiert die Kontrollsignale für
den Aufbau, Abbau und Verlauf einer Verbindung bei Sprach- und Datenübertragungen zwischen Bluetooth-Geräten und verwendet als Basis L2CAP.
Adaptierte Protokolle, wie OBEX und das Internet Protocol (IP), basieren auf einem der bereits erwähnten Protokolle. So verwendet OBEX den RFCOMM oder TCP/UDP Service und
IP verwendet den BNEP Service.
Die Anzahl der Bluetooth-Protokolle unterliegt zurzeit einem ständigen Wachstum. Viele
neue Protokolle werden durch die Bluetooth SIG6 spezifiziert, wobei die meisten von ihnen
das L2CAP Protokoll als Basis verwenden.
6.1.2.3 Anwendung BLUDEC
Es wurde festgelegt, dass das neue LSVA Erfassungsgerät das über eine Bluetooth Schnittstelle verfügt mit dem OBEX Service und dem OBEX Protokoll Images sendet und empfängt.
Aus funktionaler Sicht könnte die OBU genau so gut den RFCOMM Service und das
RFCOMM Protokoll zum Senden und Empfangen von Images verwenden. Ein Wartungsfreundlicher objektorientierter Software Design kann dieser Situation gerecht werden, in dem
von konkreten Übertragungsservice zunächst abstrahiert und auf der Basis des abstrakten
Übertragungsservice der konkrete Image Übertragungsservice realisiert wird.
Mit diesem Ansatz kann die Entwicklung der Simulationsapplikation der Applikation und der
BLUDEC Applikation unabhängig vom endgültig verwendeten Übertragungskanal z.B. auf
der Basis von Sockets erfolgen. Für die Anpassung an den verwendeten Bluetooth Service
muss lediglich die entsprechende Realisierung der Image Übertragungssoftware ausgetauscht werden. Die Applikationsentwicklung von BLUDEC und der Simulation des Erfassungsgerätes kann so von der Entwicklung der Realisierung des Image Übertragungssoftware entkoppelt werden.
6.2
Java 2 Micro Edition
Java 2 Micro Edition (J2ME oder Java 2 ME) ist eine Entwicklungs- und Laufzeitumgebung,
die für die Ausführung von Java Applikation auf Endgeräten mit wenig Speicherplatz und
geringer Rechenleistung konzipiert wurde. Java Applikationen, die für Personal Computer
6
Bluetooth Special Interest Group
14/44
DA_Bericht_BLUDEC.doc
S LSVA 1
(PC) entwickelt wurden, können aufgrund ihrer Anforderungen an die Hardware (Speicherplatz, Rechenleistung, Tastatur, Bildschirm) nicht auch auf einem Mobiltelefon ausgeführt
werden.
Java ist eine objektorientierte Programmiersprache, die es dem Programmierer erlaubt, ein
Programm zu erstellen und zu kompilieren, um es später auf einer Vielzahl von verschiedenen Plattformen zu verwenden. Die erstellte Software ist daher unabhängig von Hardware
und Betriebssystem.
Die J2ME Plattform ermöglicht es, die Leistung und Vorteile der Java-Technologie im Rahmen von Mobiltelefonen zu nutzen. Ein weiteres Ziel der J2ME Plattform ist es, Geräten den
dynamischen Download von Applikationen z.B. über das Internet zu ermöglichen.
Die von der J2ME adressierten Gerätetypen weisen ein breites Spektrum bezüglich verfügbarem Speicher, Rechen- und damit auch Ausführungsgeschwindigkeit und den Möglichkeiten der Ein- und Ausgabe auf. Um einer solchen Vielfalt in möglichst vielen Fällen gezielt
gerecht zu werden, definiert die J2ME Architektur sog. Konfigurationen, Profile und optionale
Pakete, die eine modulare Anpassung der Architektur ermöglichen. Der grundsätzliche Aufbau der J2ME Architektur ist in Abbildung 6 illustriert, die einzelnen Schichten werden in den
folgenden Abschnitten betrachtet.
Abbildung 6:
5: Komponenten der J2ME Architektur
Jeder Java Programmierer kann, unter Beachtung einiger Details, J2ME Software erstellen.
Auch muss erwähnt werden, dass ein J2ME-Programm auf jedem mobilen Endgerät, das
diesen Standard unterstützt, funktioniert (theoretisch, in der Praxis können trotzdem verschiedenste Kompatibilitätsprobleme auftreten).
Die Vorteile der Programmiersprache Java:
Sicher:
Java war von Anfang an für die Verwendung in Netzwerkarchitekturen konzipiert und daher
wurde besonders auf die Sicherheit Wert gelegt. Gerade in Netzwerken lauert eine ständige
Gefahr von Attacken anderer Systeme.
Zuverlässig:
Programmierer müssen sich in Java nicht um Speicherplatzbelegungen und -bereinigungen
kümmern. Dies wird ihnen durch die Java Runtime Umgebung verlässlich abgenommen.
15/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Anders als zum Beispiel in C++ kann der Softwareentwickler nicht auf die Freigabe von Speicherbereichen vergessen.
Objektorientiert:
Als eine objektorientierte Sprache ermöglicht Java die leichte Wiederverwendbarkeit von
Programmteilen zu einem späteren Zeitpunkt. Diese Form der Programmierung erleichtert
die Abbildung der realen in die virtuelle Welt einer Software. Software kann dadurch auch für
Aussenstehende leichter verständlich gemacht werden; zum Beispiel, dass ein Konto aus
den Attributen Kontonummer und Kontobenutzername besteht. Die Zuverlässigkeit zusammen mit der Objektorientierung ermöglicht eine schnellere und einfachere Softwareentwicklung. Vor allem für Entwickler, die bereits Erfahrung mit anderen objektorientierten Programmiersprachen haben, ist ein Umstieg sehr schnell realisierbar.
Frei erhältlich:
Für die Verbreitung von Java war es wichtig, dass die grundlegende Spezifikation frei erhältlich ist, und somit eine Implementierung auf allen Plattformen ermöglicht wird.
Plattformunabhängig:
Java Applikationen sind auf allen Plattformen, die die durch die Applikation geforderte Laufzeitumgebung, Konfigurationen und Profile unterstützen, identisch ausführbar.
6.2.1
Produktepalette der durch J2ME unterstützten Endgeräte
1. Drahtlose Endgeräte:
Drahtlose Endgeräte kommunizieren durch eine Funkverbindung mit ihrer Umgebung.
2. Mobile Endgeräte:
Mobile Endgeräte können, müssen aber nicht drahtlose Endgeräte sein. Ein Personal Digital Assistant (PDA) ist zwar ein mobiles Endgerät, kommuniziert allerdings nicht unbedingt mit anderen Geräten über eine drahtlose Funkverbindung. Ausnahmen sind natürlich möglich. Mobile Endgeräte bieten die Möglichkeit sie überall hin mitzunehmen und zu
verwenden. Drahtlose Geräte sind jedoch oft an ihre Umgebung gebunden; zum Beispiel
eine Funkmaus ist an die Reichweite des Funkempfängers und damit an die Umgebung
des Computers gebunden - die Mitnahme einer Maus und Verwendung ausserhalb der
Reichweite des Empfängers macht diese nutzlos.
Beispiel für eine mobiles und drahtloses Endgeräte ist ein Mobiltelefon mit integriertem MP3
Player. Es kann sowohl über die Funkverbindung zum Telefonieren, als auch zum Abspielen
von Musik ausserhalb des Mobilfunknetzes verwendet werden.
Java 2 Micro Edition beschränkt sich jedoch nicht nur auf drahtlose und mobile Endgeräte
sondern unterstützt auch die Programmierung einer Vielzahl anderer Geräte. Nachfolgende,
nicht abschliessende Aufzählung soll dies verdeutlichen:
•
Fernsehgeräte
•
Navigationssystem
•
Auto – Entertainmentsysteme
•
Smart Cards
•
Pager
•
Personal Digital Assistants
•
Mobiltelefone
•
Bildtelefone
16/44
DA_Bericht_BLUDEC.doc
S LSVA 1
6.2.2
J2ME Konfigurationen und Profile
Innerhalb der Java 2 Micro Edition Spezifikation gibt es zwei architektonische Konzepte auf
Basis von:
1.
Konfigurationen:
Konfigurationen sollen die Portierbarkeit zwischen verschiedenen Geräten erleichtern.
Es werden zum Beispiel die unterstützten Hauptklassen, wie String, Stream, Thread,
etc. definiert.
2.
Profile:
Profile konzentrieren sich auf gerätespezifische Merkmale, wie zum Beispiel die Unterstützung von Infrarotschnittstellen oder Spiele-APIs.
Der Hauptunterschied zwischen Konfigurationen und Profilen ist, dass Profile im Gegensatz
zu Konfigurationen voneinander unabhängig sein können. Jede Konfiguration muss im Definitionsbereich ihrer Mutterkonfiguration stehen. Bisher sind die folgenden zwei Konfigurationen definiert:
•
CLDC (Connected Limited Device Configuration):
CLDC definiert die Anforderungen für Endgeräte mit geringen Speicher- und Rechenleistungen. Der Speicherbereich ist auf 160 kB bis 512 kB begrenzt.
•
CDC (Connected Device Configuration):
CDC richtet sich an Geräte mit einer höheren Speicher- und Rechenleistung.
Profile wiederum basieren auf den definierten Konfigurationen und spezifizieren welche APIs
für die Unterstützung der jeweilig benötigten Funktionalitäten implementiert werden müssen zum Beispiel muss ein Profil für die Programmierung von Spielen eine Möglichkeit zur Darstellung von Grafiken haben. Beispielprofile sind:
Mobile Information Device Profile (MIDP):
Eine ”Virtuell Java Machine” die dieses Profil implementiert bietet viele Funktionalitäten, die
für die Entwicklung von Mobiltelefonapplikationen wichtig sind. Beispiel hierfür ist die Möglichkeit, eine HTTP Verbindung zu öffnen oder die Darstellung von Eingabefeldern. Dieses
Profil basiert auf der CLDC Konfiguration.
PDA Profil (PDAP):
Das PDA Profil ist abgestimmt auf die besonderen Bedürfnisse von Personal Digital Assistants, wie zum Beispiel die Nutzung des relativ grossen Displays; basiert auf der CLDC
Konfiguration.
RMI Profile
Das PMI Profil ist ein auf der CDC Konfiguration basierendes Profil, das die Implementierung
von ”Remote Method Invocation” definiert.
In Mobiltelefonen ist prinzipiell das Mobile Information Device Profile implementiert. Die derzeit meist verwendete Spezifikation ist die Version 1.x des MIDP. Alle neueren Geräte unterstützen aber bereits die Version 2.0.
17/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Das MID Profil in der Version 2.0 [JSR118]. verfügt über folgende Standard API Packages:
•
java.lang:
Beinhaltet ca. 50% der Klassen im Vergleich zur Java der Standard Edition.
•
Java.lang.ref
Bietet Klassen für schwache Referenzen
•
java.io:
Deutlich, im Vergleich zur Java Standard Edition, abgespeckte Version des io packages.
Es fehlen zum Beispiel die Filehandling Klassen.
•
java.util:
Ebenfalls wurde auf die Implementierung von substanziellen Klassen, wie zum Beispiel
List verzichtet.
•
javax.microedition.io:
Zusatzklassen für den Zugriff auf Netzwerkfunktionalitäten.
•
javax.microedition.lcdui:
Zusatzklassen für die Benutzerschnittstellen.
•
javax.microediton.lcdui.game:
Zusatzklasse für die Entwicklung von Spielen
•
javax.microediton.media:
Zusatzklasse für Multimedia
•
javax.microediton.media.control:
Zusatzklasse für Playback und Lautstärke
•
javax.microedition.midlet:
Dieses Package beinhaltet die Klasse MIDlet, welche für die Ausführung und Zustandsbeschreibung eines Java 2 ME Programms und die Interaktion mit der Umgebung zuständig ist.
•
javax.microedition.pki:
Klassen für die Authentifizierung von Informationen.
•
javax.microedition.rms:
Im rms Package befindet sich die Bibliothek zur Speicherung von Daten. Jedes Java 2
ME Programm hat seinen eigenen Speicher und es kann auch nur auf diesen zugreifen.
Die Bluetooth API [JSR82] beinhaltet folgende Packages:
•
javax.bluetooth:
Beinhaltet Klassen und Interfaces für die Bluetooth Unterstützung.
•
javax.obex:
Optionales Packages von JSR82 zur Unterstützung des OBEX (Object Exchange Protocol) Protokolls
Die Filesystem API [JSR75] beinhaltet das folgende Package:
•
javax.microedition.io.file:
Beinhaltet Klassen und Interfaces für Unterstützung des Filesystemzugriffs.
Die WebService API [JSR172] beinhaltet die folgenden Packages:
18/44
DA_Bericht_BLUDEC.doc
S LSVA 1
•
java.rmi:
Package zur Unterstützung von RMI
•
javax.microedition.xml.rpc:
Package zur Unterstützung von JAX-RPC (einem Typ von WSDL)
•
javax.xml.namespace:
Package zur Unterstützung XML Namensauflösung.
•
javax.xml.parsers:
Beinhaltet Klassen zur Verarbeitung von XML Dokumenten.
•
javax.xml.rpc:
Package zur Unterstützung JAX-RPC
•
org.xml.sax:
Package stellt die Java ME SAX API als Subset von JSR 172 zur Verfügung.
•
org.xml.sax.helpers:
Packages mit Hilfsklassen
6.2.3
Anwendung BLUDEC
Der BLUDEC Demonstrator wurde auf Basis des MID Profil 2.0 entwickelt, wobei weitere
optionale Pakete (Profile, Schnittstellen) für die Unterstützung von WebService [JSR172],
des Filesystem Zugriffs [JSR75] und von Bluetooth [JSR82] verwendet wurden.
In diesem Zusammenhang ist der Umstand zu beachten, dass optionale Pakete wie z.B. der
JSR82 für die Bluetooth Unterstützung wiederum optionale Bestandteile haben. Die Unterstützung von OBEX ist ein solcher optionaler Bestandteil. Viele Gerätehersteller unterstützen
OBEX trotz der Implementierung von JSR82 bis heute noch nicht.
Die Verwendung der Bluetooth RFCOMM Protokolls statt des OBEX Protokolls für die Übertragung von Images ist in diesem Zusammenhang eine Alternative. Vgl. hierzu auch 6.1.2.3.
Durch den Entscheid, Java Software Technologie für die Realisierung von BLUDEC zu verwenden wird erreicht, dass BLUDEC auf allen Geräten ausführbar ist, die die J2ME Laufzeitumgebung und die entsprechenden Konfigurationen unterstützen.
Weiterhin kann aufgrund von diesem Entscheid BLUDEC von einer zentralen Stelle aus über
das Internet verteilt und auf der Zielplattform Mobiltelefon installiert werden.
6.2.4
Alternativen zu Java 2 ME
Wie schon in Kapitel 6.2 erwähnt, bietet Java den Vorteil, dass der einmal erstellte Programmcode auf einer Vielzahl anderer Systemumgebungen ausgeführt werden kann. Für die
Programmierung von Endgeräten mit den erwähnten speziellen Anforderungen gibt es natürlich auch die Möglichkeit, andere Programmiersprachen einzusetzen. Der erstellte Programmcode muss jedoch für eine Ausführung auf jedem System neu kompiliert werden. Dies
verhindert eine rasche Verbreitung von Software auf einer Vielzahl unterschiedlicher Geräte.
Ebenfalls bieten andere Programmiersprachen nicht immer die Vorteile von Java, wie Sicherheit, Zuverlässigkeit und Objektorientierung.
Ein sehr gut verständliches Bespiel für die genannten Vorteile sind für Mobiltelefone programmierte J2ME - Spiele: durch eine grosse Gemeinschaft an Softwareentwicklern besteht
bereits eine Vielzahl an wieder verwendbaren, objektorientierten Code, für die leichte und
schnelle Umsetzung von Ideen. Auch die Anzahl der Mobiltelefone, die eine J2ME - Runtime
19/44
DA_Bericht_BLUDEC.doc
S LSVA 1
mitliefern steigt stetig. Möchte nun ein engagierter Entwickler sein Spiel entgeltlich oder frei
verbreiten, so ist dies durch das Anbieten im Internet sehr leichtmöglich. Der Konsument
dieses Spieles kann wiederum auf die sichere und beschränkte Ausführumgebung der Runtime vertrauen und sicher sein, dass keine gefährlichen Informationen über sein Mobiltelefon
verbreitet werden.
Es verschwinden somit die Grenzen zwischen den einzelnen Herstellerfirmen wie Nokia,
Siemens, Sony Ericsson, etc. Würde der Entwickler stattdessen auf eine Implementierung in
C++ setzen, so hätte er darauf zu achten, dass der Code auch auf einer möglichst grossen
Anzahl von Endgeräten funktioniert. Weiters könnte er nur bedingt auf wieder verwendbaren
Programmcode zurückgreifen und müsste den Programmcode zusätzlich für jedes einzelne
Gerät neu kompilieren. Das heisst nicht nur für jede Firma, sondern auch für jeden einzelnen
Typ einer Firma, soweit die einzelnen Geräte nicht auf dem gleichen Betriebssystem basieren. Auch Java 2 Micro Edition kann nicht als die berühmte ”eierlegende Wollmilchsau” bezeichnet werden, da es gerade im Bereich der Performance oft an ihre Grenzen stösst und
es daher manchmal notwendig ist, Software in einer ”schnelleren” Programmiersprache zu
implementieren.
Innerhalb der Java-Programmiersprache gibt es auch für die erwähnten Endgeräte Alternativen zu J2ME. Es handelt sich dabei meist um spezielle umfangreichere Implementierungen,
als die der J2ME Spezifikation: [White and Hemphill, 2002]
•
Chai VM von Hewlett-Packard
•
VisualAge Micro Edition von IBM
•
Waba von Wabasoft
Ausserhalb der Javawelt gibt es noch folgende Alternativen:
•
WAP/WML:
beschränkt sich auf die Darstellung von Inhalten auf Display, ähnlich der Kombination
von HTTP und HTML. Für die Anzeige von dynamischen Inhalten wird WMLScript
verwendet, welches an die Programmiersprache Javascirpt angelehnt ist. Eine Speicherung von Daten ist jedoch nicht möglich.
•
C/C++
bietet vor allem Performanzvorteile gegenüber Java. Nachteil ist die kompliziertere
Programmierung, sowie Lauffähigkeit auf anderen Systemen.
•
.net Programmiersprachen
beschränkt sich auf die Betriebssysteme von Microsoft, zum Beispiel: Windows CE,
PocketPC oder PhoneEdition
20/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7 Analyse
Im folgenden Kapitel sind das Vorgehen und die Erkenntnisse aus dem 2. Teil der Analysephase dokumentiert. Der erste Teil der Analysephase hat im Zusammenhang mit der Erstellung des Pflichtenheftes stattgefunden. Die entsprechenden Analyseresultate sind im BLUDEC Pflichtenheft dokumentiert.
Das grundsätzliche Vorgehen kann in einem Satz zusammengefasst werden: Es wurden
anhand von Literatur und Beispielprogrammen die Thematik analysiert und die Erkenntnisse
sind anhand von kleinen Prototypen überprüft worden.
7.1 OBU Simulator
Da zum Zeitpunkt der Diplomarbeit noch keine CH-OBU-2 für Tests zur Verfügung stand,
musste eine Simulation für die OBU entwickelt werden, welche folgende Anforderungen erfüllt:
Bereitstellen eines OBEX FTP Servers zum Senden und Empfangen eines Images.
Bereitstellen eines Loggingmechanismus zur Analyse des Verbindungsaufbaus und -abbaus,
sowie des Imageaustausches.
7.1.1
OBU Simulator als MIDlet
Als erster Ansatz wurde ein OBU Simulator als MIDlet realisiert. Für eine Realisierung als
MIDlet haben folgende Argumente gesprochen:
Maximaler Erfahrungsgewinn in der J2ME Technologie.
Kleinster Aufwand, da dieselben APIs wie für die BLUDEC Entwicklung verwendet werden
können.
JSR 82 wird durch die Java Standard Edition nicht unterstützt. Der Aufwand für die Suche
einer Implementierung der JSR 82 für die Java Standard Edition sollte vermieden werden.
Im Iterationsschritt A konnte mit Hilfe des OBU MIDlet Simulators eine Bluetoothverbindung
zum BLUDEC Demonstrator aufgebaut und Images erfolgreich zwischen dem OBU MIDlet
Simulator und BLUDEC ausgetauscht werden.
Es stellten sich jedoch schon sehr bald wichtige Erkenntnisse heraus:
Die Bluetoothverbindung konnte nur zwischen zwei emulierten Geräten hergestellt werden.
Es wurde keine (mit vertretbarem Aufwand) Möglichkeit gefunden, mittels eines emulierten
Geräts auf den Bluetooth-Stack des Betriebsystems zuzugreifen. Um das Verhalten einer
„physischen“ Bluetoothverbindung analysierten zu können mussten also zwei „reale“ Mobilgeräte verwendet werden.
Das zweite Mobilgerät - der PDA HP IPAQ – musst vorgängig für die Ausführung von MIDlets vorbereitet werden. Dazu wurden die Laufzeitumgebung J9 und die Implementation der
JSR 75 von IBM und sowie die JSR 82 Implementation von Avetana eruiert und installiert.
Doch auch nach intensiven Internetrecherchen musste der Versuch abgebrochen werden
den PDA zur Ausführung eines MIDlet zu bewegen.
21/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Deswegen wurde als Workaround, wie im nächsten Kapitel beschrieben, die OBU Simulation
als Java PC Applikation mit einem Bluetooth Protokollstack als Betriebssystemerweiterung
realisiert.
7.1.2
OBU Simulator als Java Standard Edition Applikation
Da bereits für den PDA eine JSR 82 Implementierung gesucht werden musste und die gefundene Implementierung von Avetana auch mit der Java Standard Edition kompatibel ist,
war es nahe liegend, den OBU Simulator auch als Java Standard Edition Applikation zu realisieren.
Mit Hilfe des Java SE OBU Simulators war es im Iterationsschritt C möglich, einerseits das
Verhalten einer „physischen“ Bluetoothverbindung zu analysierten, sowie das Verhalten von
BLUDEC auf einem realen Mobilgerät - einem Sony Ericsson K800i – zu untersuchen.
7.1.3
Zusammenfassung Erkenntnisse OBU Simulator
Die wesentlichen Erkenntnisse auf Stufe OBU Simulationsentwicklung lassen sich wie folgt
zusammenfassen:
Um ein effizientes Entwickeln zu ermöglichen, wird sowohl die OBU MIDlet Simulation als
auch der Java SE OBU Simulator benötigt. Beide Java Applikationen müssen „gepflegt“ werden.
Die Tatsache, dass aus den emulierten Gräten nicht auf den Bluetooth-Stack des Betriebssystems zugegriffen werden kann, bringt auch mit dem Java PC (SE) OBU Simulator eine
wichtige Einschränkung mit sich: Für die Kommunikation mit BLUDEC muss der Java PC
OBU Simulator auf einem realem Gerät ausgeführt werden. Dadurch werden die Möglichkeiten fürs Debugging erheblich eingeschränkt und die benötigte Zeit fürs Deploying des BLUDEC auf ein Handy wird massiv erhöht.
Weiterhin konnten folgende Erkenntnisse gewonnen werden:
a) Die Bluetoothverbindung verhält sich grundsätzlich sehr stabil.
b) Auch die Übertragung und Verarbeitung von grossen Images (128kByte) läuft sehr zügig
(ca. 1s) ab.
c) Die Geräte- und Dienstsuche beansprucht mit ca. 15s relativ viel Zeit. Unter anderem
deswegen wurde der Aufbau einer Bluetooth Verbindung als eigene Funktion des BLUDEC realisiert.
d) Das Verhalten eines MIDlet kann zwischen emulierten und realen Geräten sehr unterschiedlich sein. Dies kann am besten an Hand von unterschiedlichem Verhalten von
Elementen der Benutzeroberfläche, z.B. einem Alarm Fenster beobachtet werden. Es ist
nicht immer nachvollziehbar wieso etwas gar nicht, oder anders als erwartet läuft.
Um die Auswirkungen von Erkenntnis d) zu minimieren, wurde die Applikationssoftware so
implementiert, dass die verwendeten Speicherressourcen soweit wie möglich durch die Applikation vorgenommen werden. Dieser Ansatz widerspricht der Philosophie der objektorientierten Programmierung für PC Applikationen, kommt aber immer dort zu Einsatz, wo die
Ressourcen knapp sind, wie z.B. für embedded Systeme. Man erreicht mit diesem Ansatz
22/44
DA_Bericht_BLUDEC.doc
S LSVA 1
einerseits die bestmögliche Unabhängigkeit von der Ressourcenverwaltung der JVM, die je
nach Implementierung ein sehr unterschiedliches Verhalten haben kann. Andererseits wird
das Exceptionhandling der Applikation stark vereinfacht, wenn bereits beim Programmstart
alle benötigten Ressourcen alloziert werden können. Ressourcenengpässe während der
Laufzeit können so weitgehendst ausgeschlossen werden.
Aus Erkenntnis d) folgt auch, dass eine Applikation immer auch auf der realen Ziel-Hardware
getestet werden muss.
7.2
FZHSW Simulation
7.2.1
Beschreibung der FZHSW Simulation
Es wurde entschieden, die FZHSW Internet-Kommunikationsschnittstelle mit der bestehenden FZHSW der CH-OBU-1 zu testen und analysieren. Dies bedingt, dass mit BLUDEC CHOBU-1 Images zwischen OBU Simulation und FZHSW Simulation ausgetauscht werden.
Der WebService der FZHSW wurde im Iterationsschritt 0 auf einem IIS Webserver im Intranet installiert und konfiguriert.
Im Iterationsschritt B konnten mit dieser Installation die ersten Images zwischen BLUDEC
(auf emuliertem Gerät) und der FZHSW erfolgreich ausgetauscht werden. In einem zweiten
Schritt konnte BLUDEC erfolgreich um die Funktionalität der Auswertung der Service Response mittels eines SAX Parsers erweitert werden.
Um das Verhalten des WebServices auf einem realen Gerät mit GPRS Internetanbindung zu
testen wurde im Iterationsschritt C der WebService auf einem mittels Domainname aus dem
Internet her erreichbaren IIS WebServer installiert und konfiguriert. Interessanter Weise
konnte jedoch der WebService nur vom emulierten Gerät aus erreicht werden, auf dem realen Gerät ist der http Fehlercode 504 – Gateway Timeout – aufgetreten. Ein Umkonfigurieren
des Server-Ports auf die Portnummer 82 konnte das Problem beheben.
7.2.2
Erkenntnisse FZHSW Simulation
Dieser aufgetretene Fehler und seine Behebung zeigen, dass die GPRS Internetprovider
u.U. restriktiver im Routing der Ports sind als ADSL Internetprovider.
7.3
BLUDEC Demonstrator
7.3.1
Beschreibung Vorgehen
Gemäss dem im Pflichtenheft definierten Entwicklungsvorgehen wurden in der Analysephase
die Iterationsschritte A und B durchgeführt und somit für jede Kommunikationsschnittstelle
ein eigener Prototyp entwickelt. Die Tests mit den Kommunikationspartnern sind ohne grössere Probleme verlaufen. Die aufgetauchten Probleme konnten relativ rasch eingegrenzt und
behoben werden. Die Hauptschwierigkeiten bei der Entwicklung sind auf die eingeschränkten Debug-Möglichkeiten und das unterschiedliche Verhalten zwischen realen und emulierten Geräten zurückzuführen. Die Anwendung und die Arbeit mit den Kommunikationsschnittsstellen waren dagegen relativ problemlos.
23/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7.3.2
Erkenntnisse Entwicklung BLUDEC
Aus dem Iterationsschritt C konnte die Erkenntnis gewonnen werden, dass
•
•
die Anwendung der Filesystem API JSR 75 ihre Tücken hat:
o
Die Verfügbarkeit der JSR 75 ist nur in „besseren“ Handys gegeben.
o
Die Struktur des Filesystems auf den verschiedenen Handys ist nicht einheitlich
und dieser Umstand muss bei der Entwicklung berücksichtigt werden.
o
Je nach Hersteller darf nur auf bestimmte Verzeichnisse zugegriffen werden.
o
Das Sicherheitskonzept von J2ME erlaubt keine Filesystemzugiffe von unsignierten MIDlets ohne Benutzerbestätigung. Das Signieren eines MIDLets ist mit Kosten von ca. 500$ pro Jahr relativ kostspielig. Weiterhin haben nicht alle Handys
dieselben Zertifikate installiert. Es lassen sich keine eigenen Zertifikate installieren.
Auf Grund der oben genannten Probleme bei der Anwendung des Filesystems des Handys liegt es nahe, auf das Filesystem als persistenten Speicher nach Möglichkeit zu verzichten.
Solange nur das MIDlet selbst die Daten verwalten muss, bietet sich die Verwendung des
durch die J2ME Technologie zur Verfügung gestellten Record-Management-System
(RMS) zur persistenten Speicherung und Verwaltung von Daten an.
Aus diesen gewonnen Erkenntnissen leitet sich folgende Anforderung ab:
•
BLUDEC muss im Deklarationsmodus ohne Filesystemzugriff auskommen.
24/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7.4 Klassendiagramme aus den Iterationen A und B
7.4.1
BLUDEC OBEX Client
Abbildung 7: Klassendiagramm BLUDEC OBEX Client
25/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7.4.2
OBEX Server
Abbildung 8: Klassendiagramm OBEX Server
26/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7.4.3
WebService Client
Abbildung 9: Klassendiagramm BLUEC WebService
27/44
DA_Bericht_BLUDEC.doc
S LSVA 1
7.4.4
Skizze des Kommunikationsschnittstelle zur OBU
Diese Skizze ist eine Folge der Auseinandersetzung mit den Unzulänglichkeiten mit der
Bluetoothschnittstelle. Zusammen mit meinem Betreuer wurde die Schnittstelle genauer betrachtet und es wurden Alternativen zum OBEX Profil, sowie Möglichkeiten zur Abstraktion
der Schnittstelle skizziert. Siehe auch Kapitel 6.1.2.3.
Abbildung 10: Skizze Protokollstack
28/44
DA_Bericht_BLUDEC.doc
S LSVA 1
8 Design und Implementierung
8.1 Grundsätze und Annahmen
In diesem Kapitel werden die Designgrundsätze und –annahmen, sowie Desingresultate
aufgezeigt.
Der BLUDEC Demonstrator stellt ein Proof of Concept bzw. ein Rapid Prototype dar, d.h. es
soll das Konzept von BLUDEC mit Hilfe des BLUDEC Demonstrators überprüft werden können.
Der Rahmen für die Bedienprozesse ist durch das Gesetz und die Verordnungen vorgegeben. Die konkreten Bedienprozesse werden in Abstimmung mit dem technisch Möglichkeiten
durch den Betrieb LSVA definiert. Es ist nicht die Aufgabe der Auftraggeberin der Diplomarbeit (Abteilung LSVA) kommerzielle Software z.B. für die „kartenlose“ Deklaration zu entwickeln und zu vertreiben. BLUDEC ist im Sinn eines kundenfreundlichen Service als Basis für
die Förderung entsprechender Entwicklungen kommerzieller Applikationen zu verstehen.
Gegenüber einem kommerziellen Lösung können und müssen folgende Vereinfachungen
getroffen werden:
a) Der BLUDEC Demonstrator wird für eine Zielhardware (Sony Ericsson K800i) optimiert
und nur auf dieser getestet. So wird zum Beispiel nur die Filesystemstruktur des Zielsystems berücksichtigt.
b) Während der Laufzeit vom Demonstrator werden keine weiteren Applikationen auf dem
Gerät ausgeführt (auch der Demonstrator selbst wird nur einmal gestartet!). Die Ressourcen stehen dem Demonstrator für die Dauer der Programmausführung grundsätzlich
exklusiv zur Verfügung. Das MIDlet muss nicht Reentrance fähig sein.
c) Die Überprüfung der Datenintegrität durch die verwendeten Übertragungsprotokolle und
den WebService der FZHSW ist ausreichend und muss nicht durch die Anwendung sichergestellt werden. (Im Fehlerfall können alle Daten jederzeit wieder beschafft werden!)
d) Der GPRS- resp. UMTS-Empfang ist für die Dauer der Übertragung gewährleistet.
e) Die Bluetoothverbindung zur OBU ist für die Dauer der Übertragung gewährleistet.
f)
Der Wiederaufbau einer Bluetoothverbindung ist keine Funktion des Demonstrators.
8.2
Vorgehen
Der Prototyp wurde iterativ entwickelt. So war es möglich, die neue Technologie Stück für
Stück kennen zu lernen und die damit verbundenen Probleme zu lösen. Mit den Entwicklungserfahrungen und an Hand der Software der verschiedenen Iterationen ist die Spezifikation der Qualitätskriterien z.B. im Bereich Software Design für eine kommerzielle Realisierung der BLUDEC Funktionalität möglich.
Aufgrund nur geringfügig vorhandener technologischer Vorkenntnisse, wegen des gewählten
neuen iterativen Entwicklungsvorgehens und wegen fehlender Entwicklungserfahrung im
gewählten Themengebiet ist der Software Design nicht vor, sondern während der Realisierung entstanden. Der hier sehr knapp wiedergegebene Design hat den Anspruch, den Prototypen so zu erläutern, dass ein Abgleich mit dem Pflichtenheft möglich ist.
29/44
DA_Bericht_BLUDEC.doc
S LSVA 1
8.3 Softwarearchitektur
8.3.1
Klassenmodell
Aus den Anforderungen aus dem Pflichtenheft wurde das unten abgebildete Klassenmodell
entworfen. Dem Klassenmodell liegt die Idee des MVC Pattern zugrunde.
Auf Grund der in Kapitel 6.1.2.3 beschriebenen Überlegungen, sollten die Schnittstellen
Klassen von abstrakten Klassen abgeleitet werden.
Abbildung 11: Klassenmodell
Userinterface
Ist verantwortlich für die Benutzerein- und ausgaben.
Stellt das VIEW dar.
Demonstrator
Ist verantwortlich für die zentrale Programmlogik.
Stellt das CONTROL dar.
DatenModell
Ist verantwortlich für die Fahrzeug- und Konfigurationsdaten.
Stellt das MODEL dar.
OBEXHandler
Ist verantwortlich für die Schnittstelle zur OBU.
SOAPHandler
Ist verantwortlich für die Schnittstelle zur FZHSW.
Logger
Ist verantwortlich für die Protokollierung des Imageaustausch
30/44
DA_Bericht_BLUDEC.doc
S LSVA 1
Das Modell konnte – mit zusätzlichen Helper Klasen - wie abgebildet umgesetzt werden. Auf
die Abstrakten Schnittstellenklassen musste jedoch aus zeitlichen Gründen verzichtet werden. Eine nachträgliche Implementation dieser abstrakten Klassen stellt kein Problem dar
und ist mit geringem Aufwand machbar.
Durch den gewählten Ansatz Rückmeldungen über Methodenaufrufe der Demonstrator Klasse zu realisieren, ist aus meiner Sicht eine zu starke Kopplung der Klassen entstanden. In
diesem Bereich sehe ich noch Verbesserungspotential.
8.3.2
Beschreibung der Klassen
Mit Hilfe so genannter CRC Cards7 wurden die Aufgaben und das Zusammenspiel der umgesetzten Klassen dokumentiert.
Eine CRC Card beschreibt folgende Aspekte einer Klasse:
•
Eindeutiger Klassenname
•
Liste aller Tätigkeiten/Aktionen für die diese Klasse verantwortlich ist
•
Liste aller der Klassen mit denen eine Zusammenarbeit stattfindet bzw. die diese Klasse
benötigt um die Aufgaben für die sie verantwortlich ist, erfüllen zu können
Die Karten sind nach folgendem Muster aufgebaut:
Klassenname
•
•
•
verantwortliche Tätigkeiten
Als Schnittstelle dienen
Namen der Klasse mit denen diese zusammenarbeitet
BludecDemonstrator
• BludecUI
• BludecOBEXHandler
• WebServiceGetThread
• WebServicePutThread
• DateisystemThread
• StoreManager
• Logger
BludecUI
•
•
Benutzerbefehle entgegen nehmen
Benutzermeldungen ausgeben
•
•
BludecDemonstartor
LoggerUI
BludecOBEXHandler
•
•
Auftragsimage an OBU senden
Meldungsimage von OBU empfangen
•
•
BludecDemonstartor
ClientAuthentifizierung
ErgebnisAuswertung
•
Wertet die SAOP Meldungen aus
•
•
•
•
BludecDemonstrator
SOAPHandler
WebServiceGetThread
WebServicePutThread
7
steht für: Class – Klasse, Responsibility – Verantwortung, Collaboration - Zusammenarbeit
31/44
DA_Bericht_BLUDEC.doc
S LSVA 1
SOAPHandler
•
•
Parst die SOAP Meldungen
BludecDemonstrator
WebServiceGetThread
•
Auftragsimage von FZHSW beziehen
•
Meldungsimage an FZHSW senden
•
BludecDemonstrator
WebServicePutThread
•
BludecDemonstrator
Configuration
•
•
Konfigurationsdatensatz definieren
Konfigurationsdatensatz konvertieren
•
•
Fahrzeugdatensatz definieren
Fahrzeugdatensatz konvertieren
•
StoreManager
•
StoreManager
Vehicle
DateisystemThread
•
•
•
•
•
Meldungsimage speichern
Meldungsimage lesen
Auftragsimage speichern
Auftragsimage lesen
BludecDemonstrator
StoreManager
•
•
•
•
•
•
•
•
•
Datenbank verwalten
Bludec Konfiguration speichern
Bludec Konfiguration lesen
Fahrzeug Konfiguration speichern
Fahrzeug Konfiguration lesen
Meldungsimage speichern
Meldungsimage lesen
Auftragsimage speichern
Auftragsimage lesen
•
•
•
BludecDemonstrator
Configuration
Vehicle
•
BludecDemonstrator
•
•
Logger
BludecUI
Logger
•
•
Erfolgreicher Imageaustausch protokollieren
Fehlerhaften Imageaustausch protokollieren
LoggerUI
•
Protokoll anzeigen
32/44
DA_Bericht_BLUDEC.doc
S LSVA 1
8.3.3
Package Diagram
Die folgende Abbildung zeigt die Gruppierung der Klassen in Packages. Das grau schraffierte Package ist eine Fremdkomponente, welche einen Logging-Mechanismus zur Verfügung
stellt.
Bemerkung: Aus Gründen der Übersichtlichkeit stellt dieses Diagramm eine Vereinfachung
dar.
Abbildung 12: Package Diagramm
33/44
DA_Bericht_BLUDEC.doc
S LSVA 1
8.3.4
Sequenzdiagramm eines Imageaustausch mit der OBU
Abbildung 13: Sequenzdiagramm
9 Test
Dank dem gewählten Entwicklungsvorgehen wurde bereits sehr früh mit Modultests begonnen. Jede Iteration und auch alle Zwischenschritte wurden getestet. Nach Änderungen wurden Regressionstests durchgeführt. Weniger intensiv wurde die Kommunikation zur OBU
getestet, weil hier noch keine gültigen Schnittstellenspezifikationen und auch keine OBU
verfügbar sind. Der Endtest wurde als End to End Test gegenüber dem Pflichtenheft durchgeführt.
34/44
DA_Bericht_BLUDEC.doc
S LSVA 1
10 Erreichte Ziele
Das Ziel vom BLUDEC Demonstrator, das Konzept der kartenlosen Dekaration zur überprüfen und zu demonstrieren, konnte trotz der während der Entwicklung aufgetauchten Probleme erreicht werden. Das zentrale und kritische Thema von BLUDEC sind die Kommunikationsschnittstellen, welches während der Entwicklung entsprechend priorisiert wurde.
Mit dieser Arbeit konnte der Nachweis erbracht werden, dass sich das Konzept der kartenlosen Deklaration in die Praxis umsetzten lässt und die im Pflichtenheft festgelegen Technologien für diese Anwendung geeignet sind.
Es musste aber auch festgestellt werden, dass die im Pflichtenheft definierten Ziele zu hoch
gesteckt waren. So konnten nicht alle definierten Funktionen vollständig implementiert werden. Auf die Realisierung der „soll“ Anforderungen musste vollständig verzichten werden und
die Softwarearchitektur konnte nicht überarbeitet werden.
Rückblickend gibt es mehrere Gründe dass die Ziele nicht vollumfänglich realisiert werden
konnten:
•
Es wurde das erste Mal selbstständig eine Applikation entwickelt. Aufgrund der fehlenden Erfahrung ist eine Beurteilung über den Umfang des Machbaren im vorgegebenen Rahmen schwierig.
•
Es hat spezifisches Know-how im Beriech Java MIDlet Entwicklung und Entwicklung
von Kommunikationsapplikationen gefehlt. Deswegen sind strategischen Entscheidungen und Design Entscheidungen nicht oder unter ungünstigen Bedingungen gefällt worden.
•
Es ist eine wertvolle Erfahrung, dass standardisierte Schnittstellen und Programmierumgebungen nicht vollständig standardisiert sind und teilweise viel Raum für Interpretationen und damit Überraschungen bieten.
11 Ausblick
Für die Weiterentwicklung des Produktes können folgende Empfehlungen gemacht werden:
a) Der Design sollte überarbeitet werden. Das Verbesserungspotential wird in der Entkopplung der Klassen gesehen. Insbesondere sollte das Konzept der Rückmeldungen verbessert werden.
b) Die „relevanten“ Ressourcen müssen möglichst während dem Start des Demonstrators
alloziert werden. Unter einer „relevanten“ Ressource wird eine Ressource verstanden,
die entweder sehr speicherintensiv ist weil sie „gross“ ist oder weil sie sehr oft alloziert
wird. Diese Empfehlung hat zu Ziel, einerseits den „Eigenheiten“ der verschiedenen
Laufzeitumgebungen entgegenzuwirken und andererseits das Exceptionhandling zu vereinfachen.
c) Um die Portabilität zu gewährleisten sollten persistente Daten nicht (direkt) im Filesystem
gespeichert werden. Eine Ausnahme bildet der Testmodus. Im Testmodus müssen die
Images auch über das Filesystem ausgetauscht werden können.
d) Optimierungen sind erst im Bedarfsfall erforderlich.
35/44
DA_Bericht_BLUDEC.doc
S LSVA 1
e) Die Kommunikationsschnittstellen müssen für eine gute Test- und Wartbarkeit gekapselt
werden. Siehe dazu auch Kapitel 6.1.2.3 und 7.4.4.
f)
Aufgrund der verschiedenen Geräteverhalten und der beschränkten DebuggingMöglichkeiten sollte der Test- und Entwicklungsaufwand nicht unterschätzt werden.
12 Schlusswort
Die im Rahmen dieser Arbeit gewonnen Erfahrungen und Erkenntnissen sind für mich und
die LSVA von grosser Bedeutung. Durch das gewonnene Wissen kann ich aktiv dazu beitragen, dass die LSVA praxisgerechte und kundenorientierte Lösungen anbieten und betreuen
kann.
Die Motivation den Herausforderungen zu begegnen, hat während der gesamten Arbeit nie
nachgelassen. Die aufgetauchten Probleme haben mir immer wieder von neuem den Ansporn gegeben um nach Lösungen zu suchen. Die grösste Schwierigkeit hat in der Planung
gelegen. Einerseits fehlten mir die Erfahrung und das Hintergrundwissen in den verwendeten
Technologien und andererseits war meine Berufsalltag von einer grossen Arbeitsauslastung
geprägt.
Als sehr konstruktiv habe ich die Zusammenarbeit mit dem Experten und dem Betreuer empfunden. Für die geleistete Unterstützung die gute Zusammenarbeit möchte ich mir herzlich
bei den Herren Scheidegger und Hennecke bedanken!
Meiner Partnerin Jacqueline gebührt ein grosser Dank für ihre Geduld und ihr aufgebrachte
Verständnis. Merci!
36/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A Anhang
A.1 Literaturverzeichnis
Breymann u.
Mosemann
2006
Breymann, Ulrich; Mosemann Heiko: JAVA ME
Hanser, 2006
Burbiel 2006
Burbiel, Herbert: Java goes Handy
Franzis, 2006
IBM 2007
IBM (Hrsg.):IBM DeveloperWorks, Techical
Libaray
www.ibm.com/developerworks/vie
ws/java/library.jsp, 2007
JCP
Java Community Process
www.jpc.org
JSR75
JCP (Hrsg.): PDA Optional Packages for the
J2ME Platform
http://www.jcp.org/en/jsr/detail?id=
75, 2004
JSR82
JCP (Hrsg.):Java APIs for Bluetooth Wireless
Technology 1.1
http://www.jcp.org/en/jsr/detail?id=
82, 2006
JSR118
JCP (Hrsg.):Mobile Information Device Profile
2.0
http://www.jcp.org/en/jsr/detail?id=
118, 2006
JSR139
JCP (Hrsg.):Connected Limited Device Configuration 1.1
http://www.jcp.org/en/jsr/detail?id=
139, 2003
JSR172
JCP (Hrsg.):J2ME Web Service 1.0
http://www.jcp.org/en/jsr/detail?id=
172, 2004
Nokia 2007
Nokia (Hrsg.): Forum Nokia
http://forum.nokia.com, 2007
Pfeiffer 2007
Pfeiffer, Michael: Java Micro Edition, 1.Auflage
Galileo, 2007
Roth 2005
Roth, Jörg: Mobile Computing, 2. Auflage
dpunkt, 2005
Sauter 2006
Sauter, Martin: Grundkurs Mobile Kommunikationssysteme, 2. Auflage
Vieweg, 2006
Schiller 2000
Schiller, Jochen: Mobilkommunikation . Techniken für das allgegenwärtige Internet
Addison-Wesley, 2000
Schmatz 2007
Schmatz, Klaus-Dieter: JAVA Micro Edition, 2.
Auflage
dpunkt, 2007
SIG
Bluetooth Special Interest Group (SIG)
www.bluetooth.org
SonyEricsson
2007
SonyEricsson (Hrsg.): Sony Ericsson Developer World
http://developer.sonyericsson.com,
2007
Sun 2007
SUN (Hrsg.): Sun Developer Network (SDN)
http://developers.sun.com 2007
Ullenboom
2006
Ullenboom, Christian: Java ist auch eine Insel,
5. Auflage
Galileo, 2006
White a.
Hemphill 2002
White, James; Hemphill, David: Java 2 Micro
Edition
Manning Publications, 2002
Wikipedia
2007
WIKIPEDIA (Hrsg.): Die freie Enzyklopädie
www.wikipedia.ch, 2007
37/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A.2 Abbildungsverzeichnis
Abbildung 1: Systemübersicht................................................................................................................. 7
Abbildung 2: Beispiele für Piconets und Scatternets ............................................................................ 10
Abbildung 3: Bluetooth Host und Controller Klassifikation.................................................................... 12
Abbildung 4: Bluetooth-Protokoll-Stack................................................................................................. 13
Abbildung 6: Komponenten der J2ME Architektur ................................................................................ 15
Abbildung 7: Klassendiagramm BLUDEC OBEX Client ....................................................................... 25
Abbildung 8: Klassendiagramm OBEX Server...................................................................................... 26
Abbildung 9: Klassendiagramm BLUEC WebService ........................................................................... 27
Abbildung 10: Skizze Protokollstack ..................................................................................................... 28
Abbildung 11: Klassenmodell ................................................................................................................ 30
Abbildung 12: Package Diagramm........................................................................................................ 33
Abbildung 13: Sequenzdiagramm ......................................................................................................... 34
Abbildung 14: Programm "Hello World" ................................................................................................ 40
Abbildung 15: Listing "Hello World"....................................................................................................... 41
Abbildung 16: Screenshot des HelloWorld Programms ........................................................................ 42
38/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A.3 Einrichten der Entwicklungsumgebung
A.3.1 Eclipse
Als Basis für die Entwicklungsumgebung wurde das Eclipse Packet „WebTools Platform; Allin-one“ gewählt. Dieses Packet beinhaltet nebst der integrierten Entwicklungsumgebung Eclipse die grundlegenden (Erweiterungen) Plugins für die Entwicklung von Webanwendungen.
Durch die Installation dieses all-in-one Pakets können Versionskonflikte vermieden werden.
A.3.1.1
Installation
Das Paket kann als zip Datei (wtp-all-in-one-sdk-R-1.5.3-win32.zip) von folgender URL geladen werden: http://download.eclipse.org/webtools/downloads. Die Installation beschränkt
sich auf das Entpacken der Datei und das Erstellen der Verknüpfungen für den Programmstart.
A.3.1.2
Konfiguration
Unter Windows/Perferences/Java/Build Path wurde die Einstellung „Folder“ gewählt. Dadurch werden die Projekte so organisiert, dass für die Sourcen und die binären Files unterschiedliche Ordner verwendet werden.
Der Pfad zum installierten Java Laufzeitumgebung wird normalerweise selbständig gefunden, anderenfalls kann er unter Windows/Perferences/Java/ Installed jre definiert werden.
A.3.2 Java ME Wireless Toolkit:
Es wurde das Java Wireless Toolkit von Sun installiert. Das Toolkit und eine Installationsbeschreibung sind unter folgender URL frei erhältlich:
http://java.sun.com/products/sjwtoolkit/download-2_5.html. Es wurde die Version Sun Java
Wireless Toolkit 2.5 for CLDC installiert.
A.3.3 JavaME Plugin
Für die komfortable Entwicklung von MIDlets wurde das JavaMe Plugin von Craig Setera mit
Hilfe des Eclipse Update Managers installiert. Die Installation und Konfiguration wurde gemäss der Beschreibung unter http://eclipseme.org/docs/installation.html durch geführt.
A.3.4 Tools
Zur Aufzeichnen und Analysieren des Netzwerkverkehrs zwischen dem WebService und
Client dem wurde ein Tool benötigt das Loopback Interfaces unterstützt. Die Wahl ist auf
eine Testversion des Programms CommView der Firma TamoSoft gefallen.
39/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A.4 Einrichten des Entwicklungssystems
A.4.1 FZHSW Simulation
Als FZHSW Simulation wurde der WebService der heutigen Fahrzeughaltersoftware TriponDirect auf dem Entwicklungs-PC installiert. Der WebService verwendet die Microsoft Internet
Information Services (IIS) und stellt die beiden Funktionen „getEmtyImage“ und „putDeklImage“ zum Bezug eines Auftragsimages und zum Ablegen eines Meldungsimages zur Verfügung. Die Installation und Konfiguration wurde gemäss der Benutzeranleitung vorgenommen [Anhang A.3]
A.4.2 WebServer für OTA Provisioning
Für das OTA Provisioning wurde ein Verzeichnis auf einem Apache WebServer eingerichtet.
Für den Upload wurde auf ein neuer Benutzer auf dem FTP Server eingerichtet. Programmierung unter Java 2Micro Edition
A.5 Programmieren mit Java Micro Editon
Jedes Programm das unter J2ME lauffähig sein soll, muss als eine erweiterte Klasse von
javax.microedition.midlet.MIDlet implementiert werden. Dieses Konzept entspricht in etwa
dem, eines Java Applets oder eines Java Servlets. Die Applikation selbst ist daher eine Subklasse der abstrakten Klasse MIDlet. Um ein funktionsfähiges Programm zu schreiben, müssen Methoden zum Starten, Stoppen und Pausieren der Applikation implementiert werden.
Ein Beispielprogramm, dass den Text ”Hello World!” am Display eines Mobiltelefons ausgibt:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet {
private TextBox textbox;
public HelloWorld() {
textbox = new TextBox("", "Hello World!", 20, 0);
}
public void startApp() {
Display.getDisplay(this).setCurrent(textbox);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Abbildung 14: Programm "Hello World"
_
_
_
Funktionen der einzelnen Methoden des Hello World Programms:
40/44
DA_Bericht_BLUDEC.doc
S LSVA 1
HelloWorld:
In diesem Beispiel erstellt der Konstruktor ”HelloWorld()” ein Objekt der Klasse TextBox. Dieses enthält den Text ”Hello World!”.
startApp:
Der Start einer J2ME Applikation wird durch die Methode startApp initialisiert. In unserem Beispiel wird
dem Objekt Display das durch den Konstruktor erstellte Objekt der Klasse TextBox zugewiesen. Auf
dem Display des Mobiltelefons wird nun ”Hello World!” ausgegeben.
pauseApp:
Eine Applikation kann dem Benutzer die Möglichkeit bieten, diese zu pausieren. Hierzu müsste ausprogrammiert werden, was in der Pause geschehen soll. Die Applikation kann ihren Zustand zwischenspeichern und die Tastatur und den Bildschirm freigeben. Am Ende der Pause wird wieder „Hello world“ auf den Bildschirm geschrieben und die Programmausführung unterbruchsfrei weitergeführt.
destroyApp:
Beim Beenden des Programms wird diese Methode aufgerufen. Es kann ein boolean Wert übergeben
werden, der Einfluss auf das Programmende hat. Ist der Wert ”True” so hat die Applikation keine Möglichkeit das Ende zu verzögern. Wird ein ”False” übergeben so kann das Beenden der Applikation
verhindert werden und zum Beispiel eine neue Meldung am Display ausgegeben werden. Sinn der
Methode ist es die Applikation ”sauber” beenden zu können und die bestehenden Systemresourcen
freizugeben (zum Beispiel alle bestehenden Netzwerkverbindungen zu trennen).
Damit das erstellte Programm auf einem Mobiltelefon ausgeführt werden kann muss es zuerst kompiliert und anschliessend ”preferified” werden. Der Kompiliervorgang übersetzt das
Programm in einen Zwischencode der bei der Ausführung durch die Java Virtual Machine
interpretiert wird. Aus Sicherheitsgründen, damit eine Java Klasse nur auf die erlaubten
Speicherbereiche zugreift, muss das Programm noch den ”Preverifying” Prozess durchlaufen. Ist dieser erfolgreich so ist die Applikation grundsätzlich lauffähig.
Das in einem Texteditor, mit dem Namen HelloWorld.java, gespeicherte Programm wird mit
folgendem Befehl kompiliert:
>javac -classpath c:\java\wtk\lib\midpapi21.jar HelloWorld.java
Wobei der Klassenpfad auf die auf die J2ME Library zeigt. Das Ergebnis ist die Datei HelloWorld.class.
Das Preverifiying wird mit dem Befehl
>preferivy -classpath c:\java\wtk\lib\midpapi21.jar -d preverified HelloWorld
ausgeführt. Die Option ”-d” teilt dem preferivy Programm mit, dass das Ergebnis des Prozesses in den Dateiordner ”preverified” geschrieben werden soll.
Die erstellte, kompilierte und überprüfte Applikation muss nun auf das mobile Endgerät
”deployed” werden. Dazu wird noch zusätzlich eine Beschreibungsdatei benötigt. Eine solche
Datei beinhaltet diverse Informationen rund um die Applikation und wird unter der Dateiendung ”*.jad” gespeichert.
Beispielinhalt der Datei HelloWorld.jad:
MIDlet-1: HelloWorld, , HelloWorld
MIDlet-Jar-Size: 906
MIDlet-Jar-URL: http://localhost/HelloWorld.jar
MIDlet-Name: HelloWorld
MIDlet-Vendor: Paolo Dünner
MIDlet-Version: 1.0.0
Abbildung 15: Listing "Hello World"
Gemeinsam mit dieser Beschreibungsdatei wird die kompilierte Klasse in eine jar Datei zusammengefasst und auf dem mobilen Endgerät gespeichert. Der Speichervorgang kann
41/44
DA_Bericht_BLUDEC.doc
S LSVA 1
entweder direkt über eine PC-Verbindung oder durch ein Laden aus dem Internet erfolgen.
Anschliessend kann das Programm ausgeführt werden.
Der Befehl zum erzeugen einer jar Datei lautet:
>jar -cf HelloWorld.jar HelloWorld.class HelloWorld.jad
Abbildung 16: Screenshot des HelloWorld Programms
42/44
DA_Bericht_BLUDEC.doc
S LSVA 1
A.6 Kurzanleitung BLUDEC Demonstrator
Navigation:
Es wird über Listen und das Softmenu navigiert. Der Befehl zurück ist im Softmenu verfügbar.
Hauptmenu:
a) Deklarieren: Es wird ein Auftrag an die OBU geschickt und die Meldung abgeholt.
Vorgängig muss eine BT Verbindung aufgebaut sein.
b) Übermitteln: Es werden alle Meldungen an die FZHSW geschickt und alle Aufträge empfangen.
c) Protokoll anzeigen :Einsicht in das Protokoll und Konfiguration der Protokollierung.
d) Einstellungen: Wechselt in das Menu Einstellungen. Siehe Menu Einstellungen.
Softmenu:
a) BT trennen: Trennen der BT Verbindung
b) Auftrag senden: Ein Auftrag zur OBU senden
43/44
DA_Bericht_BLUDEC.doc
S LSVA 1
c) Meldung empfangen: Ein Meldung wird auf der OBU abgeholt.
d) Meldung senden: Alle Meldungen werden an die FZHSW gesendet.
e) Aufträge beziehen: Es werden die Aufträge für alle konfigurierten Fahrzeuge von der
FZHSW abgeholt.
f) Help: Kurzhilfe
Menu Einstellungen:
a) Betriebsmodus: Es wird der Modus Test oder Deklaration eingestellt.
Im Modus Deklaration steht nur ein reduzierter Funktionsumfang zur Verfügung.
Betriebsart: Es wird die Betriebsart Online oder Offline eingestellt.
In der Betriebsart Online werden die Images in einem Zug von der FZHSW bezogen,
an die OBU geschickt und wieder zurück an die FZHSW geschickt.
b) Fahrzeuge: Es werden die Fahrzeuge und OBU BT Einstellungen konfiguriert.
Es werden die FZHSW Einstellungen eingestellt.
44/44
DA_Bericht_BLUDEC.doc
Herunterladen