1 / 28

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

Softwareentwicklung mit .NET Teil 5 ASP.NET Web Services Dr. Ralph Zeller. Was ist ein Web Service? . Ein Web Service ist eine Komponente, die ihre Methoden über Standard Web Protokolle wie SOAP zur Verfügung stellt. Web Services Beispiele. Günstigster Online Buchhändler

leif
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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

  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)

  5. 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"? encoding="utf-8"?> <soap:Envelope xmlns: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>

  6. Web Client ASP.NET Applikationen IIS .NETFramework Betriebssystem WS Ausführungsmodell • Web Services basieren auf ASP.NET

  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 alsWSDL-Datei (Web Service Description Language) • Compile on demand

  8. Code & Syntax • WebService Direktive • Einstellungen für den ASP.NET Compiler • WebMethod Attribut • Code Deklaration Syntax • Outline • Inline (in C#) <%@ WebService Language=value Class=value %> <%@ WebService Class="MyClass.MyWebService" %> <%@ WebService Language="C#" Class="MathService" %>using System.Web.Services;public class MathService : WebService { [ WebMethod ]...

  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; }}

  10. Web ServiceBeispiel 1:FinanzServices Inline

  11. Web ServiceBeispiel 2:FinanzServices Outline

  12. Testen des Web Services • Aufruf über URL • http://localhost/Fservice.asmx • Rückgabe ist eine Testseite für Web Service

  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

  14. 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

  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

  16. WS beschreibenBeispiel 3:FService.wsdl

  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

  18. WSDL • Abstrakte Darstellung der WSDL Elemente service_1 port_C port_B service_2 message port_D port_A porttype message

  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>

  20. Web Service ClientsApplikationsmodell Web ServiceEntwickler Web ApplikationEntwickler Web Server 1 Service App .asmx .aspx Web Server 2 Service App Proxy Web Form

  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

  22. Web Forms Client Beispiel 4:Darlehensrechner

  23. Win Forms Client Beispiel 5:Darlehensrechner

  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>

  25. UDDIUniversal 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

  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)

  27. UDDI 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

  28. Uff... Fragen?

More Related