Web-APIs, Web Services und RSS: Schnittstellen des Social Webs

Vernetzung
APIs, Web Services und RSS sorgen für die technische Vernetzung des Webs. Bild: Günther Herrler, CC BY 3.0, via Wikimedia Commons

Zur Technik des Social Webs, Teil 3

Im Social Web werden oft über Mashups verschiedene Datenquellen und Anwendungen neu zusammengestellt. Die technische Grundlage für diese Kombinationen sind die vielen verschiedenen Protokolle, Formate und APIs (Programmierschnittstellen), die den Webdesignern zur Verfügung stehen. Anhand dieser ist es ein Leichtes, die unterschiedlichsten Datenquellen anzuzapfen, automatisch oder manuell zu verarbeiten und zu rekombinieren. Selbst die hier beschriebenen technischen Konzepte werden in den meisten Fällen miteinander verbunden und lassen sich nicht klar voneinander abgrenzen. Obwohl sie hier also zu Definitionszwecken untereinander und getrennt dargestellt werden, sind die Grenzen zwischen den verschiedenen Techniken fließend.

RSS und Atom

Wir wollen kurz auf den rein technischen Aspekt des Formats RSS eingehen. Doch zuvor in einer Zusammenfassung noch einmal die Anwendungsmöglichkeiten von RSS.

  • RSS ist eine klassische und nach wie vor interessante Web-Technologie. Ursprünglich wurden RSS-Feeds von Nachrichtenseiten zur Verbreitung ihrer Meldungen verwendet. Das Format erlangte seine Popularität vor allem durch den Einsatz in Blogs und Podcasts.
  • Ein Benutzer kann nun ein sogenanntes Aggregatorprogramm bzw. einen Feedreader oder Newsreader benutzen, um die für ihn wichtigsten Schlagzeilen und Kurzbeschreibungen automatisch herunterzuladen und die gesammelten Artikel geordnet anzeigen zu lassen. Hierfür benötigt der Aggregator lediglich einen Link auf den RSS-Feed. Auch gängige E-Mail-Programme und Browser lassen sich in aktuellen Versionen als Feedreader verwenden.
  • Darüber hinaus kann man fremde RSS-Feeds auch in die eigene Webseite integrieren. Fast alle Content-Management-Systeme bieten derartige Funktionalitäten an.
  • Umgekehrt kann man die Informationen auf der eigenen Website als RSS anderen zur Verfügung stellen.
  • RSS-Feeds eignen sich auch zur automatischen Verarbeitung zum Beispiel durch spezialisierte Suchmaschinen. Artikel können innerhalb eines RSS-Feeds durch einschlägige Dienste nach Quellen oder Stichworten gefiltert und zu einem neuen RSS-Feed zusammengesetzt werden.

Eigentlich ist RSS eine Familie von XML-basierten Dateiformaten. Die Abkürzung RSS hat aufgrund seiner speziellen Geschichte (siehe unten) in den verschiedenen technischen Spezifikationen eine unterschiedliche Bedeutung:

  • Rich Site Summary in den RSS-Versionen 0.9x
  • RDF Site Summary in den RSS-Versionen 0.9 und 1.0
  • Really Simple Syndication in RSS 2.0

RSS speichert Artikel einer Website oder deren Kurzbeschreibungen und stellt diese in maschinenlesbarer Form bereit. Ein RSS-Feed oder Newsfeed besteht aus einer XML-Datei, welche den reinen strukturierten Inhalt – beispielsweise einer Nachrichtenseite – bereithält, aber in der Regel keinerlei Layout, keine Navigation oder sonstige Zusatzinformationen beinhaltet:

Feed
Newsfeed von Spiegel Online in der Quelltextanzeige

Das Beispiel hier zeigt eine Newsfeedseite von Spiegel Online in der Quelltextansicht. Spiegel stellt nur die Schlagzeilen, d.h. lediglich die Überschriften, als Feeds zur Verfügung. Derjenige, der Feeds anbietet, hätte aber auch die Möglichkeit, zusätzlich Abstracts, also kurze Zusammenfassungen der Artikels mitzuliefern oder gar den vollständigen Text in einem sogenannten Vollquote. Diese Auswahl hängt meistens davon ab, wie viele Artikel angeboten werden und wie lang die Beiträge auf der jeweiligen Seite sind. So ist es nicht sinnvoll, seitenlange Artikel ständig als Vollquote zur Verfügung zu stellen, auch vor dem Hintergrund der Datenmengen, die dabei anfallen würden.

Man zählt RSS zu den ersten Anwendungsgebieten des semantischen Webs, da sie im Gegensatz zu HTML keine Information zur Formatierung, sondern nur eine Aussage über die Funktionen der Textteile enthalten (sollen).

