Vergleich verschiedener Maus-Emulatoren für Microsoft Kinect

[toc] Mit dem Erscheinen von Microsoft Kinect als Zubehör für die Spielekonsole Xbox 360 im November 2010 wurde erstmal ein kostengünstiger Infrarot-Tiefensensor für eine breite Nutzerschaft verfügbar und schuf somit die Möglichkeit zur Entwicklung von Anwendungen, die durch eine gestenbasierte Nutzerinteraktion ohne zusätzliche Eingabegeräte das Potential zur Revolution der Gestaltung der Human-Computerrec Interaction versprechen. Daher entstand in kurzer Zeit eine Community, die die Anbindung an einen PC zunächst mit selbstentwickelten Treibern, einige Wochen später dann mit Treibern und Software Development Kit (SDK) von dem ebenfalls an der Entwicklung von Kinect beteiligten Unternehmen Primesense ermöglichte und erste Anwendungen mit vielfältigen Anwendungsgebieten veröffentlichte. Während Microsoft selbst diesen Trend zunächst nicht unterstützte, wurde dann im Mai 2011 ein offizielles „Kinect for Windows SDK“ veröffentlicht. Durch die unterschiedliche Dauer der Verfügbarkeit der verschiedenen Gerätetreiber und der darauf aufbauenden SDKs haben sich unterschiedliche Entwicklergemeinden gebildet. Daher gibt es derzeit mehrere verschiedene Anwendungen, die zur Steuerung eines Mauszeigers durch die Kinect-Hardware eingesetzt werden können. Jede dieser Anwendungen unterscheidet sich in der Art der Bedienung oder Funktionsumfang. In diesem Artikel werden einige der verfügbaren Anwendungen näher betrachtet und anhand der Kriterien Einsatzentfernungen, Genauigkeit der Zeigerpositionierung, Zuverlässigkeit der Auswahlgesten, Stabilität der Anwendung und Konfigurierbarkeit mit einander verglichen.

Kinect Maus-Emulatoren

Die Grundlage des Artikels bilden die Anwendungen FAAST, Kinemote und PCD auf der Basis des von Primesense veröffentlichten OpenNI SDK sowie Kinect Cursor Control auf Basis des Kinect for Windows SDK von Microsoft. Neben diesen frei verfügbaren Anwendungen zur Steuerung des Mauszeigers mit dem Kinect Tiefensensor wird nachfolgend auch eine kommerziell vertriebene Anwendung betrachtet. Dabei handelt es sich um um die Anwendung WIN&I, die von der Evoluce AG angeboten wird.

KinEmote

KinEmote[ref]Installationsanleitung und weitere Informationen zu KinEmote sind auf der Projekt-Website erhältlich unter http://www.kinemote.net/.[/ref] ist ein Framework, das verschiedene Anwendungen zur Nutzung der Microsoft Kinect bündelt. Es greift dazu auf das OpenNI Framework[ref]Weitere Informationen zu OpenNI finden sich unter http://openni.org/.[/ref] zurück, welches die Verwendung der verschiedenen von der Kinect gelieferten Sensordaten ermöglicht. OpenNI wurde von einer  Non-Profit-Organisation veröffentlicht, an der unter anderem auch Primesense mitwirkt. Primesense entwickelte zusammen mit Microsoft den Kinect-Sensor.

httpvh://www.youtube.com/watch?v=3y0JT0xR_a4

Neben Anwendungen zur Steuerung des Xbox Media Centers und der Medienserveranwendung Boxee mit Handgesten sowie der Emulation von bis zu acht zuvor konfigurierten Tastatureingaben durch das Bewegen der Hand nach oben, unten, links und rechts bei gestrecktem oder gebeugtem Arm kann KinEmote auch zur Steuerung des Mauszeigers genutzt werden. Dazu kommt eine Kombination von relativer und absoluter Positionierung des Zeigers zum Einsatz. Während viele Anwendungen zur Maussteuerung mittels Kinect ein imaginäres Rechteck im Raum aufspannen und die Position der Hand in diesem Rechteck auf eine absolute Position auf dem genutzten Display abbilden, wird bei der virtuellen KinEmote Maus die relative Bewegung der Hand zwischen Start- und Endpunkt der Handbewegung auf eine Bewegung des Mauszeigers übertragen. So kann der Nutzer mit einer schnellen kurzen Bewegung der Hand einen rasche Verschiebung des Zeigers über eine große Strecke realisieren aber auch durch eine langsame Bewegung der Hand über eine große Strecke eine präzise Verschiebung des Zeigers in einem kleinen Radius auf dem Display erreichen.

[singlepic id=838 w=618 float=]

Andere Anwendungen mit relativer Zeigerpositionierung nutzen häufig einen statischen Referenzpunkt mittig vor dem Körper und bilden z.B. eine Handbewegung nach rechts oben von der Körpermitte auf eine Zeigerbewegung nach rechts oben ab. Da KinEmote den Endpunkt der letzten Bewegung als neuen Referenzpunkt für die nächste Bewegung nutzt, lässt sich die Anwendung ähnlich bedienen, wie eine Anwendung mit absoluter Zeigerpositionierung, wodurch der Nutzer ein direkteres Feedback für die durchgeführte Handbewegung erhält, als bei einer relativen Positionierung mit statischem Referenzpunkt. Die Kombination von absoluter und relativer Positionierung erlaubt also eine schnelle aber dennoch präzise Verschiebung des Zeigers.

Der Benutzer beginnt die Interaktion durch eine Winkbewegung aus dem Handgelenk. Es können sowohl die linke als auch die rechte Hand zur Interaktion genutzt werden. Da die Anwendung in einem Abstand von einem bis vier Metern vor dem Sensor genutzt werden kann und sehr stabil läuft, ist KinEmote gut geeignet, um die Funktionen einer herkömlichen Computermaus zu emulieren. Ein Auswahl-Event wird durch das Vor- und Zurückführen der Hand ausgelöst, mit der auch der Zeiger positioniert wird. Da keine Parameter zur Konfiguration des Select-Events verfügbar sind, kommt es häufig vor, dass beim Versuch einen Klick auszuführen eine versehentliche Neupositionierung des Zeigers erfolgt. Außerdem wird gelegentlich kein Klick ausgelöst, obwohl der Nutzer dies beabsichtigt.

FAAST

Das Flexible Action and Articulated Skeleton Toolkit (FAAST)[ref]Installationsanleitung sowie weitere Informationen zur Anwendung von FAAST sind erhältlich unter http://projects.ict.usc.edu/mxr/faast/.[/ref] ist eine am Institute for Creative Technologies der University of Southern California entwickelte, auf dem OpenNI SDK basierende Anwendung, die es erlaubt verschiedene Gesten zu erfassen und damit mittels einer einfachen Syntax definierbare Maus- oder Tastatur-Events zu emulieren. Auf diese Weise können dann andere Anwendungen mit den zuvor konfigurierten Gesten bedient werden. Die Anwendung kann dazu zwischen der Fokussierung bei der Gestenerkennung auf den gesamten Körper, den Oberkörper, den Unterkörper oder die Hand unterscheiden. Je größer der fokussierte Bereich ist, desto mehr Gesten können erkannt werde. Allerdings sinkt damit auch die Präzision der Erkennung der ausgeführten Gesten.

httpvh://www.youtube.com/watch?v=Up-9xdXGIQY

Eine präzise Steuerung des Mauszeigers ist leider aktuell nur bei der Fokussierung auf die Hand möglich. Durch die Fokussierung auf die Hand können jedoch keine Gesten mit anderen Körperteilen erfolgen, weshalb es mit FAAST nicht möglich ist, gleichzeitig eine genau Positionierung und eine zuverlässige Auswahlgeste zu erreichen. Bei einem Fokus auf den Oberkörper kann dann beispielweise konfiguriert werden, dass der linke Arm leicht nach vorne geführt werden muss, um einen Klick auszulösen, während der rechte Arm zum Positionieren des Zeigers genutzt wird. Die Syntax zum konfigurieren der Geste-Event Belegungen hat folgende Form:

<Gestenbezeichnung> <Positionsveränderungzum Auslösen der Geste in Inch/Zoll> <Auszulösendes Event> <Konkretisierung des Events>

Dabei müssen die einzelnen für die Platzhalter in der Syntax eingetragenen Spezifizierungen genau ein Leerzeichen Abstand haben und Leerzeichen in den Spezifizierungen durch einen Unterstrich ersetzt werden. Ein Beispiel für eine Gesten-Event Konfiguration könnte folgendermaßen aussehen:

left_arm_forwards 5 mouse_click left_mouse_button

Damit wird bei einer Bewegung des linken Arms um fünf Zoll (also 12,7cm) nach vorn ein einzelner Klick mit der linken Maustaste ausgelöst. Eine detaillierte Auflistung aller verfügbaren Gesten und auslösbaren Events mit der dafür zu verwendenden Spezifizierung ist auf der Website zur Anwendung erhältlich.

[singlepic id=835 w=618 h= float=]

Neben den programmierbaren Geste-Event Kombinationen gibt es außerdem eine Reihe von Parametern, die zur Individualisierung des Interaktionsbereichs und zur Feinjustierung der Bewegungsglättung zur präziseren Zeigerpositionierung genutzt werden können. So können unter anderem der fokusierte Körperteil, die Stärke der Bewegungsglättung und die Art der Zeigerpositionierung gewählt werden. So erlaubt FAAST als einzige betrachtete Anwendung die individuelle Konfiguration des Bereichs, in dem die Bewegungen der Hand des Nutzers auf Bewegungen des Zeigers auf dem Bildschirm zur absoluten Positionierung übertragen werden. Insgesamt bietet FAAST die umfassendsten Konfigurations- und Individualisierungsoptionen.

[singlepic id=836 w=618 h= float=]

WIN & I

WIN&I[ref]Weitere Informationen zu WIN&I und anderen Produkten der Evoluce AG sind erhältlich unter http://www.evoluce.com/de/software/win-and-i_software-store.php.[/ref] ist eine von der Evoluce AG kommerziell vertrieben Anwendung zur Emulation der Maussteuerung mit dem Microsoft Kinect Sensor auf Basis des OpenNI SDK. Die Anwendung nutzt dieselbe Form der relativen Positionierung wie die Virtual Mouse des KinEmote Anwendungspaketes und erlaubt eine ebenso präzise Zeigerpositionierung. Jedoch wird bei WIN&I bei einer schnellen Handbewegung eine weitere Verschiebung des Zeigers vorgenommen als bei KinEmote, sodass die Steuerung des Zeigers insgesamt einen agileren Eindruck vermittelt und so ein direkteres Feedback liefert.

httpvh://www.youtube.com/watch?v=cGnSWXb8Hus

Außerdem erlaubt die Anwendung die Nutzung aller Mausfunktionen über die Implementierung eines Gestenmodus. Hält der Benutzer die Hand für eine gewisse Zeitspanne, die über einen Parameter grob anhand der Nutzererfahrung konfiguriert werden kann, still, so erscheint statt des Mauszeigers ein Und-Symbol. Ist der Gestenmodus auf diese Weise aktiviert worden, kann der Nutzer nun durch die Bewegung der Hand in eine Richtung einen Mouse-Event auslösen, ohne dabei den Zeiger zu verschieben. Nach der Aktivierung des Gestenmodus löst beispielsweise eine Bewegung
der Hand nach links einen Linksklick aus. Eine Bewegung der Hand nach rechts bewirkt
einen Rechtsklick. Eine Auswahl der Ziele durch Ausstrecken und Zurückziehen des Arms
ist dennoch möglich. Somit ist WIN&I die einzige getestete Anwendung, die ein präzises Positionieren des Zeigers und ein zuverlässiges Auswählen der Ziele zulässt. Zudem läuft die Anwendung sehr stabil und kann in einer Entfernung von einem bis vier genutzt werden.

[singlepic id=860 w=618 h= float=]

PCD

Palm Click and Drag (PCD)[ref]Detaillierte Informationen zu PCD finden sich unter http://www.kinemote.net/community/viewtopic.php?f=12&t=24.[/ref] ist eine auf OpenNI aufbauende Anwendung der Entwickler des KinEmote-Anwendungspakets. Anders als die virtuelle Maus des KinEmote-Paketes kann mit PCD eine präzise Platzierung des Zeigers über eine absolute Positionierung erfolgen. Startet der Benutzer die Interaktion durch eine Winkgeste, so wird ein im Vergleich zu anderen Anwendungen mit absoluter Zeigerpositionierung kleines imaginäres Rechteck um die Position der Hand gebildet. Da bei der absoluten Positionierung die Position der Hand im imaginären Rechteck auf die Position des Zeigers auf dem Display abgebildet wird, kann der Nutzer schnell die äußeren Positionen des Displays erreichen und dabei stets eine angenehme Körperhaltung beibehalten. Die gute aber nur teilweise konfigurierbare Bewegungsglättung erlaubt zudem eine präzise Positionierung im zentralen Displaybereich, die stets ohne ein Springen des Zeigers erfolgen kann.

