Was sind Webdienste? ArchiStruktur, Typen, Beispiel

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 WebServices?

Wie WebServices funktionieren
Wie WebServices funktionieren

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 Anforderungen werden über sogenannte Remoteprozeduraufrufe gestellt. Remote Procedure Calls (RPC) sind Aufrufe an Methoden, die vom entsprechenden Webdienst gehostet werden.

Als Beispiel, Amazon stellt einen Webdienst bereit, der Preise für online verkaufte Produkte bereitstellt amazon.com. Die Frontend- oder Präsentationsschicht kann in .Net oder sein Javac aber jede Programmiersprache wäre 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 (Extensible Markup Language) ist ein Gegenstück zu HTML und eine leicht verständliche Zwischensprache, die von vielen Programmiersprachen verstanden wird.

Wenn also Anwendungen miteinander kommunizieren, kommunizieren sie tatsächlich in XML. Dies bietet eine gemeinsame Plattform für Anwendungen, die in verschiedenen Programmiersprachen entwickelt wurden, um miteinander zu kommunizieren.

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 verschiedene Programmierplattformen, um webbasierte Anwendungen zu entwickeln. Einige Anwendungen können in Java entwickelt werden, andere in .Net und wieder andere in Angular JS, Node.js usw.

Meistens sind diese heterogenneoUS-Anwendungen benötigen eine Art Kommunikation zwischen ihnen. Da sie mit unterschiedlichen Entwicklungssprachen erstellt werden, wird es wirklich schwierig, eine genaue Kommunikation zwischen Anwendungen sicherzustellen.

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.

Art des Webdienstes

Es gibt hauptsächlich zwei Arten von Webdiensten.

  1. SOAP-Webdienste.
  2. RESTful-Webservices.

Damit ein Webdienst voll funktionsfähig ist, müssen bestimmte Komponenten vorhanden sein. Diese Komponenten müssen unabhängig davon vorhanden sein, welche Entwicklungssprache für die Programmierung des Webdienstes verwendet wird.

Schauen wir uns diese Komponenten genauer an.

SOAP (Simple Object Access Protocol)

SOAP ist als transportunabhängiges Nachrichtenprotokoll bekannt. SOAP basiert auf der Übertragung von XML-Daten als SOAP-Nachrichten. Jede Nachricht enthält etwas, das als XML-Dokument bezeichnet wird. Lediglich die Struktur des XML-Dokuments folgt einem bestimmten Muster, nicht jedoch der Inhalt. Das Beste an Webdiensten und SOAP ist, dass alles über HTTP gesendet wird, das Standard-Webprotokoll.

Hier erfahren Sie, woraus eine SOAP-Nachricht besteht

  • 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 im Wesentlichen die Informationen, die dem XML-Dokument mitteilen, an welchen Client es gesendet werden muss.
  • Der Textkörper enthält die eigentliche Nachricht.

Das folgende Diagramm zeigt ein einfaches Beispiel für die Kommunikation über SOAP.

SOAP-Protokoll

SOAP-Protokoll

Wir werden SOAP hier ausführlich besprechen Lernprogramm.

WSDL (Beschreibungssprache für Webdienste)

Ein Webdienst kann nicht genutzt werden, wenn er nicht gefunden wird. Der Client, der den Webdienst aufruft, sollte wissen, wo sich der Webdienst tatsächlich befindet.

