Webservice

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
QS-Informatik
Beteilige dich an der Diskussion!
Dieser Artikel wurde wegen inhaltlicher Mängel auf derQualitätssicherungsseitederRedaktion Informatikeingetragen. Dies geschieht, um die Qualität der Artikel aus demThemengebiet Informatikauf ein akzeptables Niveau zu bringen.Hilf mit,die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an derDiskussion!(+)


Begründung:Der Artikel beschreibt eigentlich nur einen Webservice basierend auf dem RPC-Architekturstil. Viele Fakten in Bezug auf einen REST WS sind völlig falsch. Näheres ist auf derDiskussionsseitedes Artikels angegeben.--195.243.27.8409:49, 9. Mai 2012 (CEST)

EinWebservice(auch Webdienst) stellt eine Schnittstelle für dieMaschine-zu-Maschine- oder Anwendungs-Kommunikation überRechnernetzewie dasInternetzur Verfügung.[1]Dabei werden Daten ausgetauscht und aufentfernten Computern (Servern)Funktionenaufgerufen. Jeder Webservice besitzt einenUniform Resource Identifier (URI),über den er eindeutig identifizierbar ist. Außerdem enthält ein Webservice, je nach Implementierung, eineSchnittstellenbeschreibungin maschinenlesbarem Format, die definiert, wie mit dem Webservice zu interagieren ist, z. B.WSDLimXML-Format. Die Kommunikation kann überProtokolleaus dem Internetkontext wie beispielsweiseHTTPoderHTTPSerfolgen. Über diese Protokolle können Daten beispielsweise imXML- oderJSON-Format übertragen werden.[2][3]Ein Webservice istplattformunabhängigund steht in der Regel mehreren Programmen zum Aufrufen bereit.

Im Allgemeinen senden Programme Anfragen an einen Webservice, woraufhin dort anfragespezifische Funktionen – wie Rückgabe oder Änderung gespeicherter Informationen – ausgelöst werden. Typischerweise wird der Webservice auf einemanderen Rechner (Server)ausgeführt als das Programm, welches damit von einemClientaus interagiert. Beispielsweise kann von einem Programm, welches hauptsächlich aus einer Benutzeroberfläche besteht, eine Anfrage nach Kartenmaterial für einen bestimmten Ausschnitt an einenWebservicegestellt werden. Als Antwort auf die Anfrage bekommt das Programm den angefragten Kartenausschnitt und präsentiert diesen auf der Benutzeroberfläche. Webservices können aber auch Bestandteile vonSoftwaresystemen,die automatisiert Daten austauschen oder Funktionen aufentfernten Computernaufrufen, sein.

Funktionsweise

Webservices orientieren sich an derserviceorientierten Architektur (SOA)und vereinen daher verteilte und objektorientierte Programmierstandards und richten sich auf betriebswirtschaftliche Lösungen im Internet.

Allgemein kann unterschieden werden zwischen Nutzer (Servicekonsument), (Service-)Anbieter und Verzeichnis. Diese interagieren wie folgt: Der Anbieter veröffentlicht in einem Verzeichnis die Beschreibung seiner Dienste. Der Nutzer durchsucht das Verzeichnis und wählt den gewünschten Dienst aus. Nachdem eventuell weitere Protokolldetails ausgetauscht wurden, findet die dynamische Anbindung des Konsumenten an den Anbieter statt. Der Nutzer greift nun auf die Methoden der Webservices dieses Anbieters zurück.

Erreichbar sind Webservices über einen eindeutigenURI.Aufgrund der verwendeten plattformunabhängigen Standards ist es möglich, entfernte Methodenaufrufe beliebigerPlattformenzudekodierenund an eine Anwendung weiterzuleiten. Dabei wird implizit dasEntwurfsmusterFassadeumgesetzt: der Client muss praktisch keine Implementierungsdetails des Webservice kennen, um ihn zu nutzen.[4]Auf diese Weise entsteht eine verteilte Architektur. Die Kommunikation mit Webservices erfolgt überNachrichten,die über unterschiedliche Protokolle transportiert werden können.

Implementierungsmöglichkeiten

[Bearbeiten|Quelltext bearbeiten]

Webservices basieren selbst auf Standardprotokollen, mit denen die Informationen und Befehle übertragen werden. Sie können auf grundsätzlich verschiedene Arten implementiert werden, beispielsweise:[5]

