Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter...

43
Android Context Twitter Software Engineering Projekt WS 09/10

Transcript of Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter...

Page 1: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Android Context Twitter

Software Engineering Projekt WS 09/10

Page 2: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Gliederung

Android Context Twitter 2

  Motivation   Zielsetzung   Grundlagen   Implementation

  Komponentenüberblick   Komponentenkommunikation   Serverkomponenten   Android Context Twitter (ACT)

  Ergebnisse / Zusammenfassung

Page 3: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Motivation

Android Context Twitter 3

  Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen

  Erhöhte Mobilitätsanforderungen der Benutzer   Viele und schnell wachsende Social-Network-

Communities   Fortlaufende Veröffentlichung und Zentralisierung von

Nutzerdaten und –content   Nahezu alle Social Networks mit eigenen Applikationen

auf Handys vertreten   Neue Visualisierungsmöglichkeiten dank umfangreicher

Sensorenausstattung (GPS, Kompass, Motion, Kamera) möglich >> „Augmented Reality“

Page 4: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Grobe Zielsetzung

Android Context Twitter 4

  Umsetzung eines prototypischen handybasierten Social Network Dienstes:   Ablage und Veröffentlichung ortsgebundener Inhalte durch

Benutzer   Ortsgebunden durch Nutzung von GPS

und der Google Maps API   Sinnvolle Verknüpfung des Benutzerprofils mit extern

bereitgestellten Informationen des Context Brokers

  Diese Vorlage wurde von uns durch umfangreiche, weitere Zielsetzungen erweitert, von denen wir uns auf die Wichtigsten konzentriert haben

Page 5: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Spezifizierte Anwendungsfälle

Android Context Twitter 5

Page 6: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Exemplarisches Aktivitätsdiagramm

Android Context Twitter 6

Page 7: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Grundlagen

Android Context Twitter 7

  PHP   XML   Android SDK

Page 8: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Einführung in PHP

Android Context Twitter 8

  PHP Hypertext Preprocessor   Serverseitige Skriptsprache   Objektorientiert   Syntax ähnlich Java, C, Perl   Einfach zu erlernen und zu handhaben   Schnelle Ergebnisse   Gut dokumentiert, große Community, viele hilfreiche

Webseiten   Keine gravierenden Nachteile gegenüber Java   Gute Kenntnisse im Team vorhanden

Page 9: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

XML   eXtensible Markup Language   Context Broker verwendet XML   Zur Übertragung von komplexen Daten   Aufruf von Funktionen mit komplexen Daten   Erweiterbar und Wiederverwendbar   XML-Parsing in den wichtigsten Programmiersprachen

schon implementiert

Page 10: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Android SDK

Android Context Twitter 10

  Android OS Release: Oktober 2008

  Baut auf Linux-Kernel auf

  Hat effiziente Java VM

  511 von 1448 Java-Klassen sind Android-spezifisch

  Framework ist stark modular

  Anwendung läuft über Activities

  Strenges Berechtigungssystem

  Einfache Ressourcenverwaltung

Page 11: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Android SDK

Android Context Twitter 11

Page 12: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Design und Implementierung

Android Context Twitter 12

  Komponentenüberblick   Kommunikation via HTTP und XML   Funktionalitäten und Schnittstellen der Komponenten

  User Management System (UMS)   Content Management System (CMS)   Radar Management System (Radar)   Android Context Twitter (ACT)

  Architektur   Ablauf und Funktionsweise   Auswertung der Serverantwort   Darstellung der Serverantwort

Page 13: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Komponentenüberblick

Page 14: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Kommunikation via HTML mit XML

Android Context Twitter 14

  Konventionen:   Datenaustauschformat XML   Komponenten antworten immer mit XML   Fehlerabfragen sind mit Fehlercode versehen

Erfolgreiche Abfrage am CMS

<root>

<data>

<contenturl>http://e04-server3.et.fh-osnabrueck.de/cms/files/1.txt</contenturl>

</data>

<serverstats>

<servercode>00</servercode>

<exception>ok</exception>

</serverstats>

</root>

Page 15: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Kommunikation via HTML mit XML

Android Context Twitter 15

  Konventionen:   Datenaustauschformat XML   Komponenten antworten immer mit XML   Fehlerabfragen sind mit Fehlercode versehen

Erfolglose Abfrage am CMS

<root>

<data/>

<serverstats>

<servercode>102</servercode>

<exception>ContentID ist in der Datenbank nicht vorhanden</exception>

</serverstats>

</root>

Page 16: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Funktionalitäten und Schnittstellen der Komponenten

Android Context Twitter 16

Page 17: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

User Management System (UMS)

Android Context Twitter 17

Page 18: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Funktionalität UMS

Android Context Twitter 18

  Registration von Benutzern   Profile (vom Context Broker)

  Lesen   Schreiben

  Freundesliste / Funktionen   Hinzufügen   Entfernen   Aufteilung in Kategorien

  Weitere Funktionen, siehe Dokumentation

Page 19: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Datenbank UMS

Android Context Twitter 19

Page 20: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Komponentendiagramm UMS

Android Context Twitter 20

Page 21: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Schnittstellen UMS

Android Context Twitter 21

HTTP (REST) Request, z.B.:

/user/getProfile?entity=mknappmeyer

Profilfeldändern:

/user/setProfile?entity=mknappmeyer&profile=

<data>

<profile>

<email>[email protected]</email>

</profile>

</data>

Page 22: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Content Management System (CMS)

Android Context Twitter 22

Page 23: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Funktionalität CMS

