Christian war für die Implementation mehrheitlich allein verantwortlich und konnte im Zuge dessen seine Fähigkeiten als Drupalentwickler vor allem im Backend Bereich festigen und erweitern. So wurde Christian zu einem Spezialisten in den Bereichen Service Architektur und der Integration von Suchservern wie z.B Apache Solr. Letzteres wurde ergänzt durch das berufsbegleitende Studium als Wirtschaftsinformatiker. Die theoretischen Grundlagen hat er sich in den Modulen Information Retreival & Knowledge Organisation sowie Data Mining und einer Arbeit zum Thema Methods for Determining the Similarity of Documents erarbeitet.
Einige der Herausforderungen von Shared Content werden im Folgenden genauer betrachtet.
Der Synchronisationsprozess
Ein Grossteil der Prozesse bei Shared Content laufen im Hintergrund ab: Erstellen und aktualisieren von Index-Records, Aktualisieren der Suchindizes sowie die Synchronisation der Daten zwischen Server und Client. In vielen Fällen erwartet der Benutzer, dass Änderungen eines Systems unverzüglich auch auf dem anderen erscheinen. Shared Content unterstützt zu diesem Zweck Elysia Cron. Dies ermöglicht es, die Häufigkeit der Ausführungen von einzelnen Cron-Tasks individuell zu steuern. So kann die Datensynchronisation in sehr kurzen Abständen gestartet werden, ohne dass das System übermässig belastet wird.
Trotzdem kann es beim Benutzer zu Konfusion kommen, wenn ein System mit komplexen Hintergrundprozessen mehrere Cron-Durchläufe benötigt bis die Datenausbreitung abgeschlossen ist.
Um diese Situation zu verbessern planen wir die Datensynchronisation über eine Enterprise Message Queue zu ermöglichen. Dies ermöglicht es die Daten so zu sagen in Echtzeit zu synchronisieren und der sog. Polling-Overhead entfällt weitgehend.
Die Benutzeroberfläche
Aus Sicht der Anwender ist das ShareBoard das Herzstück von Shared Content. Es ermöglicht dem Editor das explorative Auffinden von ähnlichen Inhalten sowie deren Verlinkung. Das ShareBoard unterstützt den Editor dabei mit verschiedenen Listen, welche wiederum mit Suchfiltern weiter eingegrenzt werden können. Vor allem aber kann Shared Content automatisch passende Inhalte vorschlagen. Dies ist möglich dank der Einbindung von Apache Solr.
Das ShareBoard in seiner jetzigen Form ist das Produkt von mehreren iterativen Weiterentwicklungen und weitere sind bereits angedacht. Die Usability wurde nach ersten Erfahrungen bereits signifikant gesteigert.
Zum jetzigen Zeitpunkt kann der Verlinkungsprozess lediglich ausgehend von lokalem Inhalt aus gestartet werden. In Zukunft wird es aber so sein, dass alle Aktionen sowohl von der lokalen Seite wie auch von der remote Seite aus gestartet durchgeführt werden können. Auch werden Drag ‘n’ Drop sowie asynchrone Datenaktualisierung das tägliche Arbeiten mit Shared Content weiter vereinfachen.
Das ShareBoard stellt viele Informationen in einer einzigen Ansicht dar. Damit sich der Benutzer trotzdem zurechtfindet kommen lediglich eine Handvoll einfache visuelle Elemente mit hohem Widererkennungsgrad zum Einsatz. Mittels einer farblichen Unterscheidung werden zudem der lokale und der remote Inhalt optisch auseinandergehalten.
Rendering
Das Hauptziel von Shared Content ist das Vernetzen sowie die vernetzte Darstellung von Inhalten. Zu diesem Zweck ermöglicht es Shared Content, Inhalte von einer remote Seite lokal einzubinden. Enthält der remote Inhalt nebst Text auch noch Multimedia Elemente wie z.B Audio und Video, so ist es mit dem Einbetten von HTML in die eigene Seite noch nicht getan. Shared Content enthält darum ein Pluginsytem (RichMedia). Ein Server kann dem Client mitteilen, welche externen Komponenten (CSS Stylesheets und JS Scripts) mit der Seite dazugeladen werden müssen. So kann auch ein Videoplayer voll funktionsfähig eingebunden werden.
Das HTML zum Einbetten in die Seite wird auf dem Server gerendert. Damit diese Subrequests die Ladezeit nicht unnötig verlangsamen, wird dieser auf dem Client gecached. Der Client erkennt während dem Synchronisieren, welche Inhalte sich verändert haben und kann entsprechend den Cache zurücksetzen.
Dokumentation
Bei einem Projekt mit der Komplexität von Shared Content kommt man ohne Dokumentation schnell an Grenzen. Wir haben uns dies sehr zu Herzen genommen und Shared Content auf mehreren Ebenen dokumentiert. Das Projekt befolgt den Drupal Coding Standard strikt und wo der Code eine hohe Komplexität aufweist, wurden zusätzliche Inline-Kommentare eingesetzt. Daneben wurde aber auch eine ganze Sammlung von Dokumenten erstellt, welche verschiedene Aspekte wie Konzept, Überlegungen zur Umsetzung, Anleitungen für die Installation und Betrieb sowie die verschiedenen Erweiterungen wie Kapitel und RichMedia im Detail beschreiben.
Gerne helfen wir auch Ihnen, wenn Sie Shared Content einsetzen möchten.