Was bedeutet RESTful Web-Anwendungen? [geschlossen]

9

Ein Web-Service ist eine Funktion, auf die andere Programme über das Web (Http) zugreifen können. Um es etwas deutlicher zu machen, wenn Sie eine Website in PHP erstellen, die HTML ausgibt, ist das Ziel der Browser und damit der Mensch, der die Seite im Browser liest. Ein Webdienst richtet sich nicht an Menschen, sondern an andere Programme.

  1. SOAP und REST sind zwei Möglichkeiten, WebServices zu erstellen. Korrigiere mich, wenn ich falsch liegen?
  2. Wie kann ich einen WebService erstellen?
  3. Was bedeutet es vollständig RESTful Web Application?
John Cooper 20.06.2012, 09:36
quelle

2 Antworten

4
  1. Korrigieren
  2. Das W3C definiert einen " Webservice " als "ein Softwaresystem, das interoperable Machine-to-Machine-Interaktionen unterstützt über ein Netzwerk ".
  3. Ein vollständig REST-gestützter Dienst ist einer, der sich an alle oder an die architektonischen Einschränkungen hält, wie sie in Roy Fieldings These Architekturstile und das Design netzwerkbasierter Softwarearchitekturen . Es ist ein langer Lese und es gibt viele Interpretationen. Ein guter Anfang wäre, sich mit dem Richardson Maturity Model vertraut zu machen. HINWEIS: Die meisten Webdienste, die behaupten RESTful zu sein, befinden sich nur in Ebene 2 Modell.
Tom Howard 20.06.2012 10:35
quelle
0

Ich denke, um zu verstehen, was ein vollständig REST-fähiger Dienst ist, müssen Sie den Unterschied zwischen RESTful-Diensten und Standard-Webdiensten verstehen. Es ist ziemlich gut in JEE6 Tutorial von Oracle erklärt:

  

NonRESTful WebServices (In Java als JAX-WS): Big Web Services verwenden XML-Nachrichten, die   folgen Sie dem SOAP-Standard (Simple Object Access Protocol), einer XML-Sprache, die a   Nachrichtenarchitektur und Nachrichtenformate. Solche Systeme enthalten oft maschinenlesbar   Beschreibung der vom Dienst angebotenen Operationen, geschrieben in der Beschreibung der Web Services   Language (WSDL), eine XML-Sprache zur syntaktischen Definition von Schnittstellen.   Das SOAP-Nachrichtenformat und die WSDL-Schnittstellendefinitionssprache haben zugenommen   weit verbreitete Annahme. Viele Entwicklungswerkzeuge, wie NetBeans IDE, können das reduzieren   Komplexität der Entwicklung von Web-Service-Anwendungen.   Ein SOAP-basiertes Design muss die folgenden Elemente enthalten.

     

■ Ein formeller Vertrag muss erstellt werden, um die Schnittstelle zu beschreiben, die der Webdienst anbietet.      WSDL kann verwendet werden, um die Details des Vertrags zu beschreiben, der Nachrichten enthalten kann,     Operationen, Bindungen und der Ort des Web-Service. Sie können SOAP auch verarbeiten    Nachrichten in einem JAX-WS-Dienst, ohne eine WSDL zu veröffentlichen.

     

■ Die Architektur muss komplexe nichtfunktionale Anforderungen erfüllen. Viele Webdienste      Spezifikationen gehen auf solche Anforderungen ein und etablieren ein gemeinsames Vokabular für sie.     Beispiele sind Transaktionen, Sicherheit, Adressierung, Vertrauen, Koordination und so weiter.

     

■ Die Architektur muss asynchrone Verarbeitung und Aufruf verarbeiten. In solchen Fällen,      die von Standards bereitgestellte Infrastruktur wie Web Services Reliable Messaging     (WSRM) und APIs wie JAX-WS mit ihrem clientseitigen asynchronen Aufruf    Unterstützung, kann aus der Box heraus genutzt werden.

     

RESTful Web Services (in Java als JAX-RS)   In Java EE 6 stellt JAX-RS die Funktionalität für Representational State Transfer (RESTful) bereit.   Internetdienste. REST eignet sich gut für grundlegende Ad-hoc-Integrationsszenarien. RESTful Webdienste,   oft besser integriert mit HTTP als SOAP-basierte Dienste sind, benötigen keine XML-Nachrichten   oder WSDL-Service-API-Definitionen.   Project Jersey ist die produktionsfertige Referenzimplementierung für die JAX-RS-Spezifikation.   Jersey implementiert Unterstützung für die Anmerkungen, die in der JAX-RS-Spezifikation definiert sind   Einfach für Entwickler, um RESTful Web Services mit Java und der Java Virtual Machine zu erstellen   (JVM).

     

