Testing Webservices: Performance im Fokus

Waren Sie schon in einer Situation, in der Sie Informationen mit einer anderen Person austauschen wollten, die aber Ihre Sprache nicht versteht? Das ist unangenehm und vor allem enttäuschend. Jetzt nutzen wir unsere Vorstellungskraft und übertragen diese Situation auf Software und Systeme im Internet. Denken wir an zwei Unternehmen, die sich ergänzen möchten: Unternehmen eins ist eine Fluggesellschaft, die Flüge anbietet. Unternehmen zwei ist eine Reiseagentur, die ein eigenes Online-Reisebuchungssystem betreibt. Die Unternehmen streben eine Partnerschaft an, d.h. die Flüge von Unternehmen eins sollen im Online-Reisebuchungssystem von Unternehmen zwei angeboten werden und buchbar sein. Die Systeme der beiden Unternehmen sind aber sehr unterschiedlich und können nicht miteinander kommunizieren. Diese Situation kommt häufig vor. Es gibt aber eine Lösung für dieses B2B Problem und sie heißt Webservice!

Was ist ein Webservice?

Ein Webservice kann im übertragenen Sinne als ein Dolmetscher gesehen werden. Er ermöglicht die Kommunikation zwischen Webapplikationen und Systemen, die verschiedene Softwaresprachen sprechen. Ein Webservice integriert und schließt sozusagen die Lücke in der Kommunikation von Webapplikationen und Systemen. Letztendlich leisten Webservices einen sehr wichtigen Beitrag zur Agilität und Effizienz von produktiven Unternehmensprozessen in der Internetwelt.

Ein Webservice übersetzt die Daten in eine ‚gemeinsame Sprache‘, z.B. in XML (Extensible Markup Language) und überträgt sie mit HTTP oder HTTPS. Im Enterprise-Umfeld kommunizieren Systeme mit Webservices überwiegend über SOAP (Simple Object Access Protocol)-HTTP(S).

Die Verwendung dieser weit verbreiteten Standard-Protokolle ermöglicht die Entstehung einer offenen und flexiblen Architektur, die unabhängig von Plattformen, Programmiersprachen und Protokollen ist. Einer direkten Maschine-zu-Maschine-Interaktion steht dann nichts mehr im Wege.

Bestehende Webservices

Mittlerweile gibt es zahlreiche Webservices auf dem Markt. Amazon Web Services (AWS) wird beispielsweise häufig von Händlern, Partnern und vor allem Website-Betreibern benutzt. Mit Hilfe von AWS werden die Informationen über Produkte von Amazon, die auf externen Websites wie beispielweise idealo.de oder billiger.de verkauft werden, laufend aktualisiert. Übrigens greifen auch Dienste wie Netflix oder Reddit auf AWS zurück.

Paypal haben schon Millionen von Online-Käufern benutzt. Das ist ein sehr verbreiteter Webservice im E-Commerce. Mittels Paypal können Zahlungen in einem Online-Shop sehr schnell getätigt werden.

In vielen Online-Shops sind Lösungen zur Sendungsverfolgung schon integriert. DHL ist dafür ein Beispiel. Auf Anfrage des Benutzers werden die DHL Webservices im Hintergrund gestartet. Nach kurzer Zeit wird der Lieferstatus angezeigt.

Google Maps ist Teil des Alltags vieler Bürger geworden. Auf den Seiten des Suchmaschinenbetreibers kann diese Kartenanwendung direkt aufgerufen werden. Wenn eine Karte aber auf der Webseite eines Unternehmens wie infinIT Services angezeigt werden soll, dann kommt ein Google Maps Webservice ins Spiel. Dieser Webservice holt die gewünschten Karten-Informationen und liefert sie an die Webseite, in der sie dargestellt werden.

Über eBay Webservices lassen sich Produktdatenbanken von Online-Händlern direkt an eBay anbinden. So werden lästige manuelle Datentransfer und Prozessunterbrechungen vermieden.

Weitere Webservices für die verschiedenen Zwecke sind in Entwicklung. Nennenswert ist die Integration des Facebook-Logins in die Webseite von Unternehmen. Kunden von tripadvisor z.B. haben vielleicht schon bemerkt, dass die Anmeldung nicht nur mit dem tripadvisor-Account sondern auch mit dem Facebook-Login erfolgen kann.

Interessant wird sein, zu beobachten, welche Webservices sich durchsetzen, welche substituiert oder weiterentwickelt werden. Dabei wird es im Bereich Webservice-Testing viel zu tun geben.

Nur durch geeignete Tests können Schwachstellen gefunden und im weiteren Schritt behoben werden. Von welchen Problemen wird oft berichtet?

Webservices Bottleneck

Aus der Sicht des Service-Nutzers liegt der Schwachpunkt eines Webservices oft an seiner Performance. Das ist einfach zu erklären:

  1. Die Rolle des Dolmetschers kostet Zeit, beispielsweise das Parsen einer langen Nachricht, und dies beeinflusst die Performance negativ.
  2. Nicht zu vergessen sind die Sicherheitsaspekte, die auch Einfluss auf die Performance haben. Manche Webservices werden verschlüsselt. Bei anderen findet eine Authentifizierung statt. Egal ob ein sicheres Hypertext-Übertragungsprotokoll (HTTPS) oder andere Lösungen wie XML-Signature oder XML-Encryption verwendet werden, Sicherheit geht oft mit einer langen Latenz einher.

Testen für mehr Performance

Testen der Webservices war traditionell häufig Teil der Entwickler-Arbeit. Seit einigen Jahren übernehmen aber mehr und mehr unabhängige Tester diese Arbeit, vor allem wenn es um das Performance-Testen geht.

Wie schon oben erläutert, ist eine gute Performance eine große Herausforderung. Was und wie getestet wird, das hängt von der gesamten dienstorientierten Architektur ab. Eine mögliche Vorgehensweise, die Sicherheitsaspekte ausschließt, sieht so aus:

  1. Der erste Schritt wäre die Durchführung von automatisierten funktionalen Tests, um die Antwort des Webservices-Aufrufszenarios zu validieren.
  2. Dann sollte ein API (Application Programming Interface)-Monitoring-Tool eingesetzt werden, um die Webservice-API(s), also die Webservice-Schnittstelle(n), zu beobachten. Status, Verfügbarkeit und mögliche API-Fehler werden damit sichtbar.
  3. Nachfolgend sollte der automatisierte funktionale Test mit Hilfe eines Last-Generators in der Cloud durchgeführt werden. So kommen Performance Issues im Back-End schnell ans Tageslicht.
  4. Anhand der Test-Ergebnisse können die Schwachstellen des Webservices identifiziert und Maßnahmen zur Performance-Verbesserung umgesetzt werden.

Fazit

Webservices zeigen sich als essentielles Teil einer modernen Software-Architektur. Sie integrieren Systeme und dadurch vereinfachen sie Geschäftsprozesse. Nicht immer aber überzeugt die Performance. Eine Investition in Test kann wohl einen Beitrag zur Verbesserung der Performance leisten. Es kann also losgehen!

Leave a Reply

Your email address will not be published.