Kapitel 5 Web-Services



Ähnliche Dokumente
SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Verteilte Systeme: Übung 4

Implementierung von Web Services: Teil I: Einleitung / SOAP

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am

Wiederholung: Beginn

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

WebServices Zwischen Buzzword und Nutzen

Zustandsgebundene Webservices

VVA Webservice Online Lieferbarkeits-Abfrage

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Workflow, Business Process Management, 4.Teil

Java und XML 2. Java und XML

Webservices Ein Vortrag von:

Architektur von SOAP basierten Web Services

Verteilte Anwendungen. Teil 10: UDDI und WSDL

Grundlagen der Web-Entwicklung INF3172

Thema: Web Services. Was ist ein Web Service?

Agenda. Web Services unter Lotus Notes/Domino

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

E-Services mit der Web-Service-Architektur

Definition Web Service

epayment Leistungen des Bundes einfach, schnell und sicher bezahlen mit Payment Eine Idee mit Zukunft

3-schichtige Informationssystem-Architektur

Web-Services Grundlagen

Man liest sich: POP3/IMAP

Containerformat Spezifikation

Norm 225 Service Definition mit WSDL

Containerformat Spezifikation

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Netzwerk. A. Eberhart, S. Fischer: Web Services. München: Hanser Verschiedene Definitionen Web Service

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

AlwinPro Care Modul Schnittstelle TV-Steuerung

SAP NetWeaver Gateway. 2013

SOA mit.net: Vom Geschäftsprozess zur Lösung

Oracle BI Publisher Webservice API in Action

Schritt 2: Konto erstellen

Auszug aus JAX-WS Folien

Benutzerhandbuch für die Verwendung des viavac HL7 Forcast Webservices (VAC-CDSS)

Zur Definition von Web-Services

Einrichtung eines -konto mit Outlook Express

Markus Schulz Seminar: XML für Fortgeschrittene

XML und SOAP Einführung und Grundlagen

Standards und Standardisierungsgremien

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Der Cloud Point of Purchase. EuroCloud Conference, 18. Mai 2011 (Christoph Streit, CTO & Co-Founder ScaleUp)"

Mobile und Verteilte Datenbanken

pr[sms] MMS-MM7/SOAP Schnittstelle Version: 1.1 Stand: Autor: Gollob Florian

ACCOUNTINFO 1.01 VERWENDEN DER ACCOUNTINFO-SCHNITTSTELLE ABFARGE VON ACCOUNT-INFORMATIONEN IN ECHTZEIT 02. MÄRZ 2010

ICS-Addin. Benutzerhandbuch. Version: 1.0

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

OP-LOG

Web-Konzepte für das Internet der Dinge Ein Überblick

System-Update Addendum

Werner Motzet und Tim Pistor präsentieren:

WebService-Architekturen

Microsoft.NET und SunONE

Software Reuse Sommer 2004

Verteilte Systeme 3. Dienstevermittlung

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

5. Übung zur Vorlesung Service-orientierte Architekturen

10.1 Remote Method Invocation (RMI)

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Administrator Handbuch

HSR git und subversion HowTo

Anwendungsprotokolle: HTTP, POP, SMTP

Elektronische Zustellung WKO / AustriaPro. Status Arbeitspakete PL.O.T

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

SOAP. SOAP: Envelope

Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Norm 240 Versionierung

Transkript:

Kapitel 5: Web-Services 1 Kapitel 5 Web-Services 5.1 Web-Services Verwendung/Aufruf (Service Invocation) SOAP Beschreibung (Service Description) WSDL Repository/Verzeichnis (Service Discovery) UDDI 5.2 Workshop: Microsoft.NET Kurzer Überblick zu Microsoft.NET Web-Services mit.net

Grundsätzliche Überlegungen: 5.1 Web-Services Services (Server-Methoden) sollten sich über ein weit verbreitetes Protokoll ansprechen lassen, unabhängig davon, wie (in bzw. mit welcher Infrastruktur) die Server implementiert wurden, auf welcher Plattform sie ausgeführt werden, etc. Nachrichtenbasierte Aufrufe sollten auch synchron möglich sein Web-Services Schnittstellen von bestehenden Services werden via Web aufrufbar Voraussetzung Internet-Protokolle (HTTP, seltener SMTP) zum Transport von Nachrichten Spezifikation der Nachrichtenformate Festgelegte Übermittlung von Aufrufparametern bzw. des Aufrufergebnisses Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 2

Kapitel 5: Web-Services 3 Web-Services Übersicht ShowAvailability HTTP MakeReservation GetListOfStocks GetLastTradePrice Order www.fly-away.ch www.stockquoteserver.com Börsen- Info www.pizza23.ch Flugbuchungssystem Pizza- Express

