webservices in .net – ein neues paradigma für das internet · software-wiederverwendung •...

28
1 s © T. Wieland, 2001.Alle Rechte vorbehalten . C O R P O R A T E T E C H N O L O G Y WebServices in .NET – ein neues Paradigma für das Internet Dr. Thomas Wieland Siemens AG, Corporate Technology XMLOne, München 2001 s C O R P O R A T E T E C H N O L O G Y © T. Wieland, 2001.Alle Rechte vorbehalten . 2 Agenda Paradigmenwechsel durch WebServices SOAP und seine Grundlagen Was sind WebServices? WSDL (Web service description language) für die Beschreibung von Webdiensten UDDI als ein universelles Verzeichnis von Webdiensten Entwickeln von WebServices mit Microsoft .NET Framework und VS.NET Design von WebService-Applikationen Szenarien für den Einsatz von WebServices

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

1

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

WebServices in .NET – ein neues Paradigma für das Internet

Dr. Thomas WielandSiemens AG, Corporate Technology

XMLOne, München 2001

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .2

Agenda

• Paradigmenwechsel durch WebServices• SOAP und seine Grundlagen• Was sind WebServices?• WSDL (Web service description language) für die Beschreibung von

Webdiensten• UDDI als ein universelles Verzeichnis von Webdiensten• Entwickeln von WebServices mit Microsoft .NET Framework und VS.NET• Design von WebService-Applikationen• Szenarien für den Einsatz von WebServices

Page 2: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

2

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Zeit für einen Paradigmenwechsel

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .4

Drei Sichten für den Wechsel

Web-Seite WebService

Einseitige Nutzung

des WWW

Middleware für

Internet-Anwendungen

Software-

Wiederverwendung

Page 3: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

3

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .5

Einseitige Nutzung des WWW

• Millionen von Webservern weltweit, unzählige Informationen verfügbar• Aber rein grafische Schnittstelle

• Alles ist auf einen menschlichen Benutzer zugeschnitten

• Bei den Daten, die den Client erreichen, sind Inhalt und Layout nicht getrennt, das Layout ändert sich häufig

• Informationen auf Webservern kann fast nicht durch Software ausgewertet werden

• B2B-Datenaustausch scheitert oft an unterschiedlichen Formaten und Prozessen

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .6

Bisherige Middleware-Ansätze sind unzureichend für Web-Umgebungen

• Reichhaltige Kommunikation (Objekte)• Sehr verbindungsorientiert (viele Pakete werden ausgetauscht, um die Sitzung

zu starten/aufrechtzuerhalten)• Teilweise nicht auf allen Plattformen verfügbar• Verwendet proprietäre Sicherheitseinstellungen• Interagiert fast nicht mit anderer Middleware (CORBA, RMI etc.)• Arbeitet nicht über Domänen- oder Firewallgrenzen hinweg

DCOM RMI CORBA

Page 4: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

4

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .7

Software-Wiederverwendung

• Ursprünglich lokal in Bibliotheken• Später als Komponenten, teilweise durch Middleware verbunden

• Java-Beans

• COM(+)-Komponenten

• CCM bei CORBA

• Heute vorwiegend in Form von Frameworks• Top-down-Ansatz

• Framework gibt “Spielregeln” vor

• Ziel: Dynamische Einbindung von entfernten Komponenten• Infrastrukturaufgaben nur an zentraler Stelle bereitgestellt und gewartet

• Komponenten nicht installieren, nur die URL angeben

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

SOAP und seine Grundlagen

Page 5: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

5

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .9

Das klassische Problem bei verteilten Rechnern

• Server und Client müssen sich verstehen• Implementierungsdetails beeinträchtigen die Kommunikation

• Sicherheitseinstellungen und –modelle (Firewalls) verhindern Interoperabilität

• Nur dieselbe Plattform kann miteinander „sprechen“ (COM mit COM,EJB mit EJB, ORB mit ORB)

• Die Formate für Methodenaufrufe sind hochgradig an das darunter liegende Komponentenmodell gebunden ( COM, CORBA etc.)

• Die Kommunikationsprotokolle (DCOM, RMI, IIOP) sind untereinander und mit dem Internet inkompatibel.

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .10

