Was ist ein "Webdienst" im Klartext?

186

Ich habe hier auf SO, auf Wikipedia, Google usw. über "Webdienste" gelesen und verstehe nicht ganz, was sie sind. Was ist die einfache englische Definition / Beschreibung?

Wenn ich mit PHP eine einfache Website erstelle, die beispielsweise eine zufällige Ganzzahl auf die Seite druckt ... ist dies ein "Webdienst"? Wenn nicht, warum nicht?

MrDatabase
quelle

Antworten:

286

Eine einfache Definition: Ein Webdienst ist eine Funktion, auf die andere Programme über das Web (HTTP) zugreifen können.

Wenn Sie beispielsweise eine Website in PHP erstellen, die HTML ausgibt, ist das Ziel der Browser und im weiteren Sinne der Mensch, der die Seite im Browser liest. Ein Webdienst richtet sich nicht an Menschen, sondern an andere Programme.

Ihre PHP-Site, die eine zufällige Ganzzahl generiert, kann also ein Webdienst sein, wenn sie die Ganzzahl in einem Format ausgibt, das möglicherweise von einem anderen Programm verwendet wird. Es kann in einem XML-Format oder einem anderen Format vorliegen, solange andere Programme die Ausgabe verstehen können.

Die vollständige Definition ist offensichtlich komplexer, aber Sie haben nach einfachem Englisch gefragt.

Vincent Ramdhanie
quelle
2
Diese Erklärung ist gut, aber was beeinträchtigt die Fähigkeit, die zufällige Ganzzahl von einem anderen Programm aus HTML zu konsumieren? Es gibt viele Bibliotheken zum Lesen von HTML. Dies entspricht für mich dem Lesen von XML und fast dem Lesen von JSON. Ich kenne diesen Beitrag sehr alt, aber bitte kommentieren, wenn es möglich ist.
Pavlo
7
Es ist eher eine Frage der Absicht als der Fähigkeit. Der Webdienst soll von anderen Anwendungen genutzt werden. Die Absicht von HTML ist es, vom Browser für den Benutzer gerendert zu werden.
Vincent Ramdhanie
Für alle anderen, die das Gefühl haben, dass dies einer API sehr ähnlich klingt - siehe diesen großartigen Artikel für die Unterschiede zwischen einem Webdienst und einer API
Sami Birnbaum
60

Vereinfachte, nicht technische Erklärung: Mit einem Web-Service kann ein PROGRAMM mit einer Webseite kommunizieren, anstatt mit Ihrem Browser eine Webseite zu öffnen.

Beispiel: Ich kann zu maps.google.com gehen, meine Privatadresse eingeben und eine Karte mit meinem Wohnort in meinem Browser anzeigen.

Aber was wäre, wenn Sie ein Computerprogramm schreiben würden, in dem Sie eine Adresse übernehmen und eine hübsche Karte anzeigen möchten, genau wie bei Google Maps?

Nun, Sie könnten ein ganz neues Kartenprogramm von Grund auf neu schreiben oder einen von Google Maps bereitgestellten Webdienst aufrufen, ihm die Adresse senden und eine grafische Karte des Standorts zurückgeben, die Sie in Ihrem Programm anzeigen können.

Es steckt noch viel mehr dahinter, da einige der anderen Beiträge behandelt werden. Das Ergebnis ist jedoch, dass Ihre Anwendung entweder Informationen von abrufen oder Informationen an eine Ressource senden kann. Einige andere Beispiele:

  1. Sie können einen Webdienst verwenden, um Informationen zu Büchern bei Amazon.com abzurufen
  2. Sie können einen ähnlichen Webdienst verwenden, um eine Bestellung an Amazon.com zu senden
  3. Sie können einen Webdienst erstellen, damit externe Anwendungen Informationen zu Produktinformationen in Ihrem Unternehmen erhalten
  4. Sie können einen Webdienst erstellen, mit dem externe Anwendungen Bestellungen an Ihr Unternehmen senden können.
BradC
quelle
34

Ja, das ist ein einfacher Webdienst.

Webdienste sind eigentlich nichts anderes als ein Anforderungs- / Antwortmechanismus, mit dem ein Client remote auf Daten zugreifen / diese ändern kann. Es gibt formale Standards für Webdienste (SOAP, SOA usw.), aber Ihre einfache Seite ist auch ein Dienst.