Arten von Webdiensten   Weil REST-konforme Webdienste die bereits bekannte W3C- und Internet Engineering-Aufgabe verwenden   Force (IETF) Standards (HTTP, XML, URI, MIME) und haben eine leichte Infrastruktur, die   ermöglicht den Aufbau von Services mit minimalem Werkzeugeinsatz, die Entwicklung von RESTful Web Services ist kostengünstig   und hat daher eine sehr geringe Barriere für die Übernahme. Sie können ein Entwicklungstool wie NetBeans verwenden   IDE, um die Komplexität der Entwicklung von RESTful Web Services weiter zu reduzieren.   Ein RESTful Design kann angebracht sein, wenn die folgenden Bedingungen erfüllt sind.

     

■ Die Web-Services sind vollständig zustandslos. Ein guter Test ist zu überlegen, ob die Interaktion      kann einen Neustart des Servers überleben.

     

■ Eine Caching-Infrastruktur kann für die Leistung genutzt werden. Wenn die Daten, die der Web-Service      Rücksendungen werden nicht dynamisch generiert und können im Cache zwischengespeichert werden     Server und andere Vermittler, die von Natur aus bereitgestellt werden, können zur Verbesserung genutzt werden    Performance. Der Entwickler muss jedoch darauf achten, dass solche Caches auf die beschränkt sind   HTTP GET-Methode für die meisten Server.

     

■ Der Dienstleistungserzeuger und der Dienstleistungskonsument haben ein gegenseitiges Verständnis für den Kontext und den      Inhalte werden weitergegeben. Weil es keine formelle Möglichkeit gibt, die Webdienste zu beschreiben     Schnittstelle müssen beide Parteien Out-of-Band in den Schemata zustimmen, die die Daten beschreiben    ausgetauscht und über Möglichkeiten, es sinnvoll zu verarbeiten. In der realen Welt die meisten kommerziellen   Anwendungen, die Dienste als REST-konforme Implementierungen bereitstellen, verteilen auch sogenannte   wertsteigernde Toolkits, die die Schnittstellen zu Entwicklern in gängigen Programmen beschreiben   Sprachen.

     

■ Die Bandbreite ist besonders wichtig und muss begrenzt werden. REST ist besonders nützlich für      Geräte mit begrenztem Profil, wie PDAs und Mobiltelefone, für die der Overhead von Kopfzeilen erforderlich ist     und zusätzliche Schichten von SOAP-Elementen auf der XML-Nutzlast müssen eingeschränkt werden.

     

■ Web Service Delivery oder Aggregation in bestehende Websites kann einfach mit a aktiviert werden      RESTful Stil. Entwickler können solche Technologien wie JAX-RS und Asynchronous verwenden     JavaScript mit XML (AJAX) und solche Toolkits wie Direct Web Remoting (DWR) zu konsumieren    die Dienste in ihren Webanwendungen.Anstatt von Grund auf neu zu beginnen, können Dienste sein   mit XML exponiert und von HTML - Seiten konsumiert, ohne das   bestehende Website-Architektur. Bestehende Entwickler werden produktiver sein, weil sie es sind   etwas hinzufügen, mit dem sie bereits vertraut sind, anstatt von vorne anfangen zu müssen   mit neuer Technologie.

     

Festlegen des zu verwendenden Webdiensttyps

     

Grundsätzlich möchten Sie RESTful Web Services für die Integration über das Web verwenden und groß verwenden   Webservices in Enterprise-Anwendungsintegrationsszenarien, die eine höhere Qualität aufweisen   Service (QoS) Anforderungen.

     

■ WebServices: Behandelt erweiterte QoS-Anforderungen, die häufig in Unternehmen auftreten      rechnen. [..]

     

■ RESTfull: macht es einfacher, Web-Anwendungen zu schreiben, die einige oder alle Einschränkungen des REST-Stils anwenden, um erwünschte Eigenschaften in der Anwendung hervorzurufen, z. B. lose Kopplung     (Entwicklung des Servers ist einfacher, ohne bestehende Clients zu brechen), Skalierbarkeit (klein und klein anfangen)    wachsen) und architektonische Einfachheit (verwenden Sie Standardkomponenten wie Proxies oder HTTP   Router). Sie würden JAX-RS für Ihre Webanwendung verwenden, weil es einfacher ist   viele Arten von Clients, die RESTful-Webdienste konsumieren, während sie die Server-Seite aktivieren   entwickeln und skalieren. Kunden können wählen, ob sie einige oder alle Aspekte des Service und des Breies konsumieren möchten   es mit anderen web-basierten Diensten.

    
Adam Sznajder 20.06.2012 23:37
quelle

Tags und Links