E-Mail war gestern

Soziale Unternehmensanwendungen mit Gadgets und Widgets

Frank Pientka

In Zeiten von Innovationsdruck, steigenden Kosten und Fachkräftemangel ist ein effektiver Informations- und Wissensaustausch ein entscheidender Wettbewerbsvorteil. Bisher wurde soziale Software eher durch große Plattformen wie Facebook oder Google Plus geprägt. Doch auch für den Einsatz in modernen Unternehmen spielen soziale APIs und damit gebaute Anwendungen eine immer größere Rolle. Wir stellen die Standards für Gadgets und Widgets vor und zeigen ihre Nutzung.

Java Magazin

Der Artikel „E-Mail war gestern“ von Frank Pientka ist erstmalig erschienen im

Java Magazin 3.2013

Die Zeiten der statischen Webseite und der reine E-Mail-Austausch sind schon lange vorbei. Heute steht der Nutzer, der sich mit anderen vernetzt und Daten austauscht, im Vordergrund. Er selbst entscheidet, wie, wann und wo er solche interaktiven Plattformen nutzen möchte. Gerade im beruflichen und unternehmerischen Umfeld wird der Einsatz von sozialer Software immer wichtiger. Das liegt daran, dass von überall schnell und unkonventionell Informationen ausgetauscht werden, was die Produktivität, Motivation und Innovation erhöhen kann.

Gadget

Der von Google initiierte Standard OpenSocial standardisiert über ein einheitliches API folgende Bereiche (Abb. 1):

  • Daten: ermöglicht den Zugriff und Austausch von Personendaten
  • Personen: stellt die Beziehungen einer Person dar
  • Aktivitäten: für die textbasierte Kommunikation zwischen Personen
  • Anwendungsdaten: Gruppen und Ressourcen, die einem Benutzer zugeordnet sind

Abb. 1: Hauptbereiche des OpenSocial-API

Damit können OpenSocial-Anwendungen, so genannte Gadgets, mit offenen Standards [1] wie HTML, XML und JavaScript entwickelt werden, die in einer Art Laufzeitumgebung auf dem Server laufen.

Abb. 2: Arten von OpenSocial-Anwendungen

Damit lassen sich vier Arten von Anwendungen, wie Social Mashups, Social-Applikationen, Social-Mobile-Applikationen und Social-Webseiten realisieren (Abb. 2). Die Referenzimplementierung des OpenSocial-Standards stellt Apache Shindig jeweils in einer zum jeweiligen Standard passenden Version (aktuell ist 2.5) zur Verfügung. Shindig besteht aus einem Server- und einem Clientteil. Der Server kümmert sich um die Ausführung und Verwaltung der OpenSocial-Anwendungen. Neben der Berechtigungsverwaltung, Konfiguration der Anwendung ist der Server für das Rendering und den Aufruf des Gadgets zuständig [2], [3]. Ähnlich wie bei einem Portalserver können die Gadgets auf einer Seite platziert werden, wobei ein Gadget als vollständige Webanwendung auch alleine ausgeführt werden kann. Ein Gadget besteht aus einer XML-Beschreibung, wie z. B.