Der Hauptnachteil beim Drucken auf eine Seite besteht darin, dass Ihr Dienst HTML zurückgibt. Bevorzugte Datenformate sind JSON und XML, da die meisten Client-Frameworks (und Server-Frameworks) auf der Verwendung von JSON und XML basieren.

Wenn Sie Ihren Service so geändert haben, dass er zurückkehrt:

<RANDOM>some random number</RANDOM>

eher, als:

<HEAD>...</HEAD>  
<BODY>some random number</BODY>

dann wäre es für die meisten Kunden nützlicher

David Arno
quelle
Habe meine Antwort aktualisiert, um dies widerzuspiegeln. Hatte Probleme damit, dass SO keine XML / HTML-Registerkarten anzeigt :)
David Arno
Vielen Dank. Genau das, was ich darüber denke. XML ist HTML sehr ähnlich, daher wird die HTML-Seite, über die wir sprechen, vom Webdienst bereitgestellt.
Pavlo
21

Vereinfacht ausgedrückt ist ein Webdienst etwas, das Daten als Dienst über das http-Protokoll bereitstellt. Zugegeben, das ist nicht immer der Fall ... aber es ist nah.

Verwendung von Standard-Webdiensten Das SOAP-Protokoll, das die Kommunikation und Struktur von Nachrichten definiert, und XML ist das Datenformat.

Mit Webdiensten können Anwendungen, die mit unterschiedlichen Technologien erstellt wurden, problemlos miteinander kommunizieren.

Beispiele für Webdienste sind beispielsweise Weather.com, das Wetterinformationen bereitstellt, die Sie auf Ihrer Website verwenden können, oder UPS, das eine Methode zum Anfordern von Versandangeboten oder zum Verfolgen von Paketen bereitstellt.

Bearbeiten

Der Wortlaut wurde in Bezug auf SOAP geändert, da es sich nicht immer um SOAP handelt, wie ich bereits erwähnt habe, sondern es klarer machen wollte. Der Schlüssel ist die Bereitstellung von Daten als Dienst, nicht als UI-Element.

Mitchel Sellers
quelle
1
Es muss nicht SOAP sein - wenn Sie über Webdienste (in Kleinbuchstaben) sprechen, wird REST immer häufiger.
John Topley
17

Ein Webdienst unterscheidet sich von einer Website darin, dass ein Webdienst Informationen bereitstellt, die eher von Software als von Menschen konsumiert werden. Daher handelt es sich normalerweise um exponierte JSON- , XML- oder SOAP-Dienste.

Webdienste sind eine Schlüsselkomponente in "Mashups". Mashups sind, wenn Informationen von vielen Websites automatisch zu einem neuen und nützlichen Dienst zusammengefasst werden. Beispielsweise gibt es Websites, auf denen Google Maps mit Informationen zu Polizeiberichten zusammengefasst ist, um eine grafische Darstellung der Kriminalität in Ihrer Region zu erhalten. Eine andere Art von Mashup wäre, echte Bestandsdaten, die von einer anderen Site bereitgestellt werden, mit einer gefälschten Handelsanwendung zu kombinieren, um ein Börsenspiel zu erstellen.

Webdienste werden auch verwendet, um Nachrichten (siehe RSS), die neuesten Elemente, die einer Website hinzugefügt wurden, Informationen zu neuen Produkten, Podcasts und andere großartige Funktionen bereitzustellen, die das moderne Web zu einer Wende machen.

Hoffe das hilft!

64BitBob
quelle
15

Die beste einfache englische Erklärung ergibt sich aus einer Analogie:

  • Webseiten ermöglichen es Menschen, miteinander zu kommunizieren und zusammenzuarbeiten.
  • Mit Webdiensten können Programme miteinander kommunizieren und zusammenarbeiten.

Ihr PHP-Beispiel ist nach dieser Definition ein Webdienst, da die Ausgabe von einem anderen Programm verwendet werden könnte. In Wirklichkeit ist HTML-Screen-Scraping jedoch keine zuverlässige oder wartbare Methode zur Erstellung von Webdiensten.

HTTP 410
quelle
13

Für die meisten Websites haben Sie HTML-Seiten, die Sie besuchen, wenn Sie Ihren Browser verwenden. Dies sind von Menschen lesbare Seiten (einmal in Ihrem Browser gerendert), auf denen möglicherweise viele Daten zusammengepfercht sind, da dies für Menschen sinnvoll ist.

