+ All Categories
Home > Documents > 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

Date post: 05-Apr-2015
Category:
Upload: ada-hendrich
View: 103 times
Download: 0 times
Share this document with a friend
28
1 oftwareentwicklung mit .NE eil 5 SP.NET eb Services r. Ralph Zeller
Transcript
Page 1: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

1

Softwareentwicklung mit .NETTeil 5

ASP.NETWeb Services

Dr. Ralph Zeller

Page 2: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

4

SOAPSimple Object Access Protocol

Mechanismus zum Austausch von strukturierter und typisierter Information zwischen Kommunikationsendpunkten im Internet auf Basis von XML

HTTP 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 5 ASP.NET Web Services Dr. Ralph Zeller.

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"? encoding="utf-8"?><soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/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"? encoding="utf-8"?><soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/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 5 ASP.NET Web Services Dr. Ralph Zeller.

6

WS Ausführungsmodell

Web Client

Betriebssystem

ASP.NETApplikationen

IIS

.NETFramework

Web Services basieren auf ASP.NET

Page 7: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

10

Web ServiceBeispiel 1: FinanzServices Inline

Page 11: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

11

Web ServiceBeispiel 2: FinanzServices Outline

Page 12: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

12

Testen des Web Services Aufruf über URL

• http://localhost/Fservice.asmx

Rückgabe ist eine Testseite für Web Service

Page 13: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

13

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 14: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

14

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 15: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

15

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 16: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

16

WS beschreibenBeispiel 3: FService.wsdl

Page 17: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

17

WSDLWeb Services Description Language

Öffentliche Beschreibung eines Web Services in XML• .wsdl File mit disco.exe oder

http://localhost/Fservice.asmx?wsdl generieren

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

21

WS Clients entwickeln

Proxy Klasse generieren

• WSDL.exe

Input

• WSDL Datei oder Link auf Web Service

• 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 5 ASP.NET Web Services Dr. Ralph Zeller.

22

Web Forms Client Beispiel 4: Darlehensrechner

Page 23: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

23

Win Forms Client Beispiel 5: Darlehensrechner

Page 24: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

24

WS veröffentlichen .disco File

• Wird mit disco.exe oder

http://localhost/Fservice.asmx?disco generiert

• enthält Link auf WSDL File eines Web Services

• XML Format

UDDI

• Globales Verzeichnis für Web Services

<?xml version="1.0"? encoding="utf-8"?><discovery xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://localhost/FService.asmx?wsdl" docRef="http://localhost/FService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/"/></discovery>

<?xml version="1.0"? encoding="utf-8"?><discovery xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://localhost/FService.asmx?wsdl" docRef="http://localhost/FService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/"/></discovery>

Page 25: 1 Softwareentwicklung mit.NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

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 5 ASP.NET Web Services Dr. Ralph Zeller.

28

Fragen?

Uff...


Recommended