httpvh://www.youtube.com/watch?v=9CT460xEr18

Den Namen „Palm Click and Drag“ trägt die Anwendung wegen ihrer verschiedenen Interaktionsmodi. Zur Unterscheidung der Modi bildet das Framework eine Umrandung der Hand. Im Modus „Palm“ kann der Zeiger bei geöffneter Hand und gespreizten Fingern positioniert werden. Dabei ist sowohl die horizontale, als auch die vertikale Ausdehnung der Umrandung der Hand maximal. Führt der Nutzer die Finger zusammen, gelangt er in den Modus „Click“, der eine Betätigung der linken Maustaste emuliert. Dazu erfasst die Anwendung die verringert horizontale Ausdehnung der Handumrandung bei weiterhin maximaler vertikaler Ausdehnung. Schließt der Nutzer nun zusätzlich die Hand und ballt sie somit zu einer Faust, gelangt er in den Modus „Drag“ und emuliert so ein Drag-Event (Halten der linken Maustaste), das beim Öffnen der Hand mit einem Drop-Event (Loslassen der linken Maustaste) beendet wird. Die horizontale und vertikale Ausdehnung der Handumrandung haben sich gegenüber dem „Palm“ Modus verringert. Auf diese Weise können alle Mausevents, die mit der linken Maustaste einer Rechtshändermaus ausgelöst werden, stattfinden. Ein Doppelklick erfolgt z.B. durch zweifaches schnelles Zusammenführen und Spreizen der Finger.

Die Anwendung bietet einige Konfigurationsmöglichkeiten, welche die Präzision der Interaktion mit der Anwendung sowie die emulierbaren Events beeinflussen. Mit dem Schieberegler „History amount for averaging (0-10)“ kann beispielsweise die Anzahl der für die Errechung der Handumrandung genutzten Positionsdaten der Hand zwischen null und zehn Frames variiert werden. Mit einem hohen Wert lässt sich zwar die Präzision der Zeigerpositionierung und dieZuverlässigkeit der Klickerkennung steigern, jedoch steigt dabei auch die benötigte Rechenleistung an. Mit dem Schieberegler „Averaging“ kann der Detailgrad der für die Errechnung der Handumrandung genutzten Positionsdaten variiert werden, um die benötigte Rechenleistung zu reduzieren, da Anfangs der Maximalwert eingestellt ist. Mit dem Regler „Open/Close Delta“ kann die nötige Verringerung der maximalen Ausdehnung der Handumrandung bis zum Auslösen der Click- und Drag-Events beeinflusst werden. Jedoch führt auch eine starke Verringerung dieses Wertes nicht zu einer zuverlässigeren Auslösung der Auswahlevents bei einer Entfernung von mehr als 2,50m. Zusätzlich kann die Positionierung des Zeigers und das Auslösen der Klick-Events aktiviert bzw. deaktiviert werden und eine emulierte Tastatureingabe beim Start der Interaktion durch die Winkgeste oder beim Beenden der Interaktion durch Entfernen der Hand aus dem imaginären Rechteck zur Positionierung eingestellt werden.

[singlepic id=839 w=618 h= float=]

Kinect Cursor Control

Kinect Cursor Control[ref]Installationsanleitung sowie weitere Informationen zu Kinect Cursor Control sind erhältlich unter http://kinectmouse.codeplex.com/[/ref] ist eine Anwendung zur Steuerung des Zeigers mittels Kinect und basiert auf dem „Kinect for Windows SDK“[ref]Hierbei handelt es sich um das „offizielle“ Microsoft SDK. Weitere Informationen sind unter http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/default.aspx erhältlich.[/ref] von Microsoft. Die Anwendung ermöglicht eine absolute Positionierung des Zeigers durch die Bewegung der rechten Hand im von der Anwendung angezeigten Bildausschnitt und eine entsprechende Abbildung der Position der Hand im Bildausschnitt auf die Position des Zeigers auf dem Display.

httpvh://www.youtube.com/watch?v=YelZEhvGBAk

Da jedoch das imaginäre Rechteck zur Positionierung zu groß gewählt ist, können nicht alle Stellen des Displays mit dem Cursor erreicht werden, sodass bei der Nutzung mit der rechten Hand ein Bereich auf der linken Seite des Displays nicht erreicht wird und bei der Nutzung mit der linken Hand ein Teil am rechten Rand des Displays. Außerdem muss der Arm häufig weit angehoben und weit über die Körpermitte bewegt werden, sodass die Schulter bei der Interaktion schnell ermüdet. Zusätzlich kann es bei der Positionierung der Hand direkt vor dem Körper zu einem starken Springen des Zeigers kommen, da dort die Position der Hand nicht klar erkannt werden kann. Andererseits beinhaltet die Anwendung einen zuverlässigen Mechanismus zum Auslösen eines Select-Events. Um einen Klick auszuführen, muss der Arm, der nicht zur Positionierung genutzt wird, gestreckt angehoben und kurz dort gehalten werden. So kann ein Klick ausgelöst werden, ohne versehentlich den Zeiger neu zu positionieren. Die zu starke Bewegungsglättung der Anwendung führt jedoch dazu, dass die Steuerung des Zeigers träge und indirekt wirkt, sodass eine Nutzung der Anwendung zur Steuerung eines Rechners nicht dauerhaft und ohne Einschränkungen möglich ist.

[singlepic id=837 w=618 h= float=]

Vergleichskriterien

Nachdem die einzelnen Anwendungen vorgestellt und beschrieben wurden, folgt an dieser Stelle eine Übersicht über  im Hinblick auf die für den Einsatz zur PC-Interaktion relevanten Kriterien. Dafür werden zunächst die verwendeten Vergleichskriterien Art der Zeigerpositionierung, Präzision der Zeigerpositionierung, Zuverlässigkeit der Auswahlgeste, maximale und minimale Einsatzentfernung sowie Stabilität der Anwendung erklärt, bevor anschließend eine tabellarische Einordnung der einzelnen Anwendungen anhand der genannten Kriterien erfolgt.

Art der Zeigerpositionierung

Zur Positionierung des Mauszeigers werden bei den betrachteten Anwendungen drei verschiedene Methoden genutzt. Die erste Methode, die absolute Positionierung, spannt ein imaginäres Rechteck im Raum auf und bildet die Position der Hand des Nutzers innerhalb des Rechtecks auf die entsprechende Position des Mauszeigers auf dem genutzten Display ab. Damit diese Methode auch bei unterschiedlichen Entfernungen des Nutzers zum Display funktioniert, muss das imaginäre Rechteck indirekt proportional zur Entfernung des Nutzers skaliert werden. Die zweite und dritte Methode zur Positionierung des Zeigers basieren auf einer relativen Handbewegung, also einer Bewegung der Hand relativ zu einem Bezugspunkt im Raum. Während eine Form der relativen Positionierung einen statischen Bezugspunkt wählt und somit beispielsweise ein Bezugspunkt in der Körpermitte und eine Bewegung der Hand auf die linke Körperseite immer eine Zeigerverschiebung nach links bewirkt, wird bei der anderen Form der relativen Positionierung der Bezugspunkt für die Bewegung ständig an der Stelle, an der die Handbewegung endet, neu gesetzt. Durch die gerade beschriebene adaptive relative Positionierung kann ein ähnliches Nutzungsgefühl wie bei der absoluten Positionierung erreicht werden und dennoch eine genauere Platzierung erfolgen.

Präzision der Zeigerpositionierung

Die Präzision, mit welcher der Zeiger über einem Objekt positioniert werden kann, ist abhängig von der Bewegungsglättung, die die zu Grunde liegende Anwendung nutzt, um die Sensordaten in eine Zeigerbewegung umzusetzen. Je nachdem, wie die dafür relevanten, häufig nicht beeinflussbaren Parameter in der jeweiligen Anwendung gesetzt wurden, kann der Zeiger ein sehr unruhiges Verhalten mit einem starken „Jitter“ (Flattern) zeigen. Außerdem kann es vorkommen, dass die Zeigerposition zu selten aktualisiert wird, sodass der Zeiger wie auf einem groben Raster entweder stillsteht oder einen Sprung von einem Rasterpunkt zum nächsten vollzieht ohne eine gleichmäßige, gut kontrollierbare Bewegung zu ermöglichen.

Zuverlässigkeit der Auswahl

Die Zuverlässigkeit mit der die Auswahl eines Ziels nach der Zeigerpositionierung ausgelöst werden kann, hängt wesentlich von der Geste ab, die von der Anwendung zum Auslösen des Mouseclick-Events genutzt wird. Während einige Anwendungen die Manipulation zur Positionierung völlig von der Geste zum Auswählen trennen, gehen bei anderen Anwendungen beide Interaktionen fließend ineinander über. Liegen die Gesten zum Positionieren und Auswählen nah beieinander[ref]Beispielsweise bei einer Zeigerverschiebung durch Bewegung der rechten Hand in einer Ebene und Auswahl durch Strecken und Zurückziehen des rechten Arms.[/ref], so wird die Auswahlgeste insbesondere bei einer kurzen Entfernung des Nutzers zum Kinect Sensor häufig als Neupositionierung erkannt, weshalb der Zeiger bei kleinen Zielen versehentlich aus dem Zielbereich bewegt wird. Daher kann eine zuverlässigere Auswahl erfolgen, wenn die Positionierung z.B. mit der rechten Hand und die Auswahl durch Anheben der linken Hand oder eine anderen Geste, welche die Position der rechten Hand nicht beeinflusst, erfolgen. Müssen Positionierung und Auswahl zwingend mit ein und derselben Hand erfolgen, hat sich das Halten der Hand an der zur Auswahl gewünschten Position für eine gewisse Zeitspanne zum „Einrasten“ des Zeigers an dieser Stelle statt einer zusätzlichen Auswahlgeste als zuverlässig erwiesen, da sich hierbei die Auswahlposition nicht versehentlich verändert. Ein weiterer Einflussfaktor für die Zuverlässigkeit der Auswahl ist die Sensibilität der Auswahlgeste. So kann je nach Anwendung bereits bei einer Andeutung der Auswahlgeste versehentlich ein Klick ausgelöst werden, wohingegen eine zu wenig sensible Auswahlgeste dazu führt, dass zu wenige oder gar keine Klicks ausgelöst werden. Beides führt beim Nutzer dazu, dass er die ausgelösten Interaktionen nicht nachvollziehen kann, da sie von ihm nicht beabsichtigt sind.

Maximale und minimale Einsatzentfernung

Der Abstand, mit dem ein Nutzer eine Anwendung zur Emulation der Maussteuerung verwenden kann, wird nicht durch die Sichtweite des Kinect Sensors, sondern durch die minimale und maximale Distanz der zuverlässigen Erkennung der Auswahlgeste bestimmt, die wiederum von dem Sichtfeld und der Auflösung des Infrarotkamerabildes abhängt. Zwar kann die Infrarotkamera des Kinect Sensors Tiefenwerte in einer Entfernungsspanne von einem halben bis sieben Metern liefern, jedoch muss der fokussierte Körperteil vollständig im Sichtfeld liegen, weshalb die Minimalentfernung bei Fokussierung auf die Hand zwischen einem halben und einem Meter, bei Fokussierung des gesamten Körpers jedoch bei mindestens eineinhalb Metern liegt. Da der Nutzer bei zunehmender Entfernung vom Sensor einen kleiner werdenden Teil des Sensorsichtfeldes einnimmt, kann es wegen der geringen Auflösung der Infrarotkamera von 640 x 480 Pixel dazu kommen, dass kleine Bewegungen nicht mehr erkannt und somit manche Auswahlgesten nicht wahrgenommen werden. Daher schwankt die maximale Nutzungsentfernung mit der genutzten Auswahlgeste z.T. sehr stark.[ref]Das Spreizen und Zusammenführen der Finger wird beispielsweise nur bis zu einer Entfernung von zweieinhalb Metern erkannt, während das Heben des Arms bei der Bewegungserkennung an einem stilisierten Skelett des Nutzers auch noch bis zu fünf Meter funktioniert.[/ref]

Stabilität der Anwendung

Eine Anwendung ist für die „stabil“, wenn sie während eines Evaluationsdurchlaufs mit einer Dauer zwischen 30 und 90 Minuten nicht unplanmäßig beendet wird. Einige Anwendungen stürzten während der Tests nach einer kurzen Zeitspanne ab, schlossen sich gelegentlich unvorhergesehen, wenn der Fokus des zur Steuerung genutzten Körperteils verloren wurde oder konnten nicht mehr genutzt werden, wenn eine Konfiguration der  bereitgestellten Optionen / Parameter vorgenommen wurde.