Simple Object Access Protocol (SOAP) SOAP: Simple Object Access Protocol www.w3.org/tr/soap/ XML-basiertes Protokoll Gültige Version: SOAP 1.1 (Mai 2000), beim W3C (www.w3c.org) als Grundlage für eine SOAP/XML-Arbeitsgruppe eingereicht. Version 1.2 ist derzeit im Status Proposed Recommendation Hauptbeteiligte: IBM und Microsoft Aufgabe von SOAP Ermöglichen von unidirektionalem Informationsaustausch in dezentralisierter, verteilter Umgebung ohne gemeinsame Infrastruktur für verteilte Objektverwaltung Ziel Kapseln von RPC-Aufrufen (Einheitliche Repräsentation von RPC-Aufrufen und Aufrufparametern bzw. der Rückgabewerte) Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 4

Kapitel 5: Web-Services 5 SOAP Architektur SOAP Client Request Dokument GetLastTradePrice HTTP Auspacken des Request-Dokuments HTTP,... SOAP Server (XML-Dokument mit Methodenaufruf) Response- Dokument (XML-Dokument mit Ergebnis) Methodenaufruf www.stockquoteserver.com Börsen- Info

Kapitel 5: Web-Services 6 SOAP: Bestandteile Inhalt der SOAP-Spezifikation SOAP Envelope (Umschlag): Beschreibung des Nachrichteninhalts und wie dieser zu verarbeiten ist SOAP Encoding Rules: legt Typsystem fest, das die Spezifikation und Serialisierung von komplexen Datentypen erlaubt SOAP RPC: legt fest, wie der Methodenname und die Parameter aus den Nutzdaten des SOAP-Envelopes zu einem RPC-Aufruf zusammengebaut werden. Benötigt werden: URI des Zielobjektes Methodenname Signatur der Methode (optional) Methodenparameter

SOAP: Dokumentenstruktur Transport-spezifischer Umschlag (HTTP, SMTP) SOAP-Dokument <SOAP-ENV:Envelope> <SOAP-ENV:Header> (optional) Delivery Information <SOAP-ENV:Body> Nutzdaten (payload) <SOAP-ENV:Fault> (optional) -Fehlercodes- Vorgesehen für Zusatzinformationen, die für den eigentlichen Methodenaufruf nicht benötigt werden (z.b. Aufruf-ID, Bezahlung, Authentifizierung, etc.) Im Request-Dokument: Methodenaufruf und Aufrufparameter, im Response-Dokument: Rückgabewert(e) des Methodenaufrufs Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 7

SOAP mit HTTP Beispiel (Aufruf) POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="http://www.stockquoteserver.com/stockquote"> <symbol>nesn</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Objektverwaltung höherer Ordnung (OHO) SS 2003 Methodenname Aufrufparameter Kapitel 5: Web-Services 8

Kapitel 5: Web-Services 9 SOAP mit HTTP Beispiel (Rückgabe) HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m="http://www.stockquoteserver.com/stockquote"> <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Rückgabewert

Grenzen von SOAP SOAP legt nur die Syntax der Verpackung, d.h. der Übertragung eines Aufrufs fest Aber: die Schnittstellen eines Web Services müssen dazu bekannt sein Benötigt werden also Informationen über Den Ort eines Web Service Die angebotenen Methoden Die Schnittstelle des Methodenaufrufs Aufrufparameter: Typ, Anzahl, Reihenfolge Rückgabeparameter Art des Methodenaufrufs (Request/Response, etc.) Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 10

Kapitel 5: Web-Services 11 Web Service Description Language (WSDL) WSDL: Web Service Description Language www.w3.org.tr/wsdl/ XML-basierte Service-Beschreibung Gültige Version: WSDL 1.1 (Mai 2001), beim W3C eingereicht als Teil der Web Services Activity Group aktuelle Version: WSDL 1.2 (noch nicht freigegeben) Beteiligte: Ariba, IBM, Microsoft Ziel von WSDL Implementierungsunabhängige Beschreibung der Methoden von Web-Services (operations) bzw. deren Schnittstellen Beschreibung der möglichen Einbindungen (bindings) in Transportprotokolle (im wesentlichen SOAP) Unterstützung der Verwendung von Web Service-Aufrufen aus Anwendungen (Kommunikation von Anwendung zu Anwendung)

Kapitel 5: Web-Services 12 WSDL Architektur Client Anfrage nach Services des StockQuoteServers (XML-Dokument mit Methodenspezifikation) SOAP- Request Dokument HTTP,... GetLastTradePrice HTTP WSDL- Dokument www.stockquoteserver.com Börsen- Info WSDL Server SOAP Server

Inhalt eines WSDL-Dokuments WSDL: Bestandteile Abstrakter Teil Types: Datentyp-Definitionen (unter Verwendung eines Typsystems) Message: abstrakte, typisierte Definition der zu übertragenden Nachrichteninhalte Operation: abstrakte Definition von Operationen (Methoden) des Service Port Type: abstrakte Menge von Operationen Konkreter Teil Binding: konkrete Protokoll- und Datenformat-Spezifikation für einen Port Type (d.h. eine Menge von Operationen) Port: Kombination von binding und Netzwerk-Adresse Service: Menge zusammengehörender Ports Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 13

