Ein Webdienst ( WS ) ist entweder:
- ein Dienst, der von einem elektronischen Gerät einem anderen elektronischen Gerät angeboten wird, wobei die Kommunikation zwischen den beiden Geräten über das Internet erfolgt , oder
- Ein Server, der auf einem Computergerät läuft, über ein Netzwerk an einem bestimmten Port auf Anfragen wartet und Webdokumente ( HTML , JSON , XML , Bilder) ausliefert.
Bei einem Webdienst wird eine Webtechnologie wie HTTP verwendet, um maschinenlesbare Dateiformate wie XML und JSON zu übertragen.
In der Praxis stellt ein Webdienst üblicherweise eine objektorientierte, webbasierte Schnittstelle zu einem Datenbankserver bereit, die beispielsweise von einem anderen Webserver oder einer mobilen App genutzt wird und dem Endnutzer eine Benutzeroberfläche bietet. Viele Organisationen, die Daten in formatierten HTML-Seiten bereitstellen, stellen diese Daten auch auf ihrem Server als XML oder JSON bereit, oft über einen Webdienst, um die Verbreitung zu ermöglichen . Eine weitere Anwendung für Endnutzer ist ein Mashup , bei dem ein Webserver mehrere Webdienste auf verschiedenen Rechnern abruft und deren Inhalte zu einer einzigen Benutzeroberfläche zusammenführt.
Webdienste (allgemein)
Asynchrones JavaScript und XML
Asynchrones JavaScript und XML (AJAX) ist eine dominierende Technologie für Webdienste. Entwickelt aus der Kombination von HTTP-Servern, JavaScript-Clients und reinem XML (im Gegensatz zu SOAP und W3C-Webdiensten), wird es heute häufig sowohl mit JSON als auch anstelle von XML verwendet.
AUSRUHEN
Representational State Transfer (REST) ist eine Architektur für wohlerzogene Webdienste, die im Internetmaßstab funktionieren können.
In einem Dokument aus dem Jahr 2004 definiert das W3C die REST-Standards als ein wesentliches Unterscheidungsmerkmal von Webdiensten:
Wir können zwei Hauptklassen von Webdiensten unterscheiden:
- REST -konforme Webdienste, deren Hauptzweck darin besteht, XML-Darstellungen von Webressourcen mithilfe eines einheitlichen Satzes zustandsloser Operationen zu bearbeiten; und
- Beliebige Webdienste, bei denen der Dienst eine beliebige Menge von Operationen bereitstellen kann.
— W3C, Web Services Architecture [ 1 ]
Technologien und Protokolle im Zusammenhang mit Webdiensten unter Verwendung von Auszeichnungssprachen
Es gibt eine Reihe von Webdiensten, die Auszeichnungssprachen verwenden:
- JSON-RPC .
- JSON-WSP
- Representational State Transfer (REST) versus Remote Procedure Call (RPC)
- Simple Object Access Protocol (SOAP)
- Web Services Conversation Language (WSCL)
- Web Services Description Language (WSDL), entwickelt vom W3C
- Web Services Flow Language (WSFL), abgelöst von BPEL
- Webvorlage
- WS-MetadataExchange
- Die XML-Schnittstelle für Netzwerkdienste (XINS) bietet ein POX -ähnliches Webdienstspezifikationsformat.
Web-API
Eine Web-API ist eine Weiterentwicklung von Webdiensten, bei der der Schwerpunkt auf einfacheren, REST-basierten Kommunikationsschnittstellen liegt. [ 2 ] RESTful -APIs benötigen keine XML-basierten Webdienstprotokolle ( SOAP und WSDL) zur Unterstützung ihrer Schnittstellen.
W3C-Webdienste
In Bezug auf W3C-Webdienste definierte das W3C einen Webdienst wie folgt:
Ein Webdienst ist ein Softwaresystem, das die interoperable Kommunikation zwischen Maschinen über ein Netzwerk ermöglicht. Er verfügt über eine Schnittstelle, die in einem maschinenlesbaren Format (insbesondere WSDL ) beschrieben ist. Andere Systeme interagieren mit dem Webdienst gemäß seiner Beschreibung mithilfe von SOAP-Nachrichten, die typischerweise über HTTP mit XML- Serialisierung und weiteren Webstandards übertragen werden.
— W3C, Glossar der Webdienste [ 3 ]
W3C-Webdienste können das SOAP-over-HTTP-Protokoll nutzen und ermöglichen so kostengünstigere (und effizientere) Interaktionen über das Internet als über proprietäre Lösungen wie EDI/B2B. Neben SOAP over HTTP lassen sich Webdienste auch über andere zuverlässige Transportmechanismen wie FTP implementieren . In einem Dokument aus dem Jahr 2002 definierte die Arbeitsgruppe für Webdienstearchitektur eine Webdienstarchitektur, die eine standardisierte Implementierung eines „Webdienstes“ vorschreibt.
Erläuterung

