Verbessern Sie Ihre Kenntnisse über Ihre Web-Services

Es werden nicht nur die SIP- und die RTP-Mechanismen beim Unified-Communications genutzt. Man muss sich auch mit SOAP, REST und weiteren Web-Services auseinandersetzen.

Bei einer Reihe meiner Artikel über Unified-Communications verwende ich Begriffe wie beispielsweise Web-Services, SOAP, REST und RESTful. Ohne viel Erklärung gehe ich davon aus, dass der Leser diese Methoden und Tools kennt. Beispielsweise nutzen Avaya-SIP-Telefone ihrerseits gewisse Webdienste, um Daten von Personal-Profile-Manager (PPM) zu speichern und abzurufen. Das Telefon agiert dabei als Client für einen Dienst, der als Teil des Avaya-Session-Managers ausgeführt wird. PPM-Webdienste sorgen bei einem Telefon dafür, dass zusätzliche Funktionen ausgeführt werden können. Dabei werden ein Namen und eine Nummer zu einer Kontaktliste hinzufügt, um diese über eine Tastenzuordnung am Telefons abzurufen.

Web-Dienste gibt es jedoch auch reichlich außerhalb des Telefoniebereichs. Haben Sie Google-Maps sicher schon einmal benutzt? Google stellt hierfür eine Web-Services-Schnittstelle für den Kartenzugriff und den Datenabruf zur Verfügung. Microsoft bietet eine ähnliche Schnittstelle für seinen Kartendienst in Bing. Twitter nutzt eine Vielzahl von Web-Services, um Tweet-Daten und -Statistiken auf Basis einer Vielzahl von Parametern abzurufen.

In der Welt von Unified-Communications as a Service (UCaaS) nutzen Hersteller wie beispielsweise Ringcentral, Twilio, Zang und Flowroute die jeweiligen APIs und die RESTful-Web-Dienste.

Details, Details, Details…

Die Webdienste basieren auf denselben Protokollen, die die handelsüblichen Browser verwenden. Das HTTP-Protokoll wird für den unverschlüsselten Datenzugriff genutzt. Die sichere und verschlüsselte Variante des Protokolls wird als HTTPS bezeichnet.

Web-Services werden in zwei Varianten implementiert: SOAP und REST. Das Simple-Object-Access-Protocol (SOAP) stand zuerst zur Verfügung und stellte für viele Jahre den vorherrschende Weg dar, um auf Web-Services zuzugreifen. Der Representational-State-Transfer (REST) wurde zeitlich nach SOAP entwickelt. Dieser Mechanismus wird jedoch von den meisten Entwicklern wegen seiner Einfachheit, Zustandslosigkeit und Skalierbarkeit genutzt, welche große, verteilte Computerumgebungen unterstützen.

Ich verzichte auf einen Vergleich von SOAP und REST in diesem Artikel. Hierzu gibt es im Internet die einschlägigen Foren. Der Fokus im Markt liegt auf  REST, da dieses API (Application -Programming-Interface) wohl für die meisten Web-Anwendungen genutzt wird.

Die RESTful-Web-Services folgen vier grundlegenden Designprinzipien:

  1. Nutzen explizit die HTTP-Methoden.
  2. Arbeiten zustandslos.
  3. Nutzen Verzeichnisstruktur-ähnlich wie URIs.
  4. Übermitteln XML, JSON (JavaScript-Object-Notation) oder beides.

Im Hinblick auf HTTP verwendet REST überwiegend vier Methoden: POST, GET, PUT und DELETE. In diesem Zusammenhang fällt manchmal der Begriff „CRUD“, welcher sich aus den Begriffen „Create“ (erstellen), „read“ (lesen), „update“ (aktualisieren) und „delete“ (löschen) zusammensetzt. Die HTTP-Methoden lassen sich zur REST-Funktionalität wie folgt zuordnen:

  • Um eine Ressource auf einem Server zu erstellen, verwenden Sie POST.
  • Verwenden Sie GET, um eine Ressource von einem Server abzurufen.
  • Um den Status einer Ressource zu ändern oder diesen zu aktualisieren, verwenden Sie PUT.
  • Um eine Ressource zu entfernen oder zu löschen, verwenden Sie DELETE.

In die Praxis umgesetzt

Ein einfacher REST-Aufruf, der einen Benutzer zu einer Kontaktliste hinzufügt, sieht wie folgt aus:

Post /contacts HTTP/1.1

Host: myserver

Content-Type application/xml

<?xml version=“1.0“?>

<user>

<name>Ralf Ladner</name>

</user>

Bei diesem Aufruf wurde XML verwendet, um den neuen Kontakt zu beschreiben. REST unterstützt auch JSON zur Beschreibung des Benutzerobjekts. Wie bei den SOAP und REST überlasse ich dem Leser die Gegenüberstellung von XML vs. JSON. Ich persönlich bevorzuge JSON, aber XML-Schnittstellen findet man in allen Web-Anwendungen. Da die Sicherheit heute an erster Stelle steht, sollten alle REST-Nachrichten mit HTTPS übermittelt werden. Dies verhindert, dass jemand im LAN oder WAN „schnüffelt“ und potenziell sensible Daten abgreifen kann.

Probieren geht über Studieren

Es gibt eine Reihe von Möglichkeiten, wie Sie tiefer in die Thematik der Web-Dienste vordringen können, ohne allzu viel Geld investieren zu müssen. Als Programmierer enthält Ihre bevorzugte Sprache wahrscheinlich eine integrierte Unterstützung für das Schreiben von Webdiensten, Clients und Servern. Für Java-Programmierer empfiehlt sich das Apache CloseableHttpClient-Objekt (http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/CloseableHttpClient.html).

Sie können jedoch Web- und Cloud-Dienste auch ohne Programmierkenntnisse erforschen. Eine populärste Alternative zur Codierung ist Postman (https://www.getpostman.com) von Google. Postman bietet ein einfach zu bedienende GUI (Graphical-User-Interface), mit dem Sie alle erdenklichen Kombinationen von Befehlen, Kopfzeilen und Nachrichtentexten schreiben, ausführen und testen können. Einige Programmierer nutzen dieses Tool, wenn sie eine Cloud-API austesten wollen, bevor sie sich an das Schreiben einer echten Anwendung machen. Postman erlaubt es, die Nachrichtenflüsse zu und von einem Cloud-Dienst auszutesten, der nach erfolgreichem Abschluss des Tests problemlos in Java-Code übersetzt werden kann.

Curl (https://curl.haxx.se) ist ein weiteres beliebtes Tool zum Austesten von Web-Services. Es ist ein bisschen komplizierter als Postman, aber als Kommandozeilen-Tool, ist es für Testzwecke oftmal die beste Wahl.

An diesem Punkt habe ich alles, was ich über Web-Services sagen wollte, abgedeckt. Ich hoffe, Sie haben die zugrunde liegenden vier Konzepte verstanden:

  1. Webdienste ermöglichen es Clients (z. B. SIP-Telefonen) auf Dienste (z. B. PPM) zuzugreifen.
  2. Webdienste bauen auf Basis der Web-protokolle HTTP und HTTPS auf.
  3. Es gibt keinerlei Beschränkung für die von Webdiensten genutzten Schnittstellen. Sowohl Kommunikationssysteme, Social-Media-Plattformen, E-Commerce-Services und Contact-Center nutzen heute die Web-Services.
  4. Die beiden vorherrschenden Möglichkeiten zur Implementierung von Web-Services sind SOAP und REST.

Das sollte als Einstieg in die Materie genügen und es eröffnet Ihnen einen neuen Zugang zum Wesen der Kommunikation. (mh)