Zusammenfassung

Abschließend werden die oben vorgestellten Merkmale der betrachteten Maus-Emulatoren anhand eigener Beobachtungen im Hinblick auf die zuvor beschriebenen Eigenschaften in tabellarischer Form zusammengefasst. Die Beurteilung der Anwendungen erfolgte dazu durch eine einfachen Auswahlaufgabe, bei der der Nutzer den Cursor über einem Ziel platzieren und dieses anschließend auswählen musste. Diese Aufgabe wurde mit jeder Anwendung aus verschiedenen Entfernungen zum Kinect Sensor wiederholt, wobei die verschiedenen Frameworks wie folgt abschnitten:

Bewertungskriterium KinEmote FAAST WIN&I PCD Kinect Cursor Control
Art der Zeigerpositionierung adaptiv relativ absolut oder statisch relativ adaptiv relativ absolut absolut
Präzision der Zeigerpositionierung [gut] [mittel] [ref]Gut bei Fokus auf Hand, schlecht bei Fokus auf Oberkörper.[/ref] [gut] [mittel] [schlecht]
Zuverlässigkeit der Auswahl [schlecht] [ref]Unbeabsichtigtes Verschieben des Zeigers beim Strecken des Armes.[/ref] [gut] [ref]Sehr gut bei Fokus auf Oberkörper, nur durchschnittlich bei Fokus auf die Hand.[/ref] [mittel] [ref]Präzise Auswahl durch Gesten funktioniert nicht immer einwandfrei.[/ref] [mittel] [ref]Zuverlässig bei Klick, nicht zuverlässig bei Drag.[/ref] [mittel] [ref]Nicht steuernder Arm muss weit gehoben werden.[/ref]
Min. / max. Einsatzentfernung 1m – 4m 1m – 4m 0,75m – 4m 1m – 2,5m 1m – 3m
Stabilität der Anwendung [gut] [gut] [gut] [schlecht] [gut]

Gamification – Steigerung der Nutzungsmotivation durch Spielkonzepte

[toc]

In diesem Beitrag wird das Konzept der Gamification oder Spielifizierung[ref]Für den Neologismus „Gamification“ existiert bisher keine idiomatische Übersetzung in der deutschen Sprache. Am nächsten kommt dem Tenor von Gamification in den Auffassung der Autoren die Wortschöpfung „Spielifizierung“.[/ref], also der Steigerung von Nutzungsmotivation durch den Einsatz von Spielkonzepten, kurz vorgestellt. Nach einer Gegenüberstellung exemplarischer Definitionen und einer kurzen Begriffsabgrenzung gehen wir vor allem auf spieletypische Mechanismen ein, die auch in anderen Kontexten (z. B. im Unternehmen) benutzt werden könnten. Anschließend listen wir einige Anwendungsbeispiele aus verschiedenen Domänen auf. Dieser Beitrag bietet einen ersten Einblick in das Thema Spielifizierung. Nachfolgende Beiträge werden darüber hinaus theoretische Grundlagen und konkrete Anwendungsszenarien vorstellen

Einführung

Die Psyche des Menschen ist seit jeher auf Wettbewerb mit anderen Individuen ausgelegt. Daher wundert es nicht, dass Menschen gern solche Tätigkeiten vollführen, bei denen sie sich mit anderen messen können. Bisher kannte man solchen Wettbewerb jedoch hauptsächlich in Spielen oder sportlichen Wettkämpfen. Doch immer mehr wird dieser motivationssteigernde Mechanismus auch in anderen Kontexten eingesetzt. Neben dem Wettbewerb finden sich in Spielen noch andere Mechanismen, welche die Motivation mitzumachen steigern. Um den Einsatz dieser Mechanismen geht es bei der Spielifizierung. Spielifizierung oder Gamification ist also ein Weg, diese Motivationssteigerung in spielfremden Kontexten, wie z. B. beim Wissensmanagement in Unternehmen, zu erzielen. Dazu werden Elemente aus Spielen entnommen und in anderen Umgebungen eingesetzt, um z. B. Mitarbeiter zu motivieren und ihren Spaß an der Arbeit zu erhöhen.

Gamification-Definitionen