Der Begriff „Webdienst“ beschreibt eine standardisierte Methode zur Integration webbasierter Anwendungen über ein Internetprotokoll- Backbone mithilfe der offenen Standards XML , SOAP, WSDL und UDDI . XML ist das Datenformat, das die Daten und Metadaten enthält, SOAP dient der Datenübertragung, WSDL beschreibt die verfügbaren Dienste und UDDI listet diese auf.
Ein Webdienst ist eine Methode zur Kommunikation zwischen zwei elektronischen Geräten über ein Netzwerk. Es handelt sich um eine Softwarefunktion, die unter einer Netzwerkadresse über das Web bereitgestellt wird und im Sinne des Utility Computing permanent verfügbar ist.
Viele Organisationen nutzen mehrere Softwaresysteme für ihr Management. Unterschiedliche Systeme müssen häufig Daten austauschen. Ein Webdienst ist eine Kommunikationsmethode, die es zwei Systemen ermöglicht, diese Daten über das Internet zu übertragen. Das System, das Daten anfordert, wird als Dienstanforderer bezeichnet , während das System, das die Anfrage verarbeitet und die Daten bereitstellt, als Dienstanbieter bezeichnet wird .
Unterschiedliche Software verwendet möglicherweise unterschiedliche Programmiersprachen. Daher ist eine Methode zum Datenaustausch erforderlich , die nicht von einer bestimmten Programmiersprache abhängt. Die meisten Softwarearten können jedoch XML-Tags interpretieren. Webdienste können daher XML-Dateien für den Datenaustausch nutzen.
Es müssen Regeln für die Kommunikation mit verschiedenen Systemen definiert werden, wie zum Beispiel:
- Wie ein System Daten von einem anderen System anfordern kann.
- Welche spezifischen Parameter werden für die Datenanfrage benötigt?
- Wie sähe die Struktur der erzeugten Daten aus? (Normalerweise werden Daten in XML-Dateien ausgetauscht, und die Struktur der XML-Datei wird anhand einer .xsd-Datei validiert.)
- Welche Fehlermeldungen sollen angezeigt werden, wenn eine bestimmte Kommunikationsregel nicht eingehalten wird, um die Fehlersuche zu erleichtern?
Alle diese Kommunikationsregeln sind in einer Datei namens WSDL (Web Services Description Language) definiert, die die .wsdlDateiendung .wd hat. (Vorschläge für autonome Webdienste ( AWS ) zielen darauf ab, flexiblere Webdienste zu entwickeln, die nicht auf strengen Regeln basieren. [ a ] )
Ein Verzeichnis namens UDDI (Universal Description, Discovery, and Integration) definiert, welches Softwaresystem für welchen Datentyp kontaktiert werden soll. Benötigt ein Softwaresystem einen bestimmten Bericht oder bestimmte Daten, greift es auf UDDI zu und ermittelt, welche anderen Systeme diese Daten empfangen können. Anschließend kontaktiert es diese Systeme über das SOAP- Protokoll (Simple Object Access Protocol). Das System des Dienstanbieters validiert die Datenanfrage zunächst anhand der WSDL-Datei, verarbeitet sie anschließend und sendet die Daten über das SOAP-Protokoll.
Automatisierte Entwurfsmethoden