Grundlage für einige Implementierungen von Webservices bilden Standards, die jeweils auf XML basieren und in den zugehörigen Artikeln näher beschrieben werden:

  • UDDIals Verzeichnisdienst zur Registrierung von Webservices. Es ermöglicht das dynamische Auffinden des Webservices (z. B. den DienstFußballErgebnisse) durch den Nutzer. Allerdings wird UDDI nur in eher kleineren Firmennetzwerken verwendet und hat sich nie global durchgesetzt.[6]
  • WSDLzur Beschreibung der unterstützten Methoden (z. B.TorschuetzenKoenig) und deren Parametern (z. B.Datum) für den Programmierer.
  • Webservices sindnichtgleichzusetzen mitEnterprise Application Integration,jedoch können sie bei einer Enterprise Application Integration Verwendung finden.
  • Webservices sindnichtgleichzusetzen mitWebanwendungen,sie können jedoch von Webanwendungen genutzt werden. Ein Webservice wird von einem Rechner oder einem Programm aufgerufen, eine Webanwendung hingegen wird über ihreBenutzerschnittstellevon einem Menschen genutzt.[4]Ein Webservice kann außerdem in verschiedenen Webanwendungen genutzt werden.
  • Die verwendetenoffenen Standardsvermeiden Lizenzkosten. Da zu diesen Standards auch die allgegenwärtigen internetbasierten Technologien gehören, lassen sie sich auch vielerorts einsetzen. Auch hier liegt ein Kostenvorteil.
  • Webservices können faktisch auf jedes Übertragungsprotokoll aufsetzen. Bei einer hohen Anzahl von verschiedenen Nutzern im Internet wird üblicherweiseHTTPzurDatenübertragungverwendet, da nur selten Probleme mitFirewallsauftreten. Dies ist ein Vorteil gegenüber vergleichbaren Technologien wieCORBA,DCOModer auchJava RMI.Webservices sind wie beschrieben nicht an HTTP gebunden und lassen sich auch mit anderen Protokollen wieSMTP– zum Beispiel für asynchrone Übertragung – oderFTP– zum Beispiel bei sehr großen Nachrichten – übertragen und sind somit offen für verschiedene Anwendungsszenarien geeignet.
  • Durch die Verwendung von bereits bestehenden und weit verbreiteten Internet-Standards (HTTP, XML etc.) entsteht eine offene und flexible Architektur, die unabhängig von den verwendeten Plattformen, Programmiersprachen und Protokollen ist. So können beispielsweiseWindows-C#-Clients hinter einerFirewallmitJava-Servern, die aufLinuximplementiert sind, kommunizieren. Die weit verbreiteten Standard-Protokolle ermöglichen eineInteroperabilitätüber jegliche Heterogenitäten imInternethinweg.
  • Die Barrieren zum Einstieg sind vergleichsweise niedrig.
  • Die Hauptschwierigkeiten bei der Umsetzung von Webservices dürften Sicherheitsaspekte betreffen. So ist beim Transport zu beachten, dass wichtige Webservices verschlüsselt werden oder dass eine Authentifizierung verlangt wird. Ob hierHTTPSausreichend ist oder Lösungen wieXML Signature,XML-EncryptionoderSAMLzu verwenden sind, sollte je nach Anwendungsfall abgewogen werden.
  • Ein besonderes Augenmerk liegt auf derPerformance,welche durch einen zu hohenOverheadnegativ beeinflusst wird. Der Verwaltungsaufwand nimmt bei stark verteilten Systemen zu.
  • Es ist mehr Know-how erforderlich als z. B. fürRemote Procedure Call(RPC). Programmiersprachen, mit denen man Webservices einbinden will, brauchen spezielle Bibliotheken (z. B. für dasDocument Object Model).

Anwendungsgebiete

[Bearbeiten|Quelltext bearbeiten]

Webservices stellen neue Ansätze im Rahmen vonEnterprise Application Integration(EAI) undGrid-Computingdar. Das geplante Haupteinsatzgebiet liegt imBusiness-to-Business-Bereich. Geschäftsprozesse sollen problemlos über Unternehmensgrenzen hinweg abgewickelt werden. Eine Sprache hierfür istWS-Business Process Execution Language(BPEL), die es erlaubt, zuorchestrieren.

Eine weitere Anwendung stellen die vomOpen Geospatial ConsortiumstandardisiertenGeodienstedar, welche als raumbezogene WebservicesGeodatenin strukturierter Form zugänglich machen.

