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