In unserem Beispiel sehen Sie, dass es sich hierbei um RSS 0.91 handelt. Es gibt also mehrere Versionen von RSS, deren Versionsnummern zwar aufeinander aufbauen, die aber von verschiedenen Firmen bzw. Entwicklergruppen zum Teil unabhängig voneinander herausgegeben wurden. Hier sind die verschiedenen Syndizierungsformate und ihre Entstehung im Überblick:

  • RSS 0.9x ist das älteste RSS-Format und wurde 1999 von dem My Netscape Network, einer individualisierbaren Nachrichtenseite von Netscape, veröffentlicht. Es wurde schon nach wenigen Wochen von 0.91 abgelöst. Dieses Format war lange Zeit das gebräuchlichste und wurde von Dave Winers damaliger Firma UserLand integriert und weiterentwickelt. So führte Ende 2000 UserLand das Format 0.92 ein, das mit zahlreichen Erweiterungen versehen und nun nicht mehr auf 15 Einträge pro Channel beschränkt war.
  • RSS 1.0 wurde parallel von einer unabhängigen Entwicklergruppe im Jahr 2000 erarbeitet und veröffentlicht. RSS steht hier für RDF Site Summary, basiert also auf RDF. Ziel dieses Forks war es, RSS so aufzubereiten, dass es den strengen Regeln des semantischen Netzes, also dem RDF- Standard, genügen sollte. RSS wurde dadurch komplexer und erhielt mehr Funktionalitäten.
  • RSS 2.0 ist die Weiterentwicklung von UserLand. Es erweitert die älteren RSS-0.9x-Spezifikationen, macht aber keinen Gebrauch von RDF. Als Besonderheit konnte das neue Format nun auch für Podcasts und Videocasts verwendet werden. Die Version wird auch als Really Simple Syndication übersetzt.
  • Atom. Streitereien innerhalb der RSS-Entwicklergemeinden, ungelöste Probleme sowie mangelnde Dokumentation haben dazu geführt, dass eine dritte Gruppe um Mark Pilgrim dieses ganz eigene Format eingeführt hat. Für Pilgrim waren die RSS-Formate zu unspezifisch, was sich in Inkompatibilitäten zwischen den Versionen und Ungenauigkeiten beim Datumsformat zeigte. Atom ist dagegen standardisiert, beruht auf einer eindeutigen Spezifikation und ist leicht zu implementieren.

RSS und Atom sind nicht miteinander kompatibel, die beiden Formate können jedoch ineinander umgewandelt werden. Die meisten RSS-Feeds sind heute RSS 0.92/2.0 oder Atom.

Web Services

Ein weiterer Aspekt der Web-2.0-Entwicklungen sind die Formate und Protokolle der sogenannten Web Services. Diese sind im engeren technischen Sinn die automatisierte Kommunikation zwischen zwei oder mehreren Applikationen übers Internet. Es werden also nicht HTML-Seiten zu einem Webbrowser geschickt, die betrachtet werden können, sondern Programme tauschen Daten und starten auf entfernten Rechnern Funktionen.

Eines der wichtigen Schlagwörter hierbei heißt »Distributed Computing« oder »verteilte Anwendungen«. Es geht darum, Teile einer Anwendung auch auf anderen Rechnern laufen zu lassen. Dazu gibt es bereits erfolgreiche Ansätze; doch die zunehmende Verbreitung des Internets hat dazu geführt, dass nach neuen Möglichkeiten gesucht wurde, verteilte Anwendungen zu organisieren – am besten unter Verwendung von Internetprotokollen.

Dabei propagierte O’Reilly das sogenannte Lightweight Programming, bei dem die Services nicht darauf angelegt sind, eine enge Verzahnung zwischen den Anwendungen herzustellen (ein Programm kennt die Interna des anderen Programms), sondern nur eine lose Kopplung bewirken (es sind nur speziell definierte Schnittstellen bekannt).

Mithilfe von Web Services können einzelne Webapplikationen miteinander kommunizieren. Das Trägerprotokoll ist HTTP, denn dieses Protokoll ist bereits überall im Internet in irgendeiner Form implementiert. Als weitere Technik kommt XML (eXtensible Markup Language) zum Einsatz. Die Daten bei Web Services werden im XML-Format übergeben, denn es bietet eine standardisierte Möglichkeit, Daten zu speichern.

Funktionsweise von Web Services
Funktionsweise von Web Services

