ASP.NET Web Services

Download Report

Transcript ASP.NET Web Services

Softwareentwicklung mit .NET
Teil 4
ASP.NET
Web Services
Dr. Ralph Zeller
1
Was ist ein Web Service?

Ein Web Service ist eine Komponente, die
ihre Methoden über Standard Web
Protokolle wie SOAP zur Verfügung stellt
2
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 über
Paketservice aus
Status wird über die Seite
des Buchhändlers abgefragt
Web Service holt Statusinformationen des Paketservices
3
SOAP
Simple 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)
4
SOAP Beispiel
POST /FService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Rueckzahlungsrate"
<?xml version="1.0"?>
<soap:Envelope
xmlns: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>
5
WS Ausführungsmodell

Web Services basieren auf ASP.NET
Web Client
IIS
ASP.NET
Applikationen
.NET
Framework
Betriebssystem
6
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
7
Code & Syntax

WebService Direktive
•
Einstellungen für den ASP.NET Compiler
<%@ WebService Language=value Class=value %>

WebMethod Attribut

Code Deklaration Syntax
•
•
Outline
<%@ WebService Class="MyClass.MyWebService" %>
Inline (in C#)
<%@ WebService Language="C#" Class="MathService" %>
using System.Web.Services;
public class MathService : WebService {
[ WebMethod ]
...
8
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;
}
}
9
Web Service
Beispiel 1: FinanzServices
10
Testen des Web Services


Aufruf über URL
•
http://localhost/Fservice.asmx
Rückgabe ist eine Testseite für Web Service
11
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
12
Aufruf über GET & POST
http://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
13
Aufruf über SOAP


XML Grammatik für
•
Unterstützt alle Standard .NET Datentypen
und Klassen als value
•

Methodenname, Parameter und Rückgabewerte
Zusätzlich: Klassen, Structs, Datasets
Marshalling von Klassen und Structs
•
Serialisierung in XML Format
14
WS Aufrufoptionen
Beispiel 2: FService.asmx testen
15
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)
16
WSDL
Web 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
17
WSDL

Abstrakte Darstellung der WSDL Elemente
service_1
port_C
port_B
service_2
message
port_D
port_A
message
port
type
18
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>
19
Web Service Clients
Applikationsmodell
Web Service
Entwickler
Web Applikation
Entwickler
Web Server 1
.asmx
Service App
.aspx
Web Server 2
Proxy
Web Form
Service App
20
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
21
Web Forms Client
Beispiel 3: Hypothekar Rechner
22
Win Forms Client
Beispiel 4: Hypothekar Rechner
23
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
<?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>

UDDI
•
Globales Verzeichnis für Web Services
24
UDDI
Universal 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
25
UDDI Benutzung

Daten in XML beschrieben
•
•
•
White pages (Name, Kontakt)
Yellow pages (Welche Branche)
Green pages (Binding Information – Wie kann
Kunde 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)
26
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
27
Fragen?
Uff...
28