Title: ASP.NET Web Services
1Softwareentwicklung mit .NET Teil 4 ASP.NET Web
Services Dr. Ralph Zeller
2Was ist ein Web Service?
- Ein Web Service ist eine Komponente, die ihre
Methoden über Standard Web Protokolle wie SOAP
zur Verfügung stellt
3Web 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
4SOAPSimple 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-übergreifen
des Marshaling von Daten/Objekten)
5SOAP Beispiel
POST /FService.asmx HTTP/1.1 Host
localhost Content-Type text/xml
charsetutf-8 Content-Length length SOAPAction
"http//tempuri.org/Rueckzahlungsrate" lt?xml
version"1.0"?gt ltsoapEnvelope xmlnsxsi"http//w
ww.w3.org/2000/10/XMLSchema-instance"
xmlnsxsd"http//www.w3.org/2000/10/XMLSchema" x
mlnssoap"http//schemas.xmlsoap.org/soap/envelop
e"gt ltsoapBodygt ltRueckzahlungsrate
xmlns"http//tempuri.org/"gt
ltstrKapitalgtstringlt/strKapitalgt
ltstrZinssatzgtstringlt/strZinssatzgt
ltstrMonategtstringlt/strMonategt
lt/Rueckzahlungsrategt lt/soapBodygt lt/soapEnvelop
egt
6WS Ausführungsmodell
- Web Services basieren auf ASP.NET
7Web 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 alsWSDL-Datei
(Web Service Description Language) - Compile on demand
8Code Syntax
- WebService Direktive
- Einstellungen für den ASP.NET Compiler
- WebMethod Attribut
- Code Deklaration Syntax
- Outline
- Inline (in C)
lt_at_ WebService Languagevalue Classvalue gt
lt_at_ WebService Class"MyClass.MyWebService" gt
lt_at_ WebService Language"C" Class"MathService"
gtusing System.Web.Servicespublic class
MathService WebService WebMethod ...
9Beispiel .asmx Datei
lt_at_ WebService Language"C" Class"MathService"
gtusing Systemusing System.Web.Servicespubl
ic 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
10Web ServiceBeispiel 1 FinanzServices
11Testen des Web Services
- Aufruf über URL
- http//localhost/Fservice.asmx
- Rückgabe ist eine Testseite für Web Service
12Web 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
13Aufruf über GET POST
- http//server/appl/service.asmx/method?paramvalue
- 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
14Aufruf ü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
15WS AufrufoptionenBeispiel 2 FService.asmx testen
16Web 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)
17WSDLWeb 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
18WSDL
- Abstrakte Darstellung der WSDL Elemente
service_1
port_C
port_B
service_2
message
port_D
port_A
message
porttype
19Beispiel WSDL Datei
ltdefinitions name"serviceName"gt ltimport
namespace"http//namespacePath"
location"http//path/fileName.wsdl"gt ltportType
name"portNameType"gt ltoperation
name"opName"gt ltinput message"msgNameInput"
/gt ltoutput message"msgNameOutput" /gt
lt/operationgt lt/portTypegt ltbinding
name"bindingName"gt ltsoapoperation
soapAction"http//..." /gt lt/bindinggt ltservice
name"serviceName"gt ltport name"portName"
binding"bindingName"gt ltsoapaddress
location"http//..." /gt lt/portgt
lt/servicegtlt/definitionsgt
20Web Service ClientsApplikationsmodell
Web ServiceEntwickler
Web ApplikationEntwickler
Web Server 1
Service App
.asmx
.aspx
Web Server 2
Service App
Proxy
Web Form
21WS 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
22Web Forms Client Beispiel 3 Hypothekar Rechner
23Win Forms Client Beispiel 4 Hypothekar Rechner
24WS 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
lt?xml version"1.0"?gt ltdiscovery
xmlns"http//schemas.xmlsoap.org/disco/"gt
ltcontractRef ref"http//localhost/FService.asmx?s
dl" docRef"http//localhost/FService.asmx"
xmlns"http//schemas.xmlsoap.org/disco/scl/"/gt lt/
discoverygt
25UDDIUniversal Discovery, Description and
Integration
- Globale Datenbank über Unternehmungen
- Wer bietet was an?
- Von 30 Unternehmen getragen
- IBM, Ariba, Microsoftbetreiben EINE verteilte
Datenbank - SAP, Oracle, Sun, etc.
- http//www.uddi.org
26UDDI 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)
27UDDI Beispiel
- DoAll hat Web-Shop Web Services
(Produktkatalog) - DoAll ist in UDDI Registry eingetragen
- Marketplace Search Engines kontaktieren UDDI
- 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
28Fragen?
29Glossar
- MSXML Microsoft XML-Komponente
- IIS Internet Information Server Der Webserver
von Microsoft - ISAPI- Internet Server API Mit dieser
Schnittstelle können Erweiterungen für den IIS
entwickelt werden. Solche Erweiterungen können
nur mit C programmiert werden. - SDL - Service Description Language XML-Dialekt
zur Beschreibung der Schnittstellen und Methoden
eines Webservices (veraltet) - SOAP - Simple Object Access Protocol Protokoll
zur plattformübergreifender Anwendungskommunikatio
n - SOAP Toolkit SOAP Implementierung von Microsoft
für Windows DNA Anwendungen - Web Services Komponenten, die ihre Methoden über
ein XML-basiertes Interface für Internet-Clients
zur Verfügung stellen - WSDL - Web Service Description Language wie SDL,
nur aktueller Quasi-Standard - XML - eXtensible Markup Language Textbasiertes,
allgemeines Datenformat, das Grundregeln für den
Aufbau eigener Datenformate definiert. - UDDI - Universal Discovery, Description and
Integration Globale Datenbank über
Unternehmungen die u.a. Informationen über Web
Services enthält.