1 softwareentwicklung mit.net teil 4 asp.net web services dr. ralph zeller
TRANSCRIPT
![Page 1: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/1.jpg)
1
Softwareentwicklung mit .NETTeil 4
ASP.NETWeb Services
Dr. Ralph Zeller
![Page 2: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/2.jpg)
2
Was ist ein Web Service? Ein Web Service ist eine Komponente, die
ihre Methoden über Standard Web Protokolle wie SOAP zur Verfügung stellt
![Page 3: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/3.jpg)
3
Web Services Beispiele
Günstigster Online Buchhändler
• Input ist ISBN Nummer
• Web Service durchsucht Web Seiten und gibt Link auf günstigsten Händler zurück
Lieferverfolgung bei Buchbestellung
• Buchhändler liefert überPaketservice aus
• Status wird über die Seite des Buchhändlers abgefragt
• Web Service holt Status-informationen des Paket-services
![Page 4: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/4.jpg)
4
SOAPSimple Object Access Protocol
Mechanismus zum Austausch von strukturierter und typisierter Information zwischen Kommunikationsendpunkten im Internet auf Basis von XML
HTTP, SMTP, ... als Transportprotokoll
XML zur Datenkapselung
Spezifikation enthält• SOAP Envelope (für Framework)
• SOAP Encoding (optional, für plattform-übergreifendes Marshaling von Daten/Objekten)
![Page 5: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/5.jpg)
5
SOAP BeispielPOST /FService.asmx HTTP/1.1Host: localhostContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://tempuri.org/Rueckzahlungsrate"
<?xml version="1.0"?><soap:Envelopexmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"> <soap:Body> <Rueckzahlungsrate xmlns="http://tempuri.org/"> <strKapital>string</strKapital> <strZinssatz>string</strZinssatz> <strMonate>string</strMonate> </Rueckzahlungsrate> </soap:Body></soap:Envelope>
POST /FService.asmx HTTP/1.1Host: localhostContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://tempuri.org/Rueckzahlungsrate"
<?xml version="1.0"?><soap:Envelopexmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"> <soap:Body> <Rueckzahlungsrate xmlns="http://tempuri.org/"> <strKapital>string</strKapital> <strZinssatz>string</strZinssatz> <strMonate>string</strMonate> </Rueckzahlungsrate> </soap:Body></soap:Envelope>
![Page 6: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/6.jpg)
6
WS Ausführungsmodell
Web Client
Betriebssystem
ASP.NETApplikationen
IIS
.NETFramework
Web Services basieren auf ASP.NET
![Page 7: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/7.jpg)
7
Web Service Prog.modell
Erstellen Sie eine .asmx Datei, die eine Klasse mit den Methoden enthält, die Sie zur Verfügung stellen möchten
Das Hinzufügen des Attributs WebMethod zu einer Public-Methode macht sie automatisch zu einem Web Service
ASP.NET macht den "Rest"• Erzeugen der Service-Beschreibung als
WSDL-Datei (Web Service Description Language)
• Compile on demand
![Page 8: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/8.jpg)
8
Code & Syntax
<%@ WebService Language="C#" Class="MathService" %>using System.Web.Services;public class MathService : WebService { [ WebMethod ]...
<%@ WebService Language="C#" Class="MathService" %>using System.Web.Services;public class MathService : WebService { [ WebMethod ]...
WebService Direktive
• Einstellungen für den ASP.NET Compiler
WebMethod Attribut
Code Deklaration Syntax
• Outline
• Inline (in C#)
<%@ WebService Language=value Class=value %><%@ WebService Language=value Class=value %>
<%@ WebService Class="MyClass.MyWebService" %><%@ WebService Class="MyClass.MyWebService" %>
![Page 9: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/9.jpg)
9
Beispiel .asmx Datei<%@ WebService Language="C#" Class="MathService" %>
using System;using System.Web.Services;
public class MathService : WebService{ [WebMethod] public int Subtract(int a, int b) { return a - b; }
public int Subtract_vs(int a, int b) { return b - a; }}
<%@ WebService Language="C#" Class="MathService" %>
using System;using System.Web.Services;
public class MathService : WebService{ [WebMethod] public int Subtract(int a, int b) { return a - b; }
public int Subtract_vs(int a, int b) { return b - a; }}
![Page 10: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/10.jpg)
10
Web ServiceBeispiel 1: FinanzServices
![Page 11: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/11.jpg)
11
Testen des Web Services Aufruf über URL
• http://localhost/Fservice.asmx
Rückgabe ist eine Testseite für Web Service
![Page 12: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/12.jpg)
12
Web Service aufrufen
Aufruf über URL
• HTTP Request
Protokolle
• HTTP-GET
• Methodenname und Parameter in der URL
• HTTP-POST
• Methodenname und Parameter im HTTP Header
• HTTP-SOAP
• Adresse und Parameter in XML Format
![Page 13: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/13.jpg)
13
Aufruf über GET & POSThttp://server/appl/service.asmx/method?param=value
Standard HTTP-GET
• Methodenname = steht im Pfad
• Argumente = URL query string
• Mehrere Parameter möglich
• Nur primitive .NET Datentypen möglich
• Rückgabe ist ein XML Dokument
• alle .NET Datentypen möglich
HTTP-POST
• Ähnlich GET
• Argumente stehen im HTTP Header
![Page 14: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/14.jpg)
14
Aufruf über SOAP
XML Grammatik für
• Methodenname, Parameter und Rückgabewerte
Unterstützt alle Standard .NET Datentypen und Klassen als value
• Zusätzlich: Klassen, Structs, Datasets
Marshalling von Klassen und Structs
• Serialisierung in XML Format
![Page 15: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/15.jpg)
15
WS AufrufoptionenBeispiel 2: FService.asmx testen
![Page 16: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/16.jpg)
16
Web Service erforschen
Aufruf ohne Methodennamen und Parameter
• HTML Beschreibung des Web Service, Methoden, Parameter und Protokolle
Aufruf mit Parameter “?WSDL”
• Formale Beschreibung des Web Service als WSDL Datei
• Format ist XML
• Input für WebServiceUtil.exe (Beta1) bzw. WSDL.exe (Beta2)
![Page 17: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/17.jpg)
17
WSDLWeb Services Description Language
Öffentliche Beschreibung eines Web Services in XML• WSDL Vertrag
Grundelemente von WSDL• Services, die mehrere Ports beinhalten
• Über Ports werden Messages geschickt
• Jeder Port enthält Adress- und Bindinginfos
• Binding spezifiziert das Datenformat und Protokolldetails
• PortTypes definiert die Befehle, die über einen Port geschickt werden können
![Page 18: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/18.jpg)
18
WSDL
service_2
service_1
message
port_Aport_D
porttype
port_Cport_B
message
Abstrakte Darstellung der WSDL Elemente
![Page 19: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/19.jpg)
19
Beispiel WSDL Datei<definitions name="serviceName"> <import namespace="http://namespacePath" location="http://path/fileName.wsdl">
<portType name="portNameType"> <operation name="opName"> <input message="msgNameInput" /> <output message="msgNameOutput" /> </operation> </portType>
<binding name="bindingName"> <soap:operation soapAction="http://..." /> </binding>
<service name="serviceName"> <port name="portName" binding="bindingName"> <soap:address location="http://..." /> </port> </service></definitions>
<definitions name="serviceName"> <import namespace="http://namespacePath" location="http://path/fileName.wsdl">
<portType name="portNameType"> <operation name="opName"> <input message="msgNameInput" /> <output message="msgNameOutput" /> </operation> </portType>
<binding name="bindingName"> <soap:operation soapAction="http://..." /> </binding>
<service name="serviceName"> <port name="portName" binding="bindingName"> <soap:address location="http://..." /> </port> </service></definitions>
![Page 20: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/20.jpg)
20
Web ServiceEntwickler
Web ApplikationEntwickler
Web Server 1
Service App.asmx .aspx
Web Server 2
Service App
Proxy Web Form
Web Service ClientsApplikationsmodell
![Page 21: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/21.jpg)
21
WS Clients entwickeln
Proxy Klasse generieren
• WebServiceUtil.exe in Beta1
• WSDL.exe in Beta2
Input
• WSDL Datei
• Sprache (C#, VB, JScript)
• Protokoll (GET, POST, SOAP)
Output
• Source Datei mit Proxy Klasse und Code für Aufruf und Marshalling
![Page 22: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/22.jpg)
22
Web Forms Client Beispiel 3: Hypothekar Rechner
![Page 23: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/23.jpg)
23
Win Forms Client Beispiel 4: Hypothekar Rechner
![Page 24: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/24.jpg)
24
WS veröffentlichen .disco File
• Wird durch GET Parameter ?disco generiert
http://localhost/Fservice.asmx?disco
• enthält Link auf SDL File eines Web Services
• XML Format
UDDI
• Globales Verzeichnis für Web Services
<?xml version="1.0"?><discovery xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://localhost/FService.asmx?sdl" docRef="http://localhost/FService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/"/></discovery>
<?xml version="1.0"?><discovery xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://localhost/FService.asmx?sdl" docRef="http://localhost/FService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/"/></discovery>
![Page 25: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/25.jpg)
25
UDDIUniversal Discovery, Description and Integration
Globale Datenbank über Unternehmungen
Wer bietet was an?
Von 30+ Unternehmen getragen • IBM, Ariba, Microsoft
betreiben EINE verteilte Datenbank
• SAP, Oracle, Sun, etc.
http://www.uddi.org
![Page 26: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/26.jpg)
26
UDDI Benutzung Daten in XML beschrieben
• White pages (Name, Kontakt)
• Yellow pages (Welche Branche)
• Green pages (Binding Information – Wie kannKunde Unternehmen integrieren?URL, Telefon, Web Services etc.)
Zugriff auf Registry via Web / SOAP
Ermöglicht strukturierte Suche und Integration! • Menschen können suchen
• Software kann suchen
• Dynamische Integration (von z.B.: Web Services)
![Page 27: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/27.jpg)
27
UDDI Beispiel
1. DoAll hat Web-Shop + Web Services (Produktkatalog)
2. DoAll ist in UDDI Registry eingetragen
3. Marketplace + Search Engines kontaktieren UDDI
4. Konsument besucht Marketplace• Sucht nach Produkten (z.B.: Sägeblatt von DoAll)
• Marketplace versteht Web Service von DoAll
• Produktkatalog wird von Marketplace dynamisch dargestellt
Dynamische Integration verschiedener Systeme
http://www.doall.com, http://www.bcentral.com
![Page 28: 1 Softwareentwicklung mit.NET Teil 4 ASP.NET Web Services Dr. Ralph Zeller](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d7149795902118c436f/html5/thumbnails/28.jpg)
28
Fragen?
Uff...