Breuer (2011 [ref]Breuer, Markus (2011): Was ist Gamification?, URL: http://intelligent-gamification.de/2011/05/11/was-ist-gamification/, zuletzt abgerufen am 21.12.2011.[/ref]) definiert Spielifizierung beispielsweise als:

[…] die Verwendung von spieltypischen Mechaniken außerhalb reiner Spiele, mit dem Ziel, das Verhalten von Menschen zu beeinflussen.

Weitere Definitionsansätze in der meist englischsprachigen Literatur zum Begriff Gamification sind u.a.:

  • „use of game design elements in non-game contexts“ (Deterding, Khaled, Nacke & Dixon, 2011 [ref]Deterding, Sebastian; Khaled, Rilla; Nacke, Lennart; Dixon, Dan (2011): Gamification: Toward a Definition, Proc. Workshop on Gamification at the ACM Intl. Conf. on Human Factors in Computing Systems (CHI).[/ref])
  • „the use of features and concepts (e.g. points, levels, leader boards) from games in non-game environments, such as websites and applications, in order to attract users to engage with the product“[ref]Macmillan Dictionary: Definition of Gamification, Macmillan Publishers Limited, URL: http://www.macmillandictionary.com/open-dictionary/entries/gamification.htm,  zuletzt abgerufen am 12.10.2011.[/ref]
  • „using game-based mechanics, aesthetics and game thinking to engage people, motivate action, promote learning, and solve problems“ (Kapp, 2012 [ref]Kapp, Karl M. (2012): The Gamification of Training: Game-Based Methods and Strategies for Learning and Instruction, San Francisco: Pfeiffer & Co., John Wiley & Sons.[/ref])
  • „a design strategy primarily employed to drive engagement with a service“ (Fitz-Walter & Tjondronegor, 2011 [ref]Fitz-Walter, Zachary; Tjondronegoro, Dian (2011): Exploring the Opportunities and Challenges of Using Mobile Sensing for Gamification. Proc. Ubicomp 2011 Workshop on Mobile Sensing: Challenges, Opportunities and Future Directions. New York: ACM Press.[/ref])

Es geht also um den Einsatz spieltypischer Mechanismen (oder im Englischen „Game Mechanics“) wie Erfahrungspunkte, Orden oder Ähnliches „außerhalb reiner Spiele“, z. B. in Geschäftssoftware, in E-Commerce-Angeboten oder in anderen Bereichen, die augenscheinlich sehr wenig mit Spielen zu tun haben. Durch die Integration der Spielelemente sollen die Nutzer motiviert werden, mehr oder länger mit dem Produkt oder Service zu arbeiten, als sie das ohne die Spielelemente gemacht hätten.

Theoriefundierung

Eine theoretische Fundierung finden die Ansätze der Spielifizierung in Theorien aus der Psychologie, die versuchen das menschliche Verhalten und Beeinflussungsmöglichkeiten dazu zu erklären. Zu den wichtigsten Theorien, die einen Beitrag zur Erklärung der Funktion von Spielmechanismen geben, gehören:

  • Bedürfnispyramide von Maslow (1943 [ref]Maslow, Abraham (1943): A Theory of Human Motivation, Psychological Review 50 (1943), S. 370-396.[/ref])
  • E-R-G-Theorie von Alderfer (1969 [ref]Alderfer, Clayton (1969): An Empirical Test of a New Theory of Human Needs, Organizational Behavior and Human Performance. 1969, Bd. IV.[/ref])
  • Zielsetzungstheorie von Locke und Latham (1990 [ref]Locke, E. A., Latham, G. P. (1990): A Theory of Goal-Setting and Task Performance, Englewood Cliffs, NJ: Prentice Hall.[/ref])
  • Flow-Theorie von Csikszentmihalyi (1975 [ref]Csikszentmihalyi, Mihaly (1975): Beyond Boredom and Anxiety – The Experience of Play in Work and Games, Jossey-Bass.[/ref])
  • Balance-Theorie von Adams (1965 [ref]Adams, J. S. (1965): Inequity in social exchange. In: L. Berkowitz (Ed.): Advances in experimental social psychology.[/ref])
  • Selbstbestimmungstheorie von Deci und Ryan (1993 [ref]Deci, E. L. & Ryan, R. M. (1993): Die Selbstbestimmungstheorie der Motivation und ihre Bedeutung für die Pädagogik. Zeitschrift für Pädagogik, Bd. 39.[/ref])

Eine ausführlichere Behandlung der theoretischen Hintergründe liefern wir demnächst in einer erweiterten Version dieses Beitrags.

Begriffsabgrenzung

Spielifizierung wird häufig in engem Zusammenhang mit Mensch-Maschine-Interaktion (Human Computer Interaction, HCI) diskutiert. Neben dem Wissenschaftsbereich der Mensch-Maschine-Interaktion wird Spielifizierung im Kontext von „Serious Games“ oder „Edutainment“ verwendet. Im wissenschaftlichen Diskurs sollte hier allerdings eine genauere Abgrenzung erfolgen, um die ursprüngliche Intention hinten den Begriffen zu berücksichtigen.

Gamification

Gemäß der oben genannten Definition wird Spielifizierung eingesetzt, um Menschen zu motivieren, ein bestimmtes Produkt zu benutzen und den Anwender an dieses Produkt zu binden. Spielifizierung wird also innerhalb eines Produkts verwendet, um dessen Nutzung zu proklamieren. Diese Intention unterscheidet Spielifizierung von den Einsatzgebieten Serious Games und Edutainment.

Serious Games

Für Serious Games gibt es bislang keine einheitliche Definition, sondern lediglich einige Hauptmerkmale zur Chrakaterisierung.[ref]Vgl. hierzu auch http://www.nordmedia.de/…/serious_games_conference/netzwerk/ueber_serious_games/index.html.[/ref] Grundsätzlich handelt es sich bei Serious Games um Spiele oder spielähnliche Anwendungen, die mit Technologien und Design aus dem Unterhaltungssoftwarebereich entwickelt werden und nicht primär bzw. ausschließlich der Unterhaltung dienen (Marr, 2010 [ref]Marr, Ann C. (2010): Serious Games für die Informations- und Wissensvermittlung – Bibiliotheken auf neuen Wegen. In: B.I.T.online – Innovativ, Band 28. Wiesbaden: Dinges & Frick GmbH, S. 16.[/ref]).

Das Erlernen von neuen Fähigkeiten und Kompetenzen stellt in einem Serious Game einen zentralen Bestandteil dar. Zudem sind Lerninhalte und Lernaufgaben in der Spielwelt integriert (Lampert, Schwinge & Tolks, 2009 [ref]Lampert, Claudia; Schwinge, Christiane; Tolks, Daniel (2009): Der gespielte Ernst des Lebens: Bestandsaufnahme und Potenziale von Serious Games (for Health). In: Themenheft Nr. 15/16 MedienPädagogik – Zeitschrift für Theorie und Praxis der Medienbildung: Computerspiele und Videogames in formellen und informellen Bildungskontexten.[/ref]). Absicht ist es also neue Fähigkeiten spielerisch zu vermitteln und zu trainieren.

Edutainment

Edutainment ist ein Kunstwort, welches aus Education und Entertainment besteht (Kohlmann & Sleegers, 2005 [ref]Pohlmann, Horst; Sleegers, Jürgen (2005): Der Computer als Lehrer. Bundeszentrale für politische Bildung, http://www.bpb.de/themen/J2QMAW,1,0,Der_Computer_als_Lehrer.html, zuletzt abgerufen am 21.12.2011[/ref]). Im Gegensatz zu Serious Games liegt beim Edutainment, das auch als „Game Based Learning“ bezeichnet wird, der Fokus auf der reinen Wissensvermittlung. Der Spielteil kommt lediglich als Belohnung im Anschluss an das Lernen zum Einsatz.[ref]Vgl. hierzu beispielsweise http://www.e-teaching.org/didaktik/konzeption/methoden/lernspiele/game_based_learning/.[/ref] Das Lernen wird so mit unterhaltenden Elementen verbunden, was beispielsweise bei interaktiven Sprachkursen genutzt wird. Populäre Beispiele aus dem Fernsehprogramm sind u.a. Sesamstraße oder Sendung mit der Maus.

Spieletypische Mechanismen

Zu spieletypischen Mechanismen, die als motivationsfördernd angesehen werden und in der englischen Literatur meist als „Game Mechanics“ bezeichnet werden, existieren verschiedene Zusammenstellungen im Netz.[ref]Vgl. z. B. die relativ umfangreiche Zusammenstellung des Gamification Wikis zu Game Mechanics: http://gamification.org/wiki/Game_Mechanics.[/ref] Für diese Kurzeinführung in die Thematik haben wir verschiedene Sichtweisen konsolidiert bzw. strukturiert und sind dabei zu folgender Liste von wichtigen Spielelementen gekommen:

Sichtbarer Status

Der erreichte Status wird in Spielen auf verschiedenste Arten abgebildet, z. B. in Form von Titel bzw. Listen von Titeln, Achievements oder vor allem sog. „Badges“. Das Grundprinzip ist bei all diesen Arten gleich: Sie präsentieren nach außen, dass der Spieler ein bestimmtes Ziel bzw. Level erreicht oder verschiedene Aufgaben erfüllt hat. Durch die Präsentation wird ein Vergleich mit anderen möglich, was insbesondere den Wettbewerb fördert.

Einsehbare Rangliste

Durch das direkte Gegenüberstellen der Spieler in einer Rangliste wird das Element des Wettbewerbs noch verstärkt. Notwendig ist dazu eine Vergleichbarkeit der verschiedenen möglichen Achievements, z. B. über eine Abbildung auf metrische Punkteskala. Dieses Spielelement wird häufig mit verschiedenen Belohnungssystemen verbunden. Zum einen eine stetige Belohnung bei Level-Aufstieg, aber auch Belohnungen durch das Erreichen bestimmter Level-Grenzen oder das Belohnen von Top Spieler der Rangliste.

Quests

Entdeckbare Aufgaben, die häufig als „Quest“ bezeichnet werden, sind bestimmte, über ihr Ziel klar definierte Rätsel oder Fleißaufgaben, die der Spieler meist in einer bestimmten Zeit lösen muss. Die Lösung der Aufgabe kann alleine oder als Gruppe geschehen. Quests sind meist so ausgelegt, dass der Spieler durch sie an Erfahrung gewinnt um immer komplexere Quest zu bewältigen. Je nach Umsetzung hat der Spieler selbst die Wahl welche der gestellten Quests er erfüllen möchte (Auswahlfreiheit).

Resultatstransparenz

Wenn der Spieler die (möglichen) Resultate seines Handelns kennt, kann dies seine Handlungsmotivation entscheidend steigern. Im Spiel können hierfür Belohnungen Erfahrungspunkte, Preise und Auszeichnungen verwendet werden. Darüber hinaus kann auch das Wissen Transparenz schaffen, dass das eigene Handeln zu einem größeren Ziel beiträgt (siehe auch „Epic Meaning“). Grundsätzlich sollte das Handeln des Spielers auf drei Arten belohnt werden, um Transparenz zu schaffen: kontingent, resonant und bestärkend.

Rückmeldung

Der Spielmechanismus „Feedback“ als Rückmeldung bezüglich einer Aktivität des Spielers, ist ein Sammelbegriff für alle Game Mechanics, die das Handeln des Nutzers für ihn sichtbar bewerten. Da die Bewertung meist unmittelbar nach der eigentlichen Handlung erfolgt, wird eine intensive „actio et reactio“-Erfahrung vermittelt. Entsprechend setzt der Spieler die gewonnene Erfahrung in neue oder angepasste Handlungsweisen um, damit er negative Feedbacks vermeiden kann und durch seine Umwelt in Form von positiver Rückmeldungen bestätigt wird. Dabei entscheidet ausschließlich der Spieler selbst, ob das konkrete Feedback für ihn von Nutzen ist oder ihn nicht weiterbringt.

Epic Meaning

Spieler handeln zielorientiert und können durch sinnvolle Ziele motiviert werden. Das Element Epic Meaning beschreibt in diesem Zusammenhang das Arbeiten an etwas (in den Augen des Spielers) Großartigen oder Erstrebenswerten. Hierbei spielt einerseits das Ziel eine wesentliche Rolle, andererseits geht es für Spieler auch darum, Teil der vollbringenden Gruppe zu sein, da Handlungen „epischen Ausmaßes“ oft nicht alleine durchführbar sind.

Fortschrittsanzeige

Bei einer Fortschrittsanzeige handelt es sich um eine dynamische Anzeige, welche den Erfolg während der Durchführung einer Aufgabe visualisisert. Normalerweise wird sowohl der bisherige Fortschritt der Arbeit als auch der noch zu erledigende Teil gezeigt. Neben den i.d.R. verwendeten Fortschrittsbalken kann die Darstellung des Fortschrittes auch in Form von Kreisen, Pyramiden oder Prozentanzeigen erfolgen.

Community Collaboration

Hierbei handelt es sich um die Eigenschaft eines Spiels, mithilfe derer eine größere Gruppe von Spielern (im Extremfall die gesamte Community) zur Lösung eines Rätsel oder eines Problems zusammengebracht werden soll. Hierzu werden innerhalb des Spiels oftmals Aufgaben oder Quests gestellt, die darauf abzielen verschiedene Teilnehmer zur Zusammenarbeit (Collaboration) zu motivieren, sodass diese miteinander kommunizieren und so über das Spiel immer weitere Kontakte geknüpft werden.

Cascading Information

Cascading Information sieht vor, dass einem Spieler nur bestimmte, für die aktuelle Aufgabe (vgl. auch Quests) notwendige Informationen mitgeteilt werden. Dies geschieht primär, um den Spieler nicht zu überfordern, sondern ihn auf einem angebrachten Informationslevel zu halten. Entsprechend sollten die sukzessive weitergereichten Informationen immer nur geringen Umfang aufweisen. Das Spielkonzept wird insbesondere bei Lernspielen eingesetzt, um dem Lernenden kontinuierlich und aufeinander aufbauend Informationen zu vermitteln, die ihn im Spielverlauf weiterbringen ohne spätere Lerninhalte vorwegzunehmen.

Beispiele aus der Praxis

Bei einer Google-Suche zu Gamification stolpert man bereits über viele Beispiele , wie Gamification in der Praxis ein- bzw. umgesetzt wird. Wir wollen hier nur ein paar davon auflisten, geordnet nach Anwendungsbereichen. Weitere Informationen zu einzelnen Bereichen folgen dann in zukünftigen Artikeln.

Business Software

Umweltschutz / Gesundheit

Lernen[ref]Für die weiterführende Diskussion zu Gamification im Bereich E-Learning vgl. auch http://elearnmag.acm.org/archive.cfm?aid=2031772.[/ref]

E-Commerce

Résumé

Dieser Artikel liefert eine erste Einführung zum Begriff Spielifizierung bzw. Gamification. Die Ansätze, die hinter Spielifizerung stecken, sind natürlich nicht komplett neu. Erste Versuche, Heuristiken zur Erstellung von angenehm zu benutzenden Benutzungsoberflächen („Enjoyable Interfaces“) zu entwerfen, gehen in die frühen 1980er zurück.[ref]Vgl. hierzu z. B. Malone, Thomas (1980): What Makes Things Fun to Learn? Heuristics for Designing Instructional Computer Games, In: Proceedings of the 3rd ACM SIGSMALL Symposium and the 1st SIGPC Symposium on Small Systems, sowie Malone, Thomas (1982): Heuristics for Designing Ejoyable User Interfaces: Lessons from Computer Cames, In: Proceedings of the Conference on Human Factors in Computing Systems (CHI’82).[/ref] Nach dem Erfolg von Webdiensten mit entsprechend integrierten Spielelementen wie z. B. Foursquare hat das Gebiet in den letzten Jahren enorm an Attraktivität gewonnen (Zichermann& Linder, 2010 [ref]Zichermann, Gabe; Linder, Joselin (2010): Game-Based Marketing: Inspire Customer Loyalty Through Rewards, Challenges, and Rewards. San Francisco: John Wiley & Sons.[/ref]). Im Januar 2011 fand zum ersten Mal unter dem Label „Gamification Summit“ eine eigene Konferenz zum Forschungsbereich in San Francisco statt. Spielifizierung ist jedoch auch nicht unumstritten. Die Spieldesignerin Margaret Robertson kritisiert beispielsweise, dass spielifizierte Anwendungen den falschen Eindruck erwecken, es gebe einen einfachen Weg, ein Produkt mit psychologischen, emotionalen, und sozialen Kraft eines guten Spiels zu versehen (Robertson, 2011 [ref]Robertson, Margaret (2011): Can’t Play, Won’t Play, URL: http://www.hideandseek.net/cant-play-wont-play, zuletzt abgerufen am 27.12.2011.[/ref]). Auch Sebastian Deterding (2011) resümiert, das Übernehmen von Spielelementen sei noch keine „schlüsselfertige“ Lösung zur sofortigen Nutzermotivation.[ref]Deterding, Sebastian (2011): Das Leben ist ein Spiel, t3n-magazin, Ausgabe 24, URL: http://t3n.de/magazin/leben-spiel-227541/.[/ref]

Danksagung

Die Grundlagen für dieses Papier wurden zwischen Oktober und Dezember 2011 im Kurs Mensch-Computer-Interaktion an der Universität der Bundeswehr München gelegt. Mit Beiträgen beteiligt waren die folgenden Kursteilnehmer: Sebastian Aehle, Marcel Bassuener, Marcus Eckert, Karsten Fischer, Benjamin Hoffmann, Dominik Holzapfel, Andreas Krüger, Christian Marciniak, Stephan Mehner, Venera Pjetraj, Manuel Rosenau, Markus Rothmann, Markus Schran, Steffen Schurig und Steve Wandschneider.

Moderne Android Tablet-Devices im Vergleich

[toc]

Tablets haben inzwischen Laptops als ubiquitäre Benutzerschnittstellen den Rang abgelaufen und werden zunehmend zum alltäglichen Begleiter. Vor diesem Hintergrund fasst der vorliegende Artikel aktuelle sowie in naher Zukunft auf dem Markt erhältliche Tablet-Produkte zusammen und vergleicht sie miteinander. Der Schwerpunkt des Vergleichs liegt in erster Linie auf Tablets mit dem Betriebssystem Android, wobei zwei Geräte mit anderen Betriebssystemen als Referenz dienen. Der Artikel ist im Kontext des Forschungsprojekts SI-Screen entstanden, das aktuell unter Beteiligung der Forschungsgruppe Kooperationssysteme zusammen mit anderen Firmen durchgeführt wird und versucht, älteren Menschen durch eine einfach zu bedienende Benutzerschnittstelle einen leichteren Zugang zum Social Web zu ermöglichen. In der Zusammenstellung werden deshalb auch wesentliche Anforderungen an die Geräte für die Nutzung durch Senioren berücksichtigt. Darüber hinaus werden im Hinblick auf die im Projektkontext betrachtete Nutzergruppe der „Best Ager“ nicht nur Tablets, die in naher Zukunft bereits erscheinen behandelt, sondern auch Industrial-Design-Konzepte, die ein Wegweiser dafür sein können, wie derartige Geräte in wenigen Jahren aussehen könnten.

Laut jüngsten Untersuchungen ist das Betriebssystem Android auf dem Vormarsch und hat im Smartphone-Bereich bereits einen Marktanteil von 50 Prozent erreicht.[ref]http://www.welt.de/print/welt_kompakt/webwelt/article13719379/Android-auf-dem-Vormarsch.html.[/ref] Auch im Tablet-Bereich wird Android immer mehr zum Apple-Konkurrenten. Apple iOS hat im 2. Quartal 2011 etwas über 30 Prozent Marktanteil im Vergleich zum Vorjahr verloren, wohingegen Android fast 30 Prozent hinzugewinnen konnte.[ref]http://www.androidmag.de/news/strategy-analytics-android-tablets-am-vormarsch/.[/ref]

[singlepic id=794 w=290 float=left] [singlepic id=795 w=290 float=left]

[singlepic id=796 w=618 float=]

Zukunftsvisionen

In diesem einführenden Abschnitt werden Konzepte von Tablet-Devices vorgestellt, die zum Teil nur als Grafik und Idee, aber auch bereits als Prototyp vorhanden sind. Im Vordergrund der Betrachtungen steht der potenzielle Mehrwert für ältere Menschen.[ref]Die vorgestellten Design-Studien und Prototypen basieren primär auf den Blogposts „The Future of Tablets – What your tablet will look like in 5 years“ und dem Engadget-Beitrag „Sharp bringt Tablet für Senioren„.[/ref]

Papier-Tablet

Eine mögliche Weiterentwicklungsrichtung für Tablet-Devices ist das Material. Diesbezüglich existieren Visionen, dass ein Tablet in Zukunft einem Stück Papier ähnlich wird, auf dem man beispielsweise seine Zeitung lesen kann. Die digitale Version ist dabei immer aktueller als gedruckte Zeitungen und gleichzeitig flexibler als bisherige Tablets, da sich dieses Device falten lässt und somit auch bequem in einer Jackentasche unterzubringen ist. Um die Vision zu verwirklichen, läuft aktuell an der Stanford Universität ein Projekt um biegsame Batterien aus Papier herzustellen[ref]http://news.stanford.edu/news/2009/december7/nanotubes-ink-paper-120709.html.[/ref]. Neben der grundlegend anderen Haptik liegt der Hauptvorteil des Konzepts darin, dass das leicht in jeder Jackentasche mitgenommen werden kann.

[singlepic id=626 w=618 float=center]

Smartphone-Tablet-Hybrid

Eine andere Designstudie beschäftigt sich mit der Lösung für das Problem, mit einem Tablet auch telefonieren zu können. Nutzer haben heute häufig nur eine SIM-Karte. Sofern diese für den mobilen Internetzugang in einem Tablet verwendet wird, ist die telefonische Erreichbarkeit eingeschränkt. Im Lösungsansatz von HTC deshalb verfügt das Tablet über einen Telefonhörer in stabform zum Telefonieren. Somit kann man sein Tablet auch als Telefon benutzen und hat trotzdem nur einen kleinen Hörer am Ohr. Zudem ist der ein Hörer am Ohr eine seit langem bekannte Art zu telefonieren und erfordert somit keine Verhaltensumstellung.

[singlepic id=620 w=618 float=center]

Senioren-Tablet

In Japan bringt Sharp ein Senioren-Tablet[ref]http://de.engadget.com/2011/02/18/japan-sharp-bringt-tablet-fur-senioren/.[/ref] auf den Markt, welches das Einkaufen erleichtern soll, indem die Benutzer durch ein virtuelles Einkaufszentrum geleitet werden. Das Gerät eignet sich vor allem für Personen, die aus gesundheitlichen Gründen nicht mehr ausreichend mobil sind, um die Einkäufe selbst im Supermarkt durchzuführen. Durch die Verwendung von großer Schrift und speziell angepassten Bedienelementen, richtet sich das Tablet nach den besondere Bedürfnissen der Zielgruppe „Best Ager“. Die im Comic-Design gehaltene Software verwendet eine eigene Währung und nutzt eine virtuelle Bezugsperson (Avatar) als zusätzliche personalisierte Hilfestellung für die Benutzer.

[singlepic id=665 w=618 float=center]

Tablet-Auswahl im Überblick

Dieser Abschnitt gibt einen Überblick über die innerhalb der Marktstudie verwendeten Geräte sowie die zugrundegelegten Bewertungskriterien, wie beispielsweise Gewicht, Auflösung, Displaygröße oder Abmessungen. Die Geräteauswahl basiert u.a. auf dem Heise Preisvergleich für Tablets. Eine besondere Herausforderung war dabei die Konsolidierung der z.T. fehlenden oder voneinander abweichenden Angaben zu Ausstattung und technischen Details.

[nggtags Gallery=Überblick]

Eingrenzung des Studienrahmens

Der Begriff „Tablet“ wurde in der Vergangenheit für sog. „Tablet-PCs“, eine primär von Microsoft geprägte Laptop-Spezialform aus den späten neunziger Jahren verwendet. Diese ursprüngliche Kategorie des Tablet-PCs, bei der es sich quasi um einen Laptop mit drehbarem Touchscreen handelt wird heute meist als Convertible bezeichnet. Kennzeichnend für die Geräte ist u.a. der häufig mitgelieferte Stift sowie eine typischerweise vorhandene Handschrifterkennung.

Spätestens seit der Einführung des Apple iPad wird der Begriff „Tablet“ inzwischen synonym für ultra-mobile Touchscreens verwendet, die meist gänzlich ohne Tastatur auskommen und deutlich größer sind als die von der grundsätzlichen Bedienung her sehr ähnlichen Smartphones.  Im Unterschied zu Convertibles, deren Software meist keinerlei Unterschiede zu einem klassischen Desktop-PC aufweisen, arbeiten Tablets fast ausschließlich mit speziell angepassten Betriebssystemen, die auf dem App-Konzept basieren. Hierdurch erlauben sie die modulare und sehr einfache Erweiterung um neue Funktionen bzw. Anwendungen.

Am Beispiel der verschiedenen Transformationsstufen vom Laptop zu einem multimedialem Notizblock des HP EliteBook 2760p zeigt die nachfolgende Galerie den Unterschied zwischen dem Convertible und einem Viewsonic Viewpad 7:

[nggtags Gallery=Abgrenzung]

Bewertungskriterien

Um die Funktionalitäten und Besonderheiten der Tablets ausführlich gegeneinander abgrenzen zu können, wurden unterschiedliche Bewertungskriterien gesammelt und im tabellarischen Überblick am Ende dieses Artikels zusammengestellt. Alle hier aufgeführten Tablets sind WLAN-fähig und unterstützen Multitouch-Gesten. Die Bewertungskriterien sind folgende:

  • Preisspanne: Spanne zwischen dem niedrigsten und höchsten Preis des Heise Preisvergleichs für Tablets.[ref]Bei Tablets mit mehreren Ausstattungsvarianten wurde jeweils die billigste Variante für die Untergrenze und die Top-Variante für die Obergrenze der Preispanne verwendet. Alle Preise basieren auf Angaben vom 28.11.2011.[/ref]
  • Displaygröße: Display-Diagonale in Zoll
  • Abmessungen: Breite und Höhe des Gerätes in Millimetern
  • Dicke: Dicke des Tablets in Millimetern
  • Gewicht: Gewicht des Tablets in Gramm
  • Gewicht/Größe: Verhältnis von Gewicht in Gramm zu Displaygröße in Zoll (je kleiner, desto besser)
  • Auflösung: Native Auflösung des Tablets
  • Prozessor: CPU des Tablets mit Rechengeschwindigkeit in GHz
  • Arbeitsspeicher: Arbeitsspeicher in GB
  • Massenspeicher: Interner Flash-Speicher des Tablets
  • Betriebssystem: Verwendetes Betriebssystem
  • 3G- / WWAN-Modul: Möglichkeit, mit dem Tablet auch unterwegs ohne WLAN im Internet zu surfen.
  • Speicherkarten: Welche und wie viele Speicherkartenslots sind vorhanden?
  • Kamera: Sind Kameras vorhanden und welche Auflösung haben sie?
  • haptische Tastatur: Wird eine haptische Tastatur speziell für das Gerät mitgeliefert, oder ist sie als Zubehör verfügbar?

Neben diesen quantitativen Bewertungskriterien wurden folgende subjektiven bzw. kontextspezifischen Vergleichskriterien für die Zusammenstellung herangezogen:

  • Verarbeitung/Qualität: Wirkt das Tablet hochwertig verarbeitet?
  • Haptik: Wie fühlt es sich an?
  • Besonderheiten: Beispielsweise Stylus, Tastatur, aufklappbar
  • Knöpfe: Hat das Tablet Knöpfe und wenn ja wie viele? Sind die Knöpfe sinnvoll belegt und gut zu erreichen?
  • Ergonomie: Liegt das Tablet gut in der Hand?
  • Mobilität: Kann man das Tablet auch bequem mit nur einer Hand halten?
  • Displayqualität: Spiegelt das Display?

Tablet-Devices im Detail

In diesem Abschnitt werden die im Überblick oben bereits aufgeführten Tablets jeweils kurz mit ihren Besonderheiten im Detail vorgestellt.

Sony Tablet S

[singlepic id=622 w=618 float=center]

Das Sony Tablet S hat eine Bildschirmdiagonale von 9,4 Zoll und im Gegensatz zu den meisten Tablets eine schräge Bauform. Dies ermöglicht eine ergonomische Körperhaltung, wenn das Gerät auf dem Tisch liegt, da man sich nicht nach vorne beugen muss um den Bildschirm ohne Spiegelungen zu erkennen. Die Top-Variante bietet  bis zu 32 GB Massenspeicher und 3G.

Das Tablet wird mit Android 3.1 ausgeliefert und kann auf Android 3.2 geupdatet werden. Der auf den ersten Blick gute technische Eindruck wird durch die Verwendung des etwas billig wirkenden Kunststoffs getrübt.

Sony Tablet P

[singlepic id=617 w=618 float=center]

Im Gegensatz zu seinem zuvor vorgestellten großen Bruder hat das Tablet P zwei 5,5 Zoll Bildschirme, die es ermöglichen das Gerät zuzuklappen, was wiederum einen enorm hohen Mobilitätsfaktor mit sich bringt. Die CPU ist ein Tegra 2 mit 1,0 GHz, der auch in vielen anderen Android-Tablets wie zum Beispiel dem Asus EeePad Transformer TF101 oder dem Sony Tablet S zu finden ist.

Im Vergleich zu anderen Tablets ist das Gerät mit einem Preis von rund 599 Euro relativ teuer und mit 14 Millimetern vergleichsweise dick. Ein Pluspunkt ist die Tatsache, dass es bereits mit Android 3.2 ausgeliefert wird, der momentan aktuellsten Honeycomb-Version.

Asus EeePad Transformer TF101

[singlepic id=621 w=618 float=center]

Das Asus EeePad Transformer hat eine Bildschirmdiagonale von 10,1 Zoll und wiegt nicht zu unterschätzende 680 Gramm. Das Gerät verfügt über eine 1,2 Megapixel Kamera an der Vorderseite zur Videotelefonie und über eine 5,0 Megapixel Kamera für Schnappschüsse auf der Rückseite.

Das Tablet ist eines der Ersten, welches durch ein optional erhältliches Keydock zu einem Android-Laptop transformierbar ist. Das Keydoch steigert außerdem die Akkulaufleistung und bietet zusätzliche Anschlüsse.

HTC Flyer

[singlepic id=764 w=618 float=center]

Das Flyer von HTC ist ein 7 Zoll großes Tablet, das durch die geringe Displaydiagonale hohe Mobilität verspricht. Entgegen der aufstrebenden Multitouch-Kultur ist das Tablet mit einem zusätzlichem Stylus ausgestattet, der schwierige Eingaben auf dem kleinen Displays vereinfacht.

Im Gegensatz zum Sony Tablet S wirk die Verarbeitung des HTC Flyer auf Grund des Metallgehäuses qualitativ hochwertig. Trotz der edleren Verarbeitung liegt das Gerät mit 420 Gramm bzgl. des Gewichts im Durchschnitt.

Amazon Kindle Fire

[singlepic id=623 w=618 float=center]

Das Kindle Fire ist der günstigste Kandidat im Vergleich und ist primär als eBook-Reader konzipiert. Daher hat es keine Kamera und der nicht vorhandene Speicherkartenslot ist von Amazon so beabsichtigt, da Inhalte ausschließlich über die eigenen Dienste bezogen werden sollen.

Das Tablet hat kein 3G-Modul und ist somit auf WLAN für den Internetzugang angewiesen. Das geringe Gewicht von 413 Gramm ordnet sich hervorragend in den 7 Zoll Tablet-Markt ein.

Samsung Galaxy Tab 8.9

[singlepic id=767 w=618 float=center]

Das Samsung Galaxy Tab 8.9 hat für seine Bildschirmdiagonale von 8,9 Zoll mit 470 Gramm ein relativ geringes Gewicht. Es bietet eine 2,0 Megapixel Kamera an der Front für gute Qualität bei Videotelefonie und eine 3,0 Megapixel Kamera auf der Rückseite für Schnappschüsse.

Das Tablet wird mit Android 3.1 ausgeliefert und hat ein 3G-Modul. Bemerkenswert ist die geringe Dicke des Gerätes von nur 8,6 Millimetern. Unglücklicherweise bietet es keinen Kartenslot zur Erweiterung des internen 16 GB Massenspeichers.

Samsung Series 7 Slate

[singlepic id=625 w=618 float=center]

Das Samsung Series 7 Slate ist neben dem als nächstes vorgestellten Apple iPad2 das einzige nicht auf Android basierende Tablet in diesem Vergleich. Es wird mit Windows 7 ausgeliefert und hat einen Intel Core i5 Prozessor mit zwei Kernen bei einer Geschwindigkeit von 1,6GHz.

Das Gerät verfügt über 128 GB interne Speicherkapazität und einen microSD-Kartenslot. Es fehlt jedoch ein 3G-Modul. Außerdem weist das Tablet weist mit 890 Gramm bei 11,6 Zoll Bildschirmdiagonale ein sehr hohes Gewicht auf. Bemerkenswert ist der hohe Preis von über 1300 Euro, was eher an Preise für vollwertige Desktop-PCs erinnert. Als kleiner Pluspunkt ist eine Tastatur optional erhältlich.

Apple iPad2

[singlepic id=747 w=618 float=center]

Das Apple iPad2 ist auf dem Tablet-Markt heute quasi das Maß der Dinge und legt somit auch die Messlatte dieses Vergleichs vor. Der interne Flashspeicher des mit iOS5 ausgelieferten Geräts ist bis zu 64 GB groß. Darüber hinaus ist die teuerste Variante auch mit 3G-Modul erhältlich und wiegt 613 Gramm.

Beim iPad(2) muss erwähnt werden, dass es schon vergleichsweise lange auf dem Markt erhältlich ist, dabei aber wie viele Apple-Produkte immer noch einen sehr hohen Preis hat. Es verfügt zwar über eine Kamera in der Front und eine auf der Rückseite, beide besitzen allerdings nur geringe Auflösungen, die z.T. noch nicht einmal die vom iPhone 3S bekannte Fotoqualität erreicht. Weiterhin sucht man vergeblich nach einem Slot für eine Speicherkarte.

Zusammenfassung

Abschließend lässt sich sagen, dass auch heute noch kein Allround-Tablet existiert, welches perfekt für jedes Einsatzszenario zugeschnitten ist. Benötigt man viel Arbeitsspeicher und eine hohe Festplattenkapazität, ist das Samsung Series 7 Slate den anderen Tablets vorzuziehen, wobei hier natürlich der weit höhere Preis und das nicht nativ für Tablets ausgelegte Betriebssystem Windows zu beachten ist.

Falls die Mobilität im Vordergrund steht, darf man das Sony Tablet P nicht außer Acht lassen. Es zeichnet sich durch das beste Gewicht-Größe-Verhältnis im Vergleich aus und ist durch seine kompakte Bauweise leicht in der Hosentasche zu verstauen.

Um eine einfachere, dem individuellen Einsatzkontext entsprechende Auswahl zu erleichtern fasst der nachfolgende Überblick die wichtigsten oben bereits kurz vorgestellten Bewertungskriterien der Devices in einem abschließenden tabellarischen Überblick zusammen:

[singlepic id=792 w=618 float=center]

Danksagung

Dieser Beitrag steht im Zusammenhang mit dem Forschungsprojekt SI-Screen, das mit Mitteln des Bundesministeriums für Bildung, und Forschung (Förderkennzeichen 16SV3982), sowie durch das Europäische AAL Joint Programm (AAL-2009-2-088) gefördert wird. Das Vorhaben wird von der innovationsmanufaktur GmbH (ehemals SportKreativWerkstatt GmbH) koordiniert und gemeinsam mit der Universität der Bundeswehr München realisiert. Weiterführende Informationen sind verfügbar unter http://www.si-screen.eu.

Spracherkennung und Sprachsteuerung

[toc]

Die Faszination dafür, Gegenstände nur durch die eigene Stimme zu steuern, hat mittlerweile zu einer merklichen Schwerpunktverlagerung in der Weiterentwicklung technischer Geräte geführt, wie zum Beispiel die Feature Liste des iPhone 4S jüngst zeigte. So wurde die Sprachsteuerung zu einem der wichtigsten Aspekte Multimodaler Interaktion. In diesem Artikel soll ein Überblick über Möglichkeiten zur Spracherkennung bzw. Sprachsteuerung vermittelt werden, dazu werden auch Webdienste behandelt. Möglichkeiten zur Implementierung beziehungsweise Einbindung für Software-Projekte, also vorhandene Programmbibliotheken[ref]http://de.wikipedia.org/wiki/Programmbibliothek[/ref] werden sofern vorhanden vorgestellt. Er soll einen groben Umriss über aktuell Produkte bieten. Der Schwerpunkt liegt in diesem Artikel auf der Android-Entwicklung und wurde im Zusammenhang mit dem Projekt ELISA erstellt. Es soll eine Erleichterung der Bedienbarkeit von Tablets unter anderem durch Sprachsteuerung erreicht werden.  Zunächst werden grundlegende Begriffe sowie Mechanismen erklärt, bevor im weiteren Verlauf Webdienste und Produkte im Einzelnen behandelt werden. Sie sind dabei unterteilt in den Kategorien „kommerziell“ und „Open Source“. Im abschließenden Vergleich werden sie einander tabellarisch gegenübergestellt.

Grundlagen

Zu unterscheiden ist neben Text-to-Speech (TTS) und Speech-to-Text (STT) vor allem zwischen Spracherkennung und Sprachsteuerung. TTS ist die künstliche Erzeugung (Synthese) von Sprache. Bei STT findet eine Digitalisierung der analogen Sprachsignale statt, welche mit Hilfe von akustischen Modellen, Wörterbücher und Sprachmodellen erkannt werden.

Bei der Spracherkennung werden eingegebene Sprachinformationen durch computerbasierte Systeme analysiert.[ref]http://www.itwissen.info/definition/lexikon/Spracherkennung-voice-recognition.html[/ref] Natürliche oder auch fließende Spracherkennung ist dabei die Fähigkeit des Systems nicht nur unterbrochene (diskrete) Sätze, sondern einen gesamten Sprachfluss zu erkennen. Es ist also bei modernen System nicht notwendig eine Pause zwischen den Wörtern einzulegen.

Als Sprachsteuerung hingegen bezeichnet man die Eingabe von Befehlen in technische Geräte per Stimme.  Diese baut direkt auf Spracherkennung auf, denn das gesprochene Wort muss erst erkannt werden, bevor es einem bestimmten Befehl zugeordnet werden kann.

[singlepic id=627 w=600 h=440 float=]

Mechanismen zur Spracherkennung

Hidden Markov Model

Als stochastisches Model der Spracherkennung wird unter anderem das Hidden-Markov-Model[ref]https://de.wikipedia.org/wiki/Hidden_Markov_Model[/ref] verwendet und in der Spracherkennungssoftware implementiert.

Das Hidden-Markov-Model ist die einfachste Form eines dynamischen Bayes’schen Netzes und ist durch Zustände und Übergangswahrscheinlichkeiten gekennzeichnet. Es entscheidet abhängig von den bisherigen Eingaben welches Wort, oder auch welches Phonem, mit größerer Wahrscheinlichkeit gemeint ist.[ref]http://en.wikipedia.org/wiki/Speech_recognition#Algorithms[/ref]

Beispiel:

Otto möchte seinen Bekannten Charlie anrufen.
„Charlie“ wird im Optimalfall wie „t-sch-a-r-l-i“ ausgesprochen.
Aufgezeichnet wird jedoch eine Tonspur die sich eher anhört wie „d-sch-a-o-l-ü“.
Das gemeinte Wort „Charlie“ ist für das Spracherkennungsprogramm also keineswegs direkt erkennbar, „t-sch-a-r-l-i“ ist hidden.

Das Programm verfügt über zwei Wahrscheinlichkeitstabellen,
die es sich nun zuhilfe nimmt.
Die eine Tabelle enthält Information, die unter Anderem besagen, dass
ein hidden-t mit einer gewissen Wahrscheinlichkeit auch als „d“,
ein hidden-r mit einer gewissen Wahrscheinlichkeit auch als „o“ und
ein hidden-i mit einer gewissen Wahrscheinlichkeit auch als „ü“ beobachtet werden kann.
Die andere Tabelle enthält Information, die unter Anderem besagen, dass
ein hidden-t wahrscheinlicher einem hidden-sch vorrausgeht als ein hidden-d,
ein hidden-r wahrscheinlicher zwischen einem hidden-a und einem hidden-l vorkommt als ein hidden-o und
ein hidden-i wahrscheinlicher auf ein hidden-l folgt als ein hidden-ü.

Dank dieser Informationen  wird das Programm nach einer etwas aufwändigen Berechnung unter Beachtung vieler weiterer Informationen aus den Tabellen in der Lage sein, „t-sch-a-r-l-i“ als wahrscheinlicher anzunehmen, „d-sch-a-o-l-ü“ also zu verwerfen und die Tonspur als „Charlie“ richtig zu erkennen.

Kommerzielle Dienste und Produkte

Nuance

Nuance bietet neben verschiedenen Spracherkennungsprodukten für Desktopanwendungen auch einen Webdienst zur serverbasierten Spracherkennung zum Beispiel für mobile Apps. Es unterstützt sowohl iOS als auch Android. Zur Entwicklung solcher Apps wird ein entsprechendes Software Development Kit (SDK) bereitgestellt, das im Folgenden kurz erläutert wird.

Dragon Mobile SDK

[singlepic id=742 w=320 h=240 float=]

Das Dragon Mobil SDK ist eine eigener Werkzeugsatz zur Integration von Spracherkennung in bestehende Applikationen und zur Erstellung eigener Anwendungen und nutzt eine serverbasierte Spracherkennung. Sogenannte Back-End-Systeme haben den Vorteil dass eine Verbesserung der Spracherkennung durchgeführt werden kann, ohne dass die Anwendung selbst aktualisiert werden muss.

Ein Codebeispiel:

 // Use the same handler for both buttons
 final Button dictationButton = (Button)findViewById(R.id.btn_startDictation);
 Button websearchButton = (Button)findViewById(R.id.btn_startWebsearch);
 Button.OnClickListener startListener = new Button.OnClickListener()
 {
 @Override
 public void onClick(View v) {
 _listeningDialog.setText("Initializing...");   
 showDialog(LISTENING_DIALOG);
 _listeningDialog.setStoppable(false);
 setResults(new Recognition.Result[0]);

 if (v == dictationButton)
 _currentRecognizer = MainView.getSpeechKit().createRecognizer(Recognizer.RecognizerType.Dictation, Recognizer.EndOfSpeechDetection.Long, "en_US", _listener, _handler);
 else
 _currentRecognizer = MainView.getSpeechKit().createRecognizer(Recognizer.RecognizerType.Search, Recognizer.EndOfSpeechDetection.Short, "en_US", _listener, _handler);
 _currentRecognizer.start();
 }
 };
 dictationButton.setOnClickListener(startListener);
 websearchButton.setOnClickListener(startListener);

Apple

Apple hat spätestens seit dem iPhone 4S [ref](https://www.apple.com/de/iphone)[/ref] und ihren Plänen zu Sprachsteuerung von TV-Geräten [ref](http://www.iptv-anbieter.info/iptv-news/apple-stost-auf-tv-markt-vor-fernseher-mit-sprachsteuerung-in-arbeit)[/ref] wieder eine wichtige Rolle in der Spracherkennung eingenommen. Es unterhält dementsprechend eigene Server zur Spracherkennung und -steuerung, limitiert deren Nutzung jedoch bisweilen stark.

SIRI

[singlepic id=743 w=320 h=240 float=]

Siri ist eine Software von Apple, die der Erkennung und Verarbeitung von natürlich gesprochener Sprache dient. [ref](https://de.wikipedia.org/wiki/Siri_%28Software%29)[/ref] Apple hat durch den Kauf vin Siri[ref](http://www.macnotes.de/2010/04/29/apple-kauft-siri-virtueller-assistent-fur-intelligente-suche-im-iphone-os/)[/ref]  bewiesen, wie interessant Sprachesteuerung für Kunden ist.

Microsoft

Tellme

Von Microsoft für Windows-Phone entwickelt Software Tellme bietet durch die Cloud eine ständige Verbesserung der Spracherkennung [ref](https://www.microsoft.com/en-us/Tellme/technology/default.aspx#tab=engines)[/ref].

[singlepic id=781 w=320 h=240 float=]

Es soll ein Konkurrent zu Siri sein, schnitt jedoch in vielen subjektiven Tests als deutlich schlechter und weniger intelligent ab.[ref]http://www.ifrick.ch/2011/11/microsoft-tellme-gegen-apple-siri-noch-fragen/[/ref]

WSR Macros

Dies ist ein kostenfreies Tool zum herunterladen, welches einem eine einfache Möglichkeit gibt die Sprachsteurung von Windows zu erweitern, ohne weitgreifende Programmierkenntnisse zu besitzen. Jedoch bleibt es weit hinter den Möglichkeiten anderer Anbieter zurück.

Google VoiceActions

[singlepic id=753 w=320 h=240 float=]

Auch Google hat mit Google Voice Actions[ref]http://www.google.com/mobile/voice-actions/[/ref] eine Möglichkeit entwickelt das Mobiltelefon oder das Tablet per Sprache zu bedienen. Anders als andere Anbieter braucht es den Vergleich mit Siri nicht zu scheuen, obwohl es in der Umsetzung einen deutlich anderen Weg gewählt hat. Anders als beim Produkt von Apple wird weniger in Oberfläche von Siri angezigt, sondern auf die Suchmaschine von Google gesetzt. Es wirkt zwar dadurch technischer, aber häufig auch detaillierter. Es stehen also auf der einen Seite ein Dialog-Ansatz und Styling von Apple und auf der anderen Seite klare Anweisungen und aufgelistete Ergebnisse von Google.[ref]http://t3n.de/news/apple-siri-google-voice-actions-funktioniert-besser-337314/[/ref]

Iris

Die erste Version von Iris soll innerhalb weniger Stunden entstanden sein und wurde später durch updates immer genauer und zuverlässiger. Dexetras Versuch Siri zu klonen stellt zur Zeit noch nicht eine ausgereifte Software dar, man kann aber vermuten, dass durchaus noch weitere Updates folgen werden.[ref]http://www.businessvalue24.de/iris-die-sprachsoftware-im-test[/ref] Iris benötigt Google Voice Search[ref]http://www.golem.de/1008/77191.html[/ref] und TTS, welche aber frei im Android Market erhältlich sind. Da es keine Softwarebibliothek, sondern eine prototypische Implementierung  auf Basis des unten erläutertem Android SDK ist und kein Quellcode erhältlich ist, kann es nicht in eigenen Programmen verwendet werden.

Android SDK

Android bietet den Vorteil, dass es frei und kostenlosnlos ist und zusäzlich der Quellcode eingesehen und studiert werden kann. Beides erleichtert die Implementierung neuer Applikationen. Die SDKs sind umfangreich und schon mit verschieden Tests vorhanden. Mit der aktuellen Version 4.0 Ice Cream Sandwich soll zudem auch ein Front-End-System, also einer Erkennung auf dem Client, der Spracherkennung möglich sein. Es ist damit unabhängig von den Servern der Anbieter, die Anwendung muss aber zur Verbesserung manuelle aktualisiert werden.

ein Codebeispiel:

/**
 * A very simple application to handle Voice Recognition intents
 * and display the results
 */
public class VoiceRecognitionDemo extends Activity
{

    private static final int REQUEST_CODE = 1234;
    private ListView wordsList;

    /**
     * Called with the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.voice_recog);

        Button speakButton = (Button) findViewById(R.id.speakButton);

        wordsList = (ListView) findViewById(R.id.list);

        // Disable button if no recognition service is present
        PackageManager pm = getPackageManager();
        List<ResolveInfo> activities = pm.queryIntentActivities(
                new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
        if (activities.size() == 0)
        {
            speakButton.setEnabled(false);
            speakButton.setText("Recognizer not present");
        }
    }

    /**
     * Handle the action of the button being clicked
     */
    public void speakButtonClicked(View v)
    {
        startVoiceRecognitionActivity();
    }

    /**
     * Fire an intent to start the voice recognition activity.
     */
    private void startVoiceRecognitionActivity()
    {
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo...");
        startActivityForResult(intent, REQUEST_CODE);
    }

    /**
     * Handle the results from the voice recognition activity.
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
        {
            // Populate the wordsList with the String values the recognition engine thought it heard
            ArrayList<String> matches = data.getStringArrayListExtra(
                    RecognizerIntent.EXTRA_RESULTS);
            wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
                    matches));
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Vlingo

[singlepic id=745 w=320 h=240 float=]

Vlingo ist eine kostenfreie App, welche Nachrichten oder Mails sendet, Anrufe und Websuche durch einfache Sprachbefehle startet – welche aber beim ersten Start eingestellt werden müssen. Es ist nur mit Android Versionen ab 2.0 kompatibel. Im Hauptmenü werden alle verfügbaren Befehle aufgelistet und neben dem erstellen von SMS, ist es auch möglich andere Applikationen wie zum Beispiel Skype aufrufen. Die Spracherkennung wurde in mehreren Test als überraschend gut beschrieben und bietet auch einen inCar-Modus, welcher eine Steuerung mit fast gar keinem Berühren erlaubt.[ref]http://www.cnet.de/blogs/mobile/android-app/41555152/vlingo_fuer_android_das_smartphone_per_sprachbefehl_steuern.htm[/ref]

Open Source Projekte

Neben kommerziellen Webdiensten und Produkten gibt es auch Open Source Projekte, die sich ebenfalls mit Spracherkennung (vordergründig) sowie zum Teil mit Sprachsteuerung befassen.
Durch eine freie und kostenlose Veröffentlichung eines Quelltextes fördern diese die Weiterentwicklung und erleichtern die Verbreitung. Es kann somit eine große Anzahl an Personen an einer Aufgabe arbeiten und jeder profitiert von den Erfolgen anderer.

CMU Sphinx

CMU Sphinx ist ein Open Source Projekt[ref]http://cmusphinx.sourceforge.net/[/ref] zur Spracherkennung der Carnegie Mellon University. Es ist unabhängig vom Nutzer und bietet die Erkennung von ununterbrochenem Sprachfluss.[ref](http://sourceforge.net/projects/cmusphinx/)[/ref]

Julius

[singlepic id=783 w=320 h=240 float=]

Julius ist eine Spracherkennungs-Engine, welche Open Source ist und sowohl ununterbrochene Sprachflüsse versteht, als auch mit großen Wortschätzen umgehen kann. Es basiert auf Hidden Markov Modellen und läuft auf modernen PCs nahezu in Echtzeit.[ref](https://de.wikipedia.org/wiki/Julius_%28Software%29)[/ref] Neben dem vollständigen Quelltext bietet es zusätzlich noche eine Anleitung in Englisch und Japanisch.

VoxForge

[singlepic id=770 w=320 h=240 float=]

VoxForge erstellt akustische Modelle für die Verwendung mit Spracherkennungs-Engines wie Sphinx oder Julius. Es sammelt dafür eingereichte Sprachdateien von Benutzern. [ref]http://julius.sourceforge.jp/en_index.php[/ref] Aus den Sprachaufnahmen wir dann ein akustisches Modell erstellt, welches aber eine große Menge von Sprachaufnahmen benötigt.

RWTH ASR

[singlepic id=793 w=320 h=240 float=]

RASR ist ein open source Spracherkennungs-Werkzeugsatz. Es wurde von der „Human Language Technology and Pattern Recognition Group“ an der Universität in Aachen entwickelt.

Nutzungsmöglichkeiten

[singlepic id=630 w=600 h=420 float=]

Das Ziel ist es im Schwerpunkt eine Verkürzung der Funktionsaufrufe um damit die Erleichterung der Bedienbarkeit zu erreichen. So soll es möglich sein vom Hauptmenü aus, mit nur einem Befehl, eine Person aus der Kontaktliste des Tablets anzurufen. Es entfallen also zum Teil lange Befehlsketten und werden durch  einzelne Befehle ersetzt. Es ist unter anderem für ältere Menschen, der Zielgruppe von ELISA, von Bedeutung.

In diesem Zusammenhang soll eine Beispielkontakliste auf einem Tablet erstellt und dem Nutzer ermöglicht werden sich einen dieser Kontakte durch einen Sprachbefehl anzuzeigen.

Vergleich

In dieser Tabelle können die vorgestellten Produkte und Webdienste nun miteinander verglichen werden.

[singlepic id=834 w=816 h=240 float=]

Zusammenfassung

Der Artikel zeigt, dass es bereits eine Vielzahl an Webdiensten, Produkten und Open Source Projekten zur Spracherkennung und Sprachsteuerung gibt, welche sich in vielen Gesichtspunkten jeweils sehr von einander unterscheiden. So wird die potentielle Nutzbarkeit zum Teil stark dadurch eingeschränkt, welche Betriebssysteme unterstützt werden, unter was für einer Lizenz die Veröffentlichung läuft, welche Sprachen erkannt werden und ob überhaupt Sprachsteuerung oder das Entwickeln eigener Anwendungen (SDK) vorgesehen ist. Dies wird in obiger Tabelle deutlich.

Die Spracherkennung derer Technologien, die sich für Android nutzen lassen findet bisweilen serverseitig statt. Die aufgezeichnete Eingabe wird an einen Server weitergeleitet und von diesem zu Text bzw. Befehlen verarbeitet.
Somit funktionieren jene nur, solange die Verbindung zwischen Gerät und Internet steht. Lediglich Google ließ verlauten, dass sein Android 4.0, welches Anfang Januar 2012 erscheinen soll, erstmals über eine autonom arbeitende Spracherkennung verfügt.

Unabhängig davon soll unbestätigten Berichten zufolge Anfang 2012 Googles Antwort auf Siri erscheinen. So berichtet der Fachblog androidandme, derzeit arbeite das Entwicklerteam an einer neuen Android-Sprachsteuerung mit Codenamen Majel. Auch heise.de zitierte den englischsprachigen Bolg in einem entsprechenden Artikel.
Majels Spracherkennung solle jedoch serverseitig stattfinden, hieß es, was wiederum mit Goggels offizieller Ankündigung einer autonom arbeitende Spracherkennung nicht ganz in Einklang zu bringen ist. Ein Google-Sprecher wiegelt Nachfragen indess damit ab, dass sie „keine Gerüchte und Spekulationen kommentieren“.
Man darf gespannt sein.

CommunityMashup – Ein erster Überblick

[toc] Das CommuntiyMashup ist eine Integrationslösung für Daten aus sozialen Diensten. Es vereinheitlicht und verbindet Daten aus den unterschiedlichsten Quellen. Hierbei steht im Sinne des „Social Web“ die Person im Vordergrund. Eine definierte Schnittstelle mit vorgefertigen Anwendungskompenten lässt eine einfache Verwendung der Daten in verschiedensten Anwendungsszenarien zu. Diese Seite gibt einen Überblick über die dem CommunityMashup zugrundeliegenden Konzepte und vermittelt einen Einblick in seine vielfältigen Verwendungsmöglichkeiten.

Ausgangssituation

Mit dem Erfolg von Web 2.0 im privaten und Enterprise 2.0 im unternehmensweiten Bereich veränderte sich die Art und Weise wie Informationen strukturiert und kosumiert werden.

[singlepic id=220 w=618 float=center]

Auswirkungen des Erfolg von Social Software

Im Zuge des immer verbreiteteren Einsatzes von Social Software auch im Unternehmenskontext vollzieht sich eine Entwicklung von einer datenzentrischen Systemsicht hin zu einer personzentrischen Perspektive. Soziale Netzwerke wie Facebook oder Microblogging Dienste wie Twitter sind nur zwei Arten von Diensten die Einzug in unser tägliches Leben gefunden haben. Insgesamt lässt sich beoachten, dass fast jeder Nutzer inzwischen mehr als einen Dienst benutzt, sei es wegen spezieller Funktionalitäten, den Personen die über den jeweiligen Dienst erreichbar sind oder schlichtweg um private und berufliche Nutzung zu trennen. So sind wir unter anderem gezwungen den richtigen Kanal zu wählen um Informationen zu konsumieren bzw. zu verteilen. Dies nährt den Wunsch nach einer Integrationslösung, die unsere Daten aus unterschiedlichen Diensten vereint ohne dabei ein neues zentralisiertes System zu schaffen. Insbesondere muss uns die Wahl der Dienste und die Art und Weise, wie wir diese nutzen wollen offen bleiben.

Mobile und ubiquitäre Nutzung

Eine weitere Veränderung der letzten Jahre lässt sich in der Nutzung verschiedenster Geräte, mit denen wir Informationen konsumieren, festhalten. Sei es mit dem Tablet zuhause im Wohnzimmer, unterwegs per Smartphone oder klassisch im Büro mit dem Desktoprechner. Hinzukommen ubiquitäre Systeme wie interaktive Wandbildschirme, welche die letzten Lücken unserer Informationsversorgung schließen. Eine zukunftsfähige Integrationslösung muss daher dem Nutzer die Möglichkeiten der freien Geräte- und Plattformwahl offen lassen.

Nutzerzentrische Aggregation verschiedener Quellen

Der Grundgedanke des Web 2.0 beinhaltet die starke Einbeziehung aller Nutzer bei der Erstellung von Inhalten und die Möglichkeit diese mit anderen Personen zu teilen. Mit der Integration von Daten aus uterschiedlichen Diensten entsteht der Wunsch diese untereinander mit zusätzlichen Informationen zu Verknüpfen und diese wiederum mit anderen zu teilen. Hierin liegt auch ein Kritikpunkt an aktuellen Integrationssystemen, die meist nur aus einer Single-User Perspektive getrieben sind. Beispielsweise ist die Verteilung der Information innerhalb einer Gruppe, wer welche Artikel zu einem gemeinsamen Interessensgebiet gelesen hat, aus dieser Perspektive unmöglich. Wobei die Artikel natürlich aus verschiedensten Quellen stammen können. Zusammen mit der personenzentrischen Sicht auf Daten, der Vielzahl verschiedenster genutzer Dienste und der Verwendung unterschiedlichster Geräte führt dies zum Wunsch einer neuen Integrationslösung für die wir im folgenden die Konzepte und Lösungsansätze vorstellen.

Grundidee

Das CommunityMashup verbindet die Inhalte aus verschiedensten sozialen Diensten. Dazu zählen beispielsweise Soziale Netzwerke wie facebook, Microblogging Dienste wie twitter oder Bild-Dienste wie flickr, aber auch spezielere wie beispielsweise der Referenzmanagement-Dienst Mendeley für wissenschaftliche Veröffentlichungen. Die Daten aus diesen Diensten werden über die Schnittstellen der Services abgerufen und über spezielle Adapter vereinheitlicht, so dass sie miteinander vermischt und verbunden werden können („mashup“). Die vereinheitlichten Daten werden anschließen wieder über spezielle Schnittstellen bereitgestellt. Hierbei wird auf unterschiedliche Anwendungsszenarien und deren spezielle Anforderung eingegangen, die insbesondere durch verschiedene Geräte und Plattformen beeinflusst sind. Wir unterscheiden ganz allgemein zwischen Web-Anwendungen, Desktop-Anwendungen und Anwendungen für mobile Geräte. Die folgende Grafik visualisiert diese Zusammenhänge noch einmal grafisch. Hierbei ist vorallem zu beachten, dass Daten nicht nur von den angebunden Diensten zu den Endbenutzer Anwendungen fließen, sondern auch in umgekehrter Richtung.
[singlepic id=603 w=618 float=center]

Model Driven Approach

Ausgehend von der Grundidee einer Integrationslösung für soziale Dienste, die Daten vereinheitlicht und über spezielle Schnittstellen wieder bereitstellt, stellt sich die Frage nach dem passenden Entwicklungsansatz. Erfahrungen haben gezeigt, dass Internetdienste sowie ihre ggf. vorhandenen Schnittstellen einer permanenten Änderung und Weiterentwicklung unterworfen sind. Dienste kommen und gehen bzw. sind populären oder unpopulärer ebenso verhält es sich mit ihren Funktionen und Schnittstellen. Um flexibel auf diesen kontinuierlichen Wandel reagieren zu können und dabei eine stetige Evolution der Integrationslösung zu ermöglichen, schlagen wir einen modellgetriebenen Ansatz vor. Dieser basiert auf einem dafür konzipierten personenzentrischen Datenmodell, das die Zusammenhänge in sozialen Diensten wiedergibt. Dieses Datenmodell und die darauf aufbauenden Anwendungskomponenten stellen wir im weiteren Verlauf näher vor.

Datenmodell

Untenstehende Abbildung zeigt die Kernelemente des personenzentrischen CommunityMashup-Datenmodells. Es enthält die drei Kernelmente Person, Organisation und Inhalt (Content). Organisationen wie auch Inhalte können hierarchisch strukturiert werden. Inhalte werden über eine Autor-Beziehung mit Personen verknüpft, diese wiederum können über Organisationen gruppiert werden. Personen-Objekte spiegeln jeweils reale Menschen wieder, d. h. für eine Person wird nicht ein eigenes Element für je benutzten Dienst erzeugt werden, vielmehr bilden alle verteilten Profile zusammen eine digitale Identität ab. Das Selbe gilt auch für die Profile von Organisationen. Jeder weitere Dienst trägt seine zusätzlichen Profilinformationen über Erweiterungs-Objekte (Extensions) bei. So bleibt auch der Bezug zur ursprünglichen Quelle erhalten.
[singlepic id=600 w=618 float=center]

Ein Kernkonzept des Datenmodells ist die bewusst offene Verwendung von Tags für Metainformationen, um ein Minimum von zusätzlichen Attributen für die einzelnen Daten-Objekte fix speichern zu müssen. Beispielsweise erhält eine Person nicht mehr zwei Attribute für die private und die berufliche E-Mail-Adresse, sondern Referenzen zu zwei E-Mail Objekten getaggt mit privat bzw. beruflich. Ein E-Mail Objekt lässt sich dann beispielsweise noch facebook taggen um so deren Verwendung auszuzeichnen. Dieses Verfahren wird auf alle Objekte des Datenmodells angewandt und erlaubt sehr flexible Such- und Filtermethoden und ermöglicht dadurch letztlich eine nutzungsoffene Verwendung der Integrationslösung.

Anwendungskomponenten

Mit der aus dem Datenmodell hervorgehend Abbildungsvorschrift, die es erlaubt Daten aus sozialen Diensten zu vereinheitlichen und miteinander zu verbinden, stellt sich die Frage, welche Teile einer konkreten Anwendung direkt vom vorliegenden Datenmodell abängen und somit ebenfalls automatisch aus dem Modell generiert werden können. Um eine nachhaltige und erweiterbare Lösung zu ermöglichen, ist es quasi ein Muss, dass alle diese direkt ableitbaren Teile automatisch bzw. zumindest semi-automatisch generiert werden. Die folgende Grafik gibt einen Überblick über die für das CommunityMashup relevanten, automatisch generierbaren Anwendungskomponenten:
[singlepic id=604 w=618 float=center]

Viele UML-Werkzeuge unterstützen mittlerweile die automatische Erzeugung einer (Java) Schnittstelle mit zugehörigen leeren Klassen und Methoden. Für eine durchgängige Lösung wird allerdings ausführbare Code mit einer Laufzeitumgebung (RunTime) benötigt. Diese kümmert sich beispielsweise um die Erzeugung von Objekten bzw. um die Bereitstellung von Methoden zur Manipulation solcher Instanzen. Ein zusätzlicher Event-Mechanismus erlaubt das Verfolgen dieser Änderungen. Eine weitere wichtige Anwendungskomponente stellt die Persistierung dar. Diese wird beispielsweise für Caching benötigt. Für die Persistierung von Daten ist eine Serialisierung und Deserialisierung der Objekte notwendig. Diese wird ebenfalls für den Datenaustaustausch über Web-Schnittstellen im XML-Format benötigt. Im Rahmen des CommunityMashup-Projektes wird aktuell eine durchgängige Werkzeugkette aufgebaut, die die automatische Erstellung dieser Komponenten ermöglicht. Wir wenden den gleichen modellgetrieben Ansatz auch auf ein Meta-Modell an, das die möglichen Konfigurationen des CommunityMashup beschreibt. Hierfür werden viele identische Komponenten benötigt, allerdings jeweils bezogen auf ein anderes Modell. Die Verwendung des Meta-Modells erlaubt es, Konfigurationen speichern und laden zu lassen (Persitierung) und beispielsweise aus Gründen der Fernwartung auch über eine Web-Schnittstelle abfragen und verändern zu lassen.

Service-Orientierte-Architektur

Alleine durch die oben beschrieben, aus einem Modell erzeugbaren Komponenten lässt sich noch keine gesamte Integrationslösung erstellen. Ziel des CommunityMashups ist nicht nur ein flexibles Entwicklungskonzept das durch den modellgetriebenen Ansatz erreicht wird, sondern auch eine flexible Systemarchitektur die aufgrund von Anforderungen wie Skalierbarkeit, Performance und Ausfallsicherheit eine Verteilung von Systemkomponenten zulässt. Diese Service-Orientierte-Architektur, muss sich dadurch auszeichnen, dass definierte Systemkomponenten als eigenständige Services mit definierten Schnittstellen realisiert werden. So lassen sich selbst zur Laufzeit einzelne Komponenten aktualisieren bzw. austauschen ohne die Verfügbarkeit des Gesamtsystems zu beeinflussen. Nachfolgende Abbildung zeigt ein exemplarisches verteiltes Szenario mit Client- und Server Komponenten.
[singlepic id=601 w=618 float=center]

Die Verbindung der Daten aus den eizelnen Quelldiensten (Source 1 bis Source n) wird auf einem Server durchgeführt und durch eine Konfiguration gesteuert. Jede dieser Quellkomponenten wird als eigener Service realisiert, der sich sich einzeln aktualiseren lässt, beispielsweise um auf die Änderung einer entfernten Schnittstelle zu reagieren.Java Intern überführen die dargestellten Quellkomponenten Daten der externen Dienste in das dem personenzentrische CommunityMashup-Datenmodell und tragen diese hierdurch sukzessive zu einem gemeinsamen Datensatz zusammen. Die zentrale CommunityMashup-Komponente stellt diesen Datensatz (ggf. je nach Bedarf gefiltert) wieder über eine Java Schnittstelle bereit. Darauf aufbauend lässt sich eine REST Schnittstelle hinzufügen, die die aggregierten und gefilterten Daten (zugriffsbeschränkt) über das Web verfügbar macht. Spezielle Anwendungskomponenten lassen nun eine Verwendung der Daten auf Client-Seite über eine identische Java API zu. Die je nach Client-Typ (im oben abgebildeten Beispiel eine klassische Desktop Anwendung in Kombination mit einem Android Mobile Device) speziell ausgeprägten Anwendungskomponenten kümmern sich im Hintergrund transparent um den Datenaustausch und verlagern je nach Client rechenintensive Aufgaben auf den Server.

CommunityMashup REST-Schnittstelle

[toc] Das CommunityMashup stellt Anwendungen eine auf Web2.0-Inhalte spezialisierte und auf einem personenzentrischen Datenmodell basierende Datenbasis zur Verfügung. Um Anwendern/Entwicklern generische Zugriffsmöglichkeiten auf diese Datenbasis zu ermöglichen, wurde im Rahmen einer Masterarbeit eine REST-Schnittstelle für das CommunityMashup entwickelt, die nachfolgend kurz vorgestellt wird

Problemstellung

Zu Beginn der Entwicklung des CommunityMashups wurde der Zugriff auf die Daten des Frameworks lediglich über eine Java-Schnittstelle ermöglicht, d.h. eine es nutzende Anwendung musste in Java implementiert sein und auf der gleichen Maschine wie das CommunityMashup laufen.Eine auf verschiedene Geräte oder Architekturen verteilte Nutzung wurde somit starkt erschwert (vgl. Abbildung links).

[singlepic id=582 h=270 float=left] [singlepic id=583 h=270 float=left]

Um diesem Problem zu begegnen, wurde das CommunityMashup im Rahmen einer Masterarbeit um eine REST-Schnittstelle erweitert. Mit Hilfe dieser Schnittstelle können verschiedenste Arten von Anwendungen (z.B. normale Anwendungen, Smartphone-Apps oder Widgets) auf unterschiedlichen Geräten auf die Daten eines oder mehrerer CommunityMashups zugreifen und diese verwenden sowie manipulieren (vgl. Abbildung rechts).

Verwendung der Schnittstelle

Die Schnittstelle kann prinzipiell von jeder Anwendung verwendet werden, die entsprechend der Schnittstellen-Dokumentation erstellt/konfiguriert wurde:

[singlepic id=581 w=518]

Da die Kommunikation mit der REST-Schnittstelle über das HTTP-Protokoll und damit potentiell dem gesamten Internet geschehen kann, ist die Anwendungsentwicklung sowohl was den Ort als auch die Architektur des Zielsystems betrifft vom CommunityMashup unabhängig.

Die REST-Schnittstelle wird vom CommunityMashup in Form eines Java-Servlets bereitgestellt, welches ebenfalls die Dokumentation der Schnittstelle enthält.

Beide können über die URL des CommunityMashup-REST-Services erreicht werden, der eine selbsterklärende Beschreibung der angebotenen Dienste bereithält. Unter anderem kann die Syntax der REST-Anfragen nachgeschlagen werden und die Anfragen können im Browser getestet werden, was bei der Entwicklung kompatibler Anwendungen hilft.

[singlepic id=595 w=618 float=center]

[singlepic id=584 w=618 float=center]

Technische Umsetzung

Um die REST-Schnittstelle mit der modellgetriebenen Entwicklung des CommunityMashups[ref]Vgl. https://soziotech.org/communitymashup/model-driven-approach/.[/ref] im Einklang zu halten, werden die dynamischen (vom Datenmodell des CommunityMashups anhängigen) Methoden und Funktionen mit Hilfe angepasster JET-Templates automatisch aus dem Modell generiert, was eine spätere manuelle Anpassung der Schnittstelle an Änderungen des CommunityMashups überflüssig macht:

[singlepic id=589 w=618 float=center]

Um den unauthorisierten Zugriff auf das CommunityMashup einzuschränken, wurde ein Sicherheitssystem entwickelt, das nur registrierten Anwendungen den Zugriff auf die Daten und Funktionen des CommunityMashups gestattet. Die Absicherung der REST-Anfragen geschieht durch eine Signatur, welche die Anfrage vor einer Manipulation schützt und den Absender der Anfrage eindeutig identifiziert.

Sicherheitssystem der Schnittstelle

Die Sicherheit der Daten des CommunityMashups wird durch die Verwendung sogenannter Message Authentication Codes (MAC) sichergestellt, welche auch bei anderen (REST)-Schnittstellen namhafter Online-Dienstanbieter wie Amazon, GoogleMaps oder Flickr verwendet wird. Dabeiwird neben der eigentlichen Anfrage der Hashcode der Anfrage und eines geheimen Schlüssels übermittelt, wodurch zum einen die Integrität der Nachricht und zum anderen die Identität des Absenders sichergestellt sind.

REST-Zugriff

Die folgenden Prozessdiagramme liefern einen kurzen Überblick über die Zugriffsmöglichkeiten auf das CommunityMashup über die REST-Schnittstelle, darunter auch über den Ablauf einer gesicherten REST-Anfrage:

[nggtags gallery=REST+Zugriff]