Einer der großen Vorteile eines Social Intranet liegt darin begründet, dass alle Informationen an einem Ort zentral gebündelt werden und somit über ein einziges System verfügbar sind. Um diese Stärke ausspielen zu können, muss der Wissensarbeiter die Möglichkeit haben, die für ihn wichtigen Informationen aus der gesamten Datenbasis einfach und übersichtlich zu aggregieren. Dieses Prinzip kennt man aus den Social Media, wo die Timeline, z.B. auf Facebook oder Twitter, die aggregierten Informationen aller Follower und Abonnenten des jeweiligen Nutzers abbildet. Genau dieses Filterprinzip hat IBM nun in seine große Enterprise 2.0 Suite "IBM Connections" implementiert und mit dem ActivityStream eine zentrale Timeline geschaffen. In diesem Beitrag befasse ich mich mit den technischen Spezifikationen und Voraussetzungen, die erfüllt sein müssen, um Neuigkeiten in den ActivityStream zu posten und die verfügbaren Schnittstellen zu anderen Systemen nutzen zu können.
Was ist der Activity Stream?
Der ActivityStream bietet eine Zusammenfassung der privaten und öffentlichen Aktivitäten eines Systems in chronologischer Reihenfolge. In IBM Connections ist er unter der zentralen Komponente "Homepage" untergebracht und dient dem Nutzer als Einstiegspunkt in das Produkt IBM Connections.

Dadurch, dass IBM in Connections (gemeinsam mit anderen Unternehmen) einen offenen Standard geschaffen hat, ist es ein Leichtes, Informationen über externe Ereignisse in IBM Connections zu integrieren. IBM verwendet für den ActivityStream die Spezifikation von activitystrea.ms in der JSON Variante. In dieser Spezifikation ist beschrieben, wie Aktivitäten technisch aussehen und was mit ihnen gemacht werden muss, um Informationen innerhalb von ActivityStreams anzuzeigen.
Aktivitäten erstellen
Aufgrund der Spezifikation ist es genau festgelegt, was in Aktivitäten vorhanden sein muss. Das Grundgerüst ist für jeden Post gleich:
{
"title": "${post}",
"object": {
"id": "post_id",
"displayName": "Title element"
},
"actor": {
"id": "@me"
}
}

Leider ist das nur in den seltensten Fällen ausreichend, weil weitere Elemente, wie z.B. ein Inhalt oder Links, hinzugefügt werden sollen.
{
...
"object": {
...,
"url": "http://www.example.org",
"summary" : "This is the content"
},
...
}

Das Ganze muss natürlich noch irgendwie zu Connections geschickt werden. Dafür schickt man einen HTTP-POST Request an die eine bestimmte URL, z.B. https://connections.acme.com/connections/opensocial/rest/activitystreams/@me/@all/@all und schon sieht es der angemeldete Nutzer in seinem Stream.
Aktivitäten bearbeiten
Im Prinzip können alle selbst erstellten Aktivitäten beim Aktualisieren überschrieben werden, indem sie die gleiche Object.ID verwenden. Zu beachten ist dabei, dass nicht alle Attribute der Original-Nachricht überschrieben werden können. Unter bestimmten Umständen ist es sogar möglich, einen Kommentar-Thread zu erzeugen, welcher der Inline-Ansicht der Kommentare aus IBM Connections entspricht.
Zur besseren Arbeit mit Aktivitäten (vorallem in Hinblick auf Inline-Kommentare und Löschen) empfielt es sich, eine spezielle Erweiterung von IBM Connections zu aktivieren - die Rollup-ID. Anhand dieser ID lassen sich Beiträge auch zusammenfassen, die unterschiedliche Object.IDs besitzen.
Aktivitäten löschen
Wie immer wenn man etwas erstellen kann, kann es auch passieren, dass man etwas falsch erstellt. Zum Glück bietet der ActivitityStream die Möglichkeit, Aktivitäten zu löschen. Leider ist das eine Connections-spezifische Lösung, die nicht ohne Weiteres funktioniert und noch nicht offiziell dokumentiert wurde,
Folgende Erweiterungen müssen am Grundgerüst vorgenommen werden:
- es muss das Verb "Delete" verwendet werden,
- es muss eine Rollup-ID verwendet werden,
- es muss IBM Connections mitgeteilt werden, dass das Delete-Event weitergegeben werden muss.
Das Löschen gilt global für alle Aktivitäten mit der gleichen Rollup-ID. Die Aktivität wird nach dem Posten nicht mehr im Stream angezeigt, ist jedoch weiterhin in der History vorhanden, so dass mit einem Update, welches auf die selbe Rollup-ID verweist, der bestehende Thread wieder sichtbar gemacht werden kann. Die vorherige History wäre dann bspw. auch wieder über das EE-Gadget einsehbar.
ActivityStream als Bindeglied zwischen Connections und Confluence
Wir von Communardo haben nun nun die Grundfunktionalitäten des ActivityStream um eine Schnittstelle zu Atlassian Confluence erweitert. So lassen sich innerhalb von IBM Connections auch Inhalte aus Confluence anzeigen. Diese Verbindung der zwei Systeme bringt für den parallelen Betrieb entscheidende Vorteile. Lesen Sie dazu mehr auf der Informationsseite zur C²-Connect Suite von Communardo.