Android Context Twitter 23

  Serverkomponente   Wird angesprochen durch Client und Radar   Delegiert Aufgaben an das Radar   Referenziert Daten in einer Datenbank   Speichert den Inhalt als Dateien im System   Kann auf externen Content verweisen

  Content   Speichern   Löschen

  “Pinnwand”   Zuweisung von Contents zu Pinnwänden

Page 24: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Komponentendiagramm CMS

Android Context Twitter 24

Page 25: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Schnittstellen CMS

Android Context Twitter 25

/content/getContent?contentid=[id]

Content-Informationenlesen

Page 26: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Radar Management System (Radar)

Android Context Twitter 26

Page 27: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Funktionalität Radar

Android Context Twitter 27

  Serverkomponente   Filtert Content nach Kriterien, wie:

  Radius in Kilometern um den Benutzer   Bewertung

  Benutzer nach:   Geschlecht   Alter

  Liefert „Pinnwände“   Für die Contentbewertung zuständig

Page 28: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Komponentendiagramm Radar

Android Context Twitter 28

Page 29: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

getBlips

Android Context Twitter 29

XML

<data>

<cat_id>1</cat_id>

<distance>100</distance>

<gender>m</gender>

<userage>40</userage>

<rating>4</rating>

</data>

Aufruf https://e04-server3.et.fh-osnabrueck.de/radar/getBlips?

entity=testy&properties=[XML]

Page 30: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Radius: Datenbank Abfrage

Android Context Twitter 30

SELECT content.c_id, mediatyp, titel, username, longitude, latitude, erstellt

, ACOS(

SIN(RADIANS(latitude)) * SIN(RADIANS(".$lat."))

+ COS(RADIANS(latitude)) * COS(RADIANS(".$lat."))

* COS(RADIANS(longitude) - RADIANS(".$lng."))

) * 6380 AS Distance

FROM locations

INNER JOIN content ON locations.c_id=content.c_id

INNER JOIN viewmodes ON content.c_id=viewmodes.object_id

Having Distance <= ".$saveparams['distance']."

Page 31: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Serverantwort

Android Context Twitter 31

Antwort

<data>

<blip>

<longitude>8.05160522460938</longitude>

<latitude>52.269287109375</latitude>

<entry>

</entry>

</blip>

<blip>

</blip>

</data>

Page 32: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Android Context Twitter

Android Context Twitter 32

Page 33: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Aufteilung in Pakete

Android Context Twitter 33

Page 34: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Klassendiagramm Datamodel

Android Context Twitter 34

Page 35: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Ablaufsteuerung

Android Context Twitter 35

Page 36: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Auswertung der Serverantwort

 Parsing der XML-Serverantwort  XMLContentParser (Basisklasse)

  parse(InputStream is, String keyword) : Node

 Davon abgeleitete konkrete Parser   String keyword: NodeName des zu parsenden Nodes   Childnodes und deren Values auslesen

 Parserschachtelung   FriendListParser nutzt den UserProfileParser   PinnboardParser nutzt den ContentParser   BlipsParser nutzt den ContentParser

  Objektgenerierung

Page 37: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Darstellung der Serverantwort (Views)

  SDK beinhaltet vorgefertigte Komponenten/Widgets   Layouts etc.   Galleryansicht etc.

  Datenaufbereitung in den Activities und Adaptern   Komplette View-Gestaltung via XML

  Teilweise Unterstützung durch Eclipse-Designer

  Ähnliche Style-Definition wie CSS

Page 38: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Beispiel einer View

Fertige View in Android:

XML-Code:

<?xmlversion="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

<EditTextandroid:text="vordefinierter Text"

android:id="@+id/EditText01"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

<Button style="@style/styleDef" android:text="ButtonText"

android:id="@+id/Button01"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</LinearLayout>

Page 39: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Ergebnisse   Verlauf der Entwicklungsphase   Bewertung Android SDK   Erreichte Funktionalitäten   Ausblick

Page 40: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Verlauf der Entwicklungsphase   Test auf verschiedenen Geräten

  Android 2.0 (Motorola Milestone)   Android 1.6 (HTC G2, HTC Tattoo)   Android SDK-Emulator   Ausführliche Logging-Informationen   Test-Suite beim UMS

  u.a. Context-Broker Positionssimulator

Page 41: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Bewertung Android SDK

  Volle Java-Funktionalität (Vergleich JavaME)   Android SDK benötigt relativ lange Einarbeitungszeit   Vordefinierte Komponenten   Größtenteils Smartphone übergreifend   Entwicklung noch in den Anfängen, jedoch großes

Potenzial   Gute Basis für ortsbasierte Dienste

Page 42: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Erreichte Funktionalität

  Nicht umgesetzte Funktionen   Benutzerverifikation   Freundesverwaltung   Navigationsfunktion

  Umgesetzte Funktionen   Serverkomponenten   Radar wird richtig positioniert und mit Blips gefüllt   Content anlegen bzw. hochladen   Freundesliste, Profile und Content anzeigen

Page 43: Android Context Twitter - Hochschule Osnabrück€¦ · Motivation 3 Android Context Twitter Zunehmende Verbreitung von Smartphones, auch mit GPS Modulen Erhöhte Mobilitätsanforderungen

Ausblick

Android Context Twitter 43

  Modularer Aufbau der Software durch Architektur der Wrapper und Parser

  Weitere ortsbasierte Dienste sind denkbar   Trigger   „Schatzsuche“   Routendefinition   Darstellung des Inhalts durch „Augmented Reality“

  Durch verteiltes Serversystem sind Anbindungen weiterer Server zu dem System möglich

  Optimierung von Server/Applikation bringt Performancesteigerung