Zweitens muss die Clientanwendung wissen, was der Webdienst tatsächlich tut, damit sie den richtigen Webdienst aufrufen kann. Dies geschieht mit Hilfe der WSDL, der sogenannten Web-Services-Beschreibungssprache. Bei der WSDL-Datei handelt es sich wiederum um eine XML-basierte Datei, die der Clientanwendung grundsätzlich mitteilt, was der Webdienst tut. Mithilfe des WSDL-Dokuments wäre die Clientanwendung in der Lage zu verstehen, 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:

  1. – Der Nachrichtenparameter in der WSDL-Definition wird verwendet, um die verschiedenen Datenelemente für jede vom Webdienst ausgeführte Operation zu definieren. In den Webdienst-Beispielen oben haben wir also zwei Nachrichten, die zwischen dem Webdienst und der Clientanwendung ausgetauscht werden können, eine ist die „TutorialRequest“-Operation und die andere ist die „TutorialResponse“-Operation. Die TutorialRequest enthält ein Element namens „TutorialID“, das vom Typ String ist. Ebenso enthält die TutorialResponse-Operation ein Element namens „TutorialName“, das ebenfalls eine Typzeichenfolge ist.
  2. – Dies beschreibt eigentlich den Vorgang, der vom Webdienst ausgeführt werden kann, der in unserem Fall Tutorial heißt. Dieser Vorgang kann 2 Nachrichten erfordern; Eine davon ist eine Eingabenachricht und die andere ist eine Ausgabenachricht.
  3. – Dieses Element enthält das verwendete Protokoll. In unserem Fall definieren wir es also für die Verwendung von http (http://schemas.xmlsoap.org/soap/http). Wir geben auch andere de antails für den Hauptteil des Vorgangs, wie den Namespace und ob die Nachricht codiert werden soll.

Wir werden hier ausführlich auf „WDSL“ eingehen Lernprogramm.

Universelle Beschreibung, Entdeckung 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.

Nun haben wir im vorherigen Thema über WSDL gesprochen und wie es Informationen darüber enthält, was der Webdienst tatsächlich tut. Aber wie kann eine Clientanwendung eine WSDL-Datei finden, um die verschiedenen von einem Webdienst angebotenen Vorgänge zu verstehen? UDDI ist also die Antwort darauf und stellt ein Repository bereit, auf dem WSDL-Dateien gehostet werden können. Somit hat die Client-Anwendung vollständigen Zugriff auf das UDDI, das als Datenbank mit allen WSDL-Dateien fungiert.

So wie ein Telefonbuch den Namen, die Adresse und die Telefonnummer einer bestimmten Person enthält, verfügt das UDDI-Register über die relevanten Informationen für den Webdienst. Damit eine Client-Anwendung weiß, wo sie zu finden ist.

Vorteile von Webdiensten

Wir verstehen bereits, warum Webdienste überhaupt entstanden sind, nämlich die Bereitstellung einer Plattform, die es verschiedenen Anwendungen ermöglicht, miteinander zu kommunizieren.

Aber schauen wir uns die Liste der Vorteile von Webdiensten an, um herauszufinden, warum die Verwendung von Webdiensten wichtig ist.

  1. Geschäftsfunktionalität im Netzwerk verfügbar machen – Ein Webdienst ist eine verwaltete Codeeinheit, die Clientanwendungen oder Endbenutzern eine bestimmte Funktionalität bereitstellt. Diese Funktionalität kann über das HTTP-Protokoll aufgerufen werden, was bedeutet, dass sie auch über das Internet aufgerufen werden kann. Heutzutage befinden sich alle Anwendungen im Internet, was den Zweck von Webdiensten noch nützlicher macht. Das bedeutet, dass der Webdienst überall im Internet verfügbar sein und bei Bedarf die erforderliche Funktionalität bereitstellen kann.
  2. Interoperabilität zwischen Anwendungen – Webdienste ermöglichen es verschiedenen Anwendungen, miteinander zu kommunizieren und Daten und Dienste untereinander auszutauschen. Alle Arten von Anwendungen können miteinander kommunizieren. Anstatt also spezifischen Code zu schreiben, der nur von bestimmten Anwendungen verstanden werden kann, können Sie jetzt generischen Code schreiben, der von allen Anwendungen verstanden werden kann
  3. Ein standardisiertes Protokoll, das jeder versteht – Webdienste nutzen für die Kommunikation standardisierte Industrieprotokolle. Alle vier Schichten (Diensttransport-, XML-Messaging-, Dienstbeschreibungs- und Diensterkennungsschicht) verwenden klar definierte Protokolle im Protokollstapel der Webdienste.
  4. 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 irgendeine Art von archiDie Struktur stellt sicher, dass das gesamte Framework wie gewünscht funktioniert, ähnlich wie bei Webdiensten. Der Web Services Architektur besteht aus drei verschiedenen Rollen, wie unten angegeben:

  1. Provider – Der Anbieter erstellt den Webdienst und stellt ihn der Clientanwendung zur Verfügung, die ihn nutzen möchte.
  2. Anforderer – Ein Requestor ist nichts anderes als die Clientanwendung, die einen Webdienst kontaktieren muss. Die Client-Anwendung kann eine .Net-, Java- oder eine andere sprachbasierte Anwendung sein, die über einen Webdienst nach irgendeiner Funktionalität sucht.
  3. Makler – Der Broker ist nichts anderes als die Anwendung, die den Zugriff auf das UDDI ermöglicht. Wie im vorherigen Thema erläutert, ermöglicht das UDDI der Clientanwendung, den Webdienst zu finden.

Das folgende Diagramm zeigt, wie der Dienstanbieter, der Dienstanforderer und die Dienstregistrierung miteinander interagieren.

Web Services Architektur

Web Services Architektur
  1. Veröffentlichen – Ein Anbieter informiert den Broker (Service Registry) über die Existenz des Webservices, indem er die Veröffentlichungsschnittstelle des Brokers nutzt, um den Service für Clients zugänglich zu machen
  2. Finden Sie – Der Anforderer konsultiert den Broker, um einen veröffentlichten Webdienst zu finden
  3. Binden – Mit den Informationen, die er vom Broker (Dienstregister) über den Webdienst erhalten hat, kann der Anforderer den Webdienst binden oder aufrufen.

Web-Service-Eigenschaften

Webdienste haben Folgendes:wing besondere Verhaltensmerkmale:

  1. Sie sind XML-basiert – Web Services verwenden XML, um die Daten auf der Darstellungs- und Datentransportebene darzustellen. Durch die Verwendung von XML entfällt jegliche Abhängigkeit von Netzwerken, Betriebssystemen oder Plattformen, da XML die gemeinsame Sprache ist, die von allen verstanden wird.
  2. Locker verbunden – Lose gekoppelt bedeutet, dass der Client und der Webdienst nicht aneinander gebunden sind, was bedeutet, dass selbst wenn sich der Webdienst im Laufe der Zeit ändert, dies nicht die Art und Weise ändern sollte, wie der Client den Webdienst aufruft. Annahme einer lose gekoppelten archiDie Struktur macht Softwaresysteme tendenziell besser verwaltbar und ermöglicht eine einfachere Integration zwischen verschiedenen Systemen.
  3. Syncchronisch oder Asyncchronologische Funktionalität - SyncUnter Hronizität versteht man die Bindung des Auftraggebers an die Ausführung der Leistung. In syncBei chronischen 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 Datenbank-Lese- und -Schreibvorgang ausgeführt wird. Wenn Daten aus einer Datenbank gelesen und anschließend in eine andere geschrieben werden, müssen die Vorgänge nacheinander ausgeführt werden. AsyncMit chronischen Operationen kann ein Client einen Dienst aufrufen und dann parallel andere Funktionen ausführen. Dies ist eine der gebräuchlichsten und wahrscheinlich am meisten bevorzugten Techniken, um sicherzustellen, dass andere Dienste nicht gestoppt werden, wenn ein bestimmter Vorgang ausgeführt wird.
  4. 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.
  5. Unterstützt den Dokumentenaustausch – Einer der Hauptvorteile von XML ist seine generische Art, nicht nur Daten, sondern auch Kommunikation darzustellenplex Unterlagen. Diese Dokumente können so einfach sein wie die Darstellung einer aktuellen Adresse oder auch complex als Darstellung eines ganzen Buches.