Ideen

• Firewalls blockieren COM/IIOP-Anfragen, sind aber normalerweise für HTTP-Anfragen offenðSetze auf HTTP als Transportprotokoll

• Wir müssen zudem ein Datenformat einführen, das selbst-beschreibend sein muss, um wirklich interoperabel zu sein.ðDefiniere das Datenformat mit XML

Die Lösung: Simple Object Access Protocol SOAP§Verlässt sich auf HTTP für die Kommunikation§Selbstbeschreibendes einfaches XML-basiertes

Nachrichtenformat§Arbeitet zusammen mit:

•Jedem Betriebssystem•Jeder Programmiersprache•Jeder Plattform

Page 6: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

6

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .11

SOAP Nachrichten

SOAP Message

SOAP Envelope

SOAP Header

SOAP Body

Message Name & Data

Headers

Protocol Headers

XMLXML--codiertercodierter SOAPSOAPNachrichtennameNachrichtenname undund DatenDaten

<Body><Body> enthältenthältNachrichtennameNachrichtenname undund DatenDaten

IndividuelleIndividuelle HeaderHeader

<Header><Header> umfasstumfasst die Headerdie Header

<Envelope><Envelope> umfasst Nachrichteninhaltumfasst Nachrichteninhalt

Standard Protocol (HTTP, SMTP, etc.)Standard Protocol (HTTP, SMTP, etc.)und SOAP Headerund SOAP Header

DieDie gesamtegesamte SOAPSOAP--NachrichtNachricht

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .12

Kommunikation mit SOAP

• SOAP definiert zwei Arten von Nachrichten: Anfragen und Antworten. • Anfragen enthalten das angesprochene Ziel sowie die in- und die in/out-Parameter.

• Antworten umfassen einen Fehlercode oder das Resultat zusammen mit den in/out-und den out-Parametern.

• SOAP ist grundsätzlich nicht auf HTTP beschränkt, jedes Übertragungs-protokoll (z.B. SMTP) kann verwendet werden.

• SOAP erfindet nichts Neues, wo es bereits einen Standard gibt. Beispielsweise wird SSL bzw. HTTPS für Verschlüsselung benutzt.

• Durch die Verwendung von SOAP können Webserver so erweitert werden, dass sie das „Broker“-Architekturmuster voll unterstützen.

• SOAP kann unterschiedliche Infrastrukturen überbrücken und so Anwendungen miteinander verbinden.

• SOAP ist ein W3C working draft (XML-Protocol).

Page 7: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

7

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .13

Beispiel für SOAP

POST /BookServer HTTP/1.1Host: www.qwickbooks.comContent -Type: text/xmlContent -Length: nnnnSOAPMethodName: Some-Namespace-URI#PlaceOrder

<SOAP:Envelope xmlns :SOAP="urn:schemas-xmlsoap-org:soap.v1”><SOAP:Body>

<m:PlaceOrder xmlns:m="Some-Namespace-URI”><Title>XML companion</Title><Author>Neil Bradley</Author>

</m:PlaceOrder></SOAP:Body>

</SOAP:Envelope>

boolean PlaceOrder([in] Title string, [in] Author string,

[out] DaysToDelivery integer);

Die Methode

wird übertragen als

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .14

Benutzung von SOAP

• Komplexere Datenstrukturen werden ebenfalls in XML ausgedrückt• Im Normalfall sollte der Entwickler nichts von SOAP bemerken

• Implementierungen übernehmen die Serialisierung, verbergen die Details

• Umsetzung auf Programmiersprachen einfach, daher viele Lösungen verfügbar

• SOAP ist auch für Embedded Systeme einsetzbar

Proxy

XML-Parser

Application ServerWeb-Server

XML-Parser

SOAP

HTTP DCOM,IIOP, RMI

Client

Page 8: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

8

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .15

SOAP Toolkit 2.0

• SDK für die Verwendung von SOAP-Kommunikation in Projekten mit Visual Studio® 6.0

• Unterstützt den WSDL 1.1-Standard• ASP-Seiten stellen äußere Schnittstellen (Fassaden) für COM-Objekte dar• Assistenten erzeugen Schnittstellenbeschreibungen aus COM-Servern• Servercode besteht aus