Automatisierte Tools können bei der Erstellung eines Webdienstes hilfreich sein. Bei Diensten, die WSDL verwenden, ist es möglich, entweder automatisch WSDL für bestehende Klassen zu generieren (ein Bottom-up-Modell) oder ein Klassengerüst anhand vorhandener WSDL zu erstellen (ein Top-down-Modell).
- Ein Entwickler, der ein Bottom-up-Modell verwendet, schreibt zunächst implementierende Klassen (in einer Programmiersprache) und nutzt dann ein WSDL-Generierungstool, um Methoden dieser Klassen als Webdienst bereitzustellen. Dies ist einfacher zu entwickeln, kann aber schwieriger zu warten sein, wenn die ursprünglichen Klassen häufigen Änderungen unterliegen. [ 5 ]
- Ein Entwickler, der ein Top-Down-Modell verwendet, erstellt zunächst das WSDL-Dokument und generiert anschließend mithilfe eines Code-Generierungstools das Klassengerüst, das bei Bedarf vervollständigt wird. Dieses Modell gilt allgemein als komplexer, ermöglicht aber sauberere Designs und ist in der Regel robuster gegenüber Änderungen. Solange sich die Nachrichtenformate zwischen Sender und Empfänger nicht ändern, haben Änderungen an Sender und Empfänger selbst keine Auswirkungen auf den Webdienst. Diese Technik wird auch als „Contract-First“ bezeichnet , da die WSDL (bzw. der Vertrag zwischen Sender und Empfänger) den Ausgangspunkt bildet. [ 6 ]
- Ein Entwickler, der eine Subset WSDL (SWSDL) [ 7 ] verwendet (d. h. eine WSDL, bei der die Subset-Operation in der ursprünglichen WSDL enthalten ist), kann Webdiensttests und Top-Down-Entwicklung durchführen.
Kritik
Kritiker von nicht-RESTful-Webdiensten bemängeln oft deren Komplexität [ 8 ] und die Tatsache, dass sie auf großen Softwareanbietern oder Integratoren basieren und nicht auf typischen Open-Source -Implementierungen.
Es bestehen auch Bedenken hinsichtlich der Leistungsfähigkeit, da Webdienste XML als Nachrichtenformat und SOAP/HTTP zur Einbettung und zum Transport verwenden. [ 9 ]
Regressionstests von Webdiensten
Funktionale und nicht-funktionale Tests von Webdiensten erfolgen mithilfe der WSDL-Analyse. Regressionstests werden durchgeführt, indem die Änderungen identifiziert werden, die zur Aktualisierung der Software erforderlich sind. Die Anforderungen an Regressionstests von Webdiensten lassen sich in drei Kategorien einteilen: Änderungen in der WSDL, Codeänderungen und selektives erneutes Testen von Operationen. Diese drei Anforderungen können in drei Zwischenformen von Subset-WSDLs abgebildet werden [ 7 ] : Difference WSDL (DWSDL), Unit WSDL (UWSDL) und Reduced WSDL (RWSDL). Diese drei Subset-WSDLs werden anschließend zur Combined WSDL (CWSDL) kombiniert, die dann für Regressionstests des Webdienstes verwendet wird. Dies unterstützt das automatisierte Änderungsmanagement von Webdiensten (AWSCM) [ 10 ] , indem es die Auswahl relevanter Testfälle ermöglicht, um aus der alten Testsuite eine reduzierte Testsuite zu erstellen [ 11 ] .
Das Testen von Webdiensten kann auch mithilfe verschiedener Testautomatisierungstools wie SoapUI , Oracle Application Testing Suite (OATS), [ 12 ] [ 13 ] Unified Functional Testing, Selenium usw. automatisiert werden.
Änderungsmanagement für Webdienste
Arbeiten im Zusammenhang mit der Erfassung und Visualisierung von Änderungen an einem Webdienst. Die Visualisierung und Berechnung von Änderungen kann in Form von Zwischenartefakten (Subset-WSDL) erfolgen. [ 7 ] Die Erkenntnisse über die Berechnung der Auswirkungen von Änderungen sind hilfreich beim Testen, bei der Top-Down-Entwicklung und reduzieren den Aufwand für Regressionstests. AWSCM [ 10 ] ist ein Werkzeug, das Teiloperationen in einer WSDL-Datei identifizieren und daraus eine Subset-WSDL erstellen kann.
Webdienste entdecken und suchen
UDDI war als Dienstverzeichnis und Mittel zur Auffindung von Webdiensten konzipiert. Viele Anbieter, darunter Microsoft, SAP und IBM, stellten ihre UDDI-Lösungen oder -Repositories jedoch zwischen 2005 und 2008 ein. [ 14 ] [ 15 ] Eine wichtige Studie, die auf der WWW2008-Konferenz in Peking, China, veröffentlicht wurde [ 16 ] , untersuchte den Status von SOAP-basierten Webdiensten und kam zu dem Schluss, dass zum Zeitpunkt der Studie nur 63 % der verfügbaren SOAP-basierten Webdienste tatsächlich aktiv oder aufrufbar waren. Die Studie zeigte außerdem, dass Suchmaschinen aufgrund der Komplexität von Dienstverzeichnissen wie UDDI eine immer bessere Quelle für die Suche nach Webdiensten darstellten. [ 17 ]
Siehe auch
- Liste der Web-Service-Frameworks
- Liste der Webdienstprotokolle
- Liste der Webdienstspezifikationen
- Middleware
- Serviceorientierte Architektur (SOA)
- Webkartendienst
- Web-API
Anmerkungen
- Vgl . Oya 2008 : „Im Rahmen der aktuellen Webdienste […] müssen die Systeme der beteiligten Akteure die vordefinierten Regeln für einen bestimmten Geschäftsdienst befolgen, einschließlich derer zu Geschäftsprotokollen für das Senden und Empfangen von Nachrichten sowie zum Systembetrieb. […] Ein flexiblerer Mechanismus ist wünschenswert, bei dem frei entwickelte und autonom laufende Systeme Geschäftsnachrichten ohne vorab vereinbarte strenge Regeln austauschen können. Wir nennen dies Autonome Webdienste (AWS) und haben das Framework „Dynamische Modellharmonisierung“ (DMH) mit seinem Algorithmus vorgeschlagen, der verschiedene Geschäftsprozessmodelle zwischen Systemen dynamisch anpasst […].“ [ 4 ]
Referenzen
- ^ „Web Services Architecture § Relationship to the World Wide Web and REST Architectures“ . W3C . Abgerufen am 11. November 2017 .
- ^ Benslimane, D.; Dustdar, S.; Sheth, A. (2008). „Services Mashups: Die neue Generation von Webanwendungen“ . IEEE Internet Computing . 10 (5): 13–15 . doi : 10.1109/MIC.2008.110 . S2CID 8124905 .
- ^ „Web Services Glossary § Web service“ . W3C . 11. Februar 2004. Abgerufen am 24. Januar 2017 .
- ^ Oya, Makoto (2. September 2008). „Autonome Webdienste basierend auf dynamischer Modellharmonisierung“. In: Oya, Makoto; Uda, Ryuya; Yasunobu, Chizuko (Hrsg.). Auf dem Weg zu einer nachhaltigen Gesellschaft in allgegenwärtigen Netzwerken: Die 8. IFIP-Konferenz zu E-Business, E-Services und E-Society (I3E 2008), 24.–26. September 2008, Tokio, Japan . IFIP Advances in Information and Communication Technology. Band 286. Springer Science & Business Media (erschienen 2008). S. 139. ISBN 9780387856902Abgerufen am 19.08.2015 .
- ^ „Erstellung von Bottom-up-Webdiensten“ . Eclipse . Abgerufen am 11. November 2017 .
- ^ „Erstellung von Top-Down-Webdiensten“ . Eclipse . Abgerufen am 11. November 2017 .
- Chaturvedi , Animesh ( 2014 ). Subset WSDL to Access Subset Service for Analysis . 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. S. 688. doi : 10.1109 /CloudCom.2014.149 . ISBN 978-1-4799-4093-6Die
- ^ Bray, Tim (28.10.2004). „WS-Pagecount“ . TBray.org . Abgerufen am 22.04.2011 .
- ^ Gray, NAB (2005). „Performance of Java Middleware – Java RMI, JAX-RPC, and CORBA“ . Universität Wollongong : 31–39 .
Die in diesem Beitrag präsentierten Ergebnisse zeigen, dass die Art der Antwortdaten einen größeren Einfluss auf die relative Leistung hat, als in den meisten früheren Studien berücksichtigt wurde.
- ^ a b Chaturvedi, Animesh (2014). Automated Web Service Change Management AWSCM - A Tool . 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. S. 715. doi : 10.1109/CloudCom.2014.144 . ISBN 978-1-4799-4093-6Die
- ^ Chaturvedi, Animesh; Gupta, Atul (2013). Ein werkzeuggestützter Ansatz für effiziente Regressionstests von Webdiensten . 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems. S. 50. doi : 10.1109/MESOCA.2013.6632734 . ISBN 978-1-4673-4889-8Die
- ^ Oracle Application Testing Suite
- ^ Webdienste-Tests mit der Oracle Application Testing Suite
- ^ Krill, Paul (16.12.2005). „Microsoft, IBM und SAP stellen UDDI-Registry-Projekt ein“ . InfoWorld . Abgerufen am 28.05.2022 .
- ^ QuinnRadich (27. April 2021). „Entfernung von UDDI-Diensten aus Serverbetriebssystemen – Win32-Anwendungen“ . docs.microsoft.com . Abgerufen am 28. Mai 2022 .
- ^ „WWW2008 – WWW 2008: 17. Internationale World Wide Web Konferenz (Willkommen)“ . Archiviert vom Original am 04.10.2022 . Abgerufen am 28.05.2022 .
- ^ Al-Masri, Eyhab; Mahmoud, Qusay H. (21.04.2008). „Untersuchung von Webdiensten im World Wide Web“ . Proceedings der 17. Internationalen Konferenz über das World Wide Web . WWW '08. New York, NY, USA: Association for Computing Machinery. S. 795–804 . doi : 10.1145/1367497.1367605 . ISBN 978-1-60558-085-2. S2CID 12570844 .
Externe Links
- Messaging-Designmuster ( Archiviert am 09.10.2018 in der Wayback Machine- Dokumentation unter SOA Patterns)
- Die Seite „Webdienste-Aktivitäten“ beim W3C
- Web Services Architecture , W3C Working Group Note (11. Februar 2004)
- Untersuchung von Webdiensten im World Wide Web , die auf der WWW2008- Konferenz vorgestellte Analyse.
- Leitfaden für sichere Webdienste (SP 800–95) beim NIST