Webdienst

Ein Webdienst ist eine Methode der Kommunikation zwischen zwei elektronischen Geräten über das Web (Internet).

Der W3C definiert einen "Webdienst", weil "ein Softwaresystem vorgehabt hat, zwischendurchführbare Maschine-zu-Maschine-Wechselwirkung über ein Netz zu unterstützen". Es ließ eine Schnittstelle in einem Maschinen-Processable Format (spezifisch Webdienst-Beschreibungssprache beschreiben, die durch das Akronym WSDL bekannt ist). Andere Systeme wirken mit dem durch seine Beschreibung gewissermaßen vorgeschriebenen Webdienst mit SEIFE-Nachrichten, das normalerweise beförderte Verwenden HTTP mit einer XML Anordnung in Verbindung mit anderen Webzusammenhängenden Standards aufeinander."

Der W3C setzt auch fest, "Wir können zwei Hauptklassen von Webdiensten, mit dem REST ENTGEGENKOMMENDEN Webdiensten identifizieren, in denen der primäre Zweck des Dienstes ist, XML Darstellungen von Webmitteln mit einem gleichförmigen Satz von "staatenlosen" Operationen zu manipulieren; und willkürliche Webdienste, in denen der Dienst einen willkürlichen Satz von Operationen ausstellen kann."

Große Webdienste

"Große Webdienste" verwenden Ausziehbare Preiserhöhungssprache (XML) Nachrichten, die dem SEIFE-Standard folgen und bei den traditionellen Unternehmen populär gewesen sind. In solchen Systemen gibt es häufig eine maschinenlesbare Beschreibung der Operationen, die durch den in Web Services Description Language (WSDL) geschriebenen Dienst angeboten sind. Der Letztere ist nicht eine Voraussetzung eines SEIFE-Endpunkts, aber es ist eine Vorbedingung für die automatisierte Kundenseite-Codegeneration in vielen Java und.NET SEIFE-Fachwerk (Fachwerk wie Apachen-Axis2, Apachen-CXF, und Frühling, bemerkenswerte Ausnahmen seiend). Einige Industrieorganisationen, wie der WS-I, beauftragen sowohl SEIFE als auch WSDL in ihrer Definition eines Webdienstes.

Web-API

Web-API ist eine Entwicklung in Webdiensten (in einer Bewegung genannt das Web 2.0), wohin Betonung von gestützten Dienstleistungen von SEIFE zur Vertretungszustandübertragung gestützte Kommunikationen (des RESTS) weggeschoben hat. REST-Dienstleistungen verlangen XML, SEIFE oder WSDL Definitionen der dienst-API nicht.

Web APIs erlaubt die Kombination von vielfachen Webdiensten in neue Anwendungen bekannt als mashups.

Wenn verwendet, im Zusammenhang der Webentwicklung ist Web-API normalerweise ein definierter Satz des Hypertext-Übertragungsprotokolls (HTTP) Bitte-Nachrichten zusammen mit einer Definition der Struktur von Antwortmeldungen, die gewöhnlich auf einer Ausziehbaren Preiserhöhungssprache (XML) oder Gegenstand-Notation von JavaScript (JSON) Format ausgedrückt sind.

Wenn

man zerlegbare Webdienste führt, kann jeder U-Boot-Dienst autonom betrachtet werden. Der Benutzer hat keine Kontrolle über diese Dienstleistungen. Auch die Webdienste selbst sind nicht zuverlässig; der Dienstleister kann entfernen, ändern oder ihre Dienstleistungen aktualisieren, ohne Benutzern zu kündigen. Zuverlässigkeits- und Schuld-Toleranz wird nicht gut unterstützt; Schulden können während der Ausführung geschehen. Ausnahme, die im Zusammenhang von Webdiensten behandelt, ist noch ein offenes Forschungsproblem, obwohl das noch durch das Erwidern mit einem Fehlergegenstand den Kunden behandelt werden kann.

Wechselwirkungsmodelle

Webdienste sind eine Reihe von Werkzeugen, die auf mehrere Weisen verwendet werden können. Die drei allgemeinsten Wechselwirkungsmodelle sind RPC, SOA und REST.

Entfernte Verfahren-Anrufe

RPC Webdienste präsentieren eine verteilte Funktion (oder Methode) Anruf-Schnittstelle, die für viele Entwickler vertraut ist. Gewöhnlich ist die grundlegende Einheit von RPC Webdiensten die WSDL Operation.

Die ersten Webdienst-Werkzeuge wurden RPC konzentriert, und infolgedessen wird dieser Stil weit aufmarschiert und unterstützt. Jedoch wird es manchmal dafür kritisiert, nicht lose verbunden zu werden, weil es häufig durchgeführt wurde, indem es Dienstleistungen direkt zu sprachspezifischen Funktionen oder Methode-Anrufen kartografisch dargestellt worden ist. Viele Verkäufer haben diese Annäherung gefühlt, um ein toter Punkt, und bedrängt wegen im WS-I Grundlegenden Profil zurückzuweisenden RPC zu sein.

Andere Annäherungen mit fast derselben Funktionalität wie RPC sind: Common Object Request Broker Architecture (CORBA) von Object Management Group (OMG), der DCE/RPC von Open Software Foundation (OSF), der RPC des Microsofts (ein Teil von DCOM) oder.NET Mikrosysteme von Remoting und Sun javanische Methode-Beschwörung / Entfernte Methode-Beschwörung (RMI).