Im Content-Bereich kann HTML und JavaScript verwendet werden, um eigene Funktionen zu erstellen oder das Gadget-API (gadgets.* namespace https://developers.google.com/gadgets/docs/xml_reference) aufzurufen (Listing 1).

Listing 1

  • Working on... ]]>
  • Das so erstellte Gadget kann, nachdem es in Rave ([4], Abb. 3) veröffentlicht wurde, direkt über http://localhost:8080/demogadgets/my_activity.xml aufgerufen oder auf einer Seite platziert und als Teil von dieser aufgerufen werden.

    Abb. 3: Rave-Architektur

    Bereits fertige Gadgets finden Sie im iGoogle-Verzeichnis http://www.google.com.au/ig/directory. Neben einfachen Spielen, Taschenrechner, Notizverwaltung oder Wetterinformationen finden Sie dort z. B. ein Gadget zur Aufgabenverwaltung [5].

    Nachdem Sie eine Gadget-Beschreibung als Rave-Administrator (canonical mit demselben Passwort, Abb. 4) hinzugefügt haben, ist diese im Status preview und muss noch zu allgemeiner Verwendung in den Status published versetzt werden. Danach kann das Gadget auf einer Seite platziert werden.

    Abb. 4: myActivities Gadget

    Die Kommunikation mit dem Server (Abb. 5) erfolgt über das OpenSocial-REST-Protokoll. Die Clientseite besteht aus einem Gadget-Container (gadget.js), der über JavaScript-Funktionen mit dem Server kommuniziert. Bis zur OpenSocial-Version 0.6 musste jeder Aufruf und Inhalt vom OpenSocial-Container ausgeliefert werden. Ab Version 0.9 kann Content über Data Pipelining und einen Web-Proxy jetzt auch von einem Applikationsserver direkt ausgeliefert werden, was zu einer verbesserten Skalierbarkeit und Performance [6] führt.

    Für die Verwendung als mobile Anwendung sind Gadgets gut geeignet, da sie gegenüber normalen Webanwendungen nur einmal installiert werden müssen und ohne lange Ladezeiten genutzt werden können. Interessanterweise verwendet Apache Cordova für die Installation seiner hybriden Mobile-Anwendung das OpenSocial-Installations- und Konfigurationsformat.

    Abb. 5: Content-Auslieferung über Proxy
    Widget

    Einen ähnlichen Weg wie die Gadgets verfolgen die vom W3C standardisierten Widgets [7]. Für Endgeräte, die den W3C-DAP-(Device-APIs-& Policy-Working-Group-)Standard unterstützen und freischalten, können Clientfunktionen wie Kamera, Kontakte, Bilder, Nachrichten oder Geräteeinstellungen genutzt werden. In Rave ist neben dem Gadget-Container Shindig auch der Widget-Container Wookie ([8], Abb. 6) enthalten. Dieser wurde vom EU-Projekt TenCompetence entwickelt und 2009 in den Apache Incubator aufgenommen.

    Abb. 6: Wookie-Architektur

    Bevor Sie die mitgelieferten Widgets verwenden können, müssen Sie diese unter dem Rave-Reiter W3C WIDGET auswählen und dann veröffentlichen. Sie können Wookie jedoch mit http://localhost:8080/wookie/demo/ separat aufrufen und verwenden (Abb. 7).

    Abb. 7: W3C Widgets mit Wookie

    Die W3C-Spezifikation für Packaged-Web-Apps (Widgets) wird z. B. auch für Apache-Cordova-Anwendungen [9] verwendet und beschreibt ein allgemeines Format zur Verbreitung von Webanwendungen mit HTML, CSS und JavaScript. Deswegen können diese Anwendungen auch alleine, als Teil einer Webseite oder als hybride mobile Anwendung laufen.

    Möchte der Entwickler in Wookie ein weiteres Widget installieren, lädt er einfach dessen Archiv über die Verwaltungsoberfläche hoch oder kopiert es ins Hot-Deployment-Verzeichnis wookiedeploy. Zum Erstellen eines eigenen Widget rufen Sie in der Source-Distribution von Wookie den dafür vorgesehenen Wizard mit Apache Ant auf:

    ant seed-widget -Dwidget.shortname=[Hello Welt] 

    Dabei können Sie eine der Widget-Arten [basic], settings, wave, jqueryMobile oder s5 verwenden, für die Wookie schon fertige Schablonen zur Verfügung stellt. Sie brauchen nur den Namen und eine Kurzbeschreibung anzugeben, so wird Ihnen dann ein Verzeichnis mit dem Namen C:apache-wookie-0.12.0-incubating-srcwidgetsHello Welt erstellt. Der Ordner enthält die Dateien config.xml (für die Beschreibung des Widgets) und index.html (Aufrufseite mit Möglichkeiten, das Widget mit der Funktion wookieShowSettings() zu konfiguieren und das Aussehen mit CSS anzupassen). Die Datei für das Hallo-Welt-Widget hat die in Listing 2 dargestellten Inhalte.

    Listing 2

    Hello WeltMein erstes WidgetFrank Pientka
    Geschrieben von
    Frank Pientka
    Kommentare

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.