• COM-DLL der eigentlichen Komponente

• WSDL-Datei mit Beschreibung der Schnittstelle

• Eine ASP-Seite für die eintreffenden SOAP-Anfragen

• Client benötigt nur Initialisierung des COM-Objekts und Aufruf:set soapclient = CreateObject("MSSOAP.SoapClient") Call

soapclient.mssoapinit("http://localhost/Beispiel1/Beispiel1.wsdl",

“Beispiel1", “Beispiel1SoapPort")

wscript.echo soapclient.EchoString(“Hello World!")

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Was ist ein WebService?

Page 9: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

9

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .17

WebServices

• Ein WebService ist eine Anwendung, die ihre Methoden über eine Web-Schnittstelle nach außen zur Verfügung stellt.

• Informationen, die ein Webserver hat, können so von anderen Programmen genutzt werden.

• Die Methoden eines WebService werden mittels SOAP aufgerufen.

SupplierStatus

ProductionControl

SOAP

Intranet

Internet

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .18

WebServices für Entwickler

• Ein WebService kann als dynamisch angesprochener Baustein (Infrastruktur-oder Business-Logik-Komponente) einer Anwendung verwendet werden

• Komponenten müssen nicht mehr lokal erreichbar sein

• Installation fällt weg

• WebServices können in vielen Programmiersprachen implementiert s ein• Der Client merkt die Art der Implementierung nicht

• Interoperabilität zwischen Programmiersprachen und Plattformen

• WebServices können Basis einer Vielzahl von B2x-Applikationen werden• Herausforderungen für den Entwickler:

• Das Programmiermodell

• Verständnis für Protokolle und Serialisierung

• Auffinden von Services

• …

Page 10: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

10

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .19

WebServices und Objektorientierung

• WebServices haben zunächst mit Objektorientierung nichts zu tun • Kein zugrunde liegendes Objektmodell auf Implementierungsebene (wie bei CORBA

oder COM)

• SOAP-Protokoll ist verbindungslos • Client hat keinerlei Anhaltspunkt, ob er bei zwei Aufrufen dasselbe Objekt erreicht

• WebService kann verschiedene Clients ohne Zusatzaufwand nicht auseinanderhalten

• WebService eher wie ein Modul • Fasst verschiedene Funktionen in einem gemeinsamen Container zusammen

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .20

Demo 1: Ein einfacher Web-Service mit .NET

Wir untersuchen• Wie baut man einen einfachen WebService mit C#?

• Wie greift man mit dem Browser darauf zu?• Wie wird ein WebService beschrieben?

Page 11: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

11

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Die Web Service Description Language WSDL

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .22

Die Familie der SOAP-Protokolle

XML Namespaces

SOAP

Anwendungsprotokolle für Sicherheit, QoS,Transaktionen, …

Übertragungsformat

Schemas

WSDL

Beschreibung

Orchestration

Auffindung

Disco

UDDI

Page 12: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

12

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .23

Beschreibung eines WebService

• Der Benutzer eines WebService muss wissen• Welche Methoden werden angeboten?

• Welche Parameter erwarten die Methoden (einschl. der Datentypen)?

• Welche Werte liefern sie zurück?

• Ein WebService muss diese Informationen zurückliefern• Ähnlich einer Typbibliothek bei COModer einer IDL-Datei bei CORBA

• Bisher hatten die Hersteller unterschiedliche Standards

WSDL: das neue Standardformat für dieBeschreibung von XML-basierten Diensten im

Netz• Entscheidend für die Kommunikation zwischen WebServices• Es ist eine Obermenge des SDL aus .NET Beta 1• Wird von IBM und Microsoftforciert und vielen anderen unterstützt• Ist Bestandteil von .NET Beta 2, SOAP Toolkit 2.0 und anderen MS-

Produkten

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .24

WSDL: Web Service Description Language

• WSDL enthält alle wesentlichen Informationen, z.B.• die Syntax des Service

• die Bindung an ein bestimmtes Netzprotokoll

• die Festlegung des Übertragungsformats

• die Zuordnung zu bestimmten Internetadressen (URIs)

• Der Client greift zur Compile-Zeit darauf zu und hinterlegt eine lokale Kopie• Aber: Nachfrage nach neueren Versionen

• Auch dynamische Einbindung neuer Services möglich

• Probleme: • WSDL definiert keine Bindung an eine Programmiersprache!

• Keine Informationen zur Semantik von Parametern!

Page 13: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

13

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .25

Bestandteile der WSDL

• Port• konkrete Netzadresse eines WebService, also einschließlich URL und

Kommunikationsport

• Service• Zusammenfassung mehrerer Ports

• Definiert den physikalische Ort eines Endpunktes

• Message• Format für eine einzelne Übertragung

• Aufruf und Antwort sind getrennte Nachrichten

• PortType• Gruppiert Nachrichten zu logischen Operationen

• Binding• Verbindet PortType mit einer Implementierung (normalerweise SOAP)

• Enthält die konkrete Schnittstelle des Dienstes

• Ggf. Datentypdefinitionen für die Parameter (als XSchema)

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .26

WSDL – Message und PortType

<message name="CelsiusToFahrenheitRequest"><part name="Celsius" type="xsd:double" />

</message><message name="CelsiusToFahrenheitResponse"><part name="Return" type="xsd:double" />

</message><portType name="Temperature.ctemperaturePortType"><operation name="CelsiusToFahrenheit"><input message="tns:CelsiusToFahrenheitRequest" /> <output message="tns:CelsiusToFahrenheitResponse" />

</operation></portType>

Page 14: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

14

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .27

WSDL – Binding and Service

<binding name="Temperature.ctemperaturebinding"type="tns:Temperature.ctemperaturePortType">

<soap:binding style="rpc"transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="CelsiusToFahrenheit"><soap:operation soapAction="http://…" />

<input><soap:body … />

</input><output><soap:body … />

</output></operation>

</binding><service name="Temperature.ctemperatureService"><port name="Temperature.ctemperaturePort" binding="tns:Temperature.ctemperaturebinding"><soap:address

location="http://localhost/converter.asmx" />

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .28

Werkzeuge

WebServiceUtil.exe• Bestandteil von .NET Beta 1• Erzeugt Proxy-Code aus SDL

• Strengtypisierte Klassen

• Unterstützung auch asynchroner Aufrufe

• Erzeugt Jscript, C# oder VB7

• Kann außerdem generieren• SDL-Datei aus einer gegebenen .NET-

Klasse

• Gerüst einer Serverimplementierung aus

einer SDL-Beschreibung

WSDL.exe• Kommt mit .NET Beta 2• Erzeugt Proxy-Code aus WSDL 1.1

• Strengtypisierte Klassen

• Unterstützung auch asynchroner Aufrufe

• Erzeugt Jscript, C# oder VB7

• Kann außerdem generieren• WSDL-Datei aus einer gegebenen .NET-

Klasse

• Gerüst einer Serverimplementierung aus

einer WSDL-Beschreibung

Page 15: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

15

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .29

Demo 2

Wir untersuchen• Was liefern die WebService-Tools?

• Wie sieht der erzeugte Code für Client-Proxys aus ?• Wie macht man aus einer Beschreibung das Server-Gerüst?

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .30

DISCO

• Microsoft-spezifische Technologie• Unterstützt das Auffinden von Web Services• Listet alle verfügbaren (W)SDL-Dateien auf, d.h. alle WebServices auf einem

Server• Gibt die URLs zurück

• DISCO-Dokumente können Verweise auf andere Dokumente enthalten• lokal oder auf anderen Servern

• kann den Verzeichnisbaum des Servers dynamisch durchsuchen

• WebServiceUtil.exe kann mit DISCO nach WebServices suchen

Page 16: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

16

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .31

Demo 3

Wir untersuchen• Wie erhält man DISCO-Beschreibungen?

• Wie sieht das DISCO-Format aus?

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

UDDI als ein universelles Verzeichnis von Webdiensten

Page 17: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

17

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .33

Was ist UDDI?

• UDDI = Universal Description, Discovery and Integration• Globales Verzeichnis für Unternehmen

• Darunter auch Verzeichnis für WebServices (ein “Yahoo!” für Web Services)

• Erlaubt es, nach Services zu browsen oder gezielt nach einem bestimmten Dienst zu suchen

• Herstellerunabhängiger Standard (vorangetrieben von Microsoft, IBMundAriba)

• http://www.uddi.org

• http://uddi.microsoft.com

• Verwendungsweise• Anbieter registrieren ihr Unternehmen mit schematisierten Angaben und ihre

Dienstangebote (Web-Sites, WebServices)

• Interessenten können nach Namen, Service-Typ, verschiedenen Codes etc.suchen

• Direkter Zugriff über Tools oder von anderen Services

• Indirekter Zugriff über Portal und virtuelle Marktplätze

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .34

Bestandteile einer UDDI-Registry

White Pages Yellow Pages Green Pages

• Namensregister,sortiert nach Namen

• Auflistung der Anbieter mit allen Detailangaben

• Kontaktinforma-tionen (Telefon, …)

• Branchenverzeichnis

• Spezifische Suche gemäß verschiedener Taxonomien (Ort,Dienstart, Branche)

• Verweist auf White Pages

• Informationen über Geschäftsmodell desUnternehmens

• Technische Details zu angebotenenWebServices

• Auskunft über Geschäftsprozesse

Page 18: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

18

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .35

Wie UDDI V1 arbeitet

UDDI Business Registry

3. UBR weist jedem Dienst- undGeschäftseintrag einen programmatisch eindeutigen Identifzierer zu

Marktplätze , Suchma-schinen und Geschäftsan-wendungen fragen beim Verzeichnis an, um Dien-ste anderer Firmen zu finden

4.

Service TypeRegistrations

Software-Firmen, Standar-disierungsgremien und Progra-mmierer füllen das Verzeichnis mit der Beschreibung ver-schiedener Arten von Diensten

1.

BusinessRegistrationsUnternehmen

füllen dasVerzeichnis mit Beschreibungen der Dienste , diesie anbieten

2.

Unternehmen nutzen diesen Daten, um die Integration mit anderen über das Web voranzutreiben

5.

Quelle: uddi.org, ©Ariba, IBM, Microsoft 2000

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .36

UDDI Software Development Kit

• Erhältlich von http://uddi.microsoft.com/developer• Version 1.5 unterstützt COM als auch .NET

• Umfasst COM-Komponenten und API, um auf ein UDDI-Verzeichnis zuzugreifen

• Bietet auch .NET-Komponenten für VS.NET Beta 2

• Kapselt XML und SOAP in Objekte• UDDI Envelope

• UDDI Message

• Enthält auch Beispielanwendungen• Z.B. UDDI Explorer

Page 19: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

19

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .37

P2P-Kommunikation mit WebServices

Client

Verzeichnis

Server

fragt nachService

enthält reg.Service

Informationsaustausch

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Entwickeln von WebServices mitMicrosoft .NET Framework und Visual Studio.NET

Page 20: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

20

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .39

Web Services in .NET

ASP.NET Web Services• Einfach zu entwickeln

• Kapseln alle Vorgänge auf hoher Ebene

• Benutzen IIS, ASP.NET und das .NET

Framework

.NET Remoting• Low-level-Zugriff

• Mehr Eingriffsmöglichkeiten für den

Entwickler, mehr Code!

• Stand-alone oder über den IIS

• Übertragungsformate und Protokolle

können getrennt voneinander frei gewählt

werden

• SOAP über HTTP

• Binaryüber TCP

• …

• Wird durch XML-Dateien konfiguriert

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .40

Web Applikationen

• Container für WebServices in ASP.NET• liest config.web als globale Konfigurationsdatei ein

• kann auch eigenes config.web haben, die von der globalen erbt

• Beim Start einer WebApp wird nach global.asax gesucht• kann Handler für Events wie Application_Start, Application_BeginRequest oder

Session_Begin implementieren

• zum Beispiel zum Hochfahren/Registrieren von COM+-Applikationen sinnvoll

• Eine Web Applikation kann mehrere WebServices enthalten

Page 21: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

21

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .41

Web Services

• Jeder WebService besteht aus einer .asmx-Datei und ggf. weiteren Code-Dateien (.cs, .vb, .cpp)

• URIs für WebServices zeigen auf die .asmx-Datei• Die .asmx-Datei kann zurückgeben:

• Discovery-Datei (.disco)

• Service Description (.sdl, .wsdl)

• Ergebnisse von Methodenaufrufen

• Ein Klasse eines WebService• sollte von System.Web.Services.WebServiceabgeleitet sein

• muss das Attribute [WebService] aufweisen• Description -Eintrag beschreibt den WebService (auch in WSDL)

• Namespace-Eintrag steht für den XML-Namespace, der die Schemas des WSdefiniert

• Zu exportierende Methoden müssen public sein und das Attribut [WebMethod]tragen

• Aber: Kein Überladen möglich!

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .42

Demo 4: WebServices mit VS.NET

Wir untersuchen• Wie baut man einen WebService in Visual Studio?

• Wie baut man einen zugehörigen Client?

Page 22: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

22

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .43

Änderungen in Beta 2

• Neue Eigenschaften bei WebMethod• CacheDuration

• BufferedResponse

• Unterstützt Html-Vollbild• SDL wird durch WSDL ersetzt

• WebServiceUtil.exewird durch Wsdl.exe ersetzt

• Unterstützung für XML-Rückgabetypen• Hilfeseiten zu WebServices• Session-Status kann in SQLServer gespeichert werden• SOAP-Bindings• SOAP-Extensions

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Design von WebService-Applikationen

Page 23: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

23

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .45

Design von Web-Applikationen

• Ähnliche Design-Tipps wie für andere verteilte Anwendungen!• Keine überflüssigen Daten (wie Bilder) verschicken, wenn es auch mit einer

URL geht• Auf Latenzzeiten beim Server achten• Einsatz von Caching, wo immer es möglich ist• Wenn andere Aufgaben blockiert werden könnten, auf asynchrone

Kommunikation ausweichen• Beim Client die Möglichkeit des Serverausfalls beachten und entsprechende

Fehler abfangen• Statt in jedem Aufruf ein Datum abzufragen, mehrere Daten in einen Aufruf

zusammenfassen• Ziel: Zahl der Aufrufe minimieren

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .46

Dokumentenorientierte Programmierung von WebServices

• WebServices sind verbindungslos,damit statuslos

• bei jedem Aufruf wird eine neue Instanz

angelegt

• Die Prinzipien der lokalen, objekt-orientierten Programmierung werden durch die verteilte, dokumenten-orientierte ersetzt:

• Status-ID statt Objektreferenz

• DB-Tabellenzeile statt Member-

Variablen im Speicher

• WebService-Methoden statt

Objektmethoden

Realisierung in Microsoft .NET• Status kann über Application- und

Session-Objekte hinzugefügt werden• globale Statusinformation im

Application-Objekt

• Status für jeden Client im Session-

Objekt

• Sessions können über Cookies oderURL realisiert werden

• URL erst ab Beta 2 (vermutlich)

• Speichern von Statusinfor-

mationen in SQLServer (auch ab

Beta 2)

Page 24: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

24

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Geschäft mit WebServices

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .48

Vorteile des WebService-Paradigmas

• Infrastrukturdienste (Benutzerauthentifizierung, Backup usw.) können nahtlos aus externen Quellen eingebunden werden.

• IT-Spezialisten können sich auf die Business-Komponenten konzentrieren stattauf Infrastruktur

• Leichtere Verwaltung von Netzumgebungen• Remote-Administration und Überwachung

• Dynamische Software-Updates

• Die Verbindung interner und externer Dienste ermöglicht völlig neue Arten vonAnwendungen

• Interoperabilität bisher heterogener Plattformen deutlich verbessert• Allgemein akzeptierte Standards wie SOAP, WSDL, UDDI

• Web-Technologie kann viel einfacher in bestehende IT-Landschaften integriert werden als proprietäre Protokolle

• Entsprechende Entwicklungsumgebungen erhöhen die Produktivität,vermindern die Time-to-Market

Page 25: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

25

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .49

.NET Core Services

• Allgemeine Dienste, die viele Softwaresysteme benötigen, können alsWebServices im Internet (oder Intranet) bereitgestellt werden

• Microsoft bietet eine Auswahl dieser (so gen. “core services”) Dienste unter dem Begriff “Hailstorm” an, beispielsweise

• Identifikation (Passport)

• E-Mail-Konten (Hotmail)

• Termin- und Adressverwaltung

• Elektronische Bezahlsysteme

• Diese Basisdienste können von allen WebServices und anderen Applikationen genutzt werden

• Hailstorm -Dienste sollen von allen Plattformen aus genutzt werden können(nicht nur .NET-Systeme)

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .50

Risiken und Probleme

• Semantik fehlt weitgehend in der WSDL-Beschreibung• Standards noch in der Diskussion

• Herstellerunabhängigkeit derzeit nicht gewährleistet

• Sicherheit und Authentifizierung ungeklärt• Höhere Dienste wie Multimedia nicht gesichert• Lizensierung und Abrechnung bei ASP-Ansatz unklar• Technologie sehr neu und unreif

• aber große Akzeptanz bei allen Global Players der IT-Branche (IBM, Microsoft, Sun, HP, …)

• Abhängigkeit von der Verfügbarkeit der Services in den Architekturen

Page 26: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

26

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .51

Geschäftsmöglichkeiten

• Software als Service: Application Service Providing (ASP)• Wird durch WebServices deutlich vereinfacht (Billing etc. noch unklar)

• Enterprise Application Integration• Geschäftsprozesse webtauglich machen, im Hause und beim Kunden

• Web-Integration in der Automatisierung und Telekommunikation• Konsistente Datenverarbeitung mit XML

• Überwachung und Fernwartung

• Mehr Intelligenz und bessere Prozessintegration für mobile Geräte wie Handys oder PDAs

• Mobile WebServices unterstützen bspw . ortsabhängige Dienste

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .52

Integration der Informationsinseln mit WebServices

FertigungLagerverwaltung

Produktions-planung ,Optimierung

Qualitäts-sicherung

Rechnungswesen ,Auftragsverwaltung

Verkauf

KundendienstMarketing

Online-Shop

Zulieferer

Kunden

Page 27: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

27

s

© T. Wieland, 2001.Alle Rechte vorbehalten .

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

Zusammenfassung

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .54

Zusammenfassung

• Ein WebService ist eine Anwendung, die ihre Methoden über eine Web-Schnittstelle zur Verfügung stellt.

• Informationen, die auf einem Webserver liegen, können so von anderen Programmen genutzt werden.

• Die Methoden werden über SOAP aufgerufen, einem XML-basierten Protokoll für den Funktionsaufruf über HTTP.

• WSDL beschreibt die Schnittstellen von WebServices, DISCO listet alle Dienste auf einem Server auf, UDDI ist ein zentrales Verzeichnis von Firmenund ihren Diensten.

• Microsoft Visual Studio.NET stellt vielfältige Unterstützung für die Erstellungvon WebServices bereit.

• Mit WebServices lassen sich ganz neue Arten von Anwendungen bauen,Infrastrukturkomponenten zentral auslagern.

• Aufgrund des verbindungslosen Protokolls müssen Statusinformationen fürSessions anders als bei der OO-Programmierung gehalten werden.

Page 28: WebServices in .NET – ein neues Paradigma für das Internet · Software-Wiederverwendung • Ursprünglich lokal in Bibliotheken • Später als Komponenten, teilweise durch Middleware

28

sC

O R

P O

R A

T E

T

E C

H N

O L

O G

Y

© T. Wieland, 2001.Alle Rechte vorbehalten .55

Links

• Microsoft• http://msdn.microsoft.com/webservices

• http://www.microsoft.com/net

• http://uddi.microsoft.com

• IBM• http://alphaworks.ibm.com/aw .nsf/techmain/wsde

• Sun Microsystems• http://www.sun.com/software/sunone/

• UDDI organization• http://www.uddi.org

s

C O

R P

O R

A T

E

T E

C H

N O

L O

G Y

© T. Wieland, 2001.Alle Rechte vorbehalten .56

Danke für Ihre Aufmerksamkeit

Fragen oder Anmerkungen?

Download der Beispiele: http://www.drwieland.de