Dienstorientierte Architektur

Webdienste können auch verwendet werden, um eine Architektur gemäß Konzepten der dienstorientierten Architektur (SOA) durchzuführen, wo die grundlegende Einheit der Kommunikation eine Nachricht, aber nicht eine Operation ist. Das wird häufig "nachrichtenorientierte" Dienstleistungen genannt.

SOA Webdienste werden von den meisten Hauptsoftwareverkäufern und Industrieanalytikern unterstützt. Verschieden von RPC Webdiensten ist lose Kopplung wahrscheinlicher, weil der Fokus auf dem "Vertrag" ist, den WSDL, aber nicht die zu Grunde liegenden Durchführungsdetails zur Verfügung stellt.

Analytiker von Middleware verwenden Unternehmensdienstbusse (ESBs), die nachrichtenorientierte Verarbeitung und Webdienste verbinden, um einen Ereignis-gesteuerten SOA zu schaffen. Beispiele der offenen Quelle sind ESB Maulesel und Öffnen ESB. Eine abwechselnde Annäherung ist das Hub-Spoke Modell, das gestützter Server ist. Ein Beispiel davon ist Unternehmensnachricht Dienst (EMS, eine Durchführung von JMS).

Vertretungszustandübertragung (REST)

RUHEN SIE SICH AUS versucht, Architekturen zu beschreiben, die HTTP verwenden oder ähnliche Protokolle durch das Begrenzen der Schnittstelle zu einer Reihe wohl bekannter, normaler Operationen (wie BEKOMMEN, ANSCHLAGEN, STELLEN, für HTTP LÖSCHEN). Hier ist der Fokus darauf, mit staatenlosen Mitteln, aber nicht Nachrichten oder Operationen aufeinander zu wirken. Saubere URL-ADRESSEN werden mit dem REST-Konzept dicht vereinigt.

Eine auf dem REST gestützte Architektur kann WSDL verwenden, um SEIFE-Nachrichtenübermittlung über HTTP zu beschreiben, kann als eine Abstraktion rein oben auf SEIFE (z.B, WS-Übertragung) durchgeführt werden oder kann geschaffen werden, ohne SEIFE überhaupt zu verwenden.

WSDL Angebot-Unterstützung der Version 2.0, um zu allen HTTP-Bitte-Methoden zu binden (KOMMEN nicht nur und EILEN als in der Version 1.1 DAHIN), so ermöglicht es eine bessere Durchführung von ERHOLSAMEN Webdiensten. Jedoch ist die Unterstützung für diese Spezifizierung noch in Werkzeugkästen für Softwareentwickler schwach, die häufig Werkzeuge nur für WSDL 1.1 anbieten.

Automatisierte Designmethodiken

Automatisierte Werkzeuge können in der Entwicklung eines Webdienstes helfen. Für Dienstleistungen mit WSDL ist es zu irgendeinem möglich automatisch erzeugen WSDL für vorhandene Klassen (von unten nach oben Strategie) oder ein Klassenskelett gegeben vorhandener WSDL (eine verfeinernde Strategie) zu erzeugen.

  • Ein Entwickler, der von unten nach oben verwendet, schreibt Methode Einführen-Klassen zuerst (auf einer Programmiersprache), und verwendet dann einen WSDL das Erzeugen des Werkzeugs, um Methoden von diesen Klassen als ein Webdienst auszustellen. Das ist häufig die einfachere Annäherung.
  • Ein Entwickler, der eine Spitze unten verwendet, schreibt Methode das WSDL Dokument zuerst und verwendet dann ein Codeerzeugen-Werkzeug, um das Klassenskelett zu erzeugen, als notwendig vollendet zu werden. Dieser Weg wird allgemein schwieriger betrachtet, aber kann sauberere Designs erzeugen

Kritiken

Kritiker von Nichtrest-Webdiensten beklagen sich häufig, dass sie zu kompliziert und auf große Softwareverkäufer oder Integratoren, aber nicht typische offene Quelldurchführungen basiert sind. Es gibt offene Quelldurchführungen wie Apachen-Achse und Apachen-CXF.

Eine Schlüsselsorge der REST-Webdienst-Entwickler ist, dass die SEIFE WS Werkzeuge machen es leicht, neue Schnittstellen für die entfernte Wechselwirkung zu definieren, häufig sich auf die Selbstbeobachtung verlassend, um den WSDL seit einer geringen Änderung auf dem Server herauszuziehen (sogar eine Steigung des SEIFE-Stapels) auf verschiedenen WSDL und eine verschiedene Dienstschnittstelle hinauslaufen kann. Die Kundenseite-Klassen, die von WSDL und XSD Beschreibungen des Dienstes erzeugt werden können, werden häufig an eine besondere Version des SEIFE-Endpunkts ähnlich gebunden und können brechen, wenn die Endpunkt-Änderungen oder der Kundenseite-SEIFE-Stapel befördert werden. Gut bestimmte SEIFE-Endpunkte (mit handschriftlichem XSD und WSDL) leiden darunter nicht, aber eine kundenspezifische Schnittstelle für jeden Dienst verlangt noch einen kundenspezifischen Kunden für jeden Dienst.

Es gibt auch Sorgen über die Leistung wegen des Gebrauches von Webdiensten von XML als ein Nachrichtenformat und SOAP/HTTP im Einschlagen und Transport.

Siehe auch

Links


Boxende Weltvereinigung / Software von UserLand
Impressum & Datenschutz