Sie müssen sich das Vorgehen so vorstellen: Angenommen, Sie benötigen eine Information, zum Beispiel die Übersetzung eines Satzes in eine andere Sprache. Als Konsument durchsuchen Sie also nun das Verzeichnis der Web Services, UDDI (Universal Description, Discovery and Integration), und wählen den gewünschten Dienst, etwa den Übesetzungsdienst BabelFish von Alta Vista, aus. Dieser ist über seinen URI (Uniform Resource Identifier) eindeutig ansprechbar. Sie lassen Ihre Website eine Nachricht an diesen Web Service schicken und rufen dort die gewünschte Funktion ab. Diese lässt sich dynamisch an Ihre Seite einbauen, so dass Sie den Dienst immer wieder in Anspruch nehmen können. Der Web Service antwortet auch (mehr oder weniger) prompt und schickt Ihnen das Ergebnis an Ihre Webapplikation zurück, die es dann weiterverarbeitet. Das gängigste Protokoll, anhand dessen die Nachrichten hin und her geschickt werden, ist SOAP:

  • SOAP. Große Onlinedienste wie Google, Amazon, eBay sowie Hunderte kleinerer Dienstanbieter machen ihre Web Services im Format SOAP (Simple Object Access Protocol) zugänglich. Darüber wird die Kommunikation zwischen verteilten Applikationen und Objekten ermöglicht und standardisiert. SOAP ist ein XML-Datenformat und keineswegs simpel, ermöglicht aber eine recht genaue Beschreibung der transportierten Daten. Üblicherweise steht von Webservices eine Beschreibung in der XML-Sprache WSDL (Web Services Description Language) bereit, welche von SOAP-Clients verarbeitet werden kann. So erfahren die Skripts und deren Programmierer, welche Anfragen der Dienst erwartet und welche Funktionen und Objekte er anbietet und können sich gegebenenfalls darauf einstellen.
  • XML-RPC. Deutlich schlichter gestrickt ist XML-RPC (RPC steht für »Remote Procedure Call«), ein früher Ableger der SOAP-Entwicklung. Der Unterschied zu SOAP besteht im Wesentlichen in der Komplexität der übertragenen Daten und der Flexibilität der Kommunikation zwischen Client und Server selbst.

Für SOAP und XML-RPC stehen in gängigen Programmiersprachen wie Java oder PHP leistungsfähige Module bereit, die dem Entwickler viel Arbeit beim Absetzen und Dechiffrieren der XML-Botschaften abnehmen.

  • REST. Ein Gegenentwurf zu diesen entfernten Funktionsaufrufen per SOAP oder XML-RPC ist REST (Representational State Transfer), das versucht, ganz ohne Abstraktion auszukommen. Stattdessen arbeiten REST-Anwendungen mit gut strukturierten URLs und reizen die Fähigkeiten des HTTP-Protokolls aus.

Web-APIs

Damit die Webanwendungen auf eine bestimmte Applikation überhaupt zugreifen können, müssen diese Web-APIs offenlegen. Dies sind Programmierschnittstellen zur Anwendungsprogrammierung, die anderen Programmen von einem System zur Verfügung gestellt werden, um einen Zugang zu diesem und den darauf abgelegten Daten zu ermöglichen.

Web-APIs haben zunehmend an Bedeutung gewonnen, weil viele berühmte Portale, zum Beispiel eBay oder YouTube, ihre APIs ganz offen anbieten, wenn nicht sogar bewerben. Um diese APIs verwenden zu können, genügt es meistens, sich auf der Seite des Dienstes anzumelden und einen API-Schlüssel anzufordern.

Google APIs
Google APIs

Durch die Öffnung dieser riesigen Web-Service-Wissensquellen stehen originellen Programmierideen Tür und Tor offen. Mittlerweile werden sogar Toolkits angeboten, die auch einem Amateurprogrammierer die Nutzung der APIs ermöglichen. Zum Beispiel genügen einige (vorgegebene) Zeilen Code, um eine Landkarte von Google Maps in die eigene Webseite zu integrieren und mit eigenen Ebenen, so genannten Overlays, zu versehen. Hier ein paar besonders interessante APIs:

 

Neben Mashups sind Applikationen für soziale Netzwerke ein weit verbreitetes Einsatzgebiet. Im Unterschied zu den bisher genannten werden die Applikationen jedoch nicht auf dem eigenen Rechner, sondern direkt bei den Diensten wie Facebook oder Xing gehostet.

Die APIs, die bisher zur Verfügung gestellt werden, sind jeweils spezifisch auf die einzelnen Webdienste zugeschnitten und proprietär. Ein Programmierer, der verschiedene dieser APIs beispielsweise für ein Mashup einsetzen will, muss sich also mit unterschiedlichen Befehlen und Konventionen auseinandersetzen.

Im nächsten Beitrag beschäftigen wir uns mit den (Programmier-)Sprachen im Social Web.

 

Social Web CoverAuszug aus:
Anja Ebersbach, Markus Glaser, Richard Heigl:
Social Web,
3. überarbeitete Auflage,
UVK 2016.

 

Dies könnte Ihnen auch gefallen

Schreiben Sie einen Kommentar