Die Mächtigkeit dieses Konzeptes besteht in der Möglichkeit, vorhandene Systeme und Dienste miteinander plattformübergreifend zu kombinieren und diese in den eigenen Anwendungen und Diensten zur Verfügung zu stellen.

Googlebetreibt für seine Webanwendung und für die Nutzung in anderen Anwendungen sehr viele Webservices. Darüber kann man beispielsweise Computing-Services oder Datenanalyse auf Basis von maschinellem Lernen, die Google bereitstellt, nutzen. Alle APIs bieten eine HTTP-Schnittstelle mit JSON als Protokoll an. Für einige APIs steht zusätzlich einegRPC-Schnittstelle zur Verfügung. Zur Nutzung benötigt man eine Zugriffskennung (API Key), um auf die teilweise kostenpflichtigen Webservices zugreifen zu können.[7]Google selbst überwacht die Nutzung und vergibt für die Nutzung jeweils bestimmte Kontingente. Damit soll Missbrauch vermeiden werden und die Verfügbarkeit der Webservices gewährleistet werden.[8]Die Google-Services werden in vielen der eigenen Anwendungen verwendet, wie beispielsweiseGoogle MapsoderGoogle Fotos.

Ein weiteres Beispiel ist einComputerreservierungssystemzwischen Fluggesellschaften und Reisebüros. Die Fluggesellschaften stellen Möglichkeiten zum Nachschlagen oder Buchen von Flügen über einen Webservice bereit. Die Reisebüros bieten auf ihrer Webpräsenz Flüge verschiedener Fluggesellschaften an, von denen die Reisebüros zur Laufzeit überUDDIerfahren. Der Kunde kann auf der Webpräsenz des Reisebüros nun zentral Preise und Termine verschiedener Flüge vergleichen und gleich buchen.

Mit demWeb Services Composite Application Framework(WS-CAF) wurde eine weiterführende Spezifikation beimW3Cund beiOASISzur Standardisierung eingereicht, die Webservices um für die Koordination vonApplikationennützliche Standards, wie z. B.Transaktionsmanagement,erweitern sollen. Über weitere, proprietäre Erweiterungen wird bei verschiedenen Herstellern nachgedacht. Um Problemen derSicherheitzu begegnen, werden Konzepte auf der Grundlage der Security Assertion Markup Language (SAML) entwickelt.

Des Weiteren befasst sich das Gebiet derSemantic Web Servicesmit der Erweiterung von Webservices um Semantik, die das Auffinden (Discovery), Auswählen (Selection), Ausführen (Invocation) und die Komposition mit anderen Webservices nach der Idee desSemantic Webermöglichen und vereinfachen soll.

Testmöglichkeiten

[Bearbeiten|Quelltext bearbeiten]

Die nachfolgende Aufzählung listet Programme, die für denSoftwaretestvon Webservices (bzw. derenProgrammierschnittstellen) genutzt werden:

  • Ingo Melzer et al.:Service-orientierte Architekturen mit Web Services.4. Auflage. Spektrum, Heidelberg 2010,ISBN 3-8274-2549-2.
  • Sanjiva Weerawarana, F. Curbera, F. Leymann:Web Services Platform Architecture.Prentice Hall PTR, Upper Saddle River/NJ 2005,ISBN 0-13-148874-0(englisch).
  • Michael P. Papazoglou:Web Services: Principles and Technology.Prentice Hall, Essex 2007,ISBN 978-0-321-15555-9(englisch).
Commons:Webservices– Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Webservice– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
  1. Web Services Architecture.World Wide Web Consortium,11. Februar 2004,abgerufen am 27. Januar 2021.
  2. Web Services Glossary.Abgerufen am 27. Januar 2020.
  3. Geoff Bender:XML vs JSON Based Web Services: Which is the Best Choice?29. März 2013,abgerufen am 27. Januar 2021.
  4. abWebservcie.DATACOM Buchverlag GmbH,abgerufen am 30. Januar 2021.
  5. Ressourcenorientierte Webservices auf Basis von REST.15. Mai 2020,abgerufen am 23. September 2020.
  6. Webservices: Dienste von Maschine zu Maschine.1&1 Ionos,2. März 2020,abgerufen am 30. Januar 2021.
  7. API-Nutzung deckeln.Google,19. Januar 2021,abgerufen am 30. Januar 2021.
  8. Google Cloud APIs.Google,12. Januar 2021,abgerufen am 30. Januar 2021.