RSS, JSON oder NoSQL?
Headless CMS, Content Sharing oder Content as a Service sind in aller Munde, versprechen „Content everywhere“ und gelten als Content Management der Zukunft, vor allem in Verbindung mit dem Internet of Things. Doch welche technischen Möglichkeiten bieten uns die gängigen CMS- und Blogsysteme? Der Großteil basiert auf folgenden drei Technologien:
RSS-Feed (XML)
statischer JSON Content für eine App
State-of-the-art: Searchengines und NoSQL-Datenbanken als Content-repositories mit (REST-)API.
RSS-Feed (XML)
Mit der Verabschiedung von XML 1.0 im Jahr 1999 wurde ein format- und layoutunabhängiger Standard zum Datenaustausch geschaffen, auf dessen Basis sich etliche Technologien etabliert haben, unter anderem der RSS-Feed, der gleich in zwei Spezifkationen (RSS und ATOM) vorliegt. Dank einfacher Syntax und klaren Regeln ermöglicht XML die Reduktion der Information auf den reinen Inhalt, seine Struktur und Semantik. Ein Beispiel dafür ist das System WordPress. Für die Verarbeitung stehen in jeder Sprache entsprechende Methoden bereit, so dass eine Integration „von überall nach überall“ nahtlos möglich ist. Mit entsprechender Logik kann so sowohl der Content-Produzent als auch der Nutzer Inhalte auswählen, filtern oder beliebig abfragen.
Statischer JSON-Content für eine App
JSON steht für „JavaScript Object Notation“. Hierbei handelt es sich um ein Datenformat, das Informationen wie Objekte, Arrays und sonstige Variablen in lesbarer Form speichert und damit eine einfachere und leichtgewichtigere Alternative zu XML darstellt. Aufgrund seiner dem Javascript ähnlichen Syntax wird es bevorzugt in der Client-Server-Kommunikation (AJAX) genutzt, weil es von Javascript ohne Parsen direkt als Objekt verarbeitet werden kann – daher auch der Name. Dies führt zusammen mit einer in der Regel geringeren Datenmenge gegenüber XML zu besserer Performance.
Da auch für die meisten Sprachen JSON-Parser verfügbar sind, wird JSON je nach Anwendungsfall zunehmend auch in der Server-Server-Kommunikation genutzt.
Mit einem Content-Management-System wie zum Beispiel Opentext WSM kann Content in beliebigen textbasierten Formaten erzeugt werden. Man ist also nicht gezwungen, nur HTML zu generieren; neben XML ist also auch JSON möglich, das auf einen Server publiziert und dort von einer App abgerufen wird. Da der JSON-Content ebenfalls formatneutral ist, also nur die reine Information enthält, ist es Sache der App, wie die Information dargestellt wird. Bei der App kann es sich sowohl um eine native App handeln als auch um eine Website.
Besonderes Augenmerk liegt hierbei auf der Darstellung für den Redakteur, denn mit unformatiertem JSON kann dieser natürlich nicht viel anfangen, sondern er muss sehen können, wie die Inhalte später in der App aussehen würden.
Darum sollte die Oberfläche der App in HTML nachgebaut werden, damit es sich für den Redakteur im Browser wie die App „anfühlt“. Sprich: Im CMS sieht man seine Inhalte ganz normal als HTML-Seite. Publiziert wird jedoch JSON.
State-of-the-art: Searchengines und NoSQL-Datenbanken als Content-repositories mit (REST-)API
Suchmaschinen und NoSQL Datenbanken sind die aktuelle Antwort auf die Frage, wie Content möglichst performant, skalierbar und für die unterschiedlichsten Endpoints dynamisch zur Verfügung gestellt werden kann.
Die von den Zielplattformen und Ziellayouts entkoppelte Speicherung des Contents ermöglicht es, die verschiedensten Anforderungen an die Darstellung und Auslieferung unabhängig von den Inhalten umzusetzen.
Bei der Abfrage des Contents aus den Repositories kommen hier üblicherweise spezialisierte (REST-)APIs zum Einsatz, die den angefragten Content als JSON zurückliefern, so dass die Inhalte entweder in einer beliebig wählbaren Middleware weiterverarbeitet oder per Ajax direkt in Websites gerendert werden.
Alternativ kann der Content auch als XML zurückgeliefert und dann mittels XSL in HTML umgewandelt werden.
Der Import von Content in das genutzte Repository kann je nach Einsatzzweck auf unterschiedliche Art erfolgen.
Die meisten Content-Management-Systeme bieten heute Konnektoren zu einer Vielzahl von Suchmaschinen, so dass Inhalte sehr einfach mit Metadaten angereichert und in den Index des Repositories gepusht werden können.
Auch NoSQL-Datenbanken können auf diese Weise einfach mit den entsprechenden Dokumenten befüllt werden, da diese hier üblicherweise als JSON-Dateien direkt an die DB übergeben werden.
Mehr zum Thema Content as a Service erklärt Stefan Buchali in seinem Vortrag „CaaSt away – Einblicke in Content-as-a-service-Lösungen“ auf der webXpert Conference, die am 9. Mai 2017 in Hamburg stattfindet.