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 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 Java 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 verwenden eine Vielzahl von Programmierplattformen, um webbasierte Anwendungen zu entwickeln. Einige Anwendungen kรถnnen in Java, andere in .Net, wรคhrend andere in Angular JS, Node.js usw. sind.

Meistens ist fรผr diese heterogenen Anwendungen eine Art Kommunikation zwischen ihnen erforderlich. Da sie in unterschiedlichen Entwicklungssprachen erstellt werden, ist es sehr schwierig, eine genaue Kommunikation zwischen den 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 obigen Webdienstbeispielen haben wir also zwei Nachrichten, die zwischen dem Webdienst und der Clientanwendung ausgetauscht werden kรถnnen, eine ist die โ€žTutorialRequestโ€œ und die andere 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 vom Typ String ist.
  2. โ€“ Dies beschreibt eigentlich den Vorgang, der vom Webdienst ausgefรผhrt werden kann, der in unserem Fall Tutorial heiรŸt. Dieser Vorgang kann zwei Nachrichten annehmen; eine ist eine Eingabenachricht und die andere ist die 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 Details fรผr den Hauptteil der Operation an, wie den Namespace und ob die Nachricht codiert werden soll.

Wir werden hier ausfรผhrlich auf โ€žWDSLโ€œ eingehen 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, 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 โ€“ Webservices verwenden standardisierte Industrieprotokolle fรผr die Kommunikation. Alle vier Schichten (Service Transport, XML Messaging, Service Description- und Service Discovery-Ebenen) verwenden gut definierte Protokolle im Webservices-Protokollstapel.
  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 eine Art Architektur, um sicherzustellen, dass das gesamte Framework wie gewรผnscht funktioniert, รคhnlich wie bei Webdiensten. Die 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 Client-Anwendung, die einen Webservice kontaktieren muss. Die Client-Anwendung kann eine .Net-, Java, oder jede andere sprachbasierte Anwendung, die รผber einen Webdienst nach einer Art 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. Finde โ€“ 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 weisen die folgenden besonderen Verhaltensmerkmale auf:

  1. Sie sind XML-basiert โ€“ Web Services verwenden XML, um die Daten auf den Darstellungs- und Datentransportebenen darzustellen. Durch die Verwendung von XML werden jegliche Abhรคngigkeiten von Netzwerken, Betriebssystemen oder Plattformen eliminiert, 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. 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.
  3. 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.
  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 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.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: