Open Source im professionellen Einsatz

Standards standardisieren

Hinzu kommt, dass ein Standard wie beispielsweise SOAP viele Freiheitsgrade besitzt, um Aspekte seiner Definition umzusetzen. Konsequenz: Wer SOAP verwendet, darf sich nicht sicher sein, dass er damit automatisch und erfolgreich mit heterogenen Systemen kommuniziert. Vielmehr muss die Interpretation des Standards auf beiden Seiten übereinstimmen. Um dieser Situation Herr zu werden, entschlossen sich 2002 namhafte Firmen zur Gründung der Webservices Interoperability Organization WS-I [6]. Sie standardisiert die Standards.

Sie definiert Profile, die einen oder mehrere Standards in bestimmten Versionen mit zusätzlichen Einschränkungen oder Ergänzungen festlegt. Verwendet ein Entwickler ein Profil, schafft er sich eine gute Grundlage für interoperable Services ohne Inkompatibilitäten.

Bei der Kommunikation über Unternehmensgrenzen hinweg spielt Sicherheit eine große Rolle. Webservices beherrschen sowohl Transport- als auch Nachrichtensicherheit. Die erste beschreibt die Punkt-zu-Punkt-Sicherheit zwischen zwei Systemen. Das bedeutet, dass die Sicherheit der Nachricht nur zwischen Sender und Empfänger gewährleistet ist. Prominentestes Beispiel dafür ist HTTPS. Service-Aufrufe über richtig eingesetztes HTTPS bieten somit ein Mindestmaß an Sicherheit. Es reicht aus, um zwei sichere Domänen über eine unsichere Leitung zu verbinden.

Begleitschutz für Daten

Die Standards XML-Signature und XML-Encryption schaffen die zweite Form der Sicherheit: Die Spezifikationen bestimmen, wie Nachrichten unversehrt und verschlüsselt bleiben. Damit erreichen Entwickler eine Ende-zu-Ende-Sicherheit, die auch über mehrere Systeme hinweg gewahrt bleibt.

Die Systemvoraussetzungen für einen minimalen Webservice mit XML, SOAP und HTTP sind gering. Für Entwickler bedeutet dies jedoch, XML-Nachrichten verarbeiten zu müssen. Daher bieten viele Programmiersprachen Bindings und Generatoren zu den Webservices an, die es dem Entwickler erlauben, in gewohnter Weise zu programmieren.

Die in Java implementierte Anwendung »KundenAnfrage« in Listing 1 realisiert eine Schnittstelle »stelleAnfrage()« als Webservice. Ihr Server gibt auskunftsuchenden Clients eine etwas zynische Antwort zurück. Im Umfeld von Java tummelt sich ein ganzes Ökosystem von Open-Source-Frameworks wie Apache Axis2, Apache CXF, Spring WS oder Sun Metro. Sie ermöglichen es dem Programmierer, seine Idee umzusetzen, anstatt sich auf die Technologie zu konzentrieren. Alle eignen sich für den produktiven Einsatz.

Listing 1:
Service-Implementierung

01 package de.lm.wssample.server;
02 
03 import javax.jws.WebService;
04 
05 @WebService
06 public class KundenAnfrage
07 {
08    public String stelleAnfrage(String anfrageText)
09    {
10       return "Ihre Anfrage ist uns wichtig. " +
11          "Sie fragten: "" + anfrageText +
12          "". Wir bearbeiten ihre Frage irgendwann.";
13     }
14 }

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook