Kurzfassung - Persönliche Webseiten der Informatik

Transcription

Kurzfassung - Persönliche Webseiten der Informatik
Zusammenfassung für den Vortrag
Linux PDA und mono
von
Mirco Gerling
gehalten im Rahmen der Veranstaltung
Anwendungen 1 des Masterstudiengangs Informatik
HAW Hamburg
Inhaltsverzeichnis
Einleitung............................................................................................................................................. 3
Linux PDA............................................................................................................................................3
Bluetooth & BlueZ............................................................................................................................... 4
.NET & mono....................................................................................................................................... 5
Webservices..........................................................................................................................................6
Fazit...................................................................................................................................................... 7
Fazit...................................................................................................................................................... 7
Einleitung
Der vorliegende Vortrag behandelt die Verwendung eines PDA mit Linux als
Betriebsystem. Dieses Gerät soll im Rahmen des Projekts im Masterstudiengang für
Informatik an der HAW Hamburg eingesetzt werden. Hier geht es um einen fiktiven
Ferienclub. Der PDA soll ein ständiger Begleiter des Clubgastes sein. Das Gerät soll unter
der Verwendung einer drahtlosen Schnittstelle z.B. über Webservices gewisse Dienste für
den Clubgast anbieten. Die drahtlose Schnittstelle kann über Bluetooth oder WLAN
realisiert werden.
Die Idee ist aus mehreren Diplom- und Studienarbeiten entstanden. Lars Mählmann
[Mählmann2004] hat sich in seiner Studienarbeit mit der sicheren Übertragung im WLAN
mit mobilen Endgeräten beschäftigt. Hierbei lag der Schwerpunkt bei mobilen Geräten mit
dem Betriebsystem Linux. Roman Bartnik [Bartnik2005] hat sich in seiner Studienarbeit
mit dem sicheren WLAN speziell im Ferienclub beschäftigt. Andre Lübke [Luebke2004]
beschäftigte sich in seiner Diplomarbeit mit dem „Entwurf einer Sicherheitsarchitektur für
den Einsatz mobiler Endgeräte. Die Diplomarbeit von Lars Mählmann [Mählmann2005]
fokusiert die „Untersuchung von Mono als Plattform für Webservices auf mobilen
Endgeräten“.
Die Kombination von Linux und mono zur Nutzung von Webservices eröffnet interessante
Anwendungsgebiete. Speziell bei der Verwendung eines PDA unter Linux bietet sich die
Nutzung von Bluetooth als Kommunikationsmittel an. Unter Linux gibt es die Möglichkeit
auf sämtliche Schichten des sogenannten Bluetooth Stack zuzugreifen. Das bietet viele
Freiheiten für die Verwendung von Bluetooth.
Die Idee ist, den Ferienclub mit PDA´s auszustatten die entweder mit Windows Pocket PC
im Zusammenhang mit .NET oder Linux PDA´s zusammen mit mono betrieben werden.
Auf diesem Weg sollen dem Gast mobile Services angeboten werden. Als Middleware
kommen auch CORBA und RPC in Betracht.
Linux PDA
Der Linux PDA kann als Clubausweis betrachtet werden. Als Gerät zum Testen wurde ein
Compaq iPaq H3870 verwendet. Er verfügt über einen StrongARM-Prozessor mit 206 Mhz
Taktfrequenz. Der Speicher besteht aus 32 MB SDRAM und 16 MB Flash-ROM. Zur
Kommunikation stehen ein Serieller- und ein USB-Anschluss zur Verfügung. An den USBAnschluss kann man leider keine Pheriepherie anschliessen. Für die drahtlose
Kommunikation stehen eine Infrarot- und eine Bluetoothschnittstelle zur Verfügung.
Client-Server Architektur
Es stellt sich die Frage nach der Verteilung von Aufgaben zwischen Client und Server.
Man kann die Diskussion von einem Thin Client über einen Rich Client bis hin zu einem
Fat Client führen. Die Idee ist die Verwendung einer Rich Client Architektur. In diesem Fall
ist die Anwendung auf Client und Server verteilt. Hier kommt dann als Middleware das
Thema Webservices auf. Man könnte auch RPC und CORBA verwenden. Da
Webservices noch recht neu sind, soll der Fokus hier auf den Webservices liegen.
Einsatzmöglichkeiten
Durch den PDA ergeben sich Möglichkeiten im Offline- und im Online-Betrieb. Im OfflineBetrieb kann man das Gerät z.B. als MP3-Player, Währungsumrechner oder
Übersetzungshilfe verwenden. Im Adressbuch können Kontakte für wichtigte
Ansprechpartner gespeichert werden. Der Kalender kann zur Erinnerung an z.B. gebuchte
Ausflüge genutzt werden. Das Gerät kann als Reiseführer mit GPS-Unterstützung auf
Ausflügen dienen.
Im Online-Betrieb hat man die Möglichkeit im Internet zu surfen, sich den
Veranstaltungskalender des Clubs anzusehen, sich mit anderen Gästen zu verabreden
oder Dienste von Drittanbietern zu nutzen. Dies kann z.B. eine Autovermietung sein.
gpe-Linux
Für den Compaq iPaq gibt es eine Linux Distribution mit dem Namen gpe-Linux. Dieses
System wird stetig weiterentwickelt. Es mussten einige spezielle Anpassungen
vorgenommen werden, da ein PDA z.B. ganz andere Eingabemöglichkeiten hat als ein
Desktop PC. Es gibt eine mobile SQL-Datenbank mit dem Namen SQLite. Das System
bietet ein „Personal Information Management“ mit Adressbuch, Kalender und Notizbuch.
Diese Anwendungen nutzen die SQLite-Datenbank. SQLite bietet auch die Möglichkeit
der Synchronisation mit stationären Datenbanken.
Linux PDA vs. Pocket PC
Mit der Hilfe des Linux Betriebsystems kann man den PDA vor dem Auslesen
systemweiter Einstellungen schützen. Es ist auch möglich die Installation und
Veränderung von Software zu unterbinden. Als Firewall wird wie bei Linux üblich ip-Tables
verwendet und es gibt die Möglickeit der Verschlüsselung mit ssh. Man kann
verschiedene Benutzer-Profile anlegen und diese mit Rechten versehen. Beispielsweise
kann man einen User „clubgast“ anlegen und ihm nur bestimmte Rechte geben. All diese
Möglichkeiten stehen zu diesem Zeitpunkt mit Microsoft Pocket PC nicht zur Verfügung.
Bluetooth & BlueZ
Warum Bluetooth?
Als drahtlose Kommunikation soll Bluetooth zum Einsatz kommen. Was sind also die
Vorteile von Bluetooth? Bluetooth hat im Gegensatz zu WLAN einen geringeren
Energieverbrauch. Dies gilt besonders bei Geräten mit einer Reichweite von 10 Meter. Bei
Bluetooth-Geräten mit 100 Meter Reichweite wird der geringere Energieverbrauch
hauptsächlich durch die adaptive Sendeleistungsanpassung bestimmt. Dies ist bei WLAN
nicht der Fall.
Das Ursprüngliche Ziel von Bluetooth ist der Einsatz als Kabelersatz bei geringem
Energieverbrauch. Dies wird wie bereits erwähnt durch die adaptive
Sendeleistungsanpassung erreicht. Mit Bluetooth kann man spontane Verbindungen zu
anderen Geräten aufbauen. Bluetooth unterscheidet sich zu WLAN insbesondere durch
die Verwendung von Diensten bzw. Profilen.
Der Bluetooth-Stack besteht aus diversen Komponenten. Entscheidend ist das Host
Controller Interface. Es stellt die Schnittstelle zwischen Hard- und Software dar. Es gibt
einen Audiokanal für die Übertragung von Sprache und diverse Profile die auf dem
RFCOMM aufbauen. RFCOMM emuliert eine serielle Schnittstelle.
Für den Club sind folgende Profile von Interesse:
•
•
•
•
•
Das „Basic Printing Profile“ (BPP) für die Druckeranbindung zum Ausdruck von
Unterlagen wie z.B. Buchungsbestätigungen und Tickets.
Das „Personal Area Networking“ (PAN) für die Ad-hoc Vernetzung mit Geräten in der
näheren Umgebung.
Das „FAX-Profil“ ermöglicht den Faxversand.
Das „OBEX-Profil“ für den Austausch von Kontaktdaten unter Gästen wie z.B. die
Zimmernummer, Telefonnummer, E-Mail während des Aufenthaltes.
Das „LAN Access Profil“ (LAP) für lokale Netzwerkverbindungen, Internetverbindungen
und Voice over IP per Bluetooth.
Bluetooth unter Linux
Für Linux gibt es viele Implementationen für Bluetooth-Stacks. Es gibt z.B. OpenBT,
BlueDrekar, BlueZ und Affix. Der offizielle Bluetooth-Stack für Linux ist BlueZ.
Mit BlueZ ist die Daten- und Sprachübertragung möglich. BlueZ verhält sich unter Linux
wie eine virtuelle Netzwerkkarte. Es ermöglicht das Suchen und Auffinden von Geräten für
eine Ad-hoc Vernetzung. Eine Abfrage angebotener Profile und die Erstellung von
Partnerschaften mit anderen Geräten ist auch möglich.
Es gibt zwei Wege mit BlueZ eine Netzwerkverbindung aufzubauen. Der erste nennt sich
„LAN Access using PPP“. Hier wird über eine PPP-Verbindung eine IP-Verbindung
aufgebaut. Durch den Overhad der entsteht, ist diese Lösung nicht sehr performant.
Dieser Ansatz ist der ältere von beiden. Der zweite Weg ist „LAN über BNEP (Bluetooth
Network Encapsulation Protokoll)“. Hier wird eine direkte IP-Verbindung über Bluetooth
aufgebaut. Durch den geringen Overhad ergibt sich eine gute Performanz. Dieses
Verfahren wird zur Zeit noch nicht von allen Geräten unterstützt.
Die Vorteile von BlueZ bestehen darin, dass der Quellcode unter der GPL (Gnu Public
License) steht. Als Entwickler hat man vollen Zugriff auf alle Bluetooth Layer. Dadurch
sind einem bei der Entwicklung nicht die Hände gebunden. BlueZ wird zur Zeit sehr stark
weiterenwickelt, arbeitet sehr gut mit verschiedenen Bluetooth Versionen und Geräten
unterschiedlicher Hersteller zusammen. Es können bis zu 16 Hostadapter gleichzeitig
betrieben werden.
Die Nachteile von BlueZ bestehen darin, dass es bisher keine Bluetooth SIG
Qualifizierung besitzt. Diese Qualifizierung würde ca. 10.000 Dollar kosten. Das ist sehr
viel Geld für ein Open Source Projekt. Ein weiterer Nachteil ist die mangelnde
Dokumentation.
.NET & mono
Worin unterscheiden sich .NET und mono?
Bei .NET handelt es sich um ein Produkt von der Firma Microsoft. Bei mono handelt es
sich um ein Open Source Projekt.
Bei der .NET-Architektur geht es darum auf einer virtuellen Maschine (Common Language
Runtime) Programme auszuführen, die in unterschiedlichen Programmiersprachen
geschrieben wurden. Auf dem Zielsystem muss eine Common Language Runtime
installiert sein. Die Programme können programmiersprachen- und plattformunabhängig
entwickelt werden. Es werden die gleichen Bibliotheken verwendet und der gleiche ByteCode (Intermediate Language) erzeugt. Die Spezifikation von .NET wurde offengelegt.
Das ermöglicht Interessierten die Portierung auf andere Plattformen. Das .NET
Framework enthält verschiedene Namespaces. Die „System.Windows.Forms“ werden z.B.
für die GUI benötigt. Der Namespace „System.Web“ wird z.B. für Webservices benötigt.
Die Vorteile von .NET liegen in der Verwendbarkeit von verschiedenen
Programmiersprachen, im einheitlichen objektorientierten Programmiermodell, dem
basieren auf offenen Standards wie XML und SOAP sowie der Tatsache, dass keine
Installation von Programmen nötig ist. Die Nachteile bestehen darin, dass es die Common
Language Runtime (CLR) nicht für jede Plattform gibt. Es gibt z.B. keine CLR für Apple
Geräte. Es ist Herstellerabhängig und es ist für jede Progammiersprache ein spezieller .
NET-Compiler nötig. Das .NET Framework ist nicht einheitlich, um die Kompatibilität zu
bewahren. Es gibt Mischformen wie das .NET Compact Framework.
Das .NET Compact Framework besteht aus einer Untermenge von .NET, da es auf
mobilen Geräten laufen soll. Es bietet eine API für Windows CE.NET und Pocket
Windows. Leider wird nur die Entwicklung mit Visual Basic und C# unterstützt. Es gibt
zusätzliche Bibliotheken die speziell die Mobilität unterstützen. Die CLR wurde verkleinert,
da die mobilen Geräte über wenig Speicher und wenig weitere Ressourcen verfügen. Die
Zielplattform muss über die .NET Compact Framework Runtime verfügen. Das Compact
Framework bietet Zugriff auf die plattformspezifischen Features der jeweiligen Geräte
sowie eine speziellere Grafiklibrary für smart Devices (GDI+). Standardmässig gibt es
scheinbar keine Bluetooth Unterstützung für die Entwicklung. Es ist möglich Webservices
zu nutzen, jedoch ist es nicht möglich Webservices anzubieten.
Geschichte von mono
Mono ist der Versuch ein freies .NET Framework zu schaffen. Der Ursprung liegt im
Gnome-Projekt. Im Jahr 2001 hat die Firma Ximian mit dem Projekt begonnen. Im August
2003 hat die Firma Novell Ximian übernommen. Novell ist jetzt der Hauptsponsor und
Ximian wird später kommerziellen Support für mono anbieten.
Die Bestandteile von mono sind der Compiler, CLR und eine .NET Klassenbibliothek auf
Unix-basierten Plattformen. Das Ziel ist es, die guten Lösungen aus .NET zu übernehmen.
Das betrifft speziell die einheitlichen APIs für mehrere Programmiersprachen und die
Programmiersprachen übergreifende Integration. Es gibt eine Unterstützung für die
Plattformen Linux, MacOS x, Windows, FreeBSD, Solaris und HP-UX.
Die Erfahrungen von Lars Mählmann in seiner Diplomarbeit [Mählmann2005] haben
gezeigt, dass mono für den PDA in der derzeitigen Form nicht einsetzbar ist. Es gibt
Probleme mit Bibliotheken für die GUI Anwendung und mit den Namespaces bezüglich
Webservices. Leider ist bisher keine neue mono-Version für Handhelds erschienen und
es macht den Eindruck, als wenn sich zur Zeit niemand mit der Portierung von mono nach
mono für PDA beschäftigt.
Webservices
In diesem Abschnitt soll nur ein kurzer Überblick über Webservices gegeben werden um
die Thematik einordnen zu können. Webservices sind konzeptionell von Betriebsystem,
Programmiersprache und Protokoll unabhängig. Es gibt drei Rollen: Veröffentlichen,
finden und binden. Als Basistechniken haben sich SOAP für die Kommunikation, WSDL
für die Beschreibung und UDDI für die Registrierung und Suche etabliert.
• SOAP (Simple Object Access Protocol) ermöglicht die Kopplung und Integration
heterogener Anwendungssysteme. Eine SOAP Nachricht ist ein strukturiertes und
typisiertes XML-Dokument (Envelope). SOAP dient zum Aufruf entfernter Methoden
und ist unabhängig vom Transportprotokoll. Da es in der Regel auf HTTP aufsetzt, ist
es auch unabhängig von Firewalls. Der Port (80) für HTTP ist im Normalfall
freigeschaltet.
• WSDL (Web Services Description Language) ist eine Beschreibungssprache für
Webservices. Mit WSDL werden die Schnittstellen eines Webservice beschrieben.
WSDL basiert ebenfalls auf XML. WSDL ist vergleichbar mit der IDL bei CORBA.
• UDDI (Universal Description, Discovery, Integration) ist ein globales XML-basiertes
Verzeichnis für Webservices. Hier können Dienste registriert werden die dann
gefunden und eingebunden werden können.
Fazit
Die Rolle meines Projekts im Ferienclub könnte darin bestehen einen mobilen Begleiter
für den Clubgast anzubieten. Über den PDA mit Linux ist es möglich eine zuverlässige
Authentifikation des Gastes vorzunehmen, so dass er auch kostenpflichtige Dienste in
Anspruch nehmen kann. Das Gerät bietet eine sehr hohe Sicherheit was den Schutz der
vertraulichen Daten auf dem Gerät angeht und auch was die Datenübertragung betrifft.
Das Gerät bietet die Möglichkeit eine personalisierte Schnittstelle zum Gast anzubieten.
Dadurch ergeben sich auch Möglichkeiten für das CRM (Customer Relationship
Management) für die BI (Business Intelligence). Es können persönliche Gewohnheiten
und Vorlieben analysiert werden und gezielt Angebote unterbreitet werden. Es können
aber auch Profile von bestimmten Gruppen erstellt werden. Es können z.B. Gruppen wie
Singles oder Paare analysiert werden und Gemeinsamkeiten innerhalb der Gruppen
gefunden werden. Hier ist ein Zusammenspiel mit der Projektgruppe für BI sinnvoll. Ein
weiteres Zusammenspiel bietet sich mit der Projektgruppe für Persistenz an, da man bei
einem mobilen Gerät den Bedarf hat Daten „loszuwerden“ und auch wieder zu finden.
Es gibt noch einige offene Fragen. Es ist unklar wie es mit mono speziell für Handhelds
weiter geht, ob mono Webservices auf dem PDA bereitstellen kann und ob es die
Möglichkeit gibt mit mono und einer objektorientierten Datenbank zusammen zu arbeiten.
Ausblick
Für die Zukunft sind mobile Webservices sicher ein interessantes Thema. Leider sind die
Informationen über dieses Thema noch sehr dürftig. Die SQLite Datenbank könnte die
Möglichkeit bieten aus dem Rich Client einen Fat Client zu machen. Durch diese
Techniken lassen sich z.B. Offline-Buchungen realisieren bei denen ein späterer Abgleich
stattfindet, sobald das Gerät wieder „online“ ist.
Eine Option für die Zukunft ist die Weiterentwicklung bzw. die Portierung von mono für
Handhelds an der HAW. Da sich scheinbar niemand damit beschäftigt, wäre dies sicher
eine gute Sache für die Allgemeinheit.
Quellen
[Luebke2004] LÜBKE, Andre: Entwurf einer Sicherheitsarchitektur für den Einsatz
mobiler Endgeräte, 2004, URL http://users.informatik.hawhamburg.de/~ubicomp/arbeiten/diplom/luepke.pdf
[Bartnik2005] BARTNIK, Roman: Sicheres Wlan im Ferienclub, 2005, URL
http://users.informatik.haw-hamburg.de/~ubicomp/arbeiten/studien/bartnik.pdf
[Mählmann2005] MÄHLMANN, Lars: Untersuchung von Mono als Plattform für
Webservices auf mobilen Endgeräten, 2005, URL http://users.informatik.hawhamburg.de/~ubicomp/arbeiten/diplom/maehlmann.pdf
[Mählmann2004] MÄHLMANN, Lars: Sichere Übertragung im WLAN mit mobilen
Endgeräten (speziell unter Linux), 2004, URL http://users.informatik.hawhamburg.de/~ubicomp/arbeiten/studien/maehlmann.pdf