Kapitel 5: Web-Services 14 WSDL-Beispiel (1) <?xml version="1.0"?> <definitions name="stockquote" targetnamespace="http://www.stockquoteserver.com/stockquote.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/... > <types> <schema targetnamespace="http://www.stockquoteserver.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> WSDL-interne Bezeichnung für String symbol <all> <element name="symbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </complextype> </element> </schema> </types>

Kapitel 5: Web-Services 15 WSDL-Beispiel (2) <message name="getlasttradepriceinput"> <part name="body" element="xsd1:tradepricerequest"/> </message> <message name="getlasttradepriceoutput"> <part name="body" element="xsd1:tradeprice"/> </message> Zuordnung von Parametern zu Messages (Dokumenten) <porttype name="stockquoteporttype"> Methodenspezifikation (Request- und Response- <operation name="getlasttradeprice"> Dokumente) <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype>

Kapitel 5: Web-Services 16 WSDL-Beispiel (3) <binding name="stockquotesoapbinding" type="tns:stockquoteporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation SOAP-Anbindung für Methodenaufruf soapaction="http://www.stockquoteserver.com/getlasttradeprice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="stockquoteservice"> <documentation>the best stock quote server on the web</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://www.stockquoteserver.com/stockquote"/> </port> </service> </definitions> Adresse des Service

Grenzen von WSDL WSDL gibt die komplette Syntax der Methoden eines Web Services preis Aber: die Semantik des Aufrufs ist nicht bekannt Benötigt werden also Informationen über Den Dienstanbieter (Ort, Reputation, etc.) Die Eigenschaften des aufzurufenden Service Preis, Funktionalität,... Transaktionsgarantien (!): ist der Service atomar, kann er wieder rückgängig gemacht werden, etc. Wo ist der Service bzw. dessen Beschreibung zu finden? Ist der Service gerade verfügbar? Objektverwaltung höherer Ordnung (OHO) SS 2003 Kapitel 5: Web-Services 17

Kapitel 5: Web-Services 18 UDDI UDDI: Universal Description, Discovery, and Integration www.uddi.org XML-basiertes Service-Repository Gültige Version: UDDI 3.0 (Juli 2002) Industriekonsortium mit über 15 Beteiligten (u.a. IBM, Microsoft, SAP) Ziel von UDDI: Spezifikation des Formats für die Beschreibung von Unternehmen und deren (Web) Services der API um auf diese Beschreibung zuzugreifen eines Netzes von Verzeichnissen (Repositories): wie muss das Repository implementiert werden, wie werden Daten innerhalb des Netzes von Repositories ausgetauscht, etc.

Kapitel 5: Web-Services 19 UDDI Architektur & Verwendung Client Anfrage nach Server für: Online-Aktienkurse www.stockquoteserver.com www.nyse.com www.nyse.com HTTP UDDI-Repository Austausch UDDI-Repository Service registrieren WSDL Server SOAP Server www.stockquoteserver.com

Kapitel 5: Web-Services 20 UDDI Registrierung Bestandteile der UDDI Service Registry White Pages Allgemeine Kontakt-Informationen (Adresse, Ansprechpartner, Telefonnummer des Dienstanbieters, etc.) Yellow Pages Beschreibung des Geschäftsfeldes (anhand vorgegebener Taxonomien) Green Pages Detaillierte technische Beschreibung der Web Services

Kapitel 5: Web-Services 21 UDDI: Dokumentenstruktur businessentity (Service Provider) BusinessServices (Service) bindingtemplate (Technische Beschreibung des Zugriffs) tmodel (Implementierungsunabhängig) http://www.stockquoteserver.com/stockquote.wsdl White Pages - Information zum Dienstanbieter Beschreibung der Semantik des Services (Kategorie, etc.) z.b. Art des Protokolls (Mail, Fax, HTTP, etc.) Kategorie & Referenz zu detaillierter Service- Beschreibung (WSDL) WSDL

Kapitel 5: Web-Services 22 Grenzen der Web-Services Web-Services sind einzelne und vor allem unabhängige Funktionsaufrufe Komplexe Anwendungen mit mehrerer Web-Service-Aufrufen müssen vom Client selbst definiert (und implementiert) werden Unterstützung der Modellierung von Web-Workflows : WSFL (Web Services Flow Language), legt aber keine Ausführungsumgebung fest Transaktionssemantik Web Services sind unabhängig. Ein Transaktionskontext, der mehrere Web Service-Aufrufe umspannt, ist daher nicht möglich Bei Web Service-übergreifenden Anwendungen bleibt die Atomarität dem Benutzer/Programmierer überlassen (falls Web Services eine Kompensation anbieten) Voraussetzung ist die Atomarität eines einziges Services (dies würde dann auch zu den Service-Eigenschaften gehören)