Stellen Sie sich nun vor, jemand anderes möchte einige dieser Daten verwenden. Sie könnten Ihre Seite herunterladen und anfangen, das gesamte "Rauschen" herauszufiltern, um die gewünschten Daten zu erhalten. Die meisten Websites sind jedoch nicht so aufgebaut, dass Daten zu 100% sicher sind, dass sie für alle Elemente an derselben Stelle platziert werden umständlich zu sein, wird es auch unzuverlässig.

Geben Sie Webdienste ein.

Ein Webdienst ist etwas, das eine Website denjenigen anbietet, die Daten von Ihrer Website lesen, aktualisieren und / oder löschen möchten. Sie können es als "Hintertür" zu Ihren Daten bezeichnen. Anstatt die Daten als Teil einer Webseite darzustellen, werden sie auf eine vorher festgelegte Weise bereitgestellt, wobei XML und JSON einige der beliebtesten sind. Es gibt verschiedene Möglichkeiten, mit einem Webservice zu kommunizieren. Einige verwenden SOAP, andere verfügen über REST-fähige Webdienste usw.

Allen Webdiensten ist gemeinsam, dass sie maschinenlesbar sind und den Webseiten entsprechen, die die Website ansonsten bietet. Dies bedeutet, dass andere, die die Daten verwenden möchten, eine Anfrage senden können, um bestimmte Daten zurückzugewinnen, die einfach zu analysieren und zu verwenden sind. Auf einigen Websites müssen Sie möglicherweise einen Benutzernamen / ein Kennwort für vertrauliche Daten in der Anforderung angeben, während auf anderen Websites jeder Benutzer die erforderlichen Daten extrahieren kann.

Christian P.
quelle
12

Ein Webdienst ist eine Sammlung offener Protokolle und Standards, die für den Datenaustausch zwischen Anwendungen oder Systemen verwendet werden. Softwareanwendungen, die in verschiedenen Programmiersprachen geschrieben sind und auf verschiedenen Plattformen ausgeführt werden, können mithilfe von Webdiensten Daten über Computernetzwerke wie das Internet austauschen, ähnlich wie bei der Kommunikation zwischen Prozessen auf einem einzelnen Computer. Diese Interoperabilität (z. B. zwischen Java und Python oder Windows- und Linux-Anwendungen) ist auf die Verwendung offener Standards (XML, SOAP, HTTP) zurückzuführen.

Alle Standard-Webdienste arbeiten mit folgenden Komponenten:

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universal Description, Discovery and Integration)
  • WSDL (Web Services Description Language)

Es funktioniert ungefähr so:

  • Das Client-Programm bündelt die Kontoregistrierungsinformationen in einer SOAP-Nachricht.
  • Diese SOAP-Nachricht wird als Hauptteil einer HTTP-POST-Anforderung an den Webdienst gesendet.
  • Der Webdienst entpackt die SOAP-Anforderung und konvertiert sie in einen Befehl, den die Anwendung verstehen kann.
  • Die Anwendung verarbeitet die Informationen nach Bedarf und antwortet mit einer neuen eindeutigen Kontonummer für diesen Kunden.
  • Als Nächstes packt der Webdienst die Antwort in eine andere SOAP-Nachricht, die er als Antwort auf seine HTTP-Anforderung an das Client-Programm zurücksendet.
  • Das Client-Programm entpackt die SOAP-Nachricht, um die Ergebnisse des Kontoregistrierungsprozesses zu erhalten.
vanguard69
quelle
1
" Alle Standard-Webdienste arbeiten mit folgenden Komponenten: " ... Das Problem bei dieser Antwort besteht darin, dass darauf hingewiesen wird, dass Webdienste innerhalb des SOAP / WSDL-Mechanismus ausgeführt werden oder ausgeführt werden müssen. Das ist ungenau. Representational State Transfer (REST) ​​ist ein weiteres sehr beliebtes Paradigma für die Implementierung von Webdiensten. Einige große Websites haben ihre SOAP-Services zugunsten von REST-Webdiensten abgelehnt.
Scottb
@scottb Ich stimme voll und ganz zu. Danke für das Update. Zu meiner Verteidigung war mein Wissen über Webdienste damals sehr begrenzt!
vanguard69
7

Webservice ist eine Technologie, mit der zwei oder mehr Remote-Webanwendungen über Netzwerk / Internet miteinander interagieren. Es kann mit Java, .net, PHP usw. implementiert werden.

Funktionen des Webdienstes: -

  1. Bei Verwendung von Webdiensten tauschen zwei oder mehr Systeme Daten über das Netzwerk aus. Der Datenaustausch erfolgt entweder über XML oder JSON.
  2. Jeder Webdienst besteht aus zwei Teilen: Serverende, auf der der Dienst bereitgestellt wird, und Client-Teil, auf den seine Clients zugreifen. Jeder Webdienst kann mehrere Clients haben. Wenn ein Reiseportal Tickets für ein Verkehrsflugzeug verkauft. Portal ist Client und die Fluggesellschaft ist der Server, während sie ihren Service verkauft.
  3. Webdienste können synchron oder auch asynchron sein. Eine Webanwendung kann mit vielen Webdiensten interagieren , diese Webdienste sind jedoch lose mit ihren Client-Webanwendungen gekoppelt. Das bedeutet, dass Änderungen an der übergeordneten Anwendung keine oder nur geringe Auswirkungen auf die Webdienste haben oder umgekehrt.
  4. Webdienste können Anhangsdokumente wie PDF, Word usw. mit ihrer XML-Nutzlast enthalten. Java bietet eine separate API für diese Art von Webdiensten.
  5. Ein Webdienst verbirgt immer die interne Komplexität des Dienstes für seine Kunden. Beispielsweise sammelt ein Verkehrsflugzeug, das Tickets über ein Portal eines Drittanbieters verkauft, Endbenutzerinformationen nur über einen Webdienst und stellt im Gegenzug Tickets zur Verfügung. Das Portal, das Tickets verkauft, muss sich nicht um die interne Komplexität der Ticketreservierungssysteme der Fluggesellschaften kümmern.
  6. Ein Webdienst kann vom Typ Feuer und Vergessen sein oder etwas zurückgeben. Angenommen, eine Webanwendung möchte nur einige Informationen an eine Drittanbieteranwendung senden. Der Absender benötigt keine Bestätigung vom Empfänger. In dieser Art von Szenario benötigen wir einen Feuer- und Vergessen-Webdienst.
Siddhartha Chakraborty
quelle
6

Simple way to explain web service is ::

  • Ein Webdienst ist eine Kommunikationsmethode zwischen zwei elektronischen Geräten über das World Wide Web.
  • Es kann als ein Prozess bezeichnet werden, mit dem ein Programmierer mit dem Server kommuniziert
  • Um diesen Prozess aufzurufen, kann der Programmierer SOAP usw. Verwenden
  • Webdienste basieren auf offenen Standards wie TCP / IP und HTTP

Der Vorteil eines Webservices besteht darin, dass Sie einen Code in .net entwickeln und JAVA verwenden möchten, um diesen Code zu verwenden. Sie können direkt mit der abstrahierten Ebene interagieren und wissen nicht, mit welcher Technologie der Code entwickelt wurde.


Bild

Devrath
quelle
5

Ein Webdienst, wie er von Softwareentwicklern verwendet wird, bezieht sich im Allgemeinen auf einen Vorgang, der auf einem Remote-Server ausgeführt und unter Verwendung der XML / SOAP-Spezifikation aufgerufen wird. Wie bei allen Definitionen gibt es Nuancen, aber das ist die häufigste Verwendung des Begriffs.

jezell
quelle
1
Sorry Jezelll, musste eine Downvote abgeben. Dies ist nicht das, was ich als "einfaches Englisch" bezeichnen würde :( Ich habe kein Problem mit der Absicht Ihrer Definition, aber die Verwendung von Wörtern wie "Operation", "Remote-Server", "Aufgerufen" und "Spezifikation" macht es schwierig für Anfänger zu verstehen. Siehe Mitchel Sellers Antwort als Beispiel für "einfaches Englisch".
Dhaust
5

Ein Betriebssystem bietet eine GUI (und CLI), mit der Sie interagieren können. Es bietet auch eine API, mit der Sie programmgesteuert interagieren können.

In ähnlicher Weise bietet eine Website HTML-Seiten, mit denen Sie interagieren können, und möglicherweise auch eine API, die programmgesteuert dieselben Informationen und Vorgänge bietet. Oder diese Dienste sind möglicherweise nur über eine API ohne zugehörige Benutzeroberfläche verfügbar.

John Topley
quelle
4

Gut,

Wie @Vincent Ramdhanie gesagt hat, soll ein Webdienst nicht vom Endbenutzer gesehen / konsumiert werden, sondern von einem anderen Programm. Technisch gesehen lautet die Logik in Ihrem Programm also:

Im Falle eines normalen Programms

user on website -> HTML/JS/JQuery etc -> give me a random number ->ur program

Jetzt

ur program -> generate random number -> generate HTML and encapsulate o/p -> go back to user

Im Falle eines Webdienstes ändert sich der Ablauf jedoch ein wenig:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Jetzt

ur program -> generate random number -> generate XML/JSON/some other format -> my application -> generate HTML and encapsulate o/p -> go back to user

Hoffe das hilft :)

user1079065
quelle
3

Eine einfache Definition wäre eine HTTP-Anforderung, die sich wie ein normaler Methodenaufruf verhält. Das heißt, es akzeptiert Parameter und gibt ein strukturiertes Ergebnis zurück, normalerweise XML, das in ein oder mehrere Objekte deserialisiert werden kann.

marc
quelle
3

Webdienste sind fast wie normale Webseiten. Der Unterschied besteht darin, dass sie so formatiert sind, dass ein Programm sehr einfach Daten von der Seite abrufen kann, bis wahrscheinlich kein HTML mehr verwendet wird. Sie sind im Allgemeinen auch zuverlässiger in Bezug auf die Konsistenz des Formats, verwenden möglicherweise einen anderen formalen Prozess, um den Inhalt einer solchen Seife oder rohen XML zu definieren, und es gibt häufig auch ein Deskriptordokument, das die Struktur für die Daten formal definiert.

Joel Coehoorn
quelle
3

Eine Möglichkeit, eine Nachricht zu senden, um einen Vorgang auf einem anderen Computer aufzurufen. Der Unterschied zwischen Webdiensten und früheren Methoden besteht darin, dass das, was über das Kabel gesendet wird, auf einer höheren Ebene standardisiert ist.

Alter Weg: Beschreiben Sie Endians, Codierung, Portnummern usw. Webdienst: URL, XML

Archimedes Trajano
quelle
3

Der Webdienst ist wie ein Kommunikationsmedium zwischen zwei nicht verwandten Programmen. Die Programme verwenden ein angegebenes Protokoll (normalerweise SOAP ( Simple Object Access Protocol) ) als Medium, um zu verstehen, welche ANFRAGE / ANTWORT sie an ihrem jeweiligen Ende verarbeiten / ausführen sollen.

Tolulope David
quelle
2

Ein Webdienst definiert einen Aktionsvertrag, den ein Server für Sie ausführt. Das Format und das Protokoll spielen keine Rolle, aber Sie sollten eine festgelegte Definition für die Kommunikation haben.

In Ihrem Beispiel hängt es davon ab, ob dies in einer anderen Anwendung verwendet wird, die diese Nummer liest. Ja, es handelt sich um einen Dienst. Andernfalls handelt es sich nur um eine Webseite mit einer Nummer.

Nick
quelle
1

In einfachen Worten, Webdienst kann jedes einfache Programm sein, z. B.: Fügen Sie zwei Nummern hinzu, die über die UDDI veröffentlicht werden sollen und von einem anderen Programm verwendet werden können. WSDL verfügt über den Endpunkt zum Auffinden des Webservices sowie der Bindungs- und Portdetails.

Prabhu
quelle
0

'Web Service' besteht aus zwei Wörtern, 'Web' und 'Service'.
Was ist "Web"? "Web" bedeutet "World Wide Web".
"Service" für was? Nicht für Menschen, wenn ja, es ist eine "Webseite" wie Text, Bilder, Videos usw.
Es ist für Programme, über das Internet mit derselben Technologie zu kommunizieren, die das "Web" verwendet, wie TCP, HTTP usw.
"Service". bedeutet auch, dass es einige Funktionen bietet, wie die 'Service-Schicht' in CRUD. Es gibt hauptsächlich zwei Typen:
1. SOAP (Simple Object Access Protocol)
2. RESTful (Repräsentative Statusübertragung)

Songxin
quelle
0

Unbeschadet anderer Definitionen würde ich sagen, dass ein Webdienst ein Softwaresystem ist, das eine interoperable Interaktion von Maschine zu Maschine / Anwendung zu Anwendung über ein Netzwerk ermöglicht. Diese generischen Definitionen würden auch dazu beitragen, REST-Architekturen als Webdienst zu betrachten, da sie ähnliche Funktionen bieten, obwohl sie im Gegensatz zu SOAP, einem vollständig definierten Protokoll, einen Architekturstil darstellen.

joedavid
quelle