Was sind Webdienste? ArchiStruktur, Typen, Beispiel
โก Intelligente Zusammenfassung
Webdienste bieten eine standardisierte Kommunikationsplattform fรผr Client- und Serveranwendungen im World Wide Web. Diese Ressource erlรคutert die Funktionsweise von Webdiensten, ihre SOAP- und RESTful-Typen, die WSDL- und UDDI-Komponenten, Architekturrollen und wichtige Merkmale.
Was ist ein Webdienst?
Webservice ist ein standardisiertes Medium zur Verbreitung der Kommunikation zwischen Client- und Serveranwendungen im WWW (World Wide Web). Ein Webdienst ist ein Softwaremodul, das zur Ausfรผhrung einer bestimmten Reihe von Aufgaben konzipiert ist.
- Webdienste im Cloud Computing kรถnnen รผber das Netzwerk gesucht und auch entsprechend aufgerufen werden.
- Wenn der Webdienst aufgerufen wird, kann er die Funktionalitรคt dem Client bereitstellen, der diesen Webdienst aufruft.
Wie funktionieren Webdienste?
Das obige Diagramm zeigt eine sehr vereinfachte Ansicht, wie ein Webdienst tatsรคchlich funktionieren wรผrde. Der Client wรผrde eine Reihe von Webdienstaufrufen รผber Anfragen an einen Server aufrufen, der den eigentlichen Webdienst hosten wรผrde.
Diese Anfragen erfolgen รผber sogenannte Remote Procedure Calls (RPC). RPCs sind Aufrufe an Methoden, die vom jeweiligen Webdienst bereitgestellt werden.
Als Beispiel, Amazon bietet einen Webdienst, der Preise fรผr Produkte bereitstellt, die online รผber amazon.com verkauft werden. Das Frontend oder die Prรคsentationsschicht kann in .Net oder JavaAber beide Programmiersprachen wรคren in der Lage, mit dem Webdienst zu kommunizieren.
Der Hauptbestandteil eines Webservice-Designs sind die Daten, die zwischen dem Client und dem Server รผbertragen werden, und zwar XML. XML (Erweiterbare Auszeichnungssprache) ist das Gegenstรผck zu HTML und eine leicht verstรคndliche Zwischensprache, die von vielen Programmiersprachen verstanden wird.
Wenn Anwendungen miteinander kommunizieren, tun sie dies in XML. Dadurch entsteht eine gemeinsame Plattform, รผber die Anwendungen, die in verschiedenen Programmiersprachen entwickelt wurden, miteinander kommunizieren kรถnnen.
Webdienste verwenden zum Senden der XML-Daten zwischen Anwendungen etwas, das als SOAP (Simple Object Access Protocol) bekannt ist. Die Daten werden รผber normales HTTP gesendet. Die Daten, die vom Webdienst an die Anwendung gesendet werden, werden als SOAP-Nachricht bezeichnet. Die SOAP-Nachricht ist nichts anderes als ein XML-Dokument. Da das Dokument in XML geschrieben ist, kann die Clientanwendung, die den Webdienst aufruft, in einer beliebigen Programmiersprache geschrieben werden.
Warum brauchen Sie einen Webservice?
Moderne Geschรคftsanwendungen nutzen eine Vielzahl von Programmierplattformen zur Entwicklung webbasierter Anwendungen. Einige Anwendungen kรถnnen in โฆ entwickelt werden. Java, andere in .NET, wรคhrend einige wiederum in Angular JS, Node.js usw. arbeiten.
In den meisten Fรคllen benรถtigen diese heterogenen Anwendungen eine Form der Kommunikation untereinander. Da sie mit unterschiedlichen Entwicklungssprachen erstellt wurden, gestaltet sich die Gewรคhrleistung einer reibungslosen Kommunikation zwischen den Anwendungen sehr schwierig.
Hier kommen Webdienste ins Spiel. Webdienste bieten eine gemeinsame Plattform, die mehrere Anwendungen ermรถglicht, die auf verschiedenen Plattformen basieren Programmiersprachen die Fรคhigkeit zu haben, miteinander zu kommunizieren.
Arten von Webdiensten
Es gibt im Wesentlichen zwei Arten von Webdiensten:
- SOAP-Webdienste.
- RESTful-Webservices.
Damit ein Webdienst voll funktionsfรคhig ist, mรผssen bestimmte Komponenten vorhanden sein. Diese Komponenten sind unabhรคngig von der verwendeten Programmiersprache erforderlich. Betrachten wir diese Komponenten im Detail.
SOAP (Simple Object Access Protocol)
SOAP ist ein transportunabhรคngiges Messaging-Protokoll. Es basiert auf der รbertragung von XML-Daten in Form von SOAP-Nachrichten. Jede Nachricht enthรคlt ein sogenanntes XML-Dokument. Nur die Struktur des XML-Dokuments folgt einem bestimmten Muster, nicht aber der Inhalt. Der grรถรte Vorteil von Webdiensten und SOAP ist, dass die gesamte Kommunikation รผber HTTP, das Standard-Webprotokoll, erfolgt.
Eine SOAP-Nachricht besteht aus Folgendem:
- Jedes SOAP-Dokument muss รผber ein Stammelement namens verfรผgen Element. Das Stammelement ist das erste Element in einem XML-Dokument.
- Der โUmschlagโ ist wiederum in 2 Teile geteilt. Der erste ist der Header und der nรคchste ist der Body.
- Der Header enthรคlt die Routing-Daten, also die Informationen, die dem XML-Dokument mitteilen, an welchen Client es gesendet werden soll.
- Der Textkรถrper enthรคlt die eigentliche Nachricht.
Das folgende Diagramm zeigt ein einfaches Beispiel fรผr die Kommunikation รผber SOAP.
Wir werden SOAP hier ausfรผhrlich besprechen Lernprogramm.
WSDL (Webdienste Descriptionische Sprache)
Ein Webdienst kann nicht genutzt werden, wenn er nicht gefunden werden kann. Der Client, der den Webdienst aufruft, sollte wissen, wo sich der Webdienst tatsรคchlich befindet.
Zweitens muss die Clientanwendung wissen, was der Webdienst genau tut, damit sie den richtigen Webdienst aufrufen kann. Dies geschieht mithilfe der WSDL, auch bekannt als Webdienstdefinition. DescriptDie WSDL-Datei ist wiederum eine XML-basierte Datei, die der Clientanwendung im Wesentlichen die Funktionsweise des Webdienstes beschreibt. Mithilfe des WSDL-Dokuments kann die Clientanwendung ermitteln, wo sich der Webdienst befindet und wie er genutzt werden kann.
Beispiel fรผr einen Webdienst
Nachfolgend finden Sie ein Beispiel fรผr eine WSDL-Datei fรผr Webdienste.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
Bei den oben genannten WSDL-Deklarationsbeispielen fรผr Webdienste sind folgende wichtige Aspekte zu beachten:
- Der Nachrichtenparameter in der WSDL-Definition dient dazu, die verschiedenen Datenelemente fรผr jede vom Webdienst ausgefรผhrte Operation festzulegen. Im obigen Beispiel des Webdienstes gibt es zwei Nachrichten, die zwischen dem Webdienst und der Clientanwendung ausgetauscht werden kรถnnen: die Operation โTutorialRequestโ und die Operation โTutorialResponseโ. Die โTutorialRequestโ enthรคlt ein Element namens โTutorialIDโ vom Typ String. Ebenso enthรคlt die Operation โTutorialResponseโ ein Element namens โTutorialNameโ, ebenfalls vom Typ String.
- Dies beschreibt die Operation, die vom Webdienst, in unserem Fall โTutorialโ, ausgefรผhrt werden kann. Diese Operation benรถtigt zwei Nachrichten: eine Eingabenachricht und eine Ausgabenachricht.
- Dieses Element enthรคlt das verwendete Protokoll. In unserem Fall definieren wir es als HTTP (http://schemas.xmlsoap.org/soap/http). Wir legen auรerdem weitere Details fรผr den Nachrichtentext fest, wie den Namespace und ob die Nachricht kodiert werden soll.
Wir werden โWSDLโ in diesem Abschnitt ausfรผhrlich besprechen. Lernprogramm.
Universal- Description, Discovery und Integration (UDDI)
UDDI ist ein Standard zum Beschreiben, Verรถffentlichen und Erkennen der Webdienste, die von einem bestimmten Dienstanbieter bereitgestellt werden. Es stellt eine Spezifikation bereit, die beim Hosten der Informationen zu Webdiensten hilft.
Im vorherigen Thema haben wir WSDL besprochen und wie es Informationen darรผber enthรคlt, was der Webdienst eigentlich tut. Aber wie kann eine Client-Anwendung eine WSDL-Datei finden, um die verschiedenen von einem Webdienst angebotenen Vorgรคnge zu verstehen? UDDI ist die Antwort darauf und stellt ein Repository bereit, in dem WSDL-Dateien gehostet werden kรถnnen. Die Client-Anwendung hat also vollstรคndigen Zugriff auf UDDI, das als Datenbank fungiert, die alle WSDL-Dateien enthรคlt.
So wie ein Telefonbuch den Namen, die Adresse und die Telefonnummer einer bestimmten Person enthรคlt, so enthรคlt das UDDI-Register die relevanten Informationen fรผr den Webdienst.damit eine Clientanwendung weiร, wo sie zu finden ist.
Vorteile von Webdiensten
Wir verstehen bereits, warum Webdienste รผberhaupt entstanden sind: um eine Plattform bereitzustellen, die es verschiedenen Anwendungen ermรถglicht, miteinander zu kommunizieren. Doch sehen wir uns nun die Vorteile von Webdiensten an, um zu verstehen, warum deren Nutzung so wichtig ist.
- Geschรคftsfunktionalitรคt im Netzwerk verfรผgbar machen Ein Webdienst ist eine verwaltete Codeeinheit, die Clientanwendungen oder Endbenutzern Funktionen bereitstellt. Diese Funktionen kรถnnen รผber das HTTP-Protokoll aufgerufen werden, also auch รผber das Internet. Da heutzutage fast alle Anwendungen im Internet laufen, gewinnen Webdienste zunehmend an Bedeutung. Das bedeutet, dass ein Webdienst รผberall im Internet erreichbar sein und die benรถtigten Funktionen bedarfsgerecht bereitstellen kann.
- Interoperabilitรคt zwischen Anwendungen Webdienste ermรถglichen es verschiedenen Anwendungen, miteinander zu kommunizieren und Daten und Dienste auszutauschen. Alle Arten von Anwendungen kรถnnen miteinander kommunizieren. Anstatt also spezifischen Code zu schreiben, der nur von bestimmten Anwendungen verstanden wird, kann man nun generischen Code schreiben, der von allen Anwendungen verstanden wird.
- Ein standardisiertes Protokoll, das jeder versteht Webdienste nutzen ein standardisiertes Industrieprotokoll fรผr die Kommunikation. Alle vier Schichten (Diensttransport, XML-Messaging, Dienst) DescriptDie Schichten ion und Service Discovery verwenden wohldefinierte Protokolle im Protokollstapel der Webdienste.
- Reduzierung der Kommunikationskosten โ Webdienste verwenden das SOAP-รผber-HTTP-Protokoll, sodass Sie Ihr vorhandenes kostengรผnstiges Internet fรผr die Implementierung von Webdiensten nutzen kรถnnen.
Web Services Architektur
Jedes Framework benรถtigt eine gewisse Architektur, um sicherzustellen, dass das gesamte Framework wie gewรผnscht funktioniert. รhnlich verhรคlt es sich bei Webdiensten. Web Services Architektur besteht aus drei verschiedenen Rollen, wie unten aufgefรผhrt:
- Provider โ Der Anbieter erstellt den Webdienst und stellt ihn Clientanwendungen zur Verfรผgung, die ihn nutzen mรถchten.
- Anforderer โ Ein Requestor ist nichts anderes als die Client-Anwendung, die einen Webservice kontaktieren muss. Die Client-Anwendung kann eine .Net-, Javaoder jede andere sprachbasierte Anwendung, die รผber einen Webdienst nach einer bestimmten Funktionalitรคt sucht.
- Makler Der Broker ist nichts anderes als die Anwendung, die den Zugriff auf die UDDI ermรถglicht. Wie bereits erwรคhnt, ermรถglicht die UDDI der Client-Anwendung, den Webdienst zu finden.
Das folgende Diagramm veranschaulicht die Interaktion zwischen Dienstanbieter, Dienstanforderer und Dienstregister.
- Verรถffentlichen โ Ein Anbieter informiert den Broker (Dienstregister) รผber die Existenz des Webdienstes, indem er die Verรถffentlichungsschnittstelle des Brokers verwendet, um den Dienst fรผr Clients zugรคnglich zu machen.
- Finde โ Der Anfragende konsultiert den Broker, um einen verรถffentlichten Webdienst zu finden.
- Binden โ Mit den Informationen, die der Anfragende vom Broker (Dienstregister) รผber den Webdienst erhรคlt, kann er den Webdienst binden oder aufrufen.
Webdienstmerkmale
Webdienste weisen die folgenden besonderen Verhaltensmerkmale auf:
- Sie sind XML-basiert Webdienste verwenden XML zur Datendarstellung auf der Darstellungs- und Datenรผbertragungsschicht. Durch die Verwendung von XML entfallen Abhรคngigkeiten von Netzwerken, Betriebssystemen oder Plattformen, da XML eine allgemein verstรคndliche Sprache ist.
- Locker verbunden โ Lose gekoppelt bedeutet, dass der Client und der Webdienst nicht aneinander gebunden sind. Das bedeutet, dass sich die Art und Weise, wie der Client den Webdienst aufruft, auch dann nicht รคndern sollte, wenn sich der Webdienst im Laufe der Zeit รคndert. Die Einfรผhrung einer lose gekoppelten Architektur macht Softwaresysteme tendenziell besser verwaltbar und ermรถglicht eine einfachere Integration zwischen verschiedenen Systemen.
- SyncSynchrone oder asynchrone Funktionalitรคt - SyncChronizitรคt bezieht sich auf die Bindung des Clients an die Ausfรผhrung des Dienstes. Bei synchronen Vorgรคngen wartet der Client tatsรคchlich darauf, dass der Webdienst einen Vorgang abschlieรt. Ein Beispiel hierfรผr ist wahrscheinlich ein Szenario, in dem ein Lese- und Schreibvorgang in einer Datenbank ausgefรผhrt wird. Wenn Daten aus einer Datenbank gelesen und anschlieรend in eine andere geschrieben werden, mรผssen die Vorgรคnge sequenziell ausgefรผhrt werden. Asynchrone Vorgรคnge ermรถglichen es einem Client, einen Dienst aufzurufen und dann parallel andere Funktionen auszufรผhren. Dies ist eine der hรคufigsten und wahrscheinlich am meisten bevorzugten Techniken, um sicherzustellen, dass andere Dienste nicht angehalten werden, wenn ein bestimmter Vorgang ausgefรผhrt wird.
- Mรถglichkeit zur Unterstรผtzung von Remote Procedure Calls (RPCs) โ Webdienste ermรถglichen es Clients, mithilfe eines XML-basierten Protokolls Prozeduren, Funktionen und Methoden fรผr Remoteobjekte aufzurufen. Remoteprozeduren stellen Eingabe- und Ausgabeparameter bereit, die ein Webdienst unterstรผtzen muss.
- Unterstรผtzt den Dokumentenaustausch โ Einer der Hauptvorteile von XML ist die generische Darstellungsweise nicht nur von Daten, sondern auch von komplexen Dokumenten. Diese Dokumente kรถnnen so einfach sein wie die Darstellung einer aktuellen Adresse oder so komplex wie die Darstellung eines ganzen Buches.




