Diplomarbeit Geospatial Informationaccess
Transcrição
Diplomarbeit Geospatial Informationaccess
<diplomarbeit> Geospatial Informationaccess Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Autor/Urheber: Claudius Coenen Kontakt: [email protected] Matrikelnummer: 703 758 Betreut durch: Prof. Dr. Arnd Steinmetz Prof. Mike Richter Version: 12.06.2008 - Version 1 Lizenz: Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 2.0 Deutschland Lizenz (siehe Anhang) http://creativecommons.org/licenses/by-sa/2.0/de/ Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Inhalt Vorwort Danke Executive Summary Konventionen Selbstorganisation Exposé Erklärung der Eigenständigkeit 5 6 7 8 9 10 12 Recherche Bestandsaufnahme Verwandte Projekte Client-Plattformen Endgerätemarkt Datenaustausch Servertechnologien Ortungstechniken Recherche-Ergebnisse Entscheidungen J2ME im Detail REST im Detail Ruby on Rails im Detail 13 14 14 19 21 21 22 23 24 24 24 25 25 Konzept Definitionen Interaktionskonzept Anwendungsbeispiele Use Case-Beschreibung Akteur: Client (selbständig) Akteur: Benutzer (regelmäßig) Akteur: Benutzer (selten) Akteur: Benutzer (im Web) Akteur: Admin Weitere Akteure Client-Storyboard Kommunikation Server-Sitemap Admin-Sitemap Besucher-Sitemap 27 28 31 32 36 36 37 38 38 39 39 40 46 47 47 48 Produktdesign Design-Direction Elemente Name Wording Schrift Farben Logo Screendesign 49 50 51 51 51 51 52 53 53 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Technische Umsetzung Eingrenzung der Umsetzung Entwicklungsvorbereitung Voraussetzungen – J2ME Voraussetzungen – Ruby on Rails Eclipse installation Eclipse-Plugins Design-Patterns Entity-Relationship-Model Implementation (Client) Packages und Klassen Klassendiagramm (vereinfacht) Bibliotheken Liste der möglichen Probleme Server-Client-Kommunikation Implementation (Server) Models Views (XML) Views (HTML) Controller Eingesetzte Plugins 56 57 58 58 58 58 59 60 62 63 63 65 66 66 67 69 69 69 69 69 70 Wirtschaftliche Überlegungen Kosten Einnahmen Veröffentlichung Die Diplomarbeit Der Dienst Pock-it.org Risiken Datenschutzrechtliche Bedenken Datentarife machen Nutzung unattraktiv Erreichen der kritischen Masse Navigierbarkeit großer Datenmengen auf kleinen Geräten Format-Kompatibilität Verkürzte Akkulaufzeit bei Nutzung 71 72 73 74 74 74 75 75 75 75 76 76 77 Die Zukunft Bekannte Probleme/ToDo-Liste Java-Client Server Ausblick 78 79 79 80 81 Quellen Publikationen online Die wichtigsten Links Eigene Blogeinträge Nachrichten, Berichte Plattformen Kommunikation Verwandte Projekte Eingesetzte Tools Verschiedenes Publikationen offline 83 84 84 84 84 85 88 88 89 90 92 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Zeitschriften Bücher Nicht-referenzierbare Quellen Internet Relay Chat Anhang GPS-fähige Geräte Concept-Test Alpha-Test der Anwendung Stil-Test Maistern-Test Projektplan Client-Sitemap Echtes Storyboard Klassendiagramm MIDlet-States Creative Commons GNU General Public License Vorwort 92 92 93 93 94 95 96 97 100 103 104 105 106 107 108 109 113 Vorwort Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Danke Dies ist die richtige Stelle um einfach einmal Danke zu sagen. Eine menge Personen haben zu dieser Arbeit aktiv oder passiv beigetragen. Deshalb möchte ich mich bei den folgenden Personen bedanken: — Bei meinen Eltern, für über 24 Jahre Unterstützung — Bei Katharina für seelischen Beistand und Verständnis — Bei Prof. Dr. Arnd Steinmetz und Prof. Mike Richter für die Betreuung dieser Diplomarbeit — Bei meiner P3/P4 Gruppe, namentlich: Daniela Peter, Markus Bernhardt, Oliver Göck, Thomas Komander, Philipp Reinstaedtler, Garrit Schaap und Jan Schwebel für Idee und Freundschaft — Bei Achim, Daniel, Eva, Eva, John, Michael, Garrit, Gregor, Kai, Katharina, Lukas, Marcel, Mel, Nina, Sandy, Sebastian, Silvia, Stefan und Thomas für Tests und Kommentare zu meinen Blogeinträgen — Bei Axel Feix für Hilfe mit J2ME — Bei Erika Fischer für Unterstützung und Freundlichkeit — Bei Prof. Dr. Norbert Krier für MSD — Bei den Professoren, Mitarbeitern, Lehrbeauftragten, Tutoren und Studenten, die den Fachbereich zu dem machen, was er ist. — Bei Wir sind Helden, Dashboard Confessional, Red Hot Chili Peppers, Counting Crows, Die Ärzte und The Corrs für gute Musik — Bei Gene Roddenberry und Joss Whedon für gute Fernsehserien Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Executive Summary Die vorliegende Diplomarbeit konzentriert sich auf die Konzeption und Entwicklung einer mobilen Anwendung. Sie basiert auf einer Idee, die im Projekt 3 von meiner Projektgruppe und mir entwickelt wurde. Die Anwendung ermöglicht Benutzern das Hinterlassen von Informationen an bestimmten Orten. Information steht hier für beliebige Daten, zum Beispiel Texte, Bild-, Video- oder Audiodaten. Es entsteht ein neues Kommunikationswerkzeug. Das Ergebnis ist ein funktionsfähiger Prototyp in Java Micro Edition (Client) und Ruby on Rails (Server). Unter dem Projektnamen „Pock-it“ wird das Projekt veröffentlicht und wird unter der GPLv3Lizenz stehen. Diese Arbeit steht unter einer Creative CommonsLizenz. Arbeitsergebnisse wurden in verschiedenen Tests verifiziert. Diese finden Sie gesammelt im Anhang der Arbeit. Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Konventionen Struktur Diese Arbeit ist in Kapitel aufgeteilt. Jedes Kapitel enthält eine kurze Zusammenfassung auf der Titelseite. Die Kapitelseiten sind durch ihre andere Farbigkeit einfach in der Arbeit zu finden. Gliederungspunkte, die nur wenige Zeilen Text enthalten, sind der Übersicht halber nicht im Inhaltsverzeichnis aufgelistet. Wenn ein Gliederungspunkt über mehrere Seiten geht, finden Sie in der oberen rechten Ecke der Seite die letzte übergreifende Überschrift. Da im Rahmen dieser Arbeit sowohl Client als auch Server bearbeitet werden, gibt es bestimmte Ausarbeitungen für beide Teile. Ich habe, wann immer möglich, die folgende Reihenfolge angewandt: 1. Allgemeines, Übergreifendes 2. Client 3. Kommunikation 4. Server Querverweise Alle Web-Links finden Sie auch hier: http://del.icio.us/ccoenen/dipl_archiv An vielen Stellen sind Quellen und weiterführende Links eingefügt. Quellen und Begriffserklärungen sind dabei in den Fußnoten angegeben, weiterführende Links werden in der Marginalie dargestellt. Links finden Sie auch am Ende dieser Arbeit unter dem Punkt Quellen. Hier sind die Quellen übersichtlich kategorisiert. Querverweise innerhalb der Arbeit sind optisch vom normalen Text abgesetzt. Wenn Sie die PDF-Version dieser Diplomarbeit lesen, sind Inhaltsverzeichnis, Weblinks und Querverweise klickbar. Außerdem steht Ihnen das Inhaltsverzeichnis ständig in der Seitenleiste zur Verfügung. Typografie — Querverweis: Dieser Text folgt bestimmten Konventionen. — Quelltext, Konsolen-Eingaben: Hallo Welt — Haftnotizen zieren viele Auflistungen. Sie dienen der Kategorisierung. — Zitate werden in eigenen Boxen dargestellt. Typografie SK1 zurück hoch SK2 Auswahl, Vor, OK Auswahl runter Ich bin eine Demo-Beschriftung. „Derek sagt, es ist immer gut, mit einem Zitat abzuschließen. Wenn ein Anderer es schon am besten formuliert hat und man selber es nicht besser kann, stiehlt man eben von ihm und verschafft sich ’nen starken Abgang.“ American History X, Edward Furlong — Bildbeschriftungen sind kursiv gesetzt — Zusatzinformationen werden in runde Klammern gesetzt (weil es leichter lesbar ist). — Eckige Klammern kommen zum Einsatz, wenn es sich um Alternativen handelt: [an, aus] Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Selbstorganisation Zu Beginn des Projekts wurde ein grober Plan aufgestellt, der die wichtigsten, vorhersehbaren Aufgaben enthielt. Aufgaben wurden in die Kategorien Organisatorisches, System und schriftliche Arbeit eingeteilt. Der Punkt System umfasst die eigentliche Hauptaufgabe und ist unterteilt in die Unterpunkte Wirtschaft, strukturelles Design, Produktdesign, technische Recherche, Entwicklungsvorbereitung, Entwicklung und Test. Abhängigkeiten von Aufgaben wurden ebenfalls eingetragen. Insgesamt diente der Projektplan aber eher als ToDo-Liste. Insbesondere Start- und Endzeiten wurden frei interpretiert. Dennoch ist die Strukturierung und Übersicht sehr hilfreich gewesen. Arbeitsplatz-Computer und Notebook waren mit ähnlicher Software ausgestattet und gleich konfiguriert. Sie wurden über einen Subversion-Server synchron gehalten. Wäre ein Computer ausgefallen, wäre die Entwicklung nahtlos weiter gegangen. Zum Ende der Diplomarbeit wurden täglich zusätzliche Sicherungen auf einen entfernten Computer kopiert. Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Exposé Dieses Exposé diente im Vorfeld der Diplomarbeit als Kommunikationsgrundlage zwischen mir und meinem Betreuer. Es hält die Grundidee und den zu erwartenden Umfang fest. Thema Geospatial Informationaccess — Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Schwerpunkt Der Schwerpunkt der Diplomarbeit liegt auf der Entwicklung. Lernziel ist es, eine Handyapplikation zu konzipieren und zu entwickeln. Diplomand Claudius Coenen / Media System Design / Matr. Nr. 703 758 Mobil: +49 (0) 171 353 7903 / E-Mail: [email protected] Idee Die Anwendung wird ein örtliches Abrufen von verschiedenen Daten ermöglichen. Ein GPS-fähiges Endgerät holt Informationen zum Standpunkt, stellt diese dem Benutzer dar und lässt ihn Informationen hinzufügen. Die Daten können vom Benutzer nur an diesem Spot abgerufen werden. Es bleibt zu überlegen, ob ein Abruf von zuhause sinnvoll ist oder nicht. Benutzer können vorhandene Spots verwenden oder Eigene anlegen. Definition „Informationen“: Zu Informationen zählen neben Text- auch Multimediadaten. Die Anwendung soll Bild, Ton und Videoaufnahmen verarbeiten können. Auch ein Verweis auf eine Internetseite (wie z.B. der zugehörige Wikipedia-Eintrag) ist denkbar. Definition „Spot“: Ein Punkt, an dem Informationen abgelegt sind. Dieser wird in einem festzulegenden Umkreis „sichtbar“ sein. Use Case(s) Einige Anwendungsmöglichkeiten existieren, ich möchte hier auf drei näher eingehen. Gästebuch/Gipfelbuch Hier können Benutzer ein virtuelles „ich war hier“ hinterlassen. Dies kann entweder eine persönliche Angelegenheit sein oder in Form eines Gipfelbuches einen öffentlichen Ort markieren. Sehenswürdigkeiten Ähnlich dem Semapedia-Ansatz können Informationen zu inte ressanten Orten hinterlassen werden. So könnte ein virtueller Reiseführer entstehen. Von großem Vorteil wäre hierbei, dass eine Beschreibung nicht nur als Text vorliegen müsste, sondern auch gesprochen oder illustriert sein könnte. 10 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Exposé Geocaching Neben dem traditionellen Geocaching, bei dem man einen einzigen Punkt sucht, erfreuen sich besonders Multi-Caches (Geocaching mit Zwischenstationen) besonderer Beliebtheit. Diese Zwischenstationen sind meist mitgebrachte Rätsel. Mit dem geplanten System könnte eine solche Zwischenstation auch ein abrufbares Spiel oder ein Bilderrätsel sein. Technische Umsetzung Ein Client-Programm soll geschrieben werden. Dieses soll GPS-Koordinaten auswerten können und eine Internetverbindung aufbauen. Spots anlegen und ändern muss möglich sein. Zumindest Bild- und Textinformationen sollen austauschbar sein. Bei der Serveranwendung besteht die Hauptaufgabe in einem funktionsfähigen Webservice, den der Client nutzen kann. Eine zugehörige Website wird nur rudimentär entwickelt, um die Dateneingabe zu erleichtern – das Web-Frontend ist nicht explizit Teil der Diplomarbeit. Titel-Findung Bausteine — Location, GPS, Geokoordinaten, Mobil, Spot, (Zusatz-)Information, Medien, Internet, Daten, Geocaching, Forum, Wiki, Gästebuch, Audio, Video, Text, Spaß, Metadaten, Geschichte (historisch wie narrativ), Content, Point-of-Interest — platzieren, hochladen, runterladen, teilen, ver(w)alten, finden, stolpern, orten, informieren, benachrichtigen, erinnern, erzählen, mitmachen — experimentell, informativ, lokal, interessant, relevant, unerwartet, unsichtbar, offensichtlich, öffentlich, privat, wissenswert, virtuell Andere Titel-Entwürfe — — — — — — — — — — — — Ortsspezifische Ablage von Daten Ortsrelevante Abrufbarkeit von Informationen Informationsverwaltung durch Geokoordinaten mobile Anwendung „Location Based Services“ Informations-Ort Benutzer-Ort virtuell Geoinformationspots Geopositionierte Informationsspots Geospatial Informationspots Geopositionierung und Abruf von relevanten Daten 11 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Vorwort Erklärung der Eigenständigkeit Hiermit erkläre ich, Claudius Coenen, dass ich die vorliegende Diplomarbeit selbständig und nur unter Verwendung der angegebenen Hilfsmittel und Literatur erstellt habe. Ort, Datum Unterschrift 12 „Ist das so? Ich meine, muss das so?“ Wir sind Helden — Ist das so? Kapitel 1 Recherche In der Recherche geht es im Wesentlichen darum, in welchem Umfeld das Projekt existiert. Hierzu wurden verwandte Projekte, potentielle Client-Plattformen, Kommunikationsstandards, Servertechnologien und Ortungsmöglichkeiten beleuchtet. Die Recherche schließt mit den Entscheidungen für dieses Projekt ab. Hier werden die ausgewählten Techniken und Plattformen etwas näher erläutert. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Bestandsaufnahme Verwandte Projekte Durch die stärkere Verbreitung von GPS-Empfängern haben auch Geo-Informationssysteme einen starken Auftrieb erlebt. Die Bestandsaufnahme soll themenverwandte Projekte erläutern. Auf rein statische Systeme (zum Beispiel Reiseführer für PDAs ohne Internetaktualisierung oder GPS-Unterstützung) wurde verzichtet, da sie zu weit vom Thema entfernt sind. Die Liste der Geoinformationssysteme ist lang. Sogar die Telefon-Auskunft im Internet bietet an, den Wohnort auf einer Karte anzuzeigen. Die folgenden Projekte stehen nicht tatsächlich in Konkurrenz zum geplanten Projekt. Vielmehr bietet es sich an, in Kooperation mit diesen Diensten zu treten. Sie bieten oftmals verortete Informationen bereits an. Der Übersichtlichkeit halber sind die Produkte in folgende Kategorien eingeteilt: http://maps.google.de http://earth.google.com http://www.openstreetmap.org http://maps.live.de http://de.routenplaner.yahoo.com/broadband http://www.de.map24.com http://worldwind.arc.nasa.gov Redaktionell (Ausnahme: OpenStreetMap) Dynamisch Losgelöst Keine Ortung Nur lesen http://www.frappr.com/ http://www.qype.com/ User-Generated Dynamisch Losgelöst +Vor Ort Keine Ortung en Lesen+Schreib Inhalt: Redaktionell User-Generated Aktualität: Statisch Dynamisch Verfügbarkeit: Losgelöst Vor Ort Ortung: Keine oder manuell Automatisch Interaktivität: Nur lesen Lesen und schreiben Google Maps / Google Earth / Nasa WorldWind / MapGuide / Map24.de / Yahoo Maps / Windows Live Maps / OpenStreetMap… Eine Menge internetgestützter Anwendungen entwickelte sich in den vergangenen Jahren. Von Wetterdaten bis Routenplanung ist alles dabei. Besonders die großen Suchmaschinenbetreiber drängen in diesen Markt. Die Dienste und Programme sind für den Endnutzer zunächst kostenlos zu benutzen, da die Refinanzierung meist über Werbeeinblendung und Premium-Angebote erfolgt. Ein relativ junger Ansatz ist, dass man die Dienste auch in den eigenen Webanwendungen verwenden darf und sogenannte Mashups erstellen kann. Qype / Frappr Qype ist ebenso wie Frappr ein solches Mash-up. Beide Dienste setzen Googles Karten ein und bauen eigene Funktionalitäten auf. Frappr stellt Benutzern eine Karte zur Verfügung, auf der sich jeder selbst eintragen kann. Das klingt zunächst langweilig, hat aber besonders für Communities einen hohen Spaßfaktor. Eine Frappr-Karte wurde auch von unserem Jahrgang eingesetzt, um die Praktikumsstellen zu visualisieren. Viele Foren und Websites haben ihre eigene Frappr-Benutzer-Karte. Mash-Up: „Vermischung“ verschiedener Dienste http://de.wikipedia.org/wiki/Mashup_%28Internet%29 http://www.frappr.com/msd-bps2006-2007 14 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://placeshout.com Barcode-Reader: http://www.i-nigma.com http://reader.kaywa.com http://code.google.com/p/zxing http://www.neoreader.com/home.html Dynamisch Vor Ort Autom. Ortung (visuell) http://www.semapedia.org http://www.shotcode.com http://scanbuy.com Media System Design Hey! This is a physical hyperlink to Wikipedia. Scan the code or enter the URL in your phone: Kapitel 1: Recherche Bestandsaufnahme Verwandte Projekte Qype hat es sich auf die Fahne geschrieben Lieblingsorte zu sammeln. Das ist nicht näher definiert, pendelte sich in der Praxis aber bei Kneipen und Firmen ein. Ein paar Sehenswürdigkeiten sind auch mit von der Partie. Sämtliche Bewertungen, Kommentare und sogar die Orte selbst kommen von den Qype-Benutzern. Ähnliches Prinzip: PlaceShout Mobile Tagging Man kann an jedem beliebigen Ort Informationen abrufen, sobald man ein internetfähiges Endgerät hat. Die einfachste Variante wäre, eine URL abzudrucken, die der Nutzer aufrufen soll. Nachdem Kameras Einzug in die Mobiltelefone hielten, kamen Firmen auf die Idee, das Abtippen der URL durch Abfotografieren zu ersetzen. Es gibt eine Reihe von Barcode-Systemen, die Anwendung finden. Eine in Japan sehr verbreitete Technik ist der QR-Code. Auch im europäischen Raum findet er dank des Kaywa Readers und des Semapedia-Projektes mehr Anhänger. Beispiel: Semapedia „Semapedia hat das Ziel, die virtuelle Welt der Wikipedia mit der realen Welt zu verknüpfen“. Auf der Semapedia-Projektseite kann man zu beliebigen Wikipedia-Einträgen speziell gestaltete QR-Codes erstellen. Diese werden vor Ort angebracht und von Interessenten ausgelesen. Das Leseprogramm zeigt dem Benutzer daraufhin den Wikipedia-Artikel im Handy-eigenen Browser an—Internetverbindung vorausgesetzt. Weitere ähnliche Dienste: Shotcode Beispiel: Scanbuy Scanbuy druckt Barcodes auf Produkte. Ein Benutzer kann sie mit seinem Telefon einscannen und bekommt Zusatzinformationen oder eine Produktvorschau angeboten. http://semapedia.org/w/30072 Typisches Semapedia-Tag Mobile Tagging: http://de.wikipedia.org/wiki/Mobile_Tagging 15 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Bestandsaufnahme Verwandte Projekte Navigationssysteme Redaktionell User-Generated (selten) Statisch Dynamisch (TMC) Vor Ort Autom. Ortung Viele Neuwagen werden heute mit Navigationssystem bestellt. Ein solches System beherbergt einen Satz Karten, der aktualisiert werden kann. Bei Aktualisierung fallen in der Regel Kosten für den Fahrzeughalter an. Navigationssysteme enthalten nicht nur die reine Streckeninformation, sondern auch interessante Orte, Tankstellen und Sehenswürdigkeiten. Aktuellere Modelle erhalten zusätzlich TMC-Daten über Staus oder Blitzer. Mit MapShare nutzt TomTom mittlerweile auch usergenerated Content. i.d.R. Nur lesen http://www.oe-navi.de Redaktionell Dynamisch Vor Ort Autom. Ortung Ö-Navi Anststatt sich ein Navigationssystem anzuschaffen, kann man bei „Das Örtliche“ eine Softwarelösung herunterladen. Diese läuft auf den gängigen Mobiltelefonen und wird durch Werbung finanziert. Nur lesen http://www.google.com/gmm http://www.mgmaps.com Redaktionell Dynamisch Vor Ort GoogleMapsMobile Google Maps bietet auch einen J2ME-Client an. Dieser kann, abhängig vom Gerät, die aktuelle Position orten. Somit steht der Großteil der Google Maps-Funktionalitäten unterwegs zur Verfügung. Alternativer Client für mehrere Kartenanbieter: MGMaps Keine Ortung Nur lesen http://www.shozu.com User-Generated ng Autom. Ortu Lesen+Schreiben http://zonetag.research.yahoo.com http://zurfer.research.yahoo.com User-Generated Dynamisch ShoZu Das Online-Leben verteilt sich gerade für Einsteiger und Gelegenheitsnutzer auf verschiedene Seiten: Bei Facebook, Flickr und YouTube liegen die eigenen Kreationen. ShoZu übernimmt die Datenverteilung. Fotos und Videos werden mit dem Mobiltelefon gemacht und bei einer Vielzahl von Internetseiten auf den eigenen Profilen veröffentlicht. Wenn Geokoordinaten verfügbar sind, werden diese Daten auch an die Dienste weitergegeben. Yahoo Zonetag und Zurfer Zonetag ist ein Foto-Uploader für Flickr, der die Geokoordinaten mitliefert. Zurfer dagegen zeigt lokale Fotos sowie die eigenen Bilder auf dem Handy an. Vor Ort Autom. Ortung Lesen+Schreiben TMC: Traffic Message Channel, siehe http://de.wikipedia.org/wiki/Traffic_Message_Channel 16 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://www.uni-goettingen.de/de/63850.html Redaktionell Dynamisch Vor Ort Autom. Ortung Nur lesen http://mobile.mit.edu/classes/elens User-Generated Dynamisch Vor Ort Autom. Ortung (barcode) chreiben Lesen+S http://yellowarrow.net User-Generated Statisch Vor Ort Keine Ortung Nur lesen http://socialight.com User-Gen erated Dynamisch Vor Ort Keine Ortung (geplant) Lesen+Schreiben http://www.invisibleideas.org http://www.adobe.com/devnet/devices/ articles/invisible_ideas.html Redaktionell Statisch Vor Ort Autom. Ortung Nur lesen http://www.heise.de/newsticker/Ad-hocMitfahrzentrale-fuer-Mobiltelefone--/ meldung/106705/ http://www.oks.tu-berlin.de/forschung/ technologien/mfz/ Kapitel 1: Recherche Bestandsaufnahme Verwandte Projekte Mobile Stadtführung Die Uni Göttingen erstellte ein Konzept für eine Stadtführung, bei der das eigene Mobiltelefon die Informationen liefert. Der Benutzer kann die Führung in seiner eigenen Geschwindigkeit und nach seinem eigenen Interesse durchführen. Die Führung basiert auf GPS-Koordinaten und soll laut Pressemitteilung auch Bilder auf dem Gerät zeigen. Elens Elens lässt die Benutzer Daten an Orten ablegen. Bild, Text und Sprachnachrichten werden unterstützt. Die Ortung geschieht mittels 2D-Barcode. Yellow Arrow Als öffentliches Kunstprojekt versteht sich der Yellow Arrow. Er kommt clientseitig ganz ohne Internet aus: Der Benutzer sieht den gelben Pfeil und sendet eine SMS mit seiner ID an eine Nummer. Kurz darauf erhält er die dahinter versteckte Botschaft. Yellow Arrows werden bevorzugt an schönen und/oder sehenswerten Dingen bzw. Orten angebracht. Socialight Socialight funktioniert ähnlich wie Qype. Geplant ist ein Java-Client: Während man durch die Stadt geht, füllt sich die Inbox mit Empfehlungen. Socialight wird besonders für Gastronomie-Empfehlungen eingesetzt. Derzeit kann es unterwegs nur über eine WAP-Oberfläche verwendet werden. Im Mai 2008 kündigte Socialight an, seinen Java-Client unter der MIT-Lizenz zu veröffentlichen. Invisisible Ideas Eine virtuelle Galerie in drei Parks in Boston: Benutzer erhalten einen GPS-fähigen PDA. In den Parks sind 147 Ausstellungsstücke verteilt. Später wird das eigene Tracklog auf der Website mit allen anderen Tracklogs angezeigt. Das Projekt war 2002 ein großer Erfolg. Ad-Hoc Mitfahrzentrale Die TU-Berlin entwickelte eine Applikation, die standortbasiert Mitfahrgelegenheiten finden kann. Weiterhin werden in der Anwendung POIs und gegenseitige Bewertungen angeboten. User-Generated Dynamisch Vor Ort Autom. Ortung Lesen+Schreiben 17 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://www.enkin.net User-Generated Dynamisch Vor Ort Autom. Ortung Kapitel 1: Recherche Bestandsaufnahme Verwandte Projekte Enkin Enkin ist ein Navigationskonzept, das auf der „magical lens“ Metapher aufsetzt. Man platziert in einer Kartenansicht Labels und bekommt diese später korrekt über ein live-Kamerabild gelegt. Lesen+Schreiben http://www.innovations-report.de/html/ berichte/verkehr_logistik/bericht-71203.html Redaktionell Dynamisch Siemens Digital Graffiti Dieses System erleichtert Piloten die Navigation am Boden. Meldungen werden zugestellt, sobald das Flugzeug eine bestimmte Wegmarke erreicht. Vor Ort Autom. Ortung Nur lesen http://www.sics.se/~espinoza/documents/ GeoNotes_ubicomp_final.htm User-Generated Dynamisch Vor Ort Autom. Ortung eiben n+ Lese Schr http://loopt.com User-Generated Dynami sch Vor Ort GeoNotes GeoNotes ist ein Projekt aus Schweden. Hier werden Nachrichten, ähnlich wie im vorliegenden Projekt, an Orten hinterlassen. Das Projekt konzentriert sich jedoch stärker auf den gezielten Nachrichtenaustausch zwischen zwei Personen. Es wurde nicht speziell auf Handheld-Geräte konzipiert. Loopt Loopt ist eine Community. Der mobile Client hat Messaging-Fähigkeiten und kann Events und Bilder verschicken. Diese werden dann auf einer Karte dargestellt. Autom. Ortung Lesen+Schreiben Magical Lens: http://www2.parc.com/istl/projects/MagicLenses/ 93Siggraph.html 18 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Bestandsaufnahme Client-Plattformen Auf der Client-Seite gibt es eine Reihe von Plattformen, die bedient werden wollen. Wichtig ist hier: Die Plattformen stehen nur im Rahmen dieser Diplomarbeit (aus Zeitmangel) in Konkurrenz. Wünschenswert wäre für die Zukunft, für jede der genannten Plattformen einen Client anzubieten. http://java.sun.com/javame/index.jsp Randbemerkung: Java ist auch auf Windows Mobile verfügbar. Hier habe ich zwei VMs auf einem Windows Mobile 5 Gerät getestet. Der Intent Java Midlet Manager bietet keine Unterstützung für GPS (in v11). IBM J9 ist kostenpflichtig, Download und Einrichtung sind umständlich. J9 kann GPS-Geräte ansprechen und eine Internetverbindung aufbauen. Die Testergebnisse legen nahe, dass ein Java-Client die Windows-MobileGeräte nicht zufriedenstellend bedienen könnte. http://www.s60.com/business/developers J2ME Midlet Mit der größten Verbreitung und einigen Jahren auf dem Markt ist J2ME oft die erste Wahl für mobile Anwendungen. Viele namhafte Applikationen sind in J2ME realisiert. Prominente Beispiele sind Opera Mini und der DB Railnavigator. Vorteile: Auf fast allen aktuellen und neu angekündigten Geräten vorhanden, erprobte Kompatibilität mit GPS und Internetzugriff. Nachteile: Windows Mobile-Geräte haben von Haus aus eine fast unbrauchbare VM (siehe Randbemerkung). In Verbindung mit der Tatsache, dass der Großteil der GPS-Handys auf Windows Mobile basiert, ist dies ein schwerwiegendes Problem. Weiterhin soll in absehbarer Zukunft die Standard-Edition den Platz von J2ME einnehmen. Symbian S60 Symbian wurde in der Vergangenheit überwiegend von Nokia eingesetzt, heute ist es auch bei anderen Herstellern verbreitet. Symbian Series 60 Anwendungen werden in C oder C++ geschrieben. Vorteile: Nach Windows Mobile die zweitverbreitetste Plattform bei den GPS-fähigen Geräten. Nachteile: Symbian S60 Geräte haben eine brauchbare Java-VM, daher könnte man ebenso gut in Java entwickeln und somit auch andere Geräte bedienen. http://www.microsoft.com/ windowsmobile/developers Windows Mobile Für Windows Mobile Geräte kann unter anderem in C++ oder C# entwickelt werden. Windows Mobile ist auf vielen Smartphones und PDAs verschiedener Hersteller zu finden. Vorteile: Besonders bei den GPS-Handys weit verbreitet, gut dokumentierte Entwicklungstools. Nachteile: Fast ausschließlich Smartphones setzen Windows Mobile ein. Damit ist in der Regel auch eine entsprechende Gerätegröße verbunden. Obwohl der Windows Mobile-Anteil unter den GPS-Geräten sehr hoch ist, ist er bei allen Mobiltelefonen insgesamt gesehen eher gering. Seit 2001, siehe: http://www.teltarif.de/arch/2001/kw25/s5440.html http://www.news.com/8301-13580_3-9800679-39.html?part=rss&subj=ne ws&tag=2547-1_3-0-5 Siehe: Anhang / GPS-fähige Geräte Marktanteil Windows Mobile: 13%, siehe http://www.pcwelt.de/start/ mobility_handy_pda/pda_smartphone/news/160677/microsoft_will_ smartphone_markt_ausbauen/index.html 19 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://www.adobe.com/products/flashlite Kapitel 1: Recherche Bestandsaufnahme Client-Plattformen Flash Lite Adobes mobile Inkarnation von Flash ist mittlerweile in Version 3 verfügbar. Programmiert wird in ActionScript 2. Wie vom DesktopFlash bekannt, kann viel über die Authoring-Umgebung gemacht werden, so dass einfache Animationen und Interfaces „gemalt“ werden können. Vorteile: In vielen Geräten verfügbar, ausgereifte IDE, Medienumgang einfach. Nachteile: Kein Zugriff auf GPS oder Bluetooth. http://developer.apple.com/iphone Randbemerkung: Am 9. Juni wurde der iPhoneNachfolger mit GPS und UMTS offiziell vorgestellt. http://code.google.com/android iPhone Apples Vorstoß in den Mobilfunkmarkt begann als geschlossenes System. Mit Veröffentlichung von Firmware 2 und dem SDK kann jeder seine eigenen Anwendungen schreiben und über iTunes veröffentlichen. Entwickelt wird in Objective C. Vorteile: Von Haus aus wird es Programmierern einfach gemacht, ein mediales Feuerwerk abzubrennen; iPhones werden mit Datentarifen gebündelt verkauft; iTunes als Verbreitungsmedium. Nachteile: Bindung an ein Endgerät, (derzeit) kein UMTS, Programmiersprache Objective-C, kein GPS-Empfänger (Nachfolgegerät zu spät), in Deutschland nur rund 70.000 100.000 verkaufte Geräte. Android Die Android-Plattform wurde von Google und über dreißig weiteren Firmen aus der Taufe gehoben. Sie basiert auf Linux und wird überwiegend in Java entwickelt. Vorteile: Große Unterstützung der Plattform durch viele namhafte Firmen, für Mashup-Dienste bestens gerüstet, Preisgelder für gute Entwicklungen. Nachteile: Geräte erst Ende des Jahres zu erwarten, wie Windows Mobile eher auf Smartphones geplant. http://www.limofoundation.org LiMo-Platform LiMo wurde 2007 von Motorola, NTT DoCoMo, Panasonic, NEC, Samsung und Vodafone gegründet. Ziel ist es, eine Linux-Plattform für Mobiltelefone zu etablieren. Vorteile: Offene Plattform, Release 1.0 seit März 2008 verfügbar. Nachteile: Kein Gerät marktreif, kein angekündigtes Gerät mit eingebautem GPS. Stand: Januar 2008. Quelle: http://www.macnews.de/news/105992, http:// www.heise.de/newsticker/70-000-verkaufte-iPhones-kurbeln-Datennutzung-an--/meldung/102489 Stand: April 2008. Quelle: http://satundkabel.magnus.de/geraete/artikel/ agentur-viele-illegale-iphones-bei-telekom-konkurrenten.html Android Developer Challenge http://code.google.com/android/adc.html 20 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Bestandsaufnahme Endgerätemarkt Für die zu entwickelnde Anwendung ist GPS sehr empfehlenswert. Im März zählte xonio.com 42 verschiedene Modelle mit eingebautem GPS-Empfänger, weitere 25 Modelle waren von den Herstellern angekündigt. Obwohl diese Geräte am interessantesten sind, sollte man im Auge behalten, dass ein weitaus größerer Anteil von Geräten ohne eingebauten Empfänger im Umlauf ist. Die meisten dieser Geräte kann man für rund 60 € um einen Bluetooth-GPS-Empfänger erweitern. Neben GPS-Fähigkeiten ist auch interessant, in welcher Geschwindigkeit Daten übertragen werden können, wie die DisplayAuflösung ist und auf welcher Plattform das Gerät arbeitet. Der Löwenanteil der 50 untersuchten Geräte läuft auf Basis von Windows Mobile 6 (22 Geräte), gefolgt von Symbian Series 60 3rd (10 Geräte). Windows Mobile 5 kommt auf 8 Geräte und 10 Geräte verwenden ein herstellereigenes Betriebssystem oder es konnte nicht ermittelt werden. An Displayauflösungen kommen überwiegend QVGA (22 Geräte) zum Einsatz. VGA-Auflösungen (4 Geräte) und 240x240 Pixel (ebenfalls 4 Geräte) sind die einzigen anderen Gruppen. Bei 15 Geräten konnte die Auflösung jedoch nicht sicher ermittelt werden. Ganze 30 Geräte funken mit den schnellen Standards UMTS und HSDPA, 15 Geräte sind noch in der zweiten Generation hängen geblieben. Bei fünf Geräten liegen keine Informationen vor. Fast die Hälfte der Geräte hat zusätzlich WLAN (24 Geräte). Der Vollständigkeit halber die Verteilung der Hersteller: Asus (8), E-Ten (8), Fujitsu-Siemens (2), Garmin (1), HP (4), HTC (6), Mitac (1), Nokia (8), RIM (Blackberry) (3), Samsung (3), SonyEricsson (2), Toshiba (3). Eine Tabelle der untersuchten Geräte finden Sie im Anhang: GPS-Fähige Geräte. Datenaustausch XML-basiert (SOAP, REST) http://www.w3.org/TR/soap12-part1 http://www.ics.uci.edu/~fielding/pubs/ dissertation/rest_arch_style.htm SOAP SOAP ist ein Nachrichten-orientierter Webservicestandard. Sämtliche Request-Daten werden in die XML-Nachricht gepackt. Oftmals sind SOAP-URLs für alle Operationen eines Service die gleichen. Neben der eigentlichen Kommunikation gibt es einen Webservice-Deskriptor, der die vorhandenen Methoden und nötigen Objekte standardisiert beschreibt. SOAP ist eine W3C-Empfehlung. REST REST ist die Abkürzung für Representational State Transfer. Via HTTP und XML werden Ressourcen adressiert. Anders als bei SOAP wird der HTTP-Header als Teil der Kommunikation genutzt. Sowohl http://www.xonio.com/artikel/Handy-mit-Navigation-Alle-Modelle-inklusive-Neuheiten_30102841.html 21 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Bestandsaufnahme Datenaustausch HTTP-Verb als auch die URL bestimmen die eigentliche Aktion und Ressource. In gewisser Weise kann man REST auch als W3C-Empfehlung ansehen, da es eine Art Best-Practice auf Basis von bestehenden Empfehlungen ist. Andere Möglichkeiten http://json.org http://www.yaml.org http://de.wikipedia.org/wiki/Serialisierung http://osflash.org/documentation/amf http://download.macromedia.com/pub/labs/ amf/amf3_spec_121207.pdf JSON JSON (JavaScript Object Notation) ist eine textbasierte Darstellung von Objekten. Sie kann in einer JavaScript-Umgebung mit dem Befehl eval() in ein Objekt überführt werden. Für andere Sprachen existieren Bibliotheken. YAML Direkt mit JSON vergleichbar ist YAML. Es ist ebenfalls textbasiert, wird jedoch von weniger Programmiersprachen unterstützt. Serialisierung Serialisierung zum Datenaustausch klingt im ersten Moment einfach, hat jedoch gravierende Nachteile: Die Klassen auf Server und Client müssen identisch definiert sein. Ein nachträgliches Erweitern der Funktionalität des Servers würde ein Client-Update zwingend erfordern. AMF AMF (Action Message Format) ist ein proprietäres, binäres Datenformat, entwickelt von Macromedia. Im Gegensatz zu XMLbasierten Kommunikationen wird hier der Overhead minimiert. Darüberhinaus unterstützt es persistente Verbindungen. Es existieren Bibliotheken für viele Programmiersprachen, die AMF lesen und schreiben können. Servertechnologien http://java.sun.com/javaee �������������������������� Java Enterprise Edition Wie der Name nahe legt, kommt als Programmiersprache Java zum Einsatz. Die Enterprise Edition richtet sich speziell an den Einsatz auf Servern. Die Einrichtung eines Application-Servers ist nicht trivial, außerdem kann das Deployment einer Anwendung Minuten dauern. Insgesamt ist Java Enterprise Edition daher nicht geeignet für Rapid Protoyping. http://www.asp.net ASP.net Innerhalb des ASP.net Frameworks kann in einer beliebigen CLRkompatiblen Programmiersprache entwickelt werden. Hosting angebote sind nicht weitläufig verfügbar. ASP.net wird in aller Regel auf Windows-Maschinen gehostet. Open-Source-Implementierungen existieren zwar, sind aber wenig verbreitet. Mit Visual Studio steht eine ausgereifte IDE zur Verfügung. 22 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://php.net Frameworks: CakePHP http://www.cakephp.org/ Symfony http://www.symfony-project.org/ http://rubyonrails.com Kapitel 1: Recherche Bestandsaufnahme Servertechnologien PHP Für PHP existieren einige Frameworks, die die Entwicklung beschleunigen. Von vielen Webhostern werden PHP-fähige Pakete günstig angeboten. Es stellt keine besonderen Anforderungen an Hardware oder Betriebssystem. PHP konnte eine breite Masse von Entwicklern hinter sich bringen. Ruby on Rails Der jüngste Vertreter unter den Servertechnologien stellt ein komplettes Framework zur Verfügung. Anwendungen werden in Ruby geschrieben. Das Framework gibt Model/View/Controller als DesignPattern vor, enthält eine komplette Test-Suite und erleichtert die Erstellung von Webservices. Hosting-Angebote gibt es kaum. Ortungstechniken Wie am Endgerätemarkt abzulesen ist, existieren im Moment weit weniger Geräte mit GPS, als Geräte ohne. Es gibt andere Ansätze zur Ortung, die auch implementiert werden sollen: http://www.gps.gov GPS Das Global Positioning System ist ein Satelliten-Netzwerk, das auf dem Endgerät eine genaue Positionierung ermöglicht. Seit Abschaltung der künstlichen Unschärfe sind Genauigkeiten im 10mBereich kein Problem mehr. http://www.skyhookwireless.com WLAN, Bluetooth, RFID Der amerikanische Anbieter Skyhook bietet Ortung via WLAN an. Skyhook hat eine Datenbank von WLAN-Hotspots und deren Position erstellt. Man scannt die Umgebung nach Hotspots und kann dadurch die eigene Position ausreichend genau bestimmen. Triangulation als Ortungstechnik kann in ähnlicher Form auch auf Bluetooth und RFID übertragen werden. GSM-Zellenortung Solange ein Mobiltelefon am Netz angemeldet ist, befindet es sich in einer bestimmten GSM-Zelle. Diese Zellen können von wenigen hundert Metern bis zu wenigen Kilometern groß sein. Dennoch ist diese Ortung für das System interessant, weil sie für jedes Gerät zur Verfügung steht. http://geography.about.com/library/weekly/aa050400a.htm http://de.wikipedia.org/wiki/Triangulation_%28Messtechnik%29 23 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Recherche-Ergebnisse Entscheidungen Client Aufgrund der bisherigen Verbreitung und der Kompatibilität wird in J2ME entwickelt. Dies schließt die nachträgliche Entwicklung von Clients auf anderen Plattformen jedoch nicht aus. Kommunikation Meine Wahl beim Datenaustausch fiel auf SOAP. Leider erwies sich das in den ersten Tests als schlechte Wahl für J2ME und Rails, weswegen auf REST umgestellt wurde. Java bietet zwar in der Micro Edition eine Webservice-Schnittstelle an, hat aber sehr genaue Vorstellungen, wie diese zu implementieren ist (document/literal). Rails, auf der anderen Seite, bietet Webservices in einem anderen Format an (rpc/encoded). Server Die Server-Umgebung wird Ruby on Rails sein. Die Diplomarbeit konzentriert sich nicht speziell auf den Server, sondern mehr auf Konzept, Client und Schnittstelle. Ruby on Rails ist die beste Wahl, da ein schnelles Prototyping beim Server auch beim Client schneller zu Ergebnissen führt. Endgerät Während der Entwicklung wird maßgeblich auf Nokia 6300 und SonyEricsson K800i entwickelt. Beides sind recht verbreitete Geräte mit vielen Gemeinsamkeiten. Beide Geräte stehen mir bereits zur Verfügung, was die Entscheidung begünstigte. J2ME im Detail Die Micro-Edition von Java (kurz: JME oder J2ME) ist speziell für mobile Geräte gedacht. Damit gehen ein geringerer Speicherverbrauch, ein kleineres Display und andere Eingabegeräte einher. Die meisten aktuellen Geräte sind auf dem Stand CLDC 1.1 (Connected Limited Device Profile) sowie MIDP 2.0 (Mobile Information Device Profile). Dies stellt bestimmte Anforderungen an Displaygröße, Speicher und Konnektivität. Ein MIDP 2.0-Gerät hat eine Displayauflösung von mindestens 96x54 Pixeln, mindestens 384 Kilobyte Speicher und eine Internetverbindung. Um auf der Höhe der Zeit bleiben zu können, werden Java Specification Requests (JSR) definiert. Dies sind optionale Module, die ein Gerät optional unterstützen kann. Location- und 3D-Funktionen sowie Dateisystemzugriff sind prominente Beispiele. Erstellt wird ein MIDlet, also ein Programm, das von javax.microedition.midlet.MIDlet erbt. MIDlets sind (analog zu Applets) Programme, die nicht eigenständig laufen, sondern von einer Umgebung ausgeführt werden. MIDlets haben die Zustände aktiv, pausiert und zerstört. Sowohl das Programm als auch das 24 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Recherche-Ergebnisse J2ME im Detail Gerät können Zustandsübergänge auslösen. So kann das Programm bei einem eingehenden Anruf pausiert oder beendet werden. Wie Java-Programme der Standard-Edition werden auch MIDlets in einer virtuellen Maschine ausgeführt. Auch hier wird ein striktes Sicherheitssystem (Sandbox) implementiert. Der Benutzer kann genau definieren, welche Anwendung etwas (nicht) darf. REST im Detail REpresentational State Transfer ist ein zustandsloses Protokoll zum Austausch von Daten. Es verwendet HTTP zur Übertragung von XML-Nachrichten. Ressourcen (zum Beispiel Benutzer) sind durch eindeutige URIs adressiert. Ein URI könnte dabei so aussehen: http://www.example.com/users/2 Die URI in Verbindung mit einem der HTTP-Verben GET, PUT, POST oder DELETE bewirkt verschiedene Aktionen bei der adressierten Ressource. So wird bei einem GET einfach das adressierte Objekt wie im folgenden Beispiel ausgegeben: <?xml version="1.0" encoding="UTF-8"?> <user> <created-at type="datetime"> 2008-05-23T18:19:35+02:00 </created-at> <email>[email protected]</email> <id type="integer">7</id> <nickname>amenthes</nickname> <password>swordfish</password> <phone-number>+49 123 4567</phone-number> <updated-at type="datetime"> 2008-05-23T18:19:35+02:00 </updated-at> </user> Sendet man im HTTP-Content ein solches XML-Fragment mit, kann man per HTTP-PUT eine Ressource erzeugen oder per HTTP-POST ändern. Zentrale Unterschiede von REST und dem bekannteren SOAP sind: — SOAP ist nicht ressourcenorientiert sondern prozedurorientiert. — SOAP besitzt neben der eigentlichen Nachricht noch einen Webservice-Deskriptor und ein Webservice-Verzeichnis. Beides ist in REST nicht vorhanden. — SOAP nutzt statt dem HTTP-Header eigene Felder in der Nachricht (SOAP-Envelope) zum Adressieren der Prozedur. SOAP kann daher auch über andere Protokolle als HTTP verwendet werden. — SOAP-Nachrichten sind umfangreicher. Ruby on Rails im Detail Ruby on Rails ist ein Framework in der Programmiersprache Ruby. Seit ca. 2005 existiert ein großer Hype um die Sprache. URI: Unified Resource Identifier. Internetadressen sind Spezialfälle von URIs. 25 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 1: Recherche Recherche-Ergebnisse Ruby on Rails im Detail Bekannte, große Ruby on Rails-Projekte — Xing: http://xing.com — Twitter: http://twitter.com/ — Basecamp: http://www.basecamphq.com/ Ruby Ruby ist eine objektorientierte, interpretierte Programmiersprache mit dynamischer Typisierung. Durch Sprachkonstrukte wie „method_missing“ wird Meta-Programmierung erleichtert. Mit einem eigenen Paketmanager (gem), einer interaktiven Shell (irb) und einem eigenen make-Tool (rake) bietet Ruby wertvolle Tools, die man z.B. in PHP vermisst. Negativ bleibt anzumerken, dass Ruby erst mit der kommenden Version 2 Unicode-Unterstützung haben wird. Obwohl die Sprache Ruby seit 1995 existiert, kam sie erst 2005 zu großer Bekanntheit. Innerhalb von einem Jahr stiegen die Buchverkäufe bei O’Reilly um 1500% und zogen mit denen von Python gleich. Hintergrund war die Vorstellung des Frameworks „Ruby on Rails“ im Juli 2004. Ruby on Rails Das Framework wurde von David Heinemeier Hansson bei 37signals entwickelt. Es wurde während der Entwicklung von Basecamp programmiert. Ruby on Rails (oft „Rails“ abgekürzt) entstand also nicht in theoretischen Überlegungen, sondern aus einem praktischen Anwendungsfall. Die zentralen Philosophien von Rails sind: — Convention over Configuration — Don’t repeat yourself Der initiale Entwicklungsaufwand wird stark gemindert, da Rails für Alltagsaufgaben bereits die richtigen Werkzeuge mitbringt. Wenn man eine Tabelle „Users“ und ein Model „User“ hat, weiß Rails, dass diese zusammen gehören. Erst wenn man solche Konventionen nicht nutzen möchte, wird eine eigene Konfiguration nötig. Weiterhin werden für die grundlegenden Aufgaben so genannte Scaffolds automatisch generiert. Diese decken Auflistung, Anzeige, Erstellung, Löschen und Bearbeiten von Objekten ab. Eine Rails-Anwendung folgt dem Model-View-Controller-Pattern. Integrierte automatisierte Tests und Erweiterbarkeit durch Plugins komplettieren das Framework. REST in Verbindung mit Ruby on Rails Seit Rails 1.2 wird REST unterstützt. Seit Version 2 ist REST der standard Webservice-Typ. SOAP-Unterstützung kann aber nachgerüstet werden. Durch die MVC-Architektur ist für REST nur ein alternativer View nötig – der standardmäßig erzeugt wird, wenn man an eine URL „.xml“ anhängt oder per HTTP-Header den Content-Type text/ xml anfordert. Ruby book sales surpass python: http://radar.oreilly.com/archives/2005/12/ruby-book-sales-surpass-python.html 26 „Can’t be a statue of me, no reason for it.“ Firefly 1-04: Jaynestown, Adam Baldwin Kapitel 2 Konzept Im Konzept findet die Festlegung der Anwendungsfunktionen statt. Am Ende der Konzeptphase ist das Projekt auf dem Papier fertig. Sie beginnt mit einer Definition bestimmter Begriffe und Rahmenbedingungen. Diese Aufstellung wurde im Verlauf der Konzeption immer wieder verändert und ergänzt. Als nächstes werden Anwendungsbeispiele gesammelt, aus denen wiederum abstrakte Use Cases abgeleitet werden. Diese münden im Storyboard. Beim Storyboard handelt es sich um eine vereinte Darstellung von Sitemap und Wireframes. Das original-Storyboard finden Sie im Anhang. Aus dem Storyboard ist leicht abzulesen, an welchen Stellen welche Art von Kommunikation stattfindet. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Definitionen In der technischen Planung des Projekts werden die folgenden Begriffe verwendet: In der Programmierung wird jeweils der englische Begriff (eingeklammert) verwendet. Es handelt sich nicht notwendigerweise um die Begriffe, die später in der Anwendung verwendet werden. Diese sind gesondert zu entwickeln. Client Das Programm, das auf dem Endgerät läuft. Benutzer (User) Ein Benutzer ist einerseits der Mensch, der den Client verwendet, andererseits eine Entität, die serverseitig zur Authentifizierung gespeichert werden muss. Diese besteht aus: — Handynummer — Passwort — Nickname (optional) — E-Mailadresse (optional) Ort (Place) Ein Ort ist ein (beliebiger) bestimmter Platz auf der Welt. Es kann sich dabei z.B. um den eigenen Vorgarten handeln. Der Ort hat nur ein paar Einstellungen und beinhaltet Einträge. Wird er „geöffnet“ kann man ihn weiterhin betrachten, auch wenn man den Ort verlässt. Beim Anlegen gilt der Punkt, an dem man sich befand, als „neuen Ort erstellen“ aus dem Standby-Menü ausgewählt wurde. — Position (Über den Umweg des PositionHelpers kann ein Ort mehrere Positionseinträge haben um z.B. sowohl per WLAN als auch per GPS auffindbar zu sein.) — Erstellungszeitpunkt — Letzter Änderungszeitpunkt — Besitzer — Titel — Farbe — Privat/Öffentlich? — Größe — Sprache [deutsch, englisch, ...] — Art [Fun / Info] — Statistisch: Wie oft aufgerufen — Statistisch: Wie oft durchquert Positions-Helfer (PositionHelper) Die sinnvollste – weil eindeutigste – Form der Ortung sind Geokoordinaten. Um andere Ortungsmethoden als GPS zu ermöglichen, gibt es den PositionHelper. Es handelt sich dabei um Einträge, die zum Beispiel WLAN-SSIDs mit Geokoordinaten verbinden. Positionshelfer werden weder dem Benutzer noch dem Administrator angezeigt, sie dienen lediglich der internen Verknüpfung. Ein Positionshelfer wird immer dann angelegt oder aktualisiert, wenn ein Client mehrere Ortungstechniken an den Server sendet. 28 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Definitionen Zu speichern sind daher die folgenden Eigenschaften: — Referenz-Koordinate — Alternative Ortung (z.B. SSID und Signalstärke) — Stationär (wurde der Punkt an einem anderen, weit entfernten Ort beobachtet? Entscheidet über Brauchbarkeit für eindeutige Ortung.) — Ortungsqualität (Ortungen mit schlechter Qualität können gegen bessere PositionHelper ausgetauscht werden.) Eintrag (Post) Alles, was an Informationen hinterlegt wird, ist ein Eintrag. Ein Eintrag kann Text, Bild, Audio, Video, Weblinks, 3D-Informationen, Programme oder Datei-Downloads als Anhang enthalten. Einträge können Antworten auf andere Einträge sein oder direkt einem Ort zugeordnet sein. Ein Eintrag besteht aus folgenden Informationen: — Erstellungszeitpunkt — Letzter Änderungszeitpunkt — Besitzer — Zuordnung zu einem Ort — Antwort auf einen anderen Eintrag am Ort (optional) — Text — Anhang Anhang (Attachment) Beliebige Daten können als Anhang mitgesendet werden. Soweit möglich werden diese Daten in Client-taugliche Formate konvertiert und innerhalb des Clients angezeigt. — Datei — Content-Type — Größe — Info (bei Bild: Auflösung, bei Audio/Video: Länge) — Anzahl Downloads Meldung (Message) Eine Meldung ist eine einfache Textnachricht, die Admin und Benutzer in Kontakt bringen. So kann zum Beispiel der Admin über eine Sperrung (und deren Grund) informieren, der Benutzer kann Fehler im System oder ungeeignete Inhalte melden. Auch Programmupdates können auf diesem Weg gemeldet werden. Technisch gesehen könnte auch zwischen Mitgliedern ein Nachrichtendienst errichtet werden. Dies soll jedoch vorerst nicht ermöglicht werden. Meldung umfasst die Daten: — Ersteller — Empfänger — Absendezeitpunkt — Lesezeitpunkt — Betreff (optional, bei Nachrichten von Benutzer zu Admin der Einfachheit halber nicht vorgesehen) — Absende-Ort (optional) — Text 29 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Definitionen Einstellung (Setting) Viele Parameter eines Programms können nicht fest verdrahtet werden. Sie müssen in irgendeiner Weise konfigurierbar sein. Dies ist eine Aufstellung dieser Einstellungen. — Schriftgröße innerhalb der Anwendung — Serveradresse (voreingestellt auf Projekt-URL, kann aber geändert werden, möglicherweise auch mehrere URLs) — [Nur Info-Orte / Nur Fun-Orte / Alle Orte] — Meine Sprache [de, en, fr, ...] — Nur Einträge in meiner Sprache anzeigen [ja, nein] — Werden Anhänge automatisch heruntergeladen? [Ja, Nein] (evtl. nach Content-Type unterscheiden) — Benachrichtigungsart [Sound, Vibration, Licht, Keine] — Benachrichtigen bei: [allen Orten, neuen Orten, Orten mit neuen Einträgen, meinen Orten] — Lieblingsfarbe voreinstellen für Orte (Farbwähler oder vordefinierte Palette) — Über mich anzeigen: [Nichts, Nick, Telefonnummer] Wird auf dem Server gespeichert — Passwort Wird auf dem Server gespeichert Neben der Tatsache, dass diese Einstellungen existieren müssen, müssen manche auch auf dem Server gespeichert sein. Dazu werden serverseitig die folgenden Daten vorgehalten: — Einstellung (um welche Einstellung dreht es sich) — Wert (wie ist die Einstellung?) 30 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Interaktionskonzept SK1 zurück hoch SK2 Auswahl, Vor, OK Auswahl runter Typisches Steuerkreuz mit geplantem Navigationskonzept Auf den meisten Handys steht eine 5-Wege Navigation mit zwei zusätzlichen Soft-Keys zur Verfügung. Für die Soft-Keys muss entsprechend eine Beschriftung eingeplant werden, da sich diese Belegung kontextabhängig verändern kann. Der „Content-Bereich“ muss sehr viele Informationen enthalten können und soll deswegen bei Bedarf vertikal scrollen. Damit ist die Hoch- bzw. Runtertaste bereits für die Scrollfunktion bzw. vertikale Auswahl verplant. Die mittlere Taste ist klassischerweise die Auswahl oder Bestätigung des aktiven Menüpunkts. Diese Konvention soll auch in der Anwendung befolgt werden. Sofern links und rechts nicht innerhalb eines Screens gebraucht werden, stehen sie für zurück und Auswahl zur Verfügung. Die Softkeys werden je nach Bedarf mit Funktionen belegt. 31 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Anwendungsbeispiele „There’s no way to design all things for all people. When you’re dealing with the masses, it’s best to try to facilitate behaviour, rather than to predict it. Design, in this context, becomes more about showing what’s possible than showing what’s there.“ George Oates, „Community: From Little Things, Big Things Grow“, A List Apart 06.05.2008 http://www.alistapart.com/ articles/fromlittlethings Obwohl die Applikation keines der möglichen Anwendungsbeispiele speziell fördert, so sind doch die folgenden Nutzungsweisen möglich. Dem Benutzer ist die Nutzung völlig freigestellt, was nahe legt, dass in Zukunft noch andere Anwendungen gefunden werden. Darüber hinaus kann das System als Framework verstanden werden, auf dem andere komplexere oder spezialisiertere Anwendungen aufsetzen. Die Anwendungsbeispiele sind nach drei Achsen kategorisiert: — Touristisch, kommerziell, privat — Involvierend, informierend — Lean-Back, Lean-In kommerziell Kino-Info touristisch privat Gästebuch / Gipfelbuch Klosprüche Timeline Zeitvertreib Lean-Back Virtuelles Geocaching Gastronomie-Bewertung Lean-In Event-Forum Historische Information Kleinanzeige Kleinanzeige Self-Guided Tour Geoblogging Produktinformation Semapedia Qype Mobile Legende Informierend Involvierend Involvierend: Ich werde zum Mitmachen animiert. Informierend: Ich werde lediglich informiert. Lean-In: Ich beschäftige mich aktiv mit dem Inhalt. Lean-Back: Ich lasse mich vom Inhalt unterhalten oder berieseln. 32 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Anwendungsbeispiele Virtuelles Geocaching touristisch / pr ivat Informierend lean-In kommerziell Informierend lean-back Geocaching bezeichnet eine Art Schnitzeljagd mit GPS-Empfänger. Neben einfachen „finde Koordinate X“-Caches gibt es aber auch Multi-Caches, bei denen man von Punkt zu Punkt laufen muss – oftmals mit Rätseln oder Aufgaben, die den nächsten Punkt verraten. Ein solcher Zwischen- (oder End-) Punkt könnte ein virtueller Punkt sein, den man schon durch das Betreten findet. An diesem Punkt könnte die nächste Koordinate oder das nächste Rätsel hinterlegt sein. Kino-Info Sie stehen am Kino und bekommen den Trailer zu den aktuellen Filmen angeboten. Sollte Ihnen der Trailer gefallen haben, können Sie eine Reservierung hinterlassen. Gästebuch / Gipfelbuch involvierend ack lean-b erziell komm ierend inform n a le -in „Ich war hier.“ Diese Worte können nicht nur in einem Buch stehen, sondern auch virtuell hinterlassen werden. Der Gipfelstürmer könnte sich und seine Gruppe fotografieren und das Bild der Nachwelt hinterlassen. Gastronomie-Bewertung Ein Restaurant könnte einen eigenen Spot vor der eigenen Haustür pflegen. Hier können Gäste wie in einem Gästebuch Nachrichten oder Bilder hinterlassen. Potentielle Gäste können sich eine Meinung von dem Restaurant bilden. Historische Informationen touristisch informierend lean-back Sie stehen in der Altstadt an der wichtigen Statue von Graf Franz. Sie haben nur keine Ahnung, wer Graf Franz war und warum er eine Statue mitten auf dem Marktplatz errichtet bekam. Weil Sie mit Ihrem Handy in der Nähe sind, kann es Ihnen hierüber genau Auskunft geben. Nun wissen Sie, wann er lebte und weswegen er so berühmt war. Diese Information kann zum Beispiel als Audio-Datei vorliegen und wird Ihnen vorgesprochen, während Sie die Statue betrachten. Timeline touristisch informierend lean-back An interessanten Orten könnte hinterlegt sein, wie es hier vor vielen Jahren aussah. So könnte eine Art Zeitleiste die Entwicklung eines Stadtzentrums zeigen. Eine Variante hiervon ist das Baustellenschild „Hier entsteht“. Innerhalb des Systems könnte man nicht nur Bilder und Text unterbringen, sondern ein Interview mit dem Bürgermeister und ein 3D-Modell vom entstehenden Haus. Self-Guided Tour touristisch informierend lean-in An einem Informationspunkt (siehe oben) könnten zusätzlich Informationen hinterlegt sein, wo andere interessante Punkte im Ort sind. Ein solcher Ort könnte „verlinkt“ sein, so dass man vom Gerät dorthin geführt wird. 33 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Anwendungsbeispiele Event-Forum Sie befinden sich bei einem Festival und können sich direkt mit den anderen vor Ort austauschen. Außerdem werden vom Veranstalter aktuelle Informationen wie Planänderungen oder die Toilette mit der kürzesten Schlange bereitgestellt. kommerziell involvierend lean-i n Kleinanzeige / Flugblatt / Plakat erziell omm privat/k ierend inform lean-in Sie kennen die Flyer unter Ihrem Scheibenwischer – meist werden sie im kleinen Umkreis um Veranstaltungsorte von Parties verteilt. Dies könnte entfallen, indem man an dem Ort einen solchen Informations-Spot aufsetzt. Wenn gerade keine Party ansteht, könnte man auch Kleinanzeigen darüber realisieren. Zur Verkaufsanzeige kann dann zusätzlich eine kurzes Video angehängt werden. Klosprüche privat involvierend ack lean-b Statt mit Edding die Toilette zu verschandeln, könnte man einfach einen Spruch im Virtuellen für alle Nachfolger hinterlassen. Beliebig Platz ist vorhanden und einen Filzstift braucht man auch nicht. Zeitvertreib privat involvierend lean-back kommerziell informierend lean-back Sie stehen an der Bushaltestelle und starten eine Diskussion. Mit Leuten, die gar nicht da sind. Jeden Morgen und Abend, wenn Sie wieder an der Haltestelle sind, können Sie verfolgen, was andere schrieben und Ihre Meinung hinterlassen. Produktinformationen Während Sie durch den Supermarkt schlendern, informiert Ihr Handy Sie darüber, dass in diesem Gang das Angebot der Woche wartet: 25 Kilo Gehacktes für 2,99 €. Da Sie das unbedingt brauchen, greifen Sie sofort zu. Qype Mobile kommerziell involvierend lean-i n Der Anbieter Qype hat es sich auf die Fahnen geschrieben Lieblings-Orte zu sammeln. Die Koordinaten sind bekannt und könnten ohne großen Aufwand auch über dieses System zugänglich gemacht (und geändert) werden. In der Praxis sind diese Orte (wie bereits beschrieben) oftmals Gastronomiebetriebe. Semapedia touristisch informierend lean-i n Semapedia (siehe Bestandsaufnahme) basiert auf dem Abfotografieren von Barcodes. Für viele Themen ist dies aber gar nicht nötig: Man könnte den zugehörigen Wikipedia-Artikel einfach durch den Ort, an dem man sich befindet, verlinken. Zum Vorteil wird hierbei, dass einigen Wikipedia-Einträgen die Geokoordinaten bereits zugeordnet sind. Anders als beim Semapedia-Projekt müsste man sich nicht auf Wikipedia beschränken, sondern könnte auch den ansässigen Heimatschutzverein verlinken, der eventuell wesentlich umfangreichere Informationen bereithält. 34 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Anwendungsbeispiele Geoblogging privat involvierend lean-i n An für den Besucher besonderen Orten könnte er einen geografischen Blog führen. Anders als beim klassischen Blog stünde der Bezug zum Ort und nicht zur Zeit im Vordergrund. Außerdem könnten andere, interessierte Personen mitbloggen. 35 Position ändern Benutzer Objekte auflisten Diplomarbeit / SS 2008 Betreuer: Objekt erstellen Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Objekt ändern Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Objekt löschen Server (www) Eintrag moderieren Use Case-Beschreibung Admin Benutzer sperren Meldung beantworten Akteur: Client (selbständig) gelesen! Anhang herunterladen Einstellung speichern Endgerät Server (Webservice) Use Cases des Endgeräts Position ändern (durch Gehen, Fahren) Während der Benutzung wird der sich bewegen. Das OrtBenutzer anlegen System muss also auf dem Laufenden bleiben, welche Orte gerade Eintrag anlegen im Umkreis vorhanden sind. Sind neue Orte in der unmittelbaren Nähe, kann das System sich beim Ort Benutzer auswählen melden. Informationen lesen Client herunterladen Registrieren Benutzer Position ändern Gelesen! Senden Objekte auflisten Daten hochladen Um die Übersicht zu erleichtern wird, dem Benutzer angezeigt, ob Beiträge noch ungelesen sind. Daten Hierzu muss beim Lesen eines Beiauswählen trags übertragen werden, dass er gelesen wurde. Objekt erstellen Objekt ändern Ändern/Löschen von Eintrag Objekt löschen Anhang herunterladenMeldung lesen Server (www) Eintrag moderieren Lädt den Anhang zum Anzeigen für den Benutzer herunter Admin Meldung verfassen Benutzer sperren Meldung beantworten Eintrag lesen Benutzer Einstellung ändern Einstellung serverseitig speichern Endgerät Eine Hand voll Einstellungen müssen auf dem Server vorliegen, also Meta-Informationen lesen muss der Client diese auch senden können. Im Hintergrund laufen lassen gelesen! Daten aufzeichnen Anhang herunterladen Endgerät Einstellung speichern Use Cases von Benutzer und Endgerät (Text siehte nächste Seite) Server (Webservice) Ort anlegen Eintrag anlegen Ort auswählen Ort anlegen Eintrag lesen Eintrag anlegen Daten hochladen Ort auswählen Daten auswählen Eintrag lesen Ändern/Löschen von Eintrag Daten hochladen Meldung lesen Ändern/Löschen von Eintrag Meldung verfassen Benutzer Einstellung ändern Meta-Informationen lesen Im Hintergrund laufen lassen Endgerät Meldung lesen Server (Webservice) Meldung verfassen Einstellung ändern Daten aufzeichnen 36 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Use Cases Akteur: Benutzer (regelmäßig) Ort anlegen Einen Ort kann man immer anlegen, egal wo man sich befindet. Dafür muss nur eine beliebige Positionierung vorhanden sein. Ort anlegen beinhaltet zwangsläufig „Eintrag anlegen“, da ein Ort selbst erst einmal nur einen optionalen Titel und ein paar Einstellungen enthält. Eintrag anlegen/beantworten Erstellt einen Eintrag und ordnet ihn einem Ort oder einem anderen Eintrag zu. Ort aus mehreren nahen Orten auswählen Sollte an meiner momentanen Position mehr als ein Ort vorhanden sein, muss ich einen davon auswählen können, den ich nun lesen möchte. Eintrag lesen/abspielen Zeigt den Eintrag an, sofern es sich um einen unterstützten Dateityp handelt. Daten hochladen zum Eintrag (Bild/Ton/ Video/3D/Sonstige Daten) (Beinhaltet „Daten aufzeichnen“ oder „Daten aus Dateisystem auswählen“) Daten aus Dateisystem auswählen Wählt eine beliebige Datei aus dem Dateisystem aus. Löschen/Ändern von Einträgen Ob Einträge geändert oder gelöscht werden können, steht noch nicht fest. Prinzipiell möchte ich diese Möglichkeit jedoch offen halten. Im Hintergrund laufen lassen Da wir nicht die einzigen sind, die um die Gunst des Benutzers buhlen, muss das System im Hintergrund laufen können. Es wird weiterhin neue Informationen holen und sich bei Bedarf melden. Meta-Informationen zu Eintrag lesen (Datum, Autor, ...) Einträge haben eine Reihe von Meta-Informationen, die man sich anzeigen lassen kann. Dazu gehören: Erstell-Zeitpunkt, Autor, Lesezeitpunkt (wann habe ich den Eintrag zum ersten Mal gelesen?), von wievielen Leuten wurde der Eintrag gelesen und wie oft wurde der Ort durchquert? Daten aufzeichnen (Foto, Audio, Video) direkt im Programm Die Handyfunktionen verwenden, um die Eintrags-Daten direkt im Programm zu erstellen. 37 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Use Cases Akteur: Benutzer (selten) Meldung lesen Meldungen sind zum Beispiel Programmupdates. Auch könnten „Antworten auf meine Einträge“ aufgelistet sein. Diese können beim Start angezeigt werden. Meldung verfassen Eine Meldung geht direkt an den Admin. Vorrangig kann sie genutzt werden, um ungeeignete Inhalte zu melden. Einstellungen ändern Verschiedene Einstellungen, siehe oben „Konventionen“. Enthält den Client-Use-Case “Einstellung serverseitig speichern“. Akteur: Benutzer (im Web) Informationen lesen Client herunterladen Registrieren Benutzer Position ändern Objekte auflisten Objekt erstellen Objekt ändern Objekt löschen Server (www) Eintrag moderieren Admin Benutzer sperren Meldung beantworten Use Cases im Web gelesen! Informationen einholen (Texte, Erklärung etc.) herunterladen Der Benutzer wird Anhang das Programm wahrscheinlich über eine Website oder via WAP beziehen. Auf dieser Seite sollten weitere InforEinstellung speichern Endgerät mationen enthalten sein. Server (Webservice) Client herunterladen Das eigentliche Herunterladen auf den Rechner bzw. das Endgerät. Ort anlegen Registrieren Eintrag anlegen Der Benutzer wählt einen Benutzernamen und ein Passwort, mit Ort auswählen dem er im System identifiziert wird. Eintrag lesen Daten hochladen Daten auswählen Ändern/Löschen von Eintrag 38 Meldung lesen Ände Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Use Cases Akteur: Admin CRUD für Benutzer, Orte, Einträge und Meldungen Auflisten (und Filtern), Anlegen, Ändern und Löschen von Benutzern, Orten, Einträgen und Meldungen gehören zu den Standard aufgaben, die ein Admin erledigen können muss. Meldung beantworten Beantwortet eine Meldung im System. Benutzerdaten übertragen Es kann zum Beispiel vorkommen, dass ein Nutzer einen neuen Vertrag abschließt, seine erstellten Beiträge aber erhalten möchte. Dazu muss ein Administrator seinen alten Benutzer auf seinen neuen Login umstellen können. Benutzer sperren Benutzer, die durch unerwünschtes Verhalten auffallen, können durch einen Admin gesperrt werden. Einträge moderieren (z.B. Verschieben) Es kann vorkommen, dass ein Eintrag verschoben werden muss. Möglicherweise wurde einfach geantwortet, obwohl ein neuer Ort sinnvoller gewesen wäre. Weitere Akteure Webserver und Webservice sind theoretisch Akteure, jedoch sind sie nur Mittel zum Zweck und daher in den beschriebenen UseCases implizit enthalten. 39 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard Legende 01 Sonderfall: erster Start Registrierung Programmstart Möglicher Weg 07 Möglicher Weg m. Bedingung Text Hilfe (Hilfe, About) 09 Einstellung ändern 11 Meldung lesen 12 Meldung schreiben 17 Ort löschen 02 Ort anlegen 08 Ortung möglich Standby Abkürzung/ Sonderfall 05 06 Anhang auswählen Anhang aufnehmen Einstellungen 10 Meldungen auflisten 03 Eintrag anlegen Ort/Eintrag Ansicht Eigener Ort löschen 04 Ort in der nähe abbrechen Screen Wichtiger Screen 18 Minimiert 13 16 Ort bearbeiten Eigener Eintrag löschen 15 Eintrag löschen 14 Eintrag bearbeiten 02 Standby Client-Sitemap Wenn Sie diese Arbeit auf Papier lesen, finden Sie eine Sitemap zum Ausklappen im Anhang. 01 Registrierung A links hoch B C rechts Beschreibung Der erste Start erfordert eine Reihe von Grundeinstellungen. Dieser Screen taucht daher nur beim ersten Start auf. Diese und andere Einstellungen findet man später unter 08 Einstellungen. Aktionen runter Tasten-Erklärung Links: Nichts Rechts: Nichts Hoch/Runter: Zwischen einzelnen Feldern auswählen A/B/C: Nichts / Auswahl eines Punktes / Speichern Hintergrundprozesse — Benutzername/Passwort mit dem Server abgleichen — GPS-Gerät einrichten (sofern vorhanden) 40 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard 02 Standby Beschreibung Hauptansicht bei normalem Programmstart. Zeigt eine ständig aktuelle Auswahl von Orten an, sowie die Option, einen neuen Ort zu erstellen. Auch Einstellungen, Minimieren und Meldungen finden sich hier wieder. Bei bestimmten Fehlern (Internetverbindung oder Ortungsproblem) wird anstatt der Orte der Fehler angezeigt. Aktionen Wireframe für 02 Standby Links: Nichts Rechts: Aktuellen Menüpunkt auswählen Hoch/Runter: Einträge durchgehen A/B/C: Nichts / Aktuellen Menüpunkt auswählen / Nichts Hintergrundprozesse — — — — Mit Ortungsgeräten verbinden Positionsdaten an Server schicken, Orte aktualisieren Abrufen der Nachrichten. Regelmäßiger Abgleich von Position mit bekannten Orten 03 Ort/Eintrag Ansicht Beschreibung In diesem Screen wird ein Ort mit allen seinen Einträgen (chronologisch) angezeigt. Je nach Einstellung werden Anhänge automatisch heruntergeladen. Aktionen Wireframe f. 03 Ort/Eintrag Ansicht (gekürzt) Links: Zurück zu 02 Standby Rechts: Nichts Hoch/Runter: Einträge der Reihe nach rückwärts/vorwärts durchgehen A/B/C: Bearbeiten (nur bei eigenen Einträgen und Orten) / Herunterladen bzw. abspielen (nur bei linearen Medien) / Antworten Hintergrundprozesse — Download-Queue für Anhänge 04 Eintrag anlegen Beschreibung Beim Antworten auf einen bestehenden Ort (und auch nach dem Anlegen eines neuen Ortes) wird man zum Eingeben eines neuen Eintrags aufgefordert. Dieser kann aus Text, einem Anhang oder beidem bestehen. Der Anhang kann aus dem Dateisystem geholt oder neu aufgezeichnet werden. Aktionen Links: Zurück zu vorherigem Screen (07 oder 03) Rechts: Bestätigen (senden,anlegen) Wireframe für 04 Eintrag anlegen 41 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard Hoch/Runter: Wechseln zum Text-Bereich / wechseln zum AnhangBereich A/B/C: Abbrechen / In Eintragsfeld bzw. Anhang-Feld gehen / Senden (nur möglich, wenn Text oder Anhang ausgewählt wurde) Hintergrundprozesse — Eintrag an Server senden 05 Anhang auswählen Beschreibung Wählt per systemeigenem Filebrowser eine Datei zum Anhängen aus. Dies kann jeder beliebige Dateityp sein. Aktionen Tastenbelegung entsprechend Handyhersteller Hintergrundprozesse keine 06 Anhang aufzeichnen Beschreibung Zeichnet einen Anhang direkt in der Anwendung auf. Zeigt für Foto und Video einen Sucher an, für Audio nur ein Aufnahme-Symbol. Aktionen Links: Zurück (abbrechen) Rechts: Zurück (Aufnahme übernehmen) Hoch/Runter: Nichts / Nichts A/B/C: Abspielen / Aufnahme, Stop / Zurück (Aufnahme übernehmen) Hintergrundprozesse Wireframe f. 06 Anhang aufzeichnen — Mit dem entsprechenden Gerät (Kamera/Mikro) verbinden — In einen Zwischenspeicher schreiben — Daten an den Server senden 07 Ort anlegen Beschreibung Jeder Benutzer darf beliebig viele Orte anlegen. Dazu muss er in irgendeiner Form geortet sein. Aktionen Links: Abbrechen Rechts: Weiter zu Eintrag anlegen Hoch/Runter: Zwischen einzelnen Punkten wechseln A/B/C: Abbrechen / Eintrag zum Ändern auswählen / Weiter zu Eintrag anlegen Wireframe für 07 Ort anlegen Hintergrundprozesse — Daten zwischenspeichern und 06 Anhang aufzeichnen aufrufen. 42 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard 08 Einstellungen Beschreibung Listet verschiedene Optionen auf (siehe Definitionen - Einstellungen (Settings)). Jede Option hat einen prägnanten Namen, ihr aktueller Wert ist zu sehen. Aktionen Links: Zurück zu 02 Standby Rechts: Option ändern Hoch/Runter: Vorige, nächste Option auswählen A/B/C: Zurück zu 02 Standby / Option ändern / Nichts Hintergrundprozesse Wireframe für 08 Einstellungen keine 09 Einstellung ändern Beschreibung Eine einzelne Option wird vom Benutzer bearbeitet. Neben dem Titel und der Einstellung zeigt das Gerät nun auch eine kurze Beschreibung der Einstellung. Aktionen Links: Zurück zu 08 Einstellungen ohne zu speichern oder links navigieren (z.B. bei Text) Rechts: Zurück zu 08 Einstellungen mit speichern oder rechts navigieren (z.B. bei Text) Hoch/Runter: Vorige, nächste Option auswählen (sofern es eine Auswahlliste ist) A/B/C: Zurück zu 08 Einstellungen ohne Speichern / Zurück zu 08 Einstellungen mit Speichern / Nichts Wireframe für 09 Einstellung ändern Hintergrundprozesse — Geänderte Optionen im Gerät persistent speichern — Geänderte Optionen, die serverseitig bekannt sein müssen, (Sichtbarkeit des eigenen Namens etc.) werden an den Server übertragen. 10 Meldungen auflisten Beschreibung Listet Nachrichten auf, die über das System geschickt wurden. Aktionen Links: Zurück zu 02 Standby Rechts: Nichts Hoch/Runter: Vorige, nächste Nachricht markieren A/B/C: Zurück zu 02 Standby / Aktuelle Nachricht lesen / Nachricht verfassen Wireframe f. 10 Meldungen auflisten 43 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard Hintergrundprozesse — Nachrichtenliste vom Server abrufen — Nachrichtenstatus auf dem Server speichern 11 Meldung lesen Beschreibung Die zuvor ausgewählte Nachricht wird komplett angezeigt. Aktionen Wireframe für 11 Meldung lesen Links: Zurück zu 10 Meldungen auflisten Rechts: Nichts Hoch/Runter: Text scrollen (falls nötig) A/B/C: Zurück zu 10 Meldungen auflisten / Zurück zu 10 Meldungen auflisten / Antworten Hintergrundprozesse — Nachricht als gelesen markieren 12 Meldung schreiben Beschreibung Eine neue Nachricht an den Administrator schreiben Aktionen Links/Rechts/Hoch/Runter: Im Text navigieren. A/B/C: Zurück zu 10 Meldungen auflisten / Nachricht senden / Nichts Hintergrundprozesse — Nachricht an den Server schicken Wireframe für 12 Meldung schreiben Randbemerkung: Screen 13 wurde nicht ausgelassen oder vergessen.Er entfiel später im Konzept. Es handelte sich um den Screen „Metadaten anzeigen“ 14 Eintrag bearbeiten Beschreibung Einen bestehenden eigenen Eintrag nochmal überarbeiten. Dieser Screen orientiert sich stark an 04 Eintrag anlegen. Aktionen Links: Zurück zu vorherigem Screen (03) Rechts: Bestätigen (senden) Hoch/Runter: Wechseln zum Text-Bereich / Wechseln zum AnhangBereich A/B/C: Abbrechen / In Eintragsfeld bzw. Anhang-Feld gehen / Löschen (wenn nichts verändert wurde) oder Speichern (wenn Änderungen gemacht wurden) Hintergrundprozesse — Eintrag an Server senden Wireframe für 14 Eintrag bearbeiten 44 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Client-Storyboard 15 Eintrag löschen Beschreibung Lässt einen Benutzer seinen Eintrag löschen. Aktionen Links: Zurück zu vorherigem Screen (03) Rechts: Nichts Hoch/Runter: Scrollen bei langem Text A/B/C: Abbrechen / Löschen / Nichts (Die „löschen“-Taste wechselt die Position, um versehentliches Auslösen zu erschweren). Hintergrundprozesse — Eintrag vom Server löschen Wireframe für 15 Eintrag löschen 16 Ort bearbeiten Beschreibung Ein eigener Ort kann nachträglich geändert werden. Der Screen ist ähnlich dem 07 Ort anlegen. Aktionen Links: Abbrechen Rechts: Änderungen übernehmen Hoch/Runter: Zwischen einzelnen Punkten wechseln A/B/C: Abbrechen / Eintrag zum Ändern auswählen / Löschen (wenn noch keine Änderung gemacht wurde) oder Speichern (wenn eine Änderung gemacht wurde) Hintergrundprozesse — Änderungen an den Server senden Wireframe für 16 Ort bearbeiten 17 Ort löschen Beschreibung Eine gewünschte Löschung muss hier nochmals bestätigt werden. Aktionen Links: Abbrechen Rechts: Nichts Hoch/Runter: Scrollen bei langem Eintrag A/B/C: Abbrechen / Löschen / Nichts Hintergrundprozesse Ort auf dem Server löschen 18 Hilfe, Meldungen Beschreibung Wireframe für 17 Ort löschen Blendet Hilfe- oder Textmeldungen ein. Eine beliebige Taste bestätigt die Meldung. Enthält keine weiteren Aktionen oder Hintergrund-Prozesse. 45 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Kommunikation Die folgenden Kommunikationsvorgänge können im Produkt vorkommen: — — — — — — — — — — Positions-Update (damit werden Orte abgerufen) Ort ansehen (damit werden Einträge am Ort abgerufen) Anhang abrufen Eintrag anlegen oder ändern Eintrag löschen Ort anlegen oder ändern Ort löschen Meldungen empfangen Meldung senden Serverseitige Einstellung ändern 46 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Server-Sitemap Für die Serveranwendung liegen zwei Sitemaps vor: Eines für den Admin und eines für Besucher. Besucher About Download Impressum Admin Benutzer (Liste) Benutzer erstellen Benutzer anzeigen Benutzer bearbeiten Benutzer löschen Ort anzeigen Ort bearbeiten Ort löschen Eintrag anzeigen Eintrag bearbeiten Eintrag löschen Meldung anzeigen Meldung bearbeiten Meldung beantworten Benutzer übertragen Orte (Liste) Registrieren Ort erstellen Login Einträge (Liste) Eintrag erstellen Meldungen (Liste) Meldung erstellen Sitemap für den Admin-Bereich Meldung löschen Admin-Sitemap Der Administrator braucht im Wesentlichen die Möglichkeit, die Datenbankeinträge zu administrieren. Legende Möglicher Weg Menü-Item Unterseite 47 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 2: Konzeption Server-Sitemap Besucher-Sitemap Besucher About Download Impressum Für denAdmin Besucher steht eine Microsite zur Verfügung. Sie besteht aus den wesentlichen Informationen, die das Produkt erklären und eine Anmeldung ermöglichen. Sie hat keine verzweigte Benutzer (Liste) Hierarchie, sondern besteht aus fünf Bereichen: About, Download, Impressum, Registrieren und Login. Benutzer erstellen Benutzer anzeigen Benutzer bearbeiten Ort anzeigen Ort bearbeiten Eintrag anzeigen Eintrag bearbeiten Meldung anzeigen Meldung bearbeiten Orte (Liste) Registrieren Ort erstellen Login Einträge (Liste) Besucher Sitemap Eintrag erstellen Meldungen (Liste) Meldung erstellen 48 „I will paint my picture Paint myself in blue and red and black and gray All of the beautiful colors are very, very meaningful Yeah but you know gray is my favorite color I felt so symbolic yesterday If I knew Picasso I would buy myself a gray guitar and play“ Counting Crows – Mr. Jones Kapitel 3 Produktdesign Nachdem im vergangenen Kapitel festgelegt wurde, was das Produkt können soll, wird in diesem Abschnitt festgelegt, wie es wirken und aussehen soll. Dieses Kapitel enthält Punkte, die normalerweise in einem Style guide zu finden wären, so zum Beispiel Wording, Schrift, Farben und Logo. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 3: Produktdesign Design-Direction Zur Stilfindung der Anwendung werden möglichst unterschiedliche Stilvorlagen erstellt. Sie basieren auf anwendungsverwandten Begriffen. Diese Vorlagen werden einem breiten Publikum vorgestellt, das mit dem Thema der Anwendung vertraut ist. Begriffe Die Anwendung ist ein Produkt ihrer technischen Umsetzbarkeit, nicht einer bestimmten Notwendigkeit oder Problemstellung. Sie hat als solche einen eher spielerischen und experimentellen Wert. Der Ort ist der zentrale Gedanke. An ihm werden Informationen hinterlassen und abgerufen. Brainstorming spielerisch Spaß, Party, Menschen, Interaktion, Spiele, Schnitzeljagd, Verbindung, Garten, Straße, Gebäude, Umgebung, Stadt, Land, Fluss, Twister, jonglieren, bunt, leicht, schnell, rennen Brainstorming Navigation, finden, entdecken Schifffahrt, Sterne, Sextant, entdecken, Mathematik, Landkarte, alt, Navigationssystem, Flugzeuge, Tower, GPS, Enterprise Brainstorming technisch Maschine, Computer, Metall, Kunststoff, Spiegelzeigermessgerät, Digitalanzeigen, Kabel, Anschlüsse, Funk, GPS, Wellen, Radar, Landkarte, Ortung, präzise, unmenschlich, kalt, künstlich, Schrauben, Schraubenzieher, Schraubenschlüssel, Diagramme Die ausgewählte Stilvorlage. Weitere finden Sie im Anhang Stil-Test. Testergebnis Von 13 eingeholten Meinungen plädierten zehn für diese Vorlage. Assoziationen waren: Vernetzung, Zusammenhang, dynamisch, komplex aber leicht nachvollziehbar, positives Gefühl, Drogenfilm, minimalistisch. Die Assoziationen stimmen weitgehend mit denen überein, die zum Ausdruck kommen sollten. Die gezeigte Vorlage dient als Ausgangspunkt für die weitere Entwicklung. 50 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 3: Produktdesign Elemente Name Die folgenden Kriterien spielten bei der Namensfindung eine Rolle: — Kein technischer Bezug — Kein Akronym — Kurz/prägnant — Mobiler Charakter — Freier Domainname Der Produktname wird „Pock-it“ sein. Es handelt sich dabei um ein Wortspiel mit dem englischen Wort „pocket“ (Tasche). Es wird genauso ausgesprochen. Wording Die technischen Begriffe Place und Post werden zu Gunsten einer eigenen Begriffswelt gegen die folgenden Wörter ausgetauscht: — Bubble (war im Konzept: Ort, Point of Interest, Place): Bubble bedeutet übersetzt (Seifen-) Blase. Die trägt der Tatsache Rechnung, dass der Ort eigentlich eher eine Kugel als ein Punkt ist. In einer Bubble ist Platz für Einträge, die so genannten Blips. — Blip (war im Konzept: Eintrag, Post): Der Ausdruck Blip kommt eigentlich aus der Radartechnik. Dort beschreibt er einen Punkt, den zum Beispiel ein Flugzeug hinterlässt. — Nachricht (war im Konzept: Meldung, Message) Schrift Als Schrift kommt die Droid Schriftenfamilie zum Einsatz. Sie enthält vier Schnitte mit Serifen und drei ohne. Sie ist hochgradig bildschirmoptimiert, weist aber auch gedruckt eine gute Lesbarkeit auf. Droid wurde als Teil der android-Plattform von der Ascender Corporation erstellt. Sie steht unter der Apache Lizenz 2.0 und ist somit für ein Open-Source-Projekt sehr gut geeignet. Droid Serif ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ abcdefghijklmnopqrstuvwxyzäöü ß?!01234567890@€ Droid Sans ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ abcdefghijklmnopqrstuvwxyzäöü ß?!01234567890@€ Droid Sans Mono ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ abcdefghijklmnopqrstuvwxyzäöü ß?!01234567890@€ 51 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 3: Produktdesign Elemente Farben Die Farben leiten sich direkt aus dem erstellten Stildokument ab. Es kommen hochgradig gesättigte Farben zum Einsatz. Diese können sich auf dem Farbkreis an beliebiger Stelle zwischen 44° und 193° befinden. Die folgenden Farbfelder sind als Beispiele zu verstehen. Zu den bunten Farben kommen schwarz, weiß und zwei Grautöne (10% und 80%) hinzu. 0° 44° 193° Schwarz RGB: 0 / 0 / 0 Fließtext, Menüeinträge Hellblau RGB: 84 / 218 / 255 HSB: 193° / 67% / 100% Logo-Blau Farb-Auswahl anhand vom Farbkreis 80% Grau RGB: 51 / 51 / 51 Fließtext, Menüeinträge Grün RGB: 158 / 247 / 80 HSB: 92° / 68% / 97% Logo-Grün 10% Grau RGB: 229 / 229 / 229 Layout-Helfer (Trennlinen etc.), Schatten weiß RGB: 255 / 255 / 255 Hintergrund Gelb-Orange RGB: 255 / 221 / 0 HSB: 52° / 100% / 100% Aktiver Menüpunkt 52 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 3: Produktdesign Elemente Logo Das Logo erklärt in Kurzform die Anwendung. Es zeigt eine festgesteckte Information. Offen bleibt, ob es ein Notiz-Zettel oder ein Foto ist. Als Schrift kommt Droid Serif zum Einsatz. Es ist selbst in sehr kleinen Pixelmaßen noch gut zu lesen und zu erkennen. Selbst bei den winzigen Ausmaßen von 70×40 Pixeln ist das Logo noch erkennbar Pock- it Screendesign Hier werden zwei Screens vorgestellt, die repräsentativ für die gesamte Anwendung stehen. Das Screendesign wurde für eine Auflösung von 240×320 Pixeln bei 200dpi entwickelt. Diese Spezifikation trifft auf beide Testgeräte (Nokia 6300 und SonyEricsson K800i) zu. Animation und Veränderliches Der Hintergrund besteht aus schwach sichtbaren Bubble-Symbolen. Der überwiegende Teil ist grau. Für echte Bubbles in der Umgebung werden bunte Bubbles in entsprechender Farbe dargestellt. Der Hintergrund verändert sich also abhängig von der Position der Person. Wer dieses Detail kennt, kann es auch zur Navigation nutzen. Animiert ist auch der Auswahl-Cursor. Er fährt bei Tastendruck „hinter“ den Menüpunkten nach oben oder unten. 53 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Screen-Wechsel zwischen zwei Hierarchie-Ebenen Kapitel 3: Produktdesign Screendesign Animation und Veränderliches Für den Wechsel zwischen zwei unterschiedlichen Screens ist ebenfalls eine Animation geplant. Wechselt man in einen nachfolgenden Screen, so fährt der aktuelle zur linken Seite heraus und der neue kommt von der rechten Seite herein. Geht man in der Hierarchie zurück, verläuft die Animation anders herum. Allgemeine Struktur Die Anwendung besteht aus einer Kopfzeile, dem Inhalts-Teil und schließt mit der Softkey-Beschriftung ab. Vom äußersten DisplayRand zu Texten werden 14 Pixel Abstand gehalten (Ausnahme: Unterer Rand). Standby-Screen Formale Aufteilung des Bildschirms Der Standby-Screen enthält ein großes Logo in der Kopfzeile. Der Inhaltsbereich zeigt das Hauptmenü. Er enthält die Hauptfunktionen der Anwendung: Die sichtbaren Bubbles, neue Bubble erstellen und Nachrichten lesen. Die Zusatzfunktionen Verstecken, Einstellungen, Hilfe und der Menüpunkt Beenden finden sich in der zweiten Hälfte wieder. Sie sind etwas kleiner dargestellt. Der Bildschirm schließt mit der Beschriftung der Softkeys ab. Im Standby-Screen wird hier lediglich „Öffnen“ benötigt. Jeder Menüpunkt hat ein eigenes Icon. Standby (Originalgröße) Für sichtbare Bubbles ist dies ein Kreis leichter Kontur. Er hat die vom Ersteller gewählte Farbe. Für eine neue Bubble ist es ein grauer Kreis mit gut sichtbarem Plus-Zeichen. Nachrichten verwenden die Brief-Metapher für ihr Icon. Verstecken ist ein sehr heller, grauer Kreis. Einstellungen deutet Einstellungs-Einträge an und Beenden verwendet die „X“-Konvention. Hilfe (nicht sichtbar) erhält ein Fragezeichen. Details Standby (vergrößert) Die Kopfzeile ist 92 Pixel hoch. In dieser sitzt das Logo (152×87 Pixel) optisch zentriert. Haupt-Einträge sind mit einer Schriftgröße von 8pt gesetzt. Der Zeilenabstand ist im vorliegenden Beispiel 24px. Zusatzeinträge sind in 7pt gesetzt und haben einen Zeilenabstand von nur 24px. Titel, die zu viele Zeichen enthalten, werden nach rechts hin ausgeblendet. So ist klar, dass hier noch Buchstaben folgen würden. Gleiches gilt, wenn das Menü zu lang für den Bildschirm ist. Bubbles mit ungelesenen Blips werden fett dargestellt, die Anzahl der ungelesenen Blips wird zusätzlich angegeben. Bei 54 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 3: Produktdesign Screendesign Struktur Standby Nachrichten wird nur die Anzahl der ungelesenen Nachrichten fett dargestellt. Die Icon-Größe orientiert sich an der Zeilenhöhe, ist also maximal 24x24 Pixel. Inhaltliche Screens Der „Bubble anzeigen“-Screen (vergrößert) zeigt einzelne Blips untereinander an. Die Kopfzeile der inhaltlichen Screens enthält ein wesentlich kleineres Logo. Außerdem wird der aktuelle Screen-Name zur Orientierung gezeigt. Der Haupt-Teil zeigt ein langes Band von Blips. Es scrollt unter dem Viewport hoch und runter. Der jeweils aktuelle wird gelb hinterlegt. Die Softkeys passen sich dem jeweils aktuellen Element an. Elemente im Haupt-Teil können die folgenden sein: BubbleBeschreibung (einmalig als erstes Element), Text-Blips, Bild-Blips, Video-Blips, Audio-Blips und Download-Blips. Bildbasierte Medien werden serverseitig auf die korrekte Breite skaliert. Blips mit Anhängen haben zwei Darstellungs-Arten. Die eigentliche Ansicht (wenn die Daten vorliegen) und die Vorschau (vor und während des Downloads) Details Die Kopfzeile ist mit 44 Pixeln etwa halb so groß wie die des Standby-Screens. Der Screen-Titel ist in einer Größe von 6pt gesetzt. Texte im Hauptteil sind 8pt groß. Metainformationen (Autor, Datum) sind 6pt groß. Vorschau-Bilder oder Icons sind bis zu 48x48 Pixel groß. Die Breite der Textspalte beträgt 212 Pixel. Ebenso breit sind Bilder und Videos. Beachten Sie, wie der Inhalts-Teil immer den ausgewählten Blip zentriert. Außerdem passt sich die Belegung der Soft-Keys an. 55 „This is tailor-made, what’s the sense in waiting?“ Dashboard Confessional – As Lovers Go Kapitel 4 Technische Umsetzung Die technische Umsetzung beschreibt den Ist-Zustand der entwickelten Anwendung. Zunächst wird definiert, welcher Teil der Anwendung im Rahmen der Diplomarbeit umzusetzen ist, gefolgt von der Einrichtungsanleitung für die Entwicklungsumgebung. Angewandte Design Patterns sowie das Entity-Relationship-Model liefern die Grundlagen für Client- und Serverimplementation. Die Kommunikation wird im Detail beschrieben. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Eingrenzung der Umsetzung Im Rahmen dieser Diplomarbeit wird ein Prototyp umgesetzt. Der Funktionsumfang wird anhand der Client-Sitemap dargestellt: Eingrenzung der Umsetzung: Die helle Fläche ist zur Umsetzung geplant. Ausgewählt ist der gesamte Kernbereich des Projekts. Es wird möglich sein, Daten mit einem Server auszutauschen. Die allgemein formulierte Positionierung wird sich im Rahmen der Diplomarbeit auf die Verarbeitung von GPS beschränken. 57 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Entwicklungs vorbereitung http://www.eclipse.org Sowohl Java als auch Ruby lässt sich hervorragend in Eclipse entwickeln. Eclipse ist eine offene IDE, für die sehr viele Plugins existieren. Es ist auf allen gängigen Plattformen verfügbar. Ich werde im Folgenden auf meine Konfiguration von Eclipse eingehen, da die Auswahl und Einrichtung von Plugins einen enormen Zeitaufwand bedeuteten. Voraussetzungen – J2ME http://java.sun.com/javase/downloads/index.jsp http://java.sun.com/products/sjwtoolkit/ download.html http://developer.sonyericsson.com/site/global/ docstools/java/p_java.jsp http://www.forum.nokia.com/info/sw.nokia. com/id/cc48f9a1-f5cf-447b-bdba-c4d41b3d05ce/ Series_40_Platform_SDKs.html Um Java Micro Edition-Applikationen zu entwickeln, benötigt man unabhängig von der Entwicklungsumgebung den Java Development Kit (Nachfolgend JDK genannt) und das Wireless Toolkit (Nachfolgend WTK genannt). Das JDK enthält gleichzeitig die Java Runtime Environment, die wir später für Eclipse ohnehin benötigen. Beide Pakete werden nach dem Herunterladen einfach installiert. Optional kann man die Emulatoren der verschiedenen HandyHersteller installieren. Im Gegensatz zu Suns WTK basieren diese Emulatoren auf echten Geräten. Ich habe zusätzlich die Toolkits von SonyEricsson und Nokia Series 40 installiert. Voraussetzungen – Ruby on Rails http://www.ruby-lang.org http://rubyonrails.com Randbemerkung: Kurz vor Abgabe der Diplomarbeit wurde Ruby auf Version 1.8.7 und Rails auf Version 2.1 aktualisiert. http://dev.mysql.com http://dev.mysql.com/downloads/mysql/ 5.0.html#downloads Ruby on Rails besteht aus zwei Komponenten: Der Programmiersprache Ruby und dem Framework Rails. Nachdem man Ruby (1.8.6) heruntergeladen und installiert hat, wird Rails (2.0.2) einfach nachinstalliert. Ruby bringt seinen eigenen Paketmanager „gem“ mit. In einer Kommandozeile führt man den Befehl gem install rails -–include-dependencies aus. Im Normalfall kommt Rails seit Version 2 mit einem SQLiteAdapter. Um etwas performanter zu arbeiten, sollte man zusätzlich eine MySQL-Datenbank sowie den MySQL-Adapter installieren. Den MySQL-Datenbankserver kann man auf der MySQL-Download-Seite als fertiges Binary für verschiedene Betriebssysteme beziehen. Es reicht für den Entwicklungsrechner, den Anweisungen bei der Installation zu folgen, da eine weitere oder aufwändigere Konfiguration nicht erforderlich ist. Der MySQL-Adapter für Ruby wird ebenfalls per gem nachinstalliert. Führen Sie hierzu den Befehl gem install mysql in einer Kommandozeile aus. Eclipse installation http://www.eclipse.org/downloads Die aktuelle Version von Eclipse ist 3.3.2 (Titel: „Europa“), sie ist auf der Eclipse Download-Seite zu beziehen und enthält rudimentäre Plugins für Java-Entwicklung. Eclipse benötigt eine installierte JavaRuntime, die wir bereits mit dem JDK installiert haben. 58 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Entwicklungsvorbereitung Eclipse-Installation Eclipse-Plugins Die einzelnen Plugins werden in der Regel über die Eclipse-eigene Paketverwaltung installiert. Installationsanleitungen sind auf der jeweiligen Plugin-Homepage deutlich gekennzeichnet und mit einem Klick zugänglich. Nur bei abweichender Konfiguration wird gesondert darauf eingegangen. http://subclipse.tigris.org http://subversion.tigris.org http://eclipseme.org http://antenna.sourceforge.net http://proguard.sourceforge.net http://aptana.org Subclipse Subclipse integriert Versionsverwaltung mit Subversion in Eclipse. Synchronisation, Committen, Mergen und alle weiteren Funktionen stehen somit direkt in der IDE zur Verfügung. Dieses Plugin ist für die eigentliche Entwicklung nicht unbedingt nötig ist aber sehr empfehlenswert. Subclipse integriert sich in die „Team“-Funktionalitäten von Eclipse und wird analog zu CVS verwandt. EclipseME MIDlets unterscheiden sich geringfügig von normalen Java-Applikationen. Diese Unterschiede sowie das Ansprechen von Emulatoren werden von EclipseME bereitgestellt. Zu EclipseME gehören zwei weitere Downloads, die optionale Fähigkeiten bereit stellen. Ersteres ist Antenna, welches das Tool Ant für mobile Anwendungen erweitert, das Zweite ist ProGuard, ein Obfuscator. Nach der Installation wird EclipseME über die Eclipse-Einstellungen konfiguriert. Hier gibt man den Pfad zu WTK, Antenna und ProGuard an. Weiterhin werden die Emulatoren importiert. Aptana Studio / RadRails Um Ruby on Rails zu entwickeln, bietet sich das Eclipse-Plugin RadRails an. RadRails war früher ein eigenständiges Plugin und wurde nun in das größere Aptana Studio integriert. Aptana Studio steht als Eclipse Plugin zur Verfügung und wird als Zip-Datei heruntergeladen und in den Eclipse-Ordner entpackt. RadRails kann danach aus Aptana Studio installiert werden. Eclipse Paketverwaltung: Hauptmenü „Help“ – „Software Updates“ – „Find and Install“ Obfuscator: Ein Mittel zur Verschleierung von Programmcode. Wird bei J2ME standardmäßig zur Verkleinerung der Programme eingesetzt. 59 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Design-Patterns Design-Patterns oder Entwurfsmuster sind Lösungsvorschläge für wiederkehrende Problemstellungen bei der Software-Entwicklung. Es gibt keine klare Grenze, ab der eine Lösung zum Design-Pattern aufsteigt. Populäre Design-Patterns haben den Vorteil, dass sie durch ihren Namen die Dokumentation stark erleichtern. Ein komplexes Konstrukt kann einem anderen Entwickler mit dem Verweis auf das angewandte Entwurfsmuster erklärt werden. Im folgenden Abschnitt werden die eingesetzten Muster beschrieben. Model-View-Controller User zeigt Zustand Aktion View Controller verändert informiert registriert sich bei Model MVC kann als Zusammenspiel von anderen Patterns verstanden werden. Dies sind: Beobachter und Kompositum. MVC selbst ist im Buch „Design Patterns“ nicht erwähnt. Wie der Name nahe legt, teilt sich die Implementation in drei Teile auf: Das Model, den View und den Controller. Das Model enthält den Zustand und die Daten des Programms. Der View stellt Daten dar. Dies kann eine grafische Repräsentation oder eine beliebige andere Ausgabe sein. Der Controller muss in der Lage sein, Benutzerinteraktion entgegen zu nehmen und entsprechende Manipulationen am Model anzustoßen. Beobachter (Observer) Der Beobachter ist ein Verhaltensmuster. Ein Beobachter ist ein abhängiges Objekt, das von Veränderungen in Kenntnis gesetzt wird. Es tritt innerhalb des MVC-Patterns auf. Ein View (der Observer) registriert sich einmalig bei einem Model. Ein Model (das Observable) informiert die registrierten Views, sobald sich Änderungen ergeben. Observer und Observable sind Interfaces in der Standard-Edition von Java. In Java Micro Edition und Ruby kommen sie nicht vor und müssen selbst geschrieben werden. vgl. Design Patterns: 1.1 What is a Design Pattern? S. 2ff vgl. Design Patterns: 5 Behavioural Patterns S. 293ff 60 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Design-Patterns Kompositum (Composite) Ein Kompositum kann „Teil-Ganzes“-Hierarchien abbilden. Eingesetzt wird dies beispielsweise bei User-Interfaces. Sowohl einzelne Komponenten (Text-Eingabefeld) als auch Kompositionen (DatumsEingabefeld aus drei Text-Eingabefeldern) werden gleich behandelt und können ihrerseits wiederum in größeren Kompositionen verwendet werden. Kommando (Command) Der Command-Pattern gehört zu den Verhaltensmustern und ermöglicht es, den auslösenden und ausführenden Teil einer Anwendung zu entkoppeln. Gewöhnlicherweise kommt er bei UserInterfaces zum Einsatz. Ein Tastendruck erzeugt ein Kommando und ein Teil der Programmlogik reagiert darauf. Einzelstück (Singleton) Als Einzelstück bezeichnet man Klassen, von denen man genau nur eine Instanz erzeugen kann. Der Pattern gehört daher zu den Erzeugungsmustern. Ein Beispiel aus der Java Micro Edition ist die Klasse Display. Da es nur ein physikalisches Display gibt, wäre es nicht sinnvoll, zwei oder mehr Instanzen von Display zu haben. Die Funktion getInstance() ist der einzige Zugang zur Display-Instanz. vgl. Design Patterns: 4 Structural Patterns, S. 163ff vgl. Design Patterns: 5 Behavioural Patterns, S. 233ff vgl. Design Patterns: 3 Creational Patterns, S. 127ff 61 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Entity-Relationship-Model Das ERM leitet sich direkt aus den Definitionen ab. Ein User sendet und empfängt Messages. Er nimmt weiterhin eine undefinierte Anzahl Settings vor. Er erstellt Places und Posts, von denen er dann der Besitzer ist. Ein Place enthält immer mindestens einen Post. Ein Post kann eine Antwort auf einen bestimmten anderen Post sein. Posts können Attachments enthalten. Sofern mehrere Ortungstechniken unterstützt werden, werden PositionHelper erzeugt. 1 sendet, empfängt User * Message * Setting hat 1 1 1 erstellt * Place 1 enthält 1..* * erstellt 0..1 Post enthält erstellt automatisch PositionHelper 1 0..1 Ist Antwort auf 1 Attachment Das Entity-Relationship-Model 62 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Client) Packages und Klassen de.amenthes.gi Fast das gesamte Projekt befindet sich im Package de.amenthes.gi. Die Domain amenthes.de ist mein HauptDomainname, und gi ist die Kurzfassung des Diplomtitels (Geospatial Informationaccess). In de.amenthes.gi befindet sich ausschließlich die Klasse Gi, welche von javax.microedition.midlet.MIDlet erbt. de.amenthes.gi.communication Das communication-Package enthält einen Teil der Klassen, die mit Kommunikation zu tun haben. Die enthaltenen Klassen sind: — Base64: Enthält eine abstrakte Methode zum Encodieren von Daten in Base64. — GiStreamConnection: Abstrakte Verbindungsklasse. Sie stellt für alle abgeleiteten Klassen Service-Funktionen zur Verfügung. Außerdem werden hier einmalig HTTP-Header gesetzt. — PlaceFetcher: Erbt von GiStreamConnection und ist speziell für die Belange von Places ausgelegt. PlaceFetcher holt Places vom Server, parst sie mit Hilfe von PlaceHandler und stellt sie dem Programm als Vektor zur Verfügung. — PlaceHandler: Erbt von org.xml.sax.helpers.DefaultHandler. XML-Parser für Places, benötigt die JSR-172 (Webservice-API) auf dem Endgerät. — PostFetcher: Erbt von GiStreamConnection und ist speziell für die Belange von Posts ausgelegt. PostFetcher holt Posts eines bestimmten Places vom Server, parst sie mit Hilfe von PostHandler und stellt sie dem Programm als Vektor zur Verfügung. — PostHandler: Erbt von org.xml.sax.helpers.DefaultHandler. XML-Parser für Posts, benötigt ebenfalls JSR-172. de.amenthes.gi.controller Das Controller-Package enthält die abstrakte Klasse Controller. In ihr sind einmalig die verschiedenen Commands als static final definiert. Somit stehen sie allen Controllern und Views zur Verfügung. Die weiteren Klassen sind: — Filebrowser: Ermöglicht das Durchsuchen des Dateisystems auf dem Endgerät. FileBrowser wird verwendet, um Dateien an einen Post anzuhängen. — PlaceEditor: Wird beim Anlegen oder Ändern eines Place benutzt. — PlaceShow: Wird zum Anzeigen eines Place verwendet. — PostEditor: Wird beim Anlegen oder Ändern eines Posts benutzt. 63 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Client) Packages — Register: Wird beim ersten Start des Programms gezeigt. Es war ursprünglich geplant, eine Benutzerregistrierung durchzuführen. Im Moment beherbergt sie die Bluetooth-Geräte-Suche. — SettingEditor: Zeigt alle aktuellen Settings an und ermöglicht deren Änderung. — Standby: Der Standard-Screen, der Orte und das Hauptmenü anzeigt. Alle Controller sind so angelegt, dass sie in ihrem Konstruktor ein Model in der Variablen model und einen View in der Variablen view erzeugen. Im MIDlet muss also nur ein Controller instanziiert werden. Die Variablen view und model sind als public deklariert. So kann das MIDlet den jeweiligen View als aktuelles Displayable setzen. Controller implementieren das Interface CommandListener. Sie nehmen, gemäß den beschriebenen MVC- und Command-Patterns, die Benutzer-Interaktion entgegen. de.amenthes.gi.model Im Model ist der größte Code-Anteil enthalten. Hier werden Daten verarbeitet und vorbereitet. Hier laufen Internetverbindungen und Dateisystemoperationen ab. Alle Model-Klassen sind direkt oder indirekt von der Klasse Model abgeleitet. Sie implementiert den Observable-Teil des Observer-Patterns – also die Möglichkeit, Views beim Model zu registrieren. Die Klasse ThreadedModel ist eine abstrakte Klasse, die von Model erbt. Sie implementiert zusätzlich java.lang.Runnable. Alle aufwändigeren Operationen, insbesondere Datenverbindungen, werden in eigenen Threads abgearbeitet. Die Klassen FileBrowser, PlaceEditor, PlaceShow, PostEditor, Register, SettingEditor und Standby in diesem Package sind die Models zu den bereits beschriebenen Controllern. Weitere Klassen in diesem Package: — Place: Simple Java-Klasse zum Speichern einzelner Places. Enthält außer Setter- und Getter-Methoden nur toXML(), was einen String im XML-Format zurück gibt. — Post: Analog zu Place werden hier Posts gespeichert. — Setting: Eine umfassende Klasse, die das Lesen und Schreiben von Einstellungen aus dem geräteeigenen javax.microedition.rms.RecordStore abstrahiert. de.amenthes.gi.view.lowfi In diesem Package ist das prototypische User-Interface untergebracht. Ein Interface View enthält die abstrakte Funktion update(). Sie ist notwendig, um den Observer-Teil vom ObserverPattern zu implementieren. Die update()-Funktion wird bei Veränderung vom Model aufgerufen. Die Klassen FileBrowser, PlaceEditor, PlaceShow, PostEditor, Register, SettingEditor und Standby in diesem Package sind die Views zu den bereits beschriebenen Controllern. Sie erben je nach Darstellung von javax.microedition.lcdui.Form oder javax.microedition.lcdui.List, sind also LCDUI-Interfaces, die nicht in ihrer Darstellung beeinflusst werden können. 64 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Client) Packages Eine weitere Klasse in diesem Package ist Loading. Dies ist ein Controller- und Model-loser View, der bei Datenübertragung an den Server zwischengeschaltet wird. Sowohl PlaceEditor als auch PostEditor verwenden ihn. de.amenthes.queue Dieses Package ist unabhängig vom Projekt, daher ist es nicht im Package gi. Es kümmert sich ausschließlich um Binärdaten Up- und Downloads – also Videos und Fotos zum Beispiel. Es enthält drei Klassen: — QueueItem: Eine Zeile in der Liste von Up- oder Downloads. Speichert sämtliche Informationen über den Vorgang. — QueueEmptyException: Exception, wenn keine weiteren Einträge mehr in der Liste sind. — QueueManager: Die Hauptklasse. Sie implementiert einen Singleton-Pattern: Der Konstruktor ist private, und die static final-Variable INSTANCE enthält die einzige Instanz eines QueueManagers. Zusätzlich gibt es das Interface QueueListener, welches zwei abstrakte Funktionen definiert. Klassen, die den QueueManager verwenden, können den QueueListener implementieren, um Fortschrittsanzeigen zu erhalten. Klassendiagramm (vereinfacht) Da das Projekt über 40 Klassen und Interfaces enthält, ist hier nur eine vereinfachte Fassung dargestellt. Eigenschaften und Methoden sind ausgeblenden. Weiterhin sind nur die Klassen von de.amenthes.gi enthalten. javax.microedition.midlet.MIDlet Gi javax.microedition.lcdui.List javax.microedition.lcdui.CommandListener java.lang.Runnable view controller model Model Controller ThreadedModel communication Standby Standby Standby PlaceHandler PlaceEditor PlaceEditor PlaceEditor PlaceFetcher org.xml.sax.helpers.DefaultHandler Place PlaceShow PlaceShow PlaceShow PostEditor PostEditor PostEditor SettingEditor SettingEditor SettingEditor Filebrowser Filebrowser Filebrowser Register Register Register Post View Base64 GiStreamConnection PostFetcher PostHandler Setting Loading javax.microedition.lcdui.Form Klassendiagramm. Eine größere Version finden Sie im Anhang: Klassendiagramm 65 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Client) Bibliotheken http://www.medien.ifi.lmu.de Im Prototyp wird eine Bibliothek eingesetzt. Sie kümmert sich um die Verbindung zu einem Bluetooth-GPS-Empfänger und liefert Geokoordinaten zurück. Die Bibliothek steht unter der LGPL-Lizenz. Erstellt wurde sie von der Lehr- und Forschungseinheit Medieninformatik der Universität München. Liste der möglichen Probleme In der derzeitigen Fassung sind viele potentielle Problemquellen noch unbehandelt. Diese offenen „Baustellen“ sollen noch bearbeitet werden. Damit sie nicht in Vergessenheit geraten, habe ich nach und nach die folgende Liste zusammengetragen: — Keine Internetverbindung — Installation funktioniert nicht (Gerät inkompatibel) — Telefon kann keine Dateizugriffe (JSR-75) — Telefon kann keine Bluetooth-Verbindung (JSR-82) — Programm kann keine JSR 172 (Webservice API) — Programm kann keine JSR 179 (Location API) — Datenübertragung schlägt fehl (Position-Orte) — Datenübertragung schlägt fehl (Einträge) — Datenübertragung schlägt fehl (Anhang nachladen) — Datenübertragung schlägt fehl (Einstellung) — Datenübertragung schlägt fehl (Meldungen empfangen) — Datenübertragung schlägt fehl (Meldung senden) — Der Ort wurde in der Zwischenzeit verlassen. (Beim Posten von Einträgen) — Bei einem Eintrag wurde weder Anhang noch Text angegeben. — Authentifizierung schlägt fehl. (Beim Senden von Meldung, Ort oder Eintrag an den Server.) Die Fehler benötigen unterschiedliche Arten der Behandlung. In vielen Fällen (Zum Beispiel falscher Benutzername und/oder Kennwort) reicht eine Information des Benutzers aus. In anderen Fällen ist eine umfangreichere Lösung nötig – so zum Beispiel, wenn einzelne JSR-Funktionen nicht zur Verfügung stehen. GPS-Bibliothek: http://www.hcilab.org/documents/tutorials/BT_GPS/BT_GPS.htm LGPL-Lizenz: http://www.gnu.org/licenses/lgpl.txt 66 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Server-ClientKommunikation Positions-Update (= Orte abrufen) RFC2616: HTTP/1.1 http://www.ietf.org/rfc/rfc2616.txt Randbemerkung: Theoretisch sind auch komplexe Formen möglich. Im vorliegenden Konzept sind jedoch nur Kreise vorgesehen. Url: <servername>/places Der Client sendet bei Bedarf eine HTTP-GET-Anfrage an den Server mit allen bekannten Positionierungsdaten im HTTP-Content. Bedarf besteht bei GPS dann, wenn die eigene Position um ein gewisses Maß verändert wurde. Bei anderen Ortungstechniken (WLAN, Bluetooth, GSM-Zellenortung), sobald neue Geräte in Reichweite sind. Der Server antwortet mit einer Liste von Orten. Der Client wählt aus der Liste diejenigen aus, die gerade in „Reichweite“ sind (Orte können unterschiedliche Größen haben). Der Client kennt in der Regel also mehr Orte, als er dem Benutzer anzeigt. Diese Untergruppe der gerade sichtbaren Orte wird ständig aktualisiert, wann immer sich die Position verändert. Das ermöglicht einerseits eine intelligente Vor-Auswahl auf der Serverseite (Zum Beispiel mit Richtung und Geschwindigkeit arbeiten, um eine sinnvolle Auswahl zu treffen), andererseits können so später andere Ortungstechniken nachgerüstet werden. Weiterhin können so auch Orte übertragen werden, an deren eigentlicher Position überhaupt keine Netzverbindung verfügbar ist. Der Server kann die verschiedenen Ortungsmechanismen intern weiter verarbeiten, um zum Beispiel eine Karte von WLAN-Accesspoints bereit zu stellen. Ort ansehen (= Einträge abrufen) Url: <servername>/places/<place-id>/posts Interessiert sich der Benutzer für einen im Menü angezeigten Ort, so kann er ihn auswählen. Hierbei sendet das Gerät eine Authentifizierung, die abspielbaren Content-Types und die ID des Ortes. Der Server antwortet mit einer Liste von Einträgen. Diese enthält neben dem Text und einigen Meta-Informationen auch URLs zu den Anhängen oder konvertierten Versionen der Anhäge. Serverseitig kann gespeichert werden, dass der Ort auf dem aktuellen Stand bekannt ist – so können später „ungelesene Einträge“ gesondert hervorgehoben werden. Anhang abrufen Url: (Abhängig vom Speicherort auf dem Server) Der Client ruft die bereitgestellte URL per HTTP-GET auf. Der Server antwortet mit dem Inhalt oder dem HTTP-Header „404 Not found“. 67 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Server-Client-Kommunikation Eintrag anlegen Eintrag anlegen Url: <servername>/places/<place-id>/posts Der Client sendet seine Authentifizierung und die Eintragsdaten per HTTP-PUT oder -POST. Zu den Eintragsdaten gehört auch, zu welchem Ort der Eintrag gehört und ob es zum Beispiel die Antwort auf einen speziellen, anderen Eintrag ist. Der Server antwortet mit dem HTTP-Header „201 Created“ und der angelegten Ressource im HTTP-Content, wenn alles in Ordnung ist. Andere Statuscodes werden als Fehlschlag gewertet. So könnte beispielsweise einfach zur Eingabe oder zum StandbyScreen zurückgekehrt werden oder eine Fehlermeldung eingeblendet werden. Eintrag ändern Url: <servername>/places/<place-id>/posts/<post-id> Der Client sendet Authentifizierung, Eintrag-ID und neue Daten per HTTP-POST an den Server. Der Server antwortet bei Erfolg mit einem der HTTP-Header 200-202 oder 301 (OK, Created, Accepted, Moved Permanently). Andere Header werden als Fehlschlag gewertet und wie bei „Eintrag anlegen“ verarbeitet. Eintrag löschen Url: <servername>/places/<place-id>/posts/<post-id> Der Client sendet seine Authentifizierung und die Eintrag-ID per HTTP-POST oder HTTP-DELETE an den Server. Der Server antwortet bei Erfolg mit einem HTTP-Header „302 Found“. Dieser sagt aus, dass die Ressource vorhanden ist (war), leitet dann aber auf eine andere URL um (im Browser wäre dies eine Auflistung aller Einträge). Misserfolg könnte über die Statuscodes „401 Unauthorized“ oder „404 Not found“ gemeldet und verarbeitet werden. Orte manipulieren Url: <servername>/places bzw. <servername>/places/<place-id> Orte anlegen, ändern und löschen funktioniert analog zu den beschriebenen Vorgehensweisen bei „Eintrag“. Meldungen senden und empfangen Url: <servername>/messages bzw. <servername>/messages/<message-id> Das Empfangen und Senden von Meldungen funktioniert analog zu „Einträge abrufen“ und „Eintrag erstellen“. Einstellungen senden Url: <servername>/settings bzw. <servername>/settings/<setting-id> Einstellungen senden funktioniert analog zu „Eintrag ändern“. 68 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Server) Models Die Klassen Place, Post, Setting und User erben alle von ActiveRecord::Base, einer Rails-eigenen Klasse. Somit stehen ihnen von Haus aus alle Felder der zugehörigen Datenbanktabelle zur Verfügung. Konfiguriert werden müssen nur: — Der Zusammenhang der Models, entsprechend den Assoziationen aus dem Entity-Relationship-Model. — Die nötigen Validierungen. Place beispielsweise überprüft, ob ein existierender User angegeben wurde. Post überprüft, ob User und Place sinnvoll sind. Views (XML) Für den REST-Webservice kommt es auf die views im XML-Format an. Hier sind besonders posts/index und places/index wichtig. Der Places/index Scaffold kann ohne Veränderung eingesetzt werden. Posts/index wurde um einige zusätzliche Informationen angereichert. So wird zum Beispiel statt der User-ID der Username des Besitzers übertragen. Views (HTML) Die HTML-Views sind für das Administrations-Interface. Hier können alle Inhalte mit einem normalen Web-Browser administriert werden. Als Ausgangspunkt dienten auch hier die Scaffolds, es wurden jedoch etwas umfangreichere Änderungen vorgenommen. Places Places/index, places/edit, places/new und places/show erhielten eine zusätzliche Kartenansicht. Auf der OpenStreetmapKarte wird dargestellt, wo sich der Place genau befindet. Für edit und new kann dieser Punkt per Mausklick gesetzt werden. Anzeige von Benutzernamen und Verlinkung zugehöriger Posts sind kosmetischer Natur. Posts Posts erhielten eine Anzeige des Besitzers und des übergeordneten Place. Andere Setting- und User-Views wurden nicht geändert und befinden sich noch im ursprünglichen Scaffold-Zustand. Controller ApplicationController Die Klasse ApplicationController erbt von ActionController::Base. Hier können Funktionen und Filter definiert werden, die für alle Controller gelten sollen. Der 69 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 4: Technische Umsetzung Implementation (Server) ApplicationController selbst wird nicht instantiiert. Wäre die Programmiersprache Java, wäre der ApplicationController als abstract definiert. Im vorliegenden Projekt legt er das Render-Layout und die Authentifizierung via HTTP-Basic Authentication fest. Alle folgenden „echten“ Controller erben von ApplicationController. UsersController, SettingsController Diese Controller sind in ihrer ursprünglich generierten ScaffoldForm. Sie wurden bisher nicht verändert. Sie enthalten die Funktionen zum Anlegen, Auflisten, Anzeigen, Ändern und Löschen von Users und Settings. PlacesController Der PlacesController erhielt zusätzliche Funktionen, um die Kartenansicht vorzubereiten. Außerdem wurden die Funktionen zum Ändern und Erstellen von Places so erweitert, dass der zugehörige User korrekt dargestellt wird. PostsController Der PostsController enthält ebenfalls Funktionen zum Zuordnen des Benutzers. Eingesetzte Plugins http://www.kanthak.net/opensource/ file_column/ http://www.sourcepole.com/2008/3/23/ maplayers-plugin-for-rails File Column Die File Column ist ein Plugin, das Datei-Uploads und Bildmanipulation vereinfacht. Im Model muss nur ein Feld für den Dateinamen existieren. File Column kümmert sich automatisch um die Ablage und das Löschen von Dateien. MapLayers Um Karten wie Google-Maps oder OpenStreetmaps einzubinden, bietet sich das MapLayers Plugin an. Es kapselt die JavaScriptBibliothek OpenLayers. 70 „Glaub keinem, der Dir sagt, dass Du nichts verändern kannst. Die, die das behaupten, haben nur vor Veränderung Angst.“ Die Ärzte – Deine Schuld Kapitel 5 Wirtschaftliche Überlegungen Um ein erfolgreiches Projekt starten zu können, muss immer auch die wirtschaftliche Komponente Beachtung finden. Zunächst wird erörtert, welche Kosten durch das Projekt entstehen. Im direkten Anschluss wird das Projekt in Hinblick auf Einnahme- und Veröffentlichungsmöglichkeiten beleuchtet. Eine Liste von erwarteten Akzeptanzrisiken schließt den Hauptteil der Diplomarbeit ab. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Kosten Randbemerkung: Dieser Absatz wurde beim Korrekturlesen wiederholt bemängelt da er zu oft das Wort „nicht“ enthält. Ich sage dazu: Macht nichts. Arbeitszeit Geräte/Infrastruktur Lizenzen Servermiete (jährlich) Arbeitsräume (jährlich) Summe Fiktive und reale Kosten Im Rahmen dieser Diplomarbeit wird ein Projekt entstehen, das es verdient, genutzt zu werden. Hinter jedem erfolgreichen Dienst steht ein Businessmodell. Nicht hinter diesem. Die Intention ist nicht, dabei reich zu werden, daher nehme ich nicht den Fall an eine Firma zu gründen. Ich möchte von dem vorliegenden Projekt nicht leben. Dies hat erstaunliche Auswirkungen auf die wirtschaftlichen Überlegungen: Das Projekt entsteht ohnehin im Rahmen meiner Diplomarbeit. Auch wenn ich mich selbst als Kostenfaktor einrechne, muss ich mir kein Gehalt auszahlen. Geräte zur Entwicklung sind vorhanden, Dienstleistungen und Lizenzen ebenso. Um dennoch einen Überblick über die Kosten zu haben, wird in zwei Teilen gerechnet: Dem, was in einem Businessplan stehen müsste und dem, was tatsächlich an Kosten für mich anfällt. Die Arbeitszeit berechnet Rechnerisch Tatsächlich sich aus einem fiktiven Stun28.800 € 0 € densatz von 60 Euro und der Annahme, dass ich 40 Stunden 4.000 € 850 € pro Woche arbeite. Die Diplom 3.500 € 1.254 € arbeit erstreckt sich über 12 200 € 40 € Wochen, was eine Summe von 1.680 € 0 € 28.800 Euro ergibt. In Wirk35.430 € 2.104 € lichkeit entstehen diese Kosten + jährl. 1.880 € + jährl. 40 € nicht. Als Arbeitsgeräte gelten Notebook sowie PC und Testserver. Da ich tatsächlich einen neuen Computer erwarb, schafft ein Teil davon es sogar zu den tatsächlichen Kosten. Der Posten Lizenzen setzt sich zusammen aus dem Einsatz von zwei Windows-PCs sowie Adobes Creative Suite 3 Master Collection. Die Suite schlägt mit rund 3.500 Euro zu Buche, wird aber nur auf einem PC gebraucht. Da eine Studentenlizenz (1.164 Euro) in Frage kommt, fallen nur eine Windows-Lizenz (90 Euro) und die Studentenlizenz für den neuen PC an. Ein Server wird für zweierlei Dinge gebraucht: Einerseits soll natürlich eine Website für das Projekt entstehen, andererseits wird das Projekt selbst durch einen Server bedient. Für den Anfang (und wahrscheinlich für eine ganze Weile) wäre ein virtueller Server ausreichend, der etwa 200 Euro im Jahr kostet. Momentan wird das Projekt bei Host2Day und Sourceforge gehostet. Ein Arbeitszimmer reicht vorerst für diese Art von Projekt. Das zusätzliche Zimmer (20m² zu 7€/m²) würde 1.680 Euro im Jahr kosten. In der realität sind das natürlich keine zusätzlichen Kosten. 72 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Einnahmen http://de.wikipedia.org/wiki/Milton_Friedman http://www.wired.com „There’s no such thing as free lunch.“ Milton Friedman, Ökonom „[…] Friedman was wrong in two ways. First, a free lunch doesn’t neccessarily mean the food is being given away or that you’ll pay for it later–it could just mean someone else is picking up the tab. Second, in the digital realm […] storage, processing power and bandwidth are getting cheaper by the day. […] It’s as if the restaurant suddenly didn’t have to pay any food or labour costs for that lunch.“ Chris Anderson, Wired, March 2008, Free! Why 0.00$ is the future of business, Seite 194 Für ein Produkt – also die angebotene Dienstleistung – dieser Art wird die breite Masse kein Geld bezahlen. Zusätzlich erschwert ein indirekter Netzwerkeffekt den Produktstart. Wenn sich nicht in einer kurzen Zeit viele Benutzer finden, wird das Projekt aussterben. Es bleiben dennoch drei Optionen für kostenlose Dienste: Finanzierung durch Werbung Die geplante Plattform ist eine stark positionsabhängige und sehr aktuelle Kommunikationsform. Das macht sie für gezieltes Marketing äußerst interessant. Auch für kleine Unternehmen käme diese Werbeform in Frage, da man sie sehr gezielt regional einsetzen könnte. Finanzierung durch Premium-Accounts Wie viele Webdienste könnte man auch hier erweiterte Funktionalitäten als Premium-Account anbieten. Würde man beispielsweise einen Euro pro Monat verlangen, wären die laufenden Serverkosten bei 20 Premium-Mitgliedern schon gedeckt. Finanzierung durch externen Service Wie bereits einleitend erwähnt, soll der Dienst mit verschiedenen Ortungstechniken arbeiten können. Es ist anzunehmen, dass auf einem Endgerät mehr als eine Technik zur Verfügung steht. Ortungsdaten werden in regelmäßigen Abständen an den Server übertragen. Anonymisiert spricht nichts dagegen, die Positionsdaten auszuwerten. Dabei entsteht eine Landkarte von WLAN- und Bluetooth-Hotspots. Diese Positionsdaten können wiederum anderen Dienstbetreibern angeboten werden. Indirekter Netzwerkeffekt: Ein System ist für den Benutzer von größerem Nutzen, je mehr andere Nutzer das System benutzen. Beispiel: Ein Faxgerät ist nur nützlich, wenn genügend andere Personen ein Faxgerät besitzen. 73 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Veröffentlichung Die Diplomarbeit http://creativecommons.org/licenses/ by-sa/2.0/de/ Diese Arbeit wird unter einer Creative-Commons-Lizenz veröffentlicht. Gewählt wurde die Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 2.0 Deutschland Lizenz (siehe Anhang) Sie wurde ausgewählt, weil sie leicht verständlich ist und einen gewissen Bekanntheitsgrad erreicht hat. Sie liegt in verschiedenen Varianten vor. So kann genau gewählt werden, was mit einem Werk erlaubt ist und was nicht. Das Projekt Pock-it http://www.gnu.org/licenses/licenses.html http://sourceforge.net/projects/pock-it http://pock-it.org Im Anschluss an diese Diplomarbeit wird Pock-it als OpensourceProjekt weiter bestehen. Das Projekt wird unter der GPLv3 veröffentlicht. Die GPLv3 wurde aus zwei Gründen ausgewählt: 1. Sie enthält ein starkes Copyleft: Wenn abgeleitete Projekte veröffentlicht werden, müssen auch diese veränderten Projekte unter der GPL veröffentlicht werden. Somit fließen Code-Verbesserungen auch wieder an das ursprüngliche Projekt zurück. 2. Sie ist kompatibel zu vielen anderen Opensource-Lizenzen. Der Einsatz von Bibliotheken und anderem Quellcode gestaltet sich einfacher, wenn die Lizenzen miteinander kompatibel sind. Von der GPL gibt es leider keine offizielle deutsche Übersetzung. Da der Haftungsausschluss der englischen Fassung zu weit reicht, ist er nach deutscher Rechtssprechung ungültig. Er muss durch einen zusätzlichen Absatz geregelt werden. Die Sourcecode- und Projektverwaltung wird über Sourceforge abgewickelt werden. Dort kann jeder in den Quelltext Einsicht nehmen. Kompilierte Pakete werden über die Projekt-Website und Sourceforge verteilt. Der Dienst Pock-it.org Pock-it-Client und -Server werden als Dienst unter der Domain http://pock-it.org starten. Unter dieser Adresse wird eine Informations-Seite mit Registrierungsmöglichkeit und Downloads existieren. Weiterhin wird unter einer Subdomain der Webservice und die Administrationsoberfläche angeboten. Werbung für den Dienst ist vorerst nicht geplant. Lizenz-Kompatibilität: http://www.gnu.org/licenses/license-list.html#GPL CompatibleLicenses 74 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Risiken Ein System wird dann genutzt, wenn der persönliche Nutzen gegenüber dem Aufwand überwiegt. Nutzen kann bei einem Spaß-zentrierten Projekt schlecht gemessen werden und ist subjektiv. Risiken, die Teil der Aufwands-Seite sind, können jedoch im Vorfeld abgeschätzt werden. Bekannten Risiken kann je nach Art und Grund mit Aufklärung, Akzeptanz oder Lösung begegnet werden. Datenschutzrechtliche Bedenken Das Sammeln von großen Mengen von personenbezogenen Daten genießt kein besonders gutes Image. Insbesondere Bewegungsprofile werden kritisch betrachtet. Maßnahme: Risiko-Akzeptanz, Minimierung Grund:Ein Teil des Risikos ist systemimmanent. Sie können feststellen, dass Person X hier eine Nachricht hinterließ. Dazu müssen Sie nur den Benutzernamen der Person kennen. Minimiert werden kann jedoch der Teil, der nicht im Zusammenhang mit dem System nötig ist. Logfiles auf dem Server können anonymisiert werden, Positionsdaten werden nicht dauerhaft gespeichert. Auftrittswahrscheinlichkeit: Mittel Problematik: Hoch Datentarife machen Nutzung unattraktiv Die Anwendung macht Gebrauch von der Internetverbindung. Je nach Benutzereinstellung kann das Gerät selbstständig Dateien herunterladen. Am Ende steht das Problem, dass eine kostenlose Dienstleistung dann doch irgendwie Geld kostet. Da die Flatrates im mobilen Bereich noch recht dünn gesät sind, muss davon ausgegangen werden, dass dem Benutzer durch den Dienst Kosten entstehen. Maßnahme:Benutzer aufklären, Optionen (z.B. automatischen Download von Anhängen deaktivieren) Grund:Benutzer werden für die Anwendung (zumindest am Anfang) nicht ihren Datentarif wechseln. Kosten müssen transparent bleiben, um einen Imageschaden zu vermeiden. Auftrittswahrscheinlichkeit: Hoch Problematik: Mittel Erreichen der kritischen Masse Für Anwender, die sich über das System austauschen wollen, muss eine kritische Masse erreicht werden. Dies bezeichnet die Anzahl von Personen oder Einträgen, ab dem das System zum Selbstläufer wird. Negativbeispiel: Wenn ich die Anwendung zwei Wochen im Hintergrund laufen lasse und nie finde ich eine hinterlassene Nachricht, werde ich die Anwendung möglicherweise wieder löschen. 75 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Risiken Für Personen, die es nur privat nutzen möchten, existiert eine solche kritische Masse nicht. Da die Anwendung ortsbezogen ist, kann es durchaus sein, dass sie in unterschiedlichen Regionen unterschiedlich erfolgreich ist. Maßnahme:Akzeptanz, Einstiegshürde minimieren, Werbung (Erreichen einer kritischen Masse begünstigen) Grund: Wir können niemanden zwingen etwas zu nutzen. Daher ist es besonders wichtig, das erste Ausprobieren so einfach wie möglich zu gestalten. Auftrittswahrscheinlichkeit: Hoch Problematik: Mittel Navigierbarkeit großer Datenmengen auf kleinen Geräten Das Gegenstück zum vorigen Problem ist: Sollte das Projekt zu einem großen Erfolg werden, könnte es passieren, dass man an besonders interessanten oder belebten Punkten viele hundert Einträge findet. Hier wird auf kleinen Displays die Informationsvielfalt schnell zur Qual. Maßnahme:Risiko Akzeptanz Grund:Auch wenn die Fragestellung der Informationsflut sehr interessant ist, ist es wenig sinnvoll, in diesem Projektstadium viel Energie hinein zu stecken. Eine Lösung könnte immer noch in einem Programmupdate oder einem Premium-Client bereitgestellt werden. Auftrittswahrscheinlichkeit: Gering Problematik: Mittel Format-Kompatibilität Nicht alle Geräte können jeden Datentyp wiedergeben. So muss einer Frustration des Benutzers vorgebeugt werden, indem ihm nur die Typen angeboten werden, die er auch nutzen kann, oder man konvertiert die Daten bereits serverseitig. Maßnahme:Risiko-Minimierung (Konvertierung in kompatible Formate) Grund:Dem Benutzer ist letzten Endes das Dateiformat egal. Ein nicht funktionierendes Format ausliefern würde auf das Programm zurückgeführt, nicht auf das Gerät. Auftrittswahrscheinlichkeit: Hoch Problematik: Gering 76 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 5: Wirtschaftliche Überlegungen Risiken Verkürzte Akkulaufzeit bei Nutzung Sowohl GPS als auch eine bestehende Datenverbindung schlagen sich im erhöhten Energieverbrauch des Endgeräts nieder. Geräte mit eingebautem GPS-Empfänger sind hier stärker betroffen, da externe GPS-Empfänger ihre eigene Energieversorgung mitbringen. Maßnahme: Benutzer aufklären. Grund:Auf den Energiehaushalt hat die Anwendung keinen Zugriff. Auftrittswahrscheinlichkeit: Hoch Problematik: Gering 77 „So, five-card stud, nothing wild… and the sky’s the limit.“ Star Trek the Next Generation 7-26: All good things, Patrick Stewart Kapitel 6 Die Zukunft Auch wenn diese Diplomarbeit zu Ende ist, gibt es noch viel am Projekt zu tun. Dabei entfällt nur ein Teil der Arbeit auf Java-Client und Server. Besonders die Bekanntmachung und das Anbieten anderer Clients werden viel Arbeit verursachen. Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 6: Die Zukunft Bekannte Probleme/ ToDo-Liste Java-Client XML http://jcp.org/en/jsr/detail?id=172 XML-Parser für J2ME: http://nanoxml.sourceforge.net http://kxml.enhydra.org http://www.webreference.com/xml/ tools/xparse-j.html Während der Entwicklung wurde auf eine Java-Spezifikation JSR172 (Webservice-API) zurück gegriffen. Sie wird eingesetzt um die XML-Daten zu parsen. Es stellte sich später heraus, dass nur sehr aktuelle Geräte diese API unterstützen. Sie soll gegen eine andere Bibliothek ausgetauscht werden. NanoXML, kXML und Xparse-J sind mögliche Kandidaten. Xparse-J hat hierbei den Vorteil, dass sie ebenfalls unter der GPL steht. Diese Änderung würde die Anzahl potentiell kompatibler Geräte von 149 auf 232 steigern. Dies ist eine Erkenntnis aus einem frühen Alpha-Test der Anwendung, den Sie im Anhang finden. J4ME http://code.google.com/p/j4me http://jcp.org/en/jsr/detail?id=179 Wie beschrieben wird im Prototyp eine Bibliothek zur GPS-Verbindung eingesetzt. Sie funktioniert, ist aber wenig flexibel. Sie soll gegen die GPS-Bibliothek von J4ME ausgetauscht werden. J4ME stellt eine Schnittstelle zur Verfügung, die der JSR-179 (Location-API) ähnelt. J4ME steht unter der Apache Lizenz 2.0 und ist damit kompatibel zur GPLv3. Refactoring Während der Entwicklung stand der Produktname noch nicht fest. Als vorläufiger Name wurde daher der abgekürzte Diplomtitel „gi“ verwendet. Dieser ist jedoch wenig aussagekräftig. Ein umfassendes Refactoring auf den Projekt-Titel „Pock-it“ soll stattfinden. Benutzerfreundlichkeit Derzeit besteht der Prototyp nur aus Text-Ausgaben. Das erstellte Screendesign soll angewendet werden. Die Benutzerfreundlichkeit ist unter anderem durch das Fehlen von aussagekräftigen Fehlermeldungen und Fehlerbehandlungen stark eingeschränkt. Sie wurden im Abschnitt Liste der möglichen Probleme beschrieben. �������������������������������������������������������������������� Liste von J2ME-XML-Bibliotheken: http://developers.sun.com/mobility/ midp/articles/parsingxml Ermittelt mit der Areamobile Merkmalsuche: http://www.areamobile.de/ php/transactions/finderTargetTA.php Suche nach Geräten, die Java-fähig nach MIDP 2.0 sind und JSR-82 (Bluetooth) unterstützen. 79 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 6: Die Zukunft Bekannte Probleme/ToDo-Liste Java-Client Upload Der Upload von Dateien gestaltet sich schwierig. Dies liegt an der Implementation der HTTPConnection in Java. Datenmengen über 2016 Bytes werden als „Content-Encoding: Chunked“ gesendet – eine HTTP 1.1 Spezifikation, die kaum ein Server beherrscht. Hier ist sowohl server- als auch clientseitig nach einer Lösung zu suchen. Signatur Javas Sicherheitsmodell sieht eine Signatur für vertrauenswürdige Programme vor. Diese können erweiterte Rechte erhalten. Da ein signiertes MIDlet wünschenswert ist, werde ich mich mit der Signatur befassen, speziell damit, wie man sie erhält und ob sie immer kostenpflichtig ist. Server Microsite Der Server ist derzeit eine funktionale Sammlung von Werkzeugen, die den Client bedienen. Es fehlt ein ausgestaltetes User-Frontend, an dem man sich registrieren und informieren kann. Administrations-Oberfläche Die Administrationsoberfläche besteht aus Rails-Scaffolds. Hier ist insbesondere bei Navigationskonzept und Gestaltung noch Arbeit zu investieren. Upload Das Upload-Problem (siehe Client) wird sicherlich auch am Server zu Änderungen führen. Deployment Der Pock-it-Server läuft auf einer lokalen Linux-Installation. Er muss auf den bereits gemieteten Webserver unter der Domain pock-it.org umgezogen werden. 80 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 6: Die Zukunft Ausblick OpenSource Im Anschluss an diese Arbeit wird der Quellcode zu Client und Server unter die GPLv3 gestellt und veröffentlicht. Von diesem Schritt verspreche ich mir ein Weiterleben des Projekts. Ein Bonus dabei ist, dass ich Erfahrungen bei der Organisation eines Opensource-Projektes sammle. Communiy aufbauen Wie bereits in Wirtschaftliche Überlegungen - Einnahmen dargelegt, unterliegt Pock-it einem Netzwerkeffekt. Es ist also eine der wichtigsten Aufgaben, eine Community zu erarbeiten. Als Benutzer der ersten Stunde bieten sich insbesondere die Kommilitonen am Campus Dieburg an. Sie haben eine zentrale Basis, an der die kritische Masse schnell erreicht werden kann, leben aber zum Teil etwas außerhalb. An diesen Außenstellen werden sie möglicherweise andere Leute auf das Projekt aufmerksam machen. Neue Clients Wie bereits in der Recherche erläutert, ist es sinnvoll, mehrere Plattformen zu bedienen. Auf meiner eigenen ToDo-Liste steht hier Android ganz oben: Zum einen, weil ich mich mit dieser Plattform beschäftigen möchte, zum anderen, weil auch hier in Java programmiert wird. Dennoch sind die Windows-Mobile- und iPhone-Plattform nicht vergessen. Hier gibt es für mich zwei Möglichkeiten: 1. Die OpenSource-Community startet Unterprojekte. 2. Ein Programmier-zentriertes Elective am Fachbereich Media stellt einen der Clients her. Gelerntes weitergeben http://www.mas.h-da.de/j2me Einrichtung des Computers und Entwicklung des ersten MIDlets sind nicht einfach. Ich habe daher zur kommenden AutumnSchool ein Tutorial eingereicht. Ich werde eine Veranstaltung halten, die den Einstieg erleichtern soll. Das eintägige Tutorial wird Ende September stattfinden. Dieses Tutorial wird insbesondere für die Studierenden interessant sein, die derzeit im sechsten Semester sind. Ihr P3/P4-Thema ist iMobility, und es zeichnet sich ab, dass einige mobile Anwendungen dabei entstehen sollen. Das Tutorial wäre unmittelbar vor der Umsetzungsphase. Die Autumn-School ist eine Einrichtung des FB Media, bei der Studenten eine Veranstaltung für andere Studenten halten. Die Themen und der Umfang sind freigestellt. 81 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Kapitel 6: Die Zukunft Ausblick Ausstellungen, Veröffentlichungen http://www.mindtrek.org http://www.mcrlab.uottawa.ca/acmmm2008 Der Fachbereich Media veranstaltet jedes Jahr eine Werkschau, die „Mediale“. Bei dieser können Studenten ihre Arbeiten präsentieren. Es ist geplant, bei der kommenden Mediale mit Pock-it präsent zu sein. Neben den Bemühungen am eigenen Campus werden derzeit zwei Papers vorbereitet. Eines für die Mindtrek Conference in Tampere (Finnland) und eines für die ACM International Conference on Multimedia in Vancouver (Kanada). 82 Quellen Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Diese Aufstellung enthält über 200 verschiedene Links. Um sie richtig zu kategorisieren wurden einige wenige in zwei Kategorien aufgenommen. Einige dieser Quellen habe ich auf der beigelegten CD im aktuellen Zustand gespeichert. Sie finden Sie im Ordner Quellen. Die URL ohne http:// und www. ist der jeweilige Dateiname. Die wichtigsten Links Dies sind keine Quellen für mich, sondern Quellen für Sie. Unter den folgenden URLs wird diese Arbeit und das daraus resultierende Projekt weiter gepflegt werden. Diese Diplomarbeit: http://������������������������������ diplomarbeit������������������ .claudiuscoenen.de Alle Weblinks finden Sie sortiert, klickbar und mit Tags versehen unter folgender URL: http://del.icio.us/ccoenen/dipl_archiv Pock-it Sourceforge-Projekt: http://sourceforge.net/projects/pock-it Pock-it Website: http://pock-it.org/ Eigene Blogeinträge http://amenthes.de/index.php/2008/05/styles/ http://amenthes.de/index.php/2008/05/mein-diplomthema/ http://amenthes.de/index.php/2008/05/midlet-states/ Nachrichten, Berichte Auflistung von Handy-Applikationen: http://www.heise.de/mobil/Kostenlose-Handy-Applikationen-fuer-Wordpress-Flickr-und-Co--/artikel/103904 Nutzung von mobilen Diensten: http://www.tecchannel.de/kommunikation/news/1748012/index.html Mobilfunkbetreiber müssen innovativer werden: http://www.tecchannel.de/news/1746113/index.html Mobile Dienste: Anwender dringend gesucht: http://www.tecchannel.de/kommunikation/news/1746271/index.html Kostenloses Handy-GPS-Paket für Wanderer und Radfahrer: http://www.heise.de/newsticker/Kostenloses-Handy-GPS-Paket-fuer-Wanderer-und-Radfahrer--/ meldung/105702 Wichtigkeit der Handy-Software: http://www.wired.com/gadgets/miscellaneous/news/2008/03/ctia_walkup Delphi-Report: Zukünftige Informations- und Kommunikationstechniken: http://www.fazit-forschung.de/delphi3.html http://www.isi.fhg.de/pr/2008de/pri04/pri04.htm Galileo kommt wieder in Schwung: http://www.heise.de/newsticker/Galileo-Projekt-kommt-endlich-wieder-in-Schwung--/meldung/106215 President turns off GPS Selective Availability: http://geography.about.com/library/weekly/aa050400a.htm Wired: http://www.wired.com Ad-Hoc Mitfahrzentrale: http://www.heise.de/newsticker/Ad-hoc-Mitfahrzentrale-fuer-Mobiltelefone--/meldung/106705 SL45i mit Java: http://www.teltarif.de/arch/2001/kw25/s5440.html 84 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Nachrichten, Berichte Nutzung von Social Networks auf mobilen Endgeräten: http://www.tecchannel.de/kommunikation/news/1749723/index.html Ruby on Rails 2.1 und Ruby 1.8.7 erscheinen http://www.heise.de/newsticker/Ruby-on-Rails-2-1-und-Ruby-1-8-7-erschienen--/meldung/108900 Statistiken Windows-Mobile Marktanteil: http://www.pcwelt.de/start/mobility_handy_pda/pda_smartphone/news/160677/microsoft_will_smartphone_ markt_ausbauen/index.html iPhone Verkaufszahlen: http://satundkabel.magnus.de/geraete/artikel/agentur-viele-illegale-iphones-bei-telekom-konkurrenten.html Ruby Buchverkäufe: http://radar.oreilly.com/archives/2005/12/ruby-book-sales-surpass-python.html Mehr als 100 Mio Mobilfunkanschlüsse: http://www.tecchannel.de/pc_mobile/news/1756318/index.html 70.000 verkaufte iPhones: http://www.macnews.de/news/105992 Plattformen Java / J2ME Suns J2ME-Website: http://java.sun.com/javame/index.jsp Sun verabschiedet sich von mobilem Java: http://news.cnet.com/8301-13580_3-9800679-39.html?part=rss&subj=news&tag=2547-1_3-0-5 J2ME-Plugin: http://eclipseme.org Spezifikationen, APIs http://jcp.org/en/jsr/detail?id=172 http://jcp.org/en/jsr/detail?id=179 http://java.sun.com/javame/reference/apis.jsp Bibliotheken XML-Parser: http://nanoxml.cyberelf.be http://kxml.objectweb.org http://www.webreference.com/xml/tools/xparse-j.html Blutooth-Library vom HCI-Lab: http://www.hcilab.org/documents/tutorials/BT_GPS/BT_GPS.htm J4ME: http://code.google.com/p/j4me Foren http://www.j2meforums.com/forum http://www.j2meforum.net http://forum.java.sun.com/category.jspa?categoryID=23 Tutorials WebServices: http://developers.sun.com/mobility/apis/articles/wsa MVC: http://www-128.ibm.com/developerworks/wireless/library/wi-arch6 85 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Plattformen Einrichtung Eclipse, Bluetooth-Tutorial und kXML: http://medien.informatik.uni-ulm.de/lehre/courses/ss04/mobcomp/uebungen/index.xml XML-Parsing mit JSR-172: http://developer.sonyericsson.com/docs/DOC-1716 Bluetooth-Geräte entdecken: http://www.javablog.ch/2006/11/11/jabwt-jsr-82-teil-5-discovery-agent-und-discoverylistener Bluetooth-API Overview: http://developers.sun.com/mobility/apis/articles/bluetoothintro Bluetooth-Service UUIDs: http://www.avetana-gmbh.de/avetana-gmbh/produkte/doc/javax/bluetooth/UUID.html MIDlet + Lifecycle: http://www.ibm.com/developerworks/library/wi-midlet2 JSR-075+Filesystem-Access: http://www.java-tips.org/java-me-tips/midp/how-to-access-local-file-systems-from-j2me-devices-usingfileconnectio-2.html Singleton Pattern in J2ME: http://java.sun.com/developer/JDCTechTips/2006/tt0113.html Threads: http://developers.sun.com/mobility/midp/articles/threading2 J2ME-Installation: http://eclipseme.org/docs/installation.html JavaDoc und J2ME: http://forum.java.sun.com/thread.jspa?threadID=401422&messageID=1750968 XML und J2ME mit Links zu Bibliotheken: http://developers.sun.com/mobility/midp/articles/parsingxml Hersteller SonyEricsson: http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp Nokia SDK: http://www.forum.nokia.com/info/sw.nokia.com/id/cc48f9a1-f5cf-447b-bdba-c4d41b3d05ce/Series_40_ Platform_SDKs.html Tools Sammlung von OSS für J2ME: http://ngphone.com/j2me/opensource Test-Programm um zu erfahren, welche Spezifikation unterstützt wird: http://sourceforge.net/projects/mobiledevtools Ruby / Ruby on Rails Ruby Website: http://www.ruby-lang.org/de Ruby on Rails-Website: http://rubyonrails.com Ruby-Core-Dokumentation: http://www.ruby-doc.org/core REST-Dateiupload: http://www.ruby-forum.com/topic/151988 Ruby, REST und nested routes: http://www.b-simple.de/documents 86 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Plattformen Rails-Anwendungen Basecamp: http://www.basecamphq.com Twitter: http://twitter.com Xing: https://www.xing.com Skalierbarkeit http://highscalability.com http://www.buildingwebapps.com/articles/13 http://highscalability.com/friends-sale-architecture-300-million-page-view-month-facebook-ror-app http://blog.kovyrin.net/2006/08/28/ruby-performance-results/lang/en Android Android-Website: http://code.google.com/android Android und Streetview: http://www.engadget.com/2008/02/28/android-gets-handled-now-with-street-view HTC Dream angekündigt: http://www.heise.de/newsticker/Ein-Traum-wird-wahr-HTCs-erstes-Android-Handy-soll-Dream-heissen-/meldung/105402 Android Sicherheitslücken: http://www.heise.de/newsticker/Google-schliesst-Sicherheitsluecken-in-Android--/meldung/104684 Samsung + Android: http://www.engadget.com/2008/02/19/samsung-built-google-branded-android-phones-due-later-this-year Android will outsell iPhone: http://www.engadget.com/2008/03/14/google-android-will-outsell-iphone-we-still-love-you-steve AT&T flirtet mit Android: http://www.heise.de/newsticker/AT-T-flirtet-mit-Android--/meldung/106005 Android Blog: http://www.talkandroid.com Android auf Nokia N810: http://www.engadget.com/2008/04/08/android-lands-on-the-n810-blows-our-minds Android Developer Challenge: http://code.google.com/android/adc.html Andere Plattformen Client http://www.limofoundation.org http://developer.apple.com/iphone http://www.adobe.com/products/flashlite http://www.microsoft.com/windowsmobile/developers/default.mspx http://www.s60.com/business/developers IBM VM für Windows Mobile: http://www-128.ibm.com/developerworks/websphere/zones/wireless/weme_eval_runtimes.html?S_CMP=rnav Server http://php.net http://www.asp.net http://java.sun.com/javaee 87 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Kommunikation Kommunikation http://json.org http://www.yaml.org REST-Theorie: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm J2ME und REST: http://www.schmidp.com/2007/5/20/j2me-and-restful-web-service AMF: http://osflash.org/documentation/amf oder http://download.macromedia.com/pub/labs/amf/amf3_spec_ 121207.pdf SOAP: http://www.w3.org/TR/soap12-part1 HTTP/1.1: http://www.ietf.org/rfc/rfc2616.txt Verwandte Projekte Geominder, Erinnerungen an bestimmten Plätzen: http://www.ludimate.com/products/geominder/index.php Invisible Ideas: http://www.adobe.com/devnet/devices/articles/invisible_ideas.html http://www.invisibleideas.org Parcour pro – mobile GPS-Game: http://www.mkirstein.de/blog/?p=360 Enkin: http://www.enkin.net MARA: http://www.engadgetmobile.com/2006/11/11/nokia-project-puts-red-boxes-on-things Digitales Graffiti: http://w5.cs.uni-sb.de/~stahl/proseminar-lbs/pdf/DigitalGraffiti.pdf YellowArrow: http://yellowarrow.net/index2.php Verkehr, Tourismus Mobile Stadtführung: http://www.uni-goettingen.de/de/63850.html http://www.tecchannel.de/pc_mobile/news/1751396/index.html Navigationssystem von „Das Örtliche“: http://www.oe-navi.de Siemens Digitales Graffiti: http://www.innovations-report.de/html/berichte/verkehr_logistik/bericht-71203.html Ad-Hoc Mitfahrzentrale: http://www.oks.tu-berlin.de/forschung/technologien/mfz Community https://loopt.com/loopt/sess/index.aspx http://socialight.com http://zurfer.research.yahoo.com http://zonetag.research.yahoo.com Uploader für Web-Communities: http://www.shozu.com/portal Elens: http://mobile.mit.edu/classes/elens http://mobile.mit.edu/component/option,com_deeppockets/task,catShow/id,31/Itemid,81 88 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Verwandte Projekte GeoNotes: http://www.sics.se/~espinoza/documents/GeoNotes_ubicomp_final.htm Mash-Ups http://www.qype.com http://www.frappr.com Landkarten http://www.earthtools.org http://www.openstreetmap.org http://worldwind.arc.nasa.gov http://www.de.map24.com http://de.routenplaner.yahoo.com http://maps.live.de/LiveSearch.LocalLive http://earth.google.com http://maps.google.de http://www.mgmaps.com Google Maps Mobile: http://www.google.com/gmm/index.html Gute Einleitung in das Thema: http://www.alistapart.com/articles/takecontrolofyourmaps Mobile Tagging http://scanbuy.com/index.php http://www.shotcode.com http://www.semapedia.org http://placeshout.com Barcode-Reader http://www.neoreader.com/home.html http://code.google.com/p/zxing http://reader.kaywa.com http://www.i-nigma.com/personal Erklärungen, Definitionen http://de.wikipedia.org/wiki/Triangulation_(Messtechnik) http://de.wikipedia.org/wiki/Accelerometer http://de.wikipedia.org/wiki/Traffic_Message_Channel http://de.wikipedia.org/wiki/Mashup_%28Internet%29 http://de.wikipedia.org/wiki/Mobile_Tagging http://de.wikipedia.org/wiki/Serialisierung Design-Patterns http://de.wikipedia.org/wiki/Kommando_(Entwurfsmuster) http://de.wikipedia.org/wiki/Strategie_(Entwurfsmuster) http://de.wikipedia.org/wiki/Stellvertreter_(Entwurfsmuster) http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster) Eingesetzte Tools Subversion: http://subversion.tigris.org OpenOffice.org (speziell: Writer, Calc und Draw): http://www.openoffice.org 89 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Eingesetzte Tools OpenProj (Projektmanagement-Tool): http://openproj.org Eclipse+Plugins: http://www.eclipse.org http://eclipseme.org http://subclipse.tigris.org AptanaIDE, RadRails http://72.3.219.182 FileColumn (Rails Plugin): http://www.kanthak.net/opensource/file_column MapLayers (Rails Plugin): http://www.sourcepole.com/2008/3/23/maplayers-plugin-for-rails OpenLayers: http://www.openlayers.org OpenStreetmap: http://www.openstreetmap.org Java JDK: http://java.sun.com/javase/downloads/index.jsp Java WTK: http://java.sun.com/products/sjwtoolkit/download.html Antenna: http://antenna.sourceforge.net ProGuard: http://proguard.sourceforge.net Sourceforge.Net: http://sourceforge.net Ruby on Rails: http://rubyonrails.com/ Ruby: http://www.ruby-lang.org/de/ MySQL: http://dev.mysql.com/downloads/mysql/5.0.html#downloads http://dev.mysql.com Debian Linux: http://www.debian.org StarUML: http://staruml.sourceforge.net/en/ Adobe Photoshop: http://www.adobe.com/de/products/photoshop/photoshop Adobe Illustrator: http://www.adobe.com/de/products/illustrator Adobe InDesign: http://www.adobe.com/de/products/indesign IrfanView (Bildbetrachter): http://irfanview.de Verschiedenes Magical Lens: http://www2.parc.com/istl/projects/MagicLenses/93Siggraph.html SkyHook Wireless (Anbieter von WLAN-Ortung): http://www.skyhookwireless.com Community-Entwicklung: http://www.alistapart.com/articles/fromlittlethings 90 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen online Verschiedenes MSD-BPS-Map: http://www.frappr.com/msd-bps2006-2007 PHP-Framework Symfony: http://www.symfony-project.org PHP-Framework CakePHP: http://www.cakephp.org Medieninformatik Uni München: http://www.medien.ifi.lmu.de MIT mobile experience lab: http://mobile.mit.edu Milton Friedman http://de.wikipedia.org/wiki/Milton_Friedman Design 10 Fehler beim Icon-Design: http://www.turbomilk.com/truestories/cookbook/criticism/10-mistakes-in-icon-design 7 Prinzipien im Icon-Design: http://psdtuts.com/articles/7-principles-of-effective-icon-design Droid-Font: http://damieng.com/blog/2007/11/14/droid-font-family-courtesy-of-google-ascender Lizenzen GPL: http://www.fsf.org/licensing/licenses/gpl.html GPL-kompatible Lizenzen: http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses LGPL: http://www.fsf.org/licensing/licenses/lgpl.html Creative Commons: http://creativecommons.org/ http://creativecommons.org/licenses/by-sa/2.0/de/ http://creativecommons.org/licenses/by-sa/2.0/de/legalcode Geräte Auflistung von GPS-Fähigen Geräten: http://www.xonio.com/artikel/Alle-75-GPS-Handys-Navigation-mit-N96-X1-amp-Co._30102841.html Areamobile Merkmalsuche (kann nach einzelnen JSRs suchen) http://www.areamobile.de/php/transactions/finderTargetTA.php Veranstaltungen FOSSGIS: http://www.fossgis.de/wiki/index.php/Main_Page http://www.heise.de/newsticker/Konferenz-zu-freien-Geosystemen--/meldung/105153 Systems: http://www.pcwelt.de/start/mobility_handy_pda/pda_smartphone/news/96609/neue_anwendungen_fuer_ mobile_geraete/index.html ACM International Conference on Multimedia: http://www.mcrlab.uottawa.ca/acmmm2008 Mindtrek 2008 Conference: http://www.mindtrek.org Java-Tutorial in der Autumn-School: http://www.mas.h-da.de/j2me 91 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Publikationen offline Zeitschriften Wired Magazine March 2008 ISSN: 1059-1028 Bücher Agile Web Development with Rails (Second Editon 2006) Dave Thomas, David Heinemeier Hansson ISBN-10: 0-9776166-3-0 ISBN-13: 978-0-9776166-3-3 Professional Ruby on Rails (2008) Noel Rappin ISBN-13: 978-0-470-22388-8 Advanced Rails (2007) Brad Edinger ISBN-10: 0-596-51032-2 ISBN-13: 978-0-596-51032-9 Java Micro Edition (2. aktualisierte Auflage 2007) Klaus-Dieter Schmatz ISBN-10: 3-89864-418-9 Rails Cookbook (2007) Rob Orsini ISBN-10: 0-596-52731-4 ISBN-13: 978-0-596-52731-0 Design Patterns (1995) Erich Gamma, Richard Helm, Ralph Johnsson, John Vlissides ISBN-10: 0-201-63361-2 92 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Quellen Nicht-referenzierbare Quellen Internet Relay Chat Server: irc.freenode.net Räume: #rubyonrails, #j2me, und #openlayers Nick: ccoenen 93 Anhang Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang GPS-fähige Geräte Tabelle1 Gerät Asus P526 Asus P535 Asus P750 Asus P527 Asus P320 Asus M536 Asus P560 / Asus Lamborghini ZX1 E-Ten glofiish G500 E-Ten glofiish M700 E-Ten glofiish M800 E-Ten glofiish X500 / E-Ten glofiish X500+ E-Ten glofiish M810 E-Ten glofiish X650 E-Ten glofiish V900 Fuj.Sie. Pocket Loox T810 / Fuj.Sie. Pocket Loox T830 Garmin nüvifone HP iPAQ hw6515 HP iPAQ hw6915 HP iPAQ 614 Bus. Navigator HP IPAQ 914 HTC P3470 (Pharos) HTC TyTn II HTC P3300 HTC Touch Cruise HTC Advantage X7500 / HTC Advantage X7510 Mitac Mio A502 Nokia N95 8GB Nokia N96 Nokia N82 Nokia 6210 Navigator Nokia 6220 classic Nokia N78 Nokia Communicator E90 Nokia 6110 Navigator RIM Blackberry 8800 RIM Blackberry Curve 8310 RIM BlackBerry Pearl 8110 Samsung SGH-i550 Samsung SGH-i780 Samsung SGH-G810 Sony Ericsson W760i Sony Ericsson C702 Sony Ericsson X1 Toshiba Portégé G710 Toshiba Portégé G910 Toshiba Portégé G810 System WM6 WM5 WM6 WM6 WM6 HSDPA Eingabe T9, TS TS T9, TS T9, TS TS TS HSDPA, WLAN GPRS EDGE, WLAN HSDPA TS TS QWERT QWERT EDGE, WLAN HSDPA TS QWERT WM6 HSDPA TS WM5 UMTS, WLAN HSDPA ? EDGE, WLAN HSDPA TS, QWERT 240x240 TS, QWERT TS, QWERT T9,? QWERT TS TS, QWERT TS TS 240x240 240x240 TS, QWERT TS T9 T9 T9 T9 T9 T9 QWERT, T9 T9 QWERT QWERT QWERT T9 TS, QWERT 640x480 240x320 240x320 240x320 240x320 240x320 240x320 240x320 800x352 240x320 320x240 320x240 240x260 240x320 320x320 T9 T9 TS, QWERT TS, QWERT TS, QWERT TS 240x320 240x320 800x400 480x640 480x800 240x320 WM5 WM6 WM6 WM5 WM6 WM6 WM5 WM5 WM6 WM6 WM6 WM6 WM5 WM6 Daten GPRS GPRS HSDPA GPRS, WLAN EDGE HSDPA, WLAN EDGE, WLAN HSDPA, WLAN WM6 WM6 S60 3rd S60 3rd FP2 S60 3rd S60 3rd S60 3rd S60 3rd FP2 S60 3rd S60 3rd eigen eigen eigen S60 3rd WM6 S60 3rd eigen eigen WM6 WM6 WM6 WM6 HSDPA, WLAN EDGE, WLAN HSDPA, WLAN HSDPA, WLAN HSDPA, WLAN HSDPA HSDPA HSDPA, WLAN HSDPA, WLAN HSDPA EDGE EDGE EDGE HSDPA HSDPA ?, WLAN HSDPA HSDPA HSUPA, WLAN EDGE HSDPA, WLAN HSUPA, WLAN Display 240x320 240x320 240x320 640x480 Verfügbar? ja ja ja nein 01.06.08 01.07.08 ja ja ja Preis 500,00 € 700,00 € 650,00 € 500,00 € 400,00 € 500,00 € 01.07.08 700,00 € 498,00 € 498,00 € 600,00 € ja 320x240 240x320 240x320 240x320 240x320 01.04.08 01.04.08 ja Q3/2008 ja ja ja Q2/2008 ja ja ja ja Ja / 04/2008 ja ja ja Q3/2008 Q3/2008 Q2/2008 ja ja ja ja ja ja ja Q3/2008 Q2/2008 Q2/2008 Q2/2008 Q1/2008 Q1/2008 Q2/2008 629 € / 736 € 560,00 € 649,00 € 449,00 € 499,00 € 439,00 € 799,00 € 650,00 € 599,00 € 599,00 € 879,00 € 469,00 € 499,00 € 469,00 € 499,00 € 249,00 € 600,00 € 600,00 € Legende: WM5: Windows Mobile 5 WM6: Windows Mobile 6 S60: Symbian Series 60 QWERT: Volle Tastatur T9: Normale Telefon-Tastatur TS: Touchscreen 95 Seite 1 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Concept-Test Dies ist ein Test, den wir mit der Idee in unserer P3-Projektgruppe durchführten. In vier Durchgängen ������������������������������� testeten wir mit insgesamt ���� ca. 15 Personen. Getestet wurde die Grundidee, Information an bestimmten Plätzen abrufbar zu machen. Die Vorgehensweise ging von einer Barcode-basierten Ortung aus. Vorgehensweise — Hinweis, dass man nichts „falsch machen kann“. „Hier gibt es kein richtig oder falsch“. — Frage ob es ok ist, dass wir sie filmen. — Mittels eines Szenarios die Produktidee vorstellen — Diese Produktidee sollen sie dann selbst anwenden — im Anschluss wird eine offene Diskussion darüber geführt, wie sie das Szenario bewerten und welche Möglichkeiten sie sich zusätzlich im Zusammenhang mit unserer Produktidee vorstellen könnten bzw. was sie auch persönlich interessant fänden Erläuterte Szenarien — Ortsgebundenes Fotoalbum z.B. an einem Festival — Informationen zu einer Sehenswürdigkeit und der Möglichkeit, dort Daten selbst abzulegen — Restaurantbewertungen Diskussionsleitfaden Erster Concept-Test — Wie bewerten Sie die Grundidee „Informationen, egal welcher Art, ortsbezogen im Raum ablegen und abrufen zu können“? — Wie hat der Zielgruppe das Szenario gefallen? Wie würden sie dieses bewerten? — Was würden sie anders/besser machen? — Welche Anwendungsbereiche könnten sie sich noch vorstellen? Die Frage: „Geht mal euren Alltag im Kopf durch. Wann und wo hättet ihr gerne Informationen die ihr gerne abrufen bzw. ablegen könntet?“ — Falls schon Ergebnisse aus einer anderen Befragung da sind, diese hier einbringen und diskutieren. 96 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Alpha-Test der Anwendung http://amenthes.de/index.php/2008/05/ mein-diplomthema/ Der Blogeintrag Hier ist wie angekündigt mein Diplomprojekt als Beta-Test. Rückmeldungen gerne über die Kommentarfunktion oder per Mail. Geospatial Informationaccess - Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Ja, das ist das Thema. In normalen Worten ausgedrückt bedeutet es: Stellt euch vor, ihr könntet Nachrichten an beliebigen Orten hinterlassen. So ähnlich wie Erinnerungszettel. Ihr könnt an beliebiger Stelle sagen „hier hinterlasse ich einen Text oder ein Foto“. Andere Benutzer des Systems können solche Nachrichten dann an diesem Ort lesen/ansehen. Wer möchte, kann auch auf vorhandene Nachrichten antworten. Voraussetzungen 1. Java-fähiges Handy (MIDP 2.0, CLDC 1.1 - müsste auf die meisten aktuelleren Modelle zutreffen). 2. Konfigurierter Internetzugang 3. Bluetooth- oder Com-Port-GPS-Empfänger 4. Account zum Testen (Zum Erstellen von Einträgen, Kommentar oder Mail genügt) 5. Alpha-Software (Download über PC) oder (Direktlink im Handy: http://gi.amenthes.de/gi_client.jad) Anleitung (Einrichten) Um die Anwendung auf eurem Handy zu installieren, könnt ihr sie entweder per PC runterladen und auf dem Gerät installieren oder direkt mit dem Handy runterladen. Nokia und SonyEricsson haben bei ihren Anwendungsprogrammen ein Tool zur Installation dabei. Es reicht aber, wenn ihr die .jar-Datei einfach irgendwo auf dem Gerät ablegt (zum Beispiel auf der Memorycard, sofern vorhanden) und die Datei startet. Beim Starten wird direkt nach Empfängern gesucht, schaltet ihn also vorher ein. Die Suche läuft im Moment nur einmal ab. Wenn ihr das verpasst habt, löscht das Programm nochmal und spielt es neu auf (wenn ihr die Adresse eures Empfängers wisst, könnt ihr sie auch von Hand eingeben). Wählt aus dem Menü "Einstellungen" und tragt für Benutzername und Passwort eure Daten ein. Wenn ihr einen Com-Bluetooth-Empfänger habt, tragt die Adresse bitte in das Feld "Bluetooth-Gerät (URL)" ein. Dabei gebt ihr an: comm://com12 (Zahl abhängig von eurem Gerät). Eine ausführliche Beschreibung der möglichen Parameter findet man in der Java-Api zum Thema Com-Port. Das Programm wird nach verschiedenen Berechtigungen fragen. Es muss eine Bluetooth-Verbindung aufbauen und Daten per 97 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Alpha-Test Blogeintrag Internet verschicken. Diese Bestätigung ist einmal pro Programmstart nötig. Wenn ihr wisst wie, könnt ihr auch generelle Rechte vergeben. Anleitung (Benutzen) Sobald das Programm startet ermittelt es eure Position und lädt sich Orte in eurer Umgebung herunter (sozusagen die blauen Punkte auf der Karte oben). Wenn ihr in der Nähe von so einem Ort seid, wird er euch im Menü angezeigt. Auswählen eines Ortes zeigt euch die Zugehörigen Einträge an. Ihr habt immer auch die Wahl einen neuen Ort anzulegen. Ein Ort hat einen Titel (der nachher im Menü erscheint) und man kann gleich eine Nachricht hinterlassen. Außerdem gibt es im Menü noch die Punkte "Einstellungen", "Minimieren" und "Beenden". Minimieren funktioniert bei weitem nicth auf allen Geräten. Das ist (leider) kein Bug, den ich beheben kann sondern eine Einschränkung des Geräts. Was funktioniert? — — — — — GPS-Gerät suchen und ansprechen Orte und Nachrichten anzeigen Orte und Nachrichten erstellen Einstellungen ändern Herunterladen von Bildern Was funktioniert (noch) nicht? — — — — — Dateien vom Handy aus hochladen Einträge/Orte nachträglich ändern Fotos, Videos oder Audio direkt aufnehmen Vibration oder Alarm, wenn man einen Ort betritt Das Programm ist momentan ziemlich hässlich, daran arbeite ich Wozu ist dieser Test? 1. Ich möchte wissen, ob das Programm auf eurem Mobiltelefon funktioniert. Über eine kurze Rückmeldung (positiv wie negativ) mit Modellnummer würde ich mich freuen. 2. Ich habe ungefähr 10 Beispiele, wofür man es (mehr oder weniger) sinnvoll benutzen könnte. Was würdet IHR damit machen? Kompatible Geräte — Nokia 6300 — SonyEricsson K800i Ausblick (Roadmap) Die Roadmap wird noch etwas überarbeitet und ergänzt. Das hab’ ich jetzt mal aus dem Kopf zusammengeschrieben. Erster Test (Version 0.7) (oben beschriebener Umfang) 98 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Alpha-Test Blogeintrag Version 0.8 — Dateien hochladen (mindestens 500 KByte) — Verschiedene Dateitypen runterladen ins Dateisystem — Alle vorgesehenen Felder von Orten werden übertragen, eingegeben und angezeigt — Benachrichtigungen beim Betreten eines Spots (inkl. zugehöriger Einstellungen) Version 0.9 — Fotos, Videos und Audio aufzeichnen innerhalb des Programms — Videos und Audio abspielen innerhalb des Programms — Alle vorgesehenen Felder von Eintrag werden übertragen, eingegeben und angezeigt — Grafische Benutzeroberfläche Version 1.0 — Nachrichten-Schnittstelle — Nachrichten lesen und ins Hauptmenü integrieren — Online-Hilfe — "Gelesen"-Status für Orte — Eintrage und Orte bearbeiten — JSR-172-Aufrufe gegen XML-Bibliothek tauschen, um mehr Endgeräte zu erreichen Erkenntnisse Wie erwartet funktioniert die Java-Fassung in keiner WindowsMobile VM. Die Zahl der getesteten Windows-Mobile-Geräte stieg auf vier. Weiterhin zeigte die Alpha-Version, dass zu viele Geräte die JSR172 (Location-API) nicht unterstützen. Deswegen wurde die Entscheidung gefasst, sie zu ersetzen. 99 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Stil-Test http://amenthes.de/index.php/2008/05/styles Vorlagen Dies sind die weiteren, getesteten Stilvorlagen. 100 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Stil-Test Antworten pixelkind favoriten: 2, 4 Luke In a Spot - no 4 - findsch definitv am besten. Für alle anderen dürfte die Informationsdichte zu heftig werden. TH ok, also mein favorit sind die ersten beiden grund: mit deinem system verbinde ich ein gefühl von lebendigkeit und vernetzung. das kommt dabei am besten rüber. man könnte meinen es seien viele “komplizierte” informationen; die sind aber optisch so -schön- dargestellt, dass es einfach nur gut aussieht. also das erste für sich würde ich auch nicht nehmen das ausgewogene zwischen den beiden ist gut, aber nur das zweite wäre auch gut Das dritte wird für mich wie eine dialer-seite, bei der man sich sein horoskop herunterladen kann. Das vierte und fünfte ist denke ich zu technisch, dafür dass du eine so breite zielgruppe hast Sarathai 1+2: zu 68er’ig 3: zu Microsoftvorlägig 4: zu enterprise-4.staffelig eva also mein favorit ist die… zwei. Find ich zum Thema Vernetzung und als Kartographenkind am ansprechensten. es is dynamisch, verbindent und ist komplex, aber doch leicht nachvollziehbar…und natürlich “schön” aro Nummero 2 Nummer 1 wäre mir zu dunkel - bekommt gleich so einen undergound-touch. Das Weiss macht das ganze luftiger und sieht ausserdem gleich so informationsdesign-mäßig aus. Dynamik und Vielfalt kommt eigentlich nur bei den ersten beiden so wirklich zum Ausdruck - die anderen Vorschläge ahmen eher technische Gerätschaften nach und abstrahieren dabei nicht so gekonnt. Daniel R. 1 oder 2 pixelkind ok, kompromissvorschlag: nummer 2 (zählte ja zu meinen favs) mit dem wort ZONK eingebaut! :) was sagst du? 101 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Stil-Test Antworten Mic 1 oder 2. Den Rest hab ich schon soo oft gesehen. Mel Finde Varianten 1 und 2 auch am besten. Ist einfach und ich verbinde damit nichts. 3. erinnert mich an Piraten oder Mittelalter (wegen den alten Papierstückchen) 4. erinnert mich an Matrix, bzw. die Kontraste sind auch nicht so gut wie ich finde 5. erinnert mich an so einfache WindowsProgramme, bzw. kleine Delphiprogrammierungen :) Wenn ich mich zwischen 1 und 2 entscheiden müsste, würde ich wohl 2 bevorzugen. Da es ein positiveres Gefühl vermittelt. Silvia Eindeutig 2. Bei dem ersten bekomme ich das Gefühl unter Drogen zu stehen, was mit dem Wort Lärm ja noch bestätigt wird ;o) Bei den anderen stimme ich mit Mel überein! Batman *hihih* phil 1. Drogenfilm 2. abeschwächte Version von 1. 3. Piratenfilm 4. Nerdy Hacker Flash Intro 5. sehr technische Abbildung finde 1 & 2 am ansprechensten, die anderen sind mir persönlich zu weit verbreitet / abgelaufen / ausgelutscht. stienchen außer dass es um vernetzung geht, weiß ich zwar nicht worum es geht, aber…. rein vom ersten eindruck her… gefällt mir die zwei am besten! sie ist minimalistisch, hat schöne unaufdringliche farben, stellt etwas komplexes oder feines dar, ist dynamisch aber ruhiger als die anderen (denke mal durch das weiß) :) jaaa soweit zu meine ersten eindruck. hoffe das bringt dir was lg Sebastian Auf jeden Fall 1 oder 2. Das passt zu Deinem Ansatz; mehr oder weniger vernetze Teilchen, die miteinander kommunizieren. Dazu noch klare und und saubere Typo. Beim Ersten würde ich die Anzahl der Partikel reduzieren. 102 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Maistern-Test Der Maistern ist eine Veranstaltung am Campus Dieburg. In dieser Umgebung ließ ich einige Tester mit der Anwendung spielen. Alle waren mit der Grundidee bereits vertraut, hatten die tatsächliche Anwendung allerdings noch nicht gesehen. Der Test verlief vielversprechend. Alle Tester konnten ohne Rückfragen Bubbles und Blips erstellen. Erwähnt werden muss jedoch, das die Testgruppe nicht repräsentativ ist. Sie bestand nur aus Studenten des FB Media. Garrit beim erstellen eines Blips. Die Testgruppe 103 Ressourcen T02 T04 A A01 A02 A03 39 40 41 42 43 44 Drucken, Binden, etc. Claudius Coenen Korrigieren Claudius Coenen Zusammenstellen Claudius Coenen Schriftliche Arbeit Claudius CoenenBegleitende Kompat... Claudius CoenenLo-Fi Prototyp Claudius CoenenKonzept-Test Test Kolloquium Claudius Coenen;Arnd St... T01 38 Claudius CoenenKommunikation Claudius CoenenProgrammierung 47 TE 37 Ultimative Abgabe Claudius Coenen EA06 36 Abgabe (geplant) Claudius Coenen EA05 35 Ressourcen 46 EA04 34 16.06.08 17:00 25.03.08 17:00 08.04.08 17:00 19.05.08 14:00 24.03.08 17:00 28.03.08 17:00 25.03.08 17:00 0,5 tage 24.04.08 09:00 1 tag? 24.04.08 09:00 17,5 tage? 24.04.08 09:00 1 tag? 22.04.08 09:00 1 tag? 21.04.08 09:00 1 tag? 18.04.08 09:00 3 tage? 15.04.08 09:00 6 tage? 15.04.08 09:00 1 tag? 10.04.08 12:00 0,5 tage 10.04.08 08:00 0,5 tage 10.04.08 08:00 0,5 tage 10.04.08 08:00 1,5 tage? 10.04.08 08:00 3 tage 07.04.08 08:00 3 tage 31.03.08 08:00 24.04.08 14:00 25.04.08 09:00 19.05.08 14:00 23.04.08 09:00 22.04.08 09:00 21.04.08 09:00 18.04.08 09:00 23.04.08 09:00 11.04.08 13:00 10.04.08 13:00 10.04.08 13:00 10.04.08 13:00 11.04.08 13:00 09.04.08 17:00 17 16 13 25 28 27 26 20 23 C laudius Coe ne n Claudius C oe ne n Claudius C oe ne n Claudius C oe ne n Claudius C oe ne n Claudius C oe ne n Claudius C oe ne n C laudius Coe ne n Claudius C oe ne n C laudius Coe ne n C laudius14EA+1 Coe ne n tag;16;18 04.04.08 17:00 C oe ne n Claudius 3 tage 26.03.08 08:00C laudius Coe ne 28.03.08 17:00 n 2 tage 24.03.08 08:00 C oe ne n Claudius 09.04.08 17:00 1 tag? 28.03.08 08:00C laudius Coe ne 28.03.08 17:00 n 13 tage 24.03.08 08:00 12EA+1 tag 08.04.08 17:00 Claudius C oe 9 ne n 07.04.08 17:00C laudius Coe ne n 2 tage 26.03.08 08:00 Claudius C oe ne n27.03.08 17:00 1 tag? 24.03.08 08:00 C laudius Coe ne n 5 tage? 24.03.08 08:00 1 tag? 08.04.08 08:00 8 tage 25.03.08 08:00 11 tage? 25.03.08 08:00 40,625 tage? 24.03.08 08:00 1 tag? 28.03.08 08:00C laudius Coe ne 28.03.08 17:00 n 0 tage 25.03.08 17:00 C oe ne n Claudius 57 tage 25.03.08 08:00 25.03.08 08:00 16.06.08 17:00 Claudius C oe ne n 0,333 tage 16.06.08 14:20 0 tage 16.06.08 08:00 0,375 tage 10.06.08 14:00 1 tag? 09.06.08 14:00 1 tag? 06.06.08 14:00 1 tag? 05.06.08 14:00 3 tage? 05.06.08 14:00 14 tage? 29.04.08 14:00 1 tag 31.03.08 08:00 25.03.08 17:00 19.05.08 14:00 19.05.08 14:00 29.04.08 14:00 16.06.08 17:00 16.06.08 08:00 10.06.08 17:00 10.06.08 14:00 09.06.08 14:00 06.06.08 14:00 10.06.08 14:00 19.05.08 14:00 31.03.08 Claudius C oe ne17:00 n 1 tag 25.03.08 08:00 C oe ne n Claudius 39,625 tage? 25.03.08 08:00 14 tage? 29.04.08 14:00 1 tag? 28.04.08 14:00 45 7;41 43 42 36AA 14 12 35 34 C laudius Coe ne n Claudius C oe ne n Claudius C oe ne n 10.06.08 Claudius C oe ne n;Arnd Ste inme tz ;Mike Richte r 16.06.08 Claudius C oe ne n C laudius Coe ne n Claudius C oe ne n 1 tag? 24.04.08 14:00 25.04.08 14:00 32 C laudius Coe ne n 14 12 Mai 08 19 Mai 08 26 Mai 08 2 Jun 08 9 Jun 08 16 Jun 08 23 Jun 08 30 Jun 08 7 Jul 08 5 Mai 08 17 Mrz 08 24 Mrz 08 31 Mrz 08 7 Apr 08 14 Apr 08 21 Apr 08 28 Apr 08 Name Dauer - Seite1 Start Ende Vorgänger Diplom Diplom - Seite3 Diplom - Seite2 F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D FF S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M 1 tag? 25.04.08 14:00 28.04.08 14:00 33 Claudius C oe ne n Claudius CoenenKlassendiagramm PID Claudius CoenenER-Diagramm Claudius CoenenUML Use Cases Claudius CoenenAuswahl des Umset... Entwicklung Claudius CoenenJ2ME Internetverbin... Claudius CoenenJ2ME GPS-Verbindu... Claudius CoenenJ2ME Tests Sleep-S... Claudius CoenenEinarbeitung J2ME Entwicklungsvorbere... Claudius CoenenReferenzen, Hilfefor... Claudius CoenenDatenaustausch Claudius CoenenEntwicklungsumgeb... Claudius CoenenEntwicklungsumgeb... Technische Recherche Claudius CoenenScreendesign Claudius CoenenLogo Claudius CoenenProduktname Claudius CoenenProduktcharakter, Stil Produkt-Design Claudius CoenenWireframes Claudius CoenenStoryboard/Sitemap Claudius CoenenAnwendungsbeispie... Struktuelles Design Claudius CoenenWirtschaftliche Überl... Claudius CoenenBestandsaufnahme Wirtschaft System Einrichtung Software, ... Claudius Coenen Meetings Claudius Coenen 60 tage? 25.03.08 08:00 Projektplan 45 EA03 33 EV04 29 EA02 EV03 28 32 EV02 27 EA EV01 26 EA01 EV 25 31 TR04 24 30 TR03 PD04 19 23 PD03 18 TR PD02 17 TR02 PD01 16 TR01 PD 15 22 SD04 14 21 SD03 13 20 SD SD02 12 WI02 11 10 S 7 WI O03 6 WI01 O02 5 9 O01 4 8 Organisatorisches 3 Projektmanagement Claudius Coenen Echter Start O 2 0 tage 25.03.08 08:00 25.03.08 14 12 Mai 08 19 Mai 08 26 Mai 08 2 Jun 08 9 Jun 08 16 Jun 08 23 Jun 08 30 Jun 08 7 Jul 08 5 Mai 08 17 Mrz 08 24 Mrz 08 31 Mrz 08 7 Apr 08 14 Apr 08 21 Apr 08 28 Apr 08 Name Dauer Start Ende Vorgänger F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D FF S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M D M D F S S M 17.03.08 08:00 17.03.08 0 tage 17.03.08 08:00 Diplomstart Claudius Coenen 1 PID Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang 104 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Client-Sitemap 01 Sonderfall: erster Start Registrierung 18 Text Hilfe (Hilfe, About) 09 Einstellung ändern 11 Meldung lesen 12 Meldung schreiben 17 Ort löschen Minimiert 07 02 Ort anlegen 08 Ortung möglich 05 06 Anhang auswählen Anhang aufnehmen Einstellungen 10 Meldungen auflisten 03 Eintrag anlegen Ort/Eintrag Ansicht Eigener Ort löschen 04 Ort in der nähe abbrechen Standby 13 16 Ort bearbeiten Eigener Eintrag löschen 15 Eintrag löschen 14 Eintrag bearbeiten 02 Standby Legende Programmstart Möglicher Weg Möglicher Weg m. Bedingung Screen Abkürzung/ Sonderfall Wichtiger Screen 105 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Echtes Storyboard Das Original: 1,20m × 1,00m groß 106 javax.microedition.lcdui.Form View javax.microedition.lcdui.List view Loading Register Filebrowser SettingEditor PostEditor PlaceShow PlaceEditor Standby Controller controller javax.microedition.lcdui.CommandListener Register Filebrowser SettingEditor PostEditor PlaceShow PlaceEditor Standby Model Gi ThreadedModel model java.lang.Runnable javax.microedition.midlet.MIDlet Register Filebrowser Setting SettingEditor PostEditor PlaceShow PlaceEditor Standby Post Place PostHandler PostFetcher PlaceFetcher PlaceHandler GiStreamConnection Base64 communication org.xml.sax.helpers.DefaultHandler Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang Klassendiagramm 107 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang MIDlet-States http://amenthes.de/index. php/2008/05/midlet-states/ Test-Programm: http://amenthes.de/wpcontent/2008/05/midlet-states.zip Dieses Demo-Programm habe ich geschrieben, um mich mit den MIDlet-States und State-Übergängen zu beschäftigen. Ich habe es zweisprachig in meinem Blog veröffentlicht. Erkenntnisse — Nokia 6300 (Series 40) kennt keinen pausierten Status für MIDlets — SonyEricsson K800i kann MIDlets pausieren (aus dem MIDlet und auch aus dem Telefon) — Wenn das K800i das MIDlet in den Hintergrund packt, werden weder pauseApp() noch startApp() aufgerufen - das Midlet läuft also vollständig im Hintergrund. — K800i kann nur dann wirklich pausieren, wenn man in der pauseApp() das currentDisplay auf null setzt (display. setCurrent(null);). Ein einfaches Aufrufen von notifyPaused() funktioniert nicht. — Suns Wireless Toolkit reagiert auf pauseApp() und notifyPaused() gleichermaßen. 108 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte http://creativecommons.org/licenses/ by-sa/2.0/de/legalcode Anhang Creative Commons Namensnennung — Weitergabe unter gleichen Bedingungen 2.0 CREATIVE COMMONS IST KEINE RECHTSANWALTSGESELLSCHAFT UND LEISTET KEINE RECHTSBERATUNG. DIE WEITERGABE DIESES LIZENZENTWURFES FÜHRT ZU KEINEM MANDATSVERHÄLTNIS. CREATIVE COMMONS ERBRINGT DIESE INFORMATIONEN OHNE GEWÄHR. CREATIVE COMMONS ÜBERNIMMT KEINE GEWÄHRLEISTUNG FÜR DIE GELIEFERTEN INFORMATIONEN UND SCHLIEßT DIE HAFTUNG FÜR SCHÄDEN AUS, DIE SICH AUS IHREM GEBRAUCH ERGEBEN. — — Lizenzvertrag DAS URHEBERRECHTLICH GESCHÜTZTE WERK ODER DER SONSTIGE SCHUTZGEGENSTAND (WIE UNTEN BESCHRIEBEN) WIRD UNTER DEN BEDINGUNGEN DIESER CREATIVE COMMONS PUBLIC LICENSE („CCPL“ ODER „LIZENZVERTRAG“) ZUR VERFÜGUNG GESTELLT. DER SCHUTZGEGENSTAND IST DURCH DAS URHEBERRECHT UND/ ODER EINSCHLÄGIGE GESETZE GESCHÜTZT. DURCH DIE AUSÜBUNG EINES DURCH DIESEN LIZENZVERTRAG GEWÄHRTEN RECHTS AN DEM SCHUTZGEGENSTAND ERKLÄREN SIE SICH MIT DEN LIZENZBEDINGUNGEN RECHTSVERBINDLICH EINVERSTANDEN. DER LIZENZGEBER RÄUMT IHNEN DIE HIER BESCHRIEBENEN RECHTE UNTER DER VORAUSSETZUNGEIN, DASS SIE SICH MIT DIESEN VERTRAGSBEDINGUNGEN EINVERSTANDEN ERKLÄREN. — — 1. Definitionen — — Unter einer „Bearbeitung“ wird eine Übersetzung oder andere Bearbeitung des Werkes verstanden, die Ihre persönliche geistige Schöpfung ist. Eine freie Benutzung des Werkes wird nicht als Bearbeitung angesehen. — Unter den „Lizenzelementen“ werden die folgenden Lizenzcharakteristika verstanden, die vom Lizenzgeber ausgewählt und in der Bezeichnung der Lizenz genannt werden: — „Namensnennung“, „Nicht-kommerziell“, „Weitergabe unter gleichen Bedingungen“. Unter dem „Lizenzgeber“ wird die natürliche oder juristische Person verstanden, die den Schutzgegenstand unter den Bedingungen dieser Lizenz anbietet. Unter einem „Sammelwerk“ wird eine Sammlung von Werken, Daten oder anderen unabhängigen Elementen verstanden, die aufgrund der Auswahl oder Anordnung der Elemente eine persönliche geistige Schöpfung ist. Darunter fallen auch solche Sammelwerke, deren Elemente systematisch oder methodisch angeordnet und einzeln mit Hilfe elektronischer Mittel oder auf andere Weise zugänglich sind (Datenbankwerke). Ein Sammelwerk wird im Zusammenhang mit dieser Lizenz nicht als Bearbeitung (wie oben beschrieben) angesehen. Mit „SIE“ und „Ihnen“ ist die natürliche oder juristische Person gemeint, die die durch diese Lizenz gewährten Nutzungsrechte ausübt und die zuvor die Bedingungen dieser Lizenz im Hinblick auf das Werk nicht verletzt hat, oder die die ausdrückliche Erlaubnis des Lizenzgebers erhalten hat, die durch diese Lizenz gewährten Nutzungsrechte trotz einer vorherigen Verletzung auszuüben. Unter dem „Schutzgegenstand“wird das Werk oder Sammelwerk oder das Schutzobjekt eines verwandten Schutzrechts, das Ihnen unter den Bedingungen dieser Lizenz angeboten wird, verstanden Unter dem „Urheber“ wird die natürliche Person verstanden, die das Werk geschaffen hat. Unter einem „verwandten Schutzrecht“ wird das Recht an einem anderen urheberrechtlichen Schutzgegenstand als einem Werk verstanden, zum Beispiel einer wissenschaftlichen Ausgabe, einem nachgelassenen Werk, einem Lichtbild, einer Datenbank, einem Tonträger, einer Funksendung, einem Lauf109 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte bild oder einer Darbietung eines ausübenden Künstlers. — Unter dem „Werk“ wird eine persönliche geistige Schöpfung verstanden, die Ihnen unter den Bedingungen dieser Lizenz angeboten wird. 2. Schranken des Urheberrechts. Diese Lizenz lässt sämtliche Befugnisse unberührt, die sich aus den Schranken des Urheberrechts,aus dem Erschöpfungsgrundsatz oder anderen Beschränkungen der Ausschließlichkeitsrechte des Rechtsinhabers ergeben. 3. Lizenzierung. Unter den Bedingungen dieses Lizenzvertrages räumt Ihnen der Lizenzgeber ein lizenzgebührenfreies, räumlich und zeitlich (für die Dauer des Urheberrechts oder verwandten Schutzrechts) unbeschränktes einfaches Nutzungsrecht ein, den Schutzgegenstand in der folgenden Art und Weise zu nutzen: — den Schutzgegenstand in körperlicher Form zu verwerten, insbesondere zu vervielfältigen, zu verbreiten und auszustellen; — den Schutzgegenstand in unkörperlicher Form öffentlich wiederzugeben, insbesondere vorzutragen, aufzuführen und vorzuführen, öffentlich zugänglich zu machen, zu senden, durch Bild- und Tonträger wiederzugeben sowie Funksendungen und öffentliche Zugänglichmachungen wiederzugeben; — den Schutzgegenstand auf Bild- oder Tonträger aufzunehmen, Lichtbilder davon herzustellen, weiterzusenden und in dem in a. und b. genannten Umfang zu verwerten; — den Schutzgegenstand zu bearbeiten oder in anderer Weise umzugestalten und die Bearbeitungen zu veröffentlichen und in dem in a. bis c. genannten Umfang zu verwerten; Die genannten Nutzungsrechte können für alle bekannten Nutzungsarten ausgeübt werden. Die genannten Nutzungsrechte beinhalten das Recht, solche Veränderungen an dem Werk vorzunehmen, die technisch erforderlich sind, um die Nutzungsrechte für alle Nutzungsarten wahrzunehmen. Insbesondere sind davon die Anpassung an andere Medien und auf andere Dateiformate umfasst. Anhang Creative Commons 4. Beschränkungen. Die Einräumung der Nutzungsrechte gemäß Ziffer 3 erfolgt ausdrücklich nur unter den folgenden Bedingungen: — Sie dürfen den Schutzgegenstand ausschließlich unter den Bedingungen dieser Lizenz vervielfältigen, verbreiten oder öffentlich wiedergeben, und Sie müssen stets eine Kopie oder die vollständige Internetadresse in Form des Uniform-Resource-Identifier (URI) dieser Lizenz beifügen, wenn Sie den Schutzgegenstandvervielfältigen, verbreiten oder öffentlich wiedergeben. Sie dürfen keine Vertragsbedingungen anbieten oder fordern, die die Bedingungen dieser Lizenz oder die durch sie gewährten Rechte ändern oder beschränken. Sie dürfen den Schutzgegenstand nicht unterlizenzieren. Sie müssen alle Hinweise unverändert lassen, die auf diese Lizenz und den Haftungsausschluss hinweisen. Sie dürfen den Schutzgegenstand mit keinen technischen Schutzmaßnahmen versehen, die den Zugang oder den Gebrauch des Schutzgegenstandes in einer Weise kontrollieren, die mit den Bedingungen dieser Lizenz im Widerspruch stehen. Die genannten Beschränkungen gelten auch für den Fall, dass der Schutzgegenstand einen Bestandteil eines Sammelwerkes bildet; sie verlangen aber nicht, dass das Sammelwerk insgesamt zum Gegenstand dieser Lizenz gemacht wird. Wenn Sie ein Sammelwerk erstellen, müssen Sie - soweit dies praktikabel ist - auf die Mitteilung eines Lizenzgebers oder Urhebers hin aus dem Sammelwerk jeglichen Hinweis auf diesen Lizenzgeber oder diesen Urheber entfernen. Wenn Sie den Schutzgegenstand bearbeiten, müssen Sie - soweit dies praktikabel ist- auf die Aufforderung eines Rechtsinhabers hin von der Bearbeitung jeglichen Hinweis auf diesen Rechtsinhaber entfernen. — Sie dürfen eine Bearbeitung ausschließlich unter den Bedingungen dieser Lizenz, einer späteren Version dieser Lizenz mit denselben Lizenzelementen wie diese Lizenz oder einer Creative Commons iCommons Lizenz, die dieselben Lizenzelemente wie diese Lizenz enthält (z.B. Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 2.0 Japan), vervielfältigen, verbreiten oder öffentlich wiedergeben. Sie müssen stets eine Kopie oder die Internetadresse in Form des Uniform-Resource-Identifier (URI) 110 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte dieser Lizenz oder einer anderen Lizenz der im vorhergehenden Satz beschriebenen Art beifügen, wenn Sie die Bearbeitung vervielfältigen, verbreiten oder öffentlich wiedergeben. Sie dürfen keine Vertragsbedingungen anbieten oder fordern, die die Bedingungen dieser Lizenz oder die durch sie gewährten Rechte ändern oder beschränken, und Sie müssen alle Hinweise unverändert lassen, die auf diese Lizenz und den Haftungsausschluss hinweisen. Sie dürfen eine Bearbeitung nicht mit technischen Schutzmaßnahmen versehen, die den Zugang oder den Gebrauch der Bearbeitung in einer Weise kontrollieren, die mit den Bedingungen dieser Lizenz im Widerspruch stehen. Die genannten Beschränkungen gelten auch für eine Bearbeitung als Bestandteil eines Sammelwerkes; sie erfordern aber nicht, dass das Sammelwerk insgesamt zum Gegenstand dieser Lizenz gemacht wird. — Wenn Sie den Schutzgegenstand oder eine Bearbeitung oder ein Sammelwerk vervielfältigen, verbreiten oder öffentlich wiedergeben, müssen Sie alle Urhebervermerke für den Schutzgegenstand unverändert lassen und die Urheberschaft oder Rechtsinhaberschaft in einer der von Ihnen vorgenommenen Nutzung angemessenen Form anerkennen, indem Sie den Namen (oder das Pseudonym, falls ein solches verwendet wird) des Urhebers oder Rechteinhabers nennen, wenn dieser angegeben ist. Dies gilt auch für den Titel des Schutzgegenstandes, wenn dieser angeben ist, sowie - in einem vernünftigerweise durchführbaren Umfang - für die mit dem Schutzgegenstand zu verbindende Internetadresse in Form des Uniform-Resource-Identifier (URI), wie sie der Lizenzgeber angegeben hat, sofern dies geschehen ist, es sei denn, diese Internetadresse verweist nicht auf den Urhebervermerk oder die Lizenzinformationen zu dem Schutzgegenstand. Bei einer Bearbeitung ist ein Hinweis darauf aufzuführen, in welcher Form der Schutzgegenstand in die Bearbeitung eingegangen ist (z.B. „Französische Übersetzung des ... (Werk) durch ... (Urheber)“ oder „Das Drehbuch beruht auf dem Werk des ... (Urheber)“). Ein solcher Hinweis kann in jeder angemessenen Weise erfolgen, wobei jedoch bei einer Bearbeitung, einer Datenbank oder einem Sammelwerk der Hinweis zumindest an gleicher Stelle und in ebenso auffälliger Weise Anhang Creative Commons zu erfolgen hat wie vergleichbare Hinweise auf andere Rechtsinhaber. — Obwohl die gemäss Ziffer 3 gewährten Nutzungsrechte in umfassender Weise ausgeübt werden dürfen, findet diese Erlaubnis ihre gesetzliche Grenze in den Persönlichkeitsrechten der Urheber und ausübenden Künstler, deren berechtigte geistige und persönliche Interessen bzw. deren Ansehen oder Ruf nicht dadurch gefährdet werden dürfen, dass ein Schutzgegenstand über das gesetzlich zulässige Maß hinaus beeinträchtigt wird. 5. Gewährleistung. Sofern dies von den Vertragsparteien nicht anderweitig schriftlich vereinbart,, bietet der Lizenzgeber keine Gewährleistung für die erteilten Rechte, außer für den Fall, dass Mängel arglistig verschwiegen wurden. Für Mängel anderer Art, insbesondere bei der mangelhaften Lieferung von Verkörperungen des Schutzgegenstandes, richtet sich die Gewährleistung nach der Regelung, die die Person, die Ihnen den Schutzgegenstand zur Verfügung stellt, mit Ihnen außerhalb dieser Lizenz vereinbart, oder - wenn eine solche Regelung nicht getroffen wurde - nach den gesetzlichen Vorschriften. 6. Haftung. Über die in Ziffer 5 genannte Gewährleistung hinaus haftet Ihnen der Lizenzgeber nur für Vorsatz und grobe Fahrlässigkeit. 7. Vertragsende — Dieser Lizenzvertrag und die durch ihn eingeräumten Nutzungsrechte enden automatisch bei jeder Verletzung der Vertragsbedingungen durch Sie. Für natürliche und juristische Personen, die von Ihnen eine Bearbeitung, eine Datenbank oder ein Sammelwerk unter diesen Lizenzbedingungen erhalten haben, gilt die Lizenz jedoch weiter, vorausgesetzt, diese natürlichen oder juristischen Personen erfüllen sämtliche Vertragsbedingungen. Die Ziffern 1, 2, 5, 6, 7 und 8 gelten bei einer Vertragsbeendigung fort. — Unter den oben genannten Bedingungen erfolgt die Lizenz auf unbegrenzte Zeit (für die Dauer des Schutzrechts). Dennoch behält sich der Lizenzgeber das Recht vor, den Schutzge111 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte genstand unter anderen Lizenzbedingungen zu nutzen oder die eigene Weitergabe des Schutzgegenstandes jederzeit zu beenden, vorausgesetzt, dass solche Handlungen nicht dem Widerruf dieser Lizenz dienen (oder jeder anderen Lizenzierung, die auf Grundlage dieser Lizenz erfolgt ist oder erfolgen muss) und diese Lizenz wirksam bleibt, bis Sie unter den oben genannten Voraussetzungen endet. 8. Schlussbestimmungen — Jedes Mal, wenn Sie den Schutzgegenstand vervielfältigen, verbreiten oder öffentlich wiedergeben, bietet der Lizenzgeber dem Erwerber eine Lizenz für den Schutzgegenstand unter denselben Vertragsbedingungen an, unter denen er Ihnen die Lizenz eingeräumt hat. — Jedes Mal, wenn Sie eine Bearbeitung vervielfältigen, verbreiten oder öffentlich wiedergeben, bietet der Lizenzgeber dem Erwerber eine Lizenz für den ursprünglichen Schutzgegenstand unter denselben Vertragsbedingungen an, unter denen er Ihnen die Lizenz eingeräumt hat. — Sollte eine Bestimmung dieses Lizenzvertrages unwirksam sein, so wird die Wirksamkeit der übrigen Lizenzbestimmungen dadurch nicht berührt, und an die Stelle der unwirksamen Bestimmung tritt eine Ersatzregelung, die dem mit der unwirksamen Bestimmung angestrebten Zweck am nächsten kommt. — Nichts soll dahingehend ausgelegt werden, dass auf eine Bestimmung dieses Lizenzvertrages verzichtet oder einer Vertragsverletzung zugestimmt wird, so lange ein solcher Verzicht oder eine solche Zustimmung nicht schriftlich vorliegen und von der verzichtenden oder zustimmenden Vertragspartei unterschrieben sind — Dieser Lizenzvertrag stellt die vollständige Vereinbarung zwischen den Vertragsparteien hinsichtlich des Schutzgegenstandes dar. Es gibt keine weiteren ergänzenden Vereinbarungen oder mündlichen Abreden im Hinblick auf den Schutzgegenstand. Der Lizenzgeber ist an keine zusätzlichen Abreden gebunden, die aus irgendeiner Absprache mit Ihnen entstehen könnten. Der Lizenzvertrag kann nicht ohne eine übereinstimmende schriftliche Vereinbarung zwischen dem Lizenzgeber und Ihnen abgeändert werden. Anhang Creative Commons — Auf diesen Lizenzvertrag findet das Recht der Bundesrepublik Deutschland Anwendung. CREATIVE COMMONS IST KEINE VERTRAGSPARTEI DIESES LIZENZVERTRAGES UND ÜBERNIMMT KEINERLEI GEWÄHRLEISTUNG FÜR DAS WERK. CREATIVE COMMONS IST IHNEN ODER DRITTEN GEGENÜBER NICHT HAFTBAR FÜR SCHÄDEN JEDWEDER ART. UNGEACHTET DER VORSTEHENDEN ZWEI (2) SÄTZE HAT CREATIVE COMMONS ALL RECHTE UND PFLICHTEN EINES LIZENSGEBERS, WENN SICH CREATIVE COMMONS AUSDRÜCKLICH ALS LIZENZGEBER BEZEICHNET. AUSSER FÜR DEN BESCHRÄNKTEN ZWECK EINES HINWEISES AN DIE ÖFFENTLICHKEIT, DASS DAS WERK UNTER DER CCPL LIZENSIERT WIRD, DARF KENIE VERTRAGSPARTEI DIE MARKE “CREATIVE COMMONS” ODER EINE ÄHNLICHE MARKE ODER DAS LOGO VON CREATIVE COMMONS OHNE VORHERIGE GENEHMIGUNG VON CREATIVE COMMONS NUTZEN. JEDE GESTATTETE NUTZUNG HAT IN ÜBREEINSTIMMUNG MIT DEN JEWEILS GÜLTIGEN NUTZUNGSBEDINGUNGEN FÜR MARKEN VON CREATIVE COMMONS ZU ERFOLGEN, WIE SIE AUF DER WEBSITE ODER IN ANDERER WEISE AUF ANFRAGE VON ZEIT ZU ZEIT ZUGÄNGLICH GEMACHT WERDEN. CREATIVE COMMONS KANN UNTER http://creativecommons.org KONTAKTIERT WERDEN. 112 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang GNU General Public License Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is 113 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Anhang GPLv3 Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running 114 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: Anhang GPLv3 — a) The work must carry prominent notices stating that you modified it, and giving a relevant date. — b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. — c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. — d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: — a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. — b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid 115 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. — c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. — d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. — e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor Anhang GPLv3 of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 116 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: — a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or — b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or — c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or — d) Limiting the use for publicity purposes of names of licensors or authors of the material; or — e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or — f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. Anhang GPLv3 All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qua117 Betreuer: Diplomarbeit / SS 2008 Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte lify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a crossclaim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. Anhang GPLv3 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or 118 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. Anhang GPLv3 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABI119 Diplomarbeit / SS 2008 Betreuer: Diplomand: Prof. Dr. Arnd Steinmetz Claudius Coenen Prof. Mike Richter Geospatial Informationaccess—Ein System zur geografisch verorteten Informationsspeicherung und -abfrage mittels mobiler Geräte Anhang GPLv3 LITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 120 </diplomarbeit>