SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange...

44
SOAP SOAP Simple Object Access Simple Object Access Protocol Protocol

Transcript of SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange...

Page 1: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAPSOAPSimple Object Access ProtocolSimple Object Access Protocol

Page 2: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Simple Object Access ProtocolSimple Object Access Protocol

SOAPSOAPFrank Lange ([email protected])Frank Lange ([email protected])Michael Willers ([email protected])Michael Willers ([email protected])

Microsoft GmbHMicrosoft GmbHSmall Business & Partner Group (SBPG)Small Business & Partner Group (SBPG)

Page 3: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

InhaltInhalt

Web Services und “.NET”Web Services und “.NET” SOAPSOAP SOAP ToolkitSOAP Toolkit Vergleich SOAP und COMVergleich SOAP und COM Zukunft?Zukunft?

Page 4: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

““.net” – zu Lesen.net” – zu LesenSun Microsystems is leading the development of an open-systems competitor to Microsoft .NET, Bill Gates' sweeping initiative to deliver software as a set of services over a services over a wide range of Internet-wide range of Internet-connected devicesconnected devices. Gates claimed in June to be betting his company on Microsoft .NET, a move he deems as important to Microsoft as the transition from DOS to Windows.

Dan Kusnetzky, a VP at International Data Corp., calls Microsoft .NET Gates' latest attempt to "embrace and extend" the Internet in reaction to the rise of browser-based applications, which threaten to render much of Microsoft's software irrelevant. He also expects Microsoft to hit snags converting converting its revenue from its revenue from packaged software sales packaged software sales into software rentalsinto software rentals.

Web Services

Services (ver)mieten

Nevertheless, Kusnetzky says Microsoft's superior tools and its integrated products are an advantage. "Microsoft Microsoft will tie things together will tie things together into one environmentinto one environment with point-and-click, and with the linkage to Windows 2000, you'll get it all," Kusnetzky says.

Visual Studio.net

Page 5: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Web-ServiceWeb-Service Web ist/wird performant und Web ist/wird performant und

hochverfügbarhochverfügbar Services wie Hotmail liefern Services wie Hotmail liefern

Bedienoberfläche im Browser Bedienoberfläche im Browser (Endanwender als Zielgruppe)(Endanwender als Zielgruppe)

Künftig Services, welche Künftig Services, welche programmatisch nutzbar sindprogrammatisch nutzbar sind

Funktionsaufrufe über Services sind Funktionsaufrufe über Services sind wünschenswert wünschenswert (bequeme Kommunikation: was ich will, was ich sende, was (bequeme Kommunikation: was ich will, was ich sende, was bekomme ich...)bekomme ich...)

Page 6: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

““.net” – für Entwickler.net” – für Entwickler

Entwicklerkonfernz stand ganz im Entwicklerkonfernz stand ganz im Zeichen “.net”Zeichen “.net”

Experten: “in 3 Jahren haben wir die Experten: “in 3 Jahren haben wir die Welt der Web-Services”Welt der Web-Services”

Tools kommen: MS Visual Studio .NETTools kommen: MS Visual Studio .NET Windows DNA wird ersetzt durch .NET Windows DNA wird ersetzt durch .NET

Framework Framework

Page 7: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Windows DNA DesignWindows DNA Design

firmeninternefirmeninterne DiensteDienste

und Datenund Daten

App CodeApp Code

BrowsersBrowsers

InternetInternet

Geschäftslogik

Datenhaltung

Darstellungs UI

SkalierbarkeitSkalierbarkeit VerfügbarkeitVerfügbarkeit SicherheitSicherheit WartbarkeitWartbarkeit

Kriterien

Rich ClientsRich ClientsHTML

Page 8: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Das ProblemDas Problem

Win DNA ist für’s Windows-Netz Win DNA ist für’s Windows-Netz designed – alles andere ist oft Basteleidesigned – alles andere ist oft Bastelei

Server-Dienste sind im FirmennetzServer-Dienste sind im Firmennetz Aufwand:Aufwand:

Implementierungs-DetailsImplementierungs-Details(COM+, API, Security,...je nach OS)(COM+, API, Security,...je nach OS)

Umwege für heterogene InfrastrukturUmwege für heterogene Infrastruktur(COM+ zu CORBA etc.)(COM+ zu CORBA etc.)

Andere Schnittstellen, sobald Infos aus Andere Schnittstellen, sobald Infos aus dem Netz (Sockets...)dem Netz (Sockets...)

Page 9: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

.NET - Design.NET - Design

OS andOS andLocal Local

ServicesServices

App CodeApp Code

Web ServiceWeb Service

Web ServiceWeb Service

Web ServiceWeb Service

DevicesDevicesBrowsersBrowsers

InternetInternet

Verlagerung von Verlagerung von Diensten ins InternetDiensten ins Internet(evtl. andere Firma)(evtl. andere Firma)

Verlagerte Dienste Verlagerte Dienste arbeiten funktionalarbeiten funktional

EinheitlicherEinheitlicherSchnittstellenstandardSchnittstellenstandard

““Components for the Web”Components for the Web”

Page 10: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

.NET Plattform.NET Plattform

Server & ClientsServer & Clients

Framework & ToolsFramework & Tools

Building BlockBuilding Block Services Services

Stichworte: Visual Studio.NET, CRL, COM+-Stichworte: Visual Studio.NET, CRL, COM+-Erweiterungen, ProgrammiermodellErweiterungen, Programmiermodell

Ständig verfügbare Dienste (Code-Updates, Ständig verfügbare Dienste (Code-Updates, Benachrichtigungsdienste, Suchdienste,...)Benachrichtigungsdienste, Suchdienste,...)

DNA 2000 Produktfamilie, Windows Powered-DNA 2000 Produktfamilie, Windows Powered-GeräteGeräte

Page 11: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Web Services - TechnischWeb Services - Technisch Programmatischer Zugriff auf Services im Programmatischer Zugriff auf Services im

WebWeb Kommunikation von Web-Anwendungen Kommunikation von Web-Anwendungen

untereinanderuntereinander XML als Standard für Daten(beschreibung) XML als Standard für Daten(beschreibung)

(plattform- und sprachunabhängig)(plattform- und sprachunabhängig) SOAP als Protokoll für Funktionsaufrufe SOAP als Protokoll für Funktionsaufrufe

(plattform- und sprachunabhängig)(plattform- und sprachunabhängig) z.B. SDL als Metabeschreibung der Web z.B. SDL als Metabeschreibung der Web

ServicesServices

XML=Extensible Markup LanguageSOAP=Simple Object Access ProtocolSDL=Service Description Language

Page 12: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

InhaltInhalt

Web Services und “.NET”Web Services und “.NET” SOAPSOAP SOAP ToolkitSOAP Toolkit Vergleich SOAP und COMVergleich SOAP und COM Zukunft?Zukunft?

Page 13: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Was ist SOAP?Was ist SOAP? Simple Object Access ProtocolSimple Object Access Protocol XML-basierendes KommunikationsformatXML-basierendes Kommunikationsformat

Für XML/HTTP RPC (ab V1.1 auch andere Protokolle als HTTP)Für XML/HTTP RPC (ab V1.1 auch andere Protokolle als HTTP)

Verschiedene BetriebssystemeVerschiedene Betriebssysteme Verschiedene ProgrammiersprachenVerschiedene Programmiersprachen Verschiedene PlattformenVerschiedene Plattformen

Basierend aufBasierend auf W3C XML standardsW3C XML standards IETF HTTP standardIETF HTTP standard

SOAP-Spezifikation v1.1 zum W3C gereichtSOAP-Spezifikation v1.1 zum W3C gereicht http://msdn.microsoft.com/workshop/xml/generhttp://msdn.microsoft.com/workshop/xml/gener

al/soapspec.aspal/soapspec.asp

Page 14: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP MessageSOAP Message

SOAP Message

SOAP Envelope

SOAP Header

SOAP Body

Message Name & Data

Headers

Protocol Headers

Funktionsname und ParameterFunktionsname und Parameter

<Body> mit XML-Daten<Body> mit XML-Daten

Individuelle KopfinfosIndividuelle Kopfinfos

<Header> -Kopfinfos<Header> -Kopfinfos

<Envelope>-Metainfos<Envelope>-Metainfos

Kopf vom Standard-Protololl Kopf vom Standard-Protololl (HTTP, SMTP, etc.) und SOAP(HTTP, SMTP, etc.) und SOAP

komplette SOAP Messagekomplette SOAP Message

Page 15: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Ein SOAP Request Ein SOAP Request (über HTTP)(über HTTP)

POST /StockQuote HTTP/1.1 POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8“ Content-Type: text/xml; charset="utf-8“ Content-Length: 323 Content-Length: 323 SOAPAction: Some-Namespace-URI#GetLastTradePrice SOAPAction: Some-Namespace-URI#GetLastTradePrice

<SQ:Envelope <SQ:Envelope xmlns:SQ="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SQ="http://schemas.xmlsoap.org/soap/envelope/" SQ:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"SQ:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> >

<SQ:Body><SQ:Body> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI"> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI"> <symbol>DIS</symbol> <symbol>DIS</symbol> </m:GetLastTradePrice> </m:GetLastTradePrice> </SQ:Body> </SQ:Body></SQ:Envelope> </SQ:Envelope>

Page 16: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Eine SOAP ResponseEine SOAP Response(über HTTP)(über HTTP)

HTTP/1.1 200 OKHTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8“Content-Type: text/xml; charset="utf-8“Content-Length: nnnnContent-Length: nnnn

<SP:Envelope<SP:Envelopexmlns:SP="http://schemas.xmlsoap.org/soap/envelope/"xmlns:SP="http://schemas.xmlsoap.org/soap/envelope/"SP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"SP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">>

<SP:Body><SP:Body> <m:GetLastTradePriceResponse <m:GetLastTradePriceResponse

xmlns:m="Some-Namespace-URI">xmlns:m="Some-Namespace-URI"> <Price>34.5</Price> <Price>34.5</Price> </m:GetLastTradePriceResponse> </m:GetLastTradePriceResponse> </SP:Body> </SP:Body></SP:Envelope></SP:Envelope>

Page 17: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP in der .NET PlattformSOAP in der .NET Plattform

WerkzeugeWerkzeuge ASP+, Visual Basic .NET, ASP+, Visual Basic .NET,

Visual C++ .NET (ATL Server), C#, Visual C++ .NET (ATL Server), C#, Visual FoxProVisual FoxPro

ProtokolleProtokolle MSMQ, HTTP, TCP/IP, SMTPMSMQ, HTTP, TCP/IP, SMTP

SOAP ist überall in .NETSOAP ist überall in .NET

Page 18: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

InhaltInhalt

Web Services und “.NET”Web Services und “.NET” SOAPSOAP SOAP ToolkitSOAP Toolkit Vergleich SOAP und COMVergleich SOAP und COM Zukunft?Zukunft?

Page 19: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Brücke zur .NET-PlattformBrücke zur .NET-Plattform

SOAP ToolkitSOAP Toolkitfür für

Visual Studio 6.0Visual Studio 6.0

SOAP ToolkitSOAP Toolkitfür für

Visual Studio 6.0Visual Studio 6.0

Toolkit Download: http://msdn.microsoft.com/xml/

Toolkit als HilfestellungToolkit als Hilfestellung SOAP kann auch ohne SOAP kann auch ohne

Toolkit genutzt werden Toolkit genutzt werden (Umgang mit XML, HTTP)(Umgang mit XML, HTTP)

Page 20: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Hilfe durch das SOAP ToolkitHilfe durch das SOAP Toolkit

Handhabe von XML, SOAPHandhabe von XML, SOAP Kein Einarbeiten in NetzprotokolleKein Einarbeiten in Netzprotokolle Implementierungs-HilfenImplementierungs-Hilfen Deployment-HilfenDeployment-Hilfen Bekannte Fertigkeiten (Umgang Bekannte Fertigkeiten (Umgang

mit COM)mit COM) ToolsTools

Page 21: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Inhalt des SOAP ToolkitInhalt des SOAP Toolkit

Serverseitige Zugriffslauscher Serverseitige Zugriffslauscher (Reference Listeners)(Reference Listeners)

Remote Object Proxy Engine Remote Object Proxy Engine (ROPE)(ROPE)

SDL und Quelltext-Generator SDL und Quelltext-Generator (Wizard)(Wizard)

DokumentationDokumentation Code-BeispieleCode-Beispiele

Kompletter Kompletter QuelltextQuelltext

Page 22: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Was ist SDL?Was ist SDL?

““Service Description Language” Service Description Language” XML-basierte Grammatik zur XML-basierte Grammatik zur

Beschreibung der Funktionalität von Beschreibung der Funktionalität von Web-ServicesWeb-Services

ErweiterbarErweiterbar Vergleich mit IDLVergleich mit IDL

IDL ist plattformabhängigIDL ist plattformabhängig SDL ist plattformunabhängigSDL ist plattformunabhängig

NICHT in Stein gemeißelt!NICHT in Stein gemeißelt!d.h. solange es keinen “echten” d.h. solange es keinen “echten” Standard gibt, ist SDL eine Lösung.Standard gibt, ist SDL eine Lösung.

Page 23: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Was ist ROPE?Was ist ROPE? Remote Object Proxy EngineRemote Object Proxy Engine Aufrufschnittstelle für Web Service-ClientsAufrufschnittstelle für Web Service-Clients

ATL COMATL COM nutzbar von COM-unterstützenden Sprachennutzbar von COM-unterstützenden Sprachen ObjekteObjekte

ProxyProxy SOAPPackagerSOAPPackager WireTransferWireTransfer versch. Objekteversch. Objekte

Zwei Programmier-ModelleZwei Programmier-Modelle Einfach – “VB”-typischEinfach – “VB”-typisch Erweitert – “VC”-typischErweitert – “VC”-typisch

Page 24: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Server mit VB6Server mit VB6

Public Function GetDayCount() As Integer

GetDayCount = 30

End Function

Toolkit Wizard

VB6VB6ActiveX DLLActiveX DLL

*.ASP *.XMLListener.ASP

*DLL

Toolkit

http://localhost/demo/

Page 25: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP Listeners (Dispensers)SOAP Listeners (Dispensers)

ISAPI ListenerISAPI Listener ISAPI ExtensionISAPI Extension Hohe PerformanzHohe Performanz

ASP ListenerASP Listener mehr Kontrolle über den Prozeßmehr Kontrolle über den Prozeß kann den Service direkt ausführenkann den Service direkt ausführen

Page 26: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

ROPE – Einfaches ModellROPE – Einfaches Modell

ProxyProxy Object.Method(Param1, … ParamN)Object.Method(Param1, … ParamN) Benutzen wie gewohntBenutzen wie gewohnt Wenig Quelltext-Aufwand für Wenig Quelltext-Aufwand für

EntwicklerEntwickler Hohe AbstraktionsstufeHohe Abstraktionsstufe orientiert an RPC-Welt orientiert an RPC-Welt

(Funktionsaufrufe)(Funktionsaufrufe)

Page 27: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Client Quelltext VB6Client Quelltext VB6

Dim oProxy As NEW ROPE.Proxy

oProxy.LoadServicesDescription icURI, _ "http://localhost/demo/myservice.xml"

MsgBox CStr( oProxy.GetDayCount() )

Service Description holen und Proxy erzeugen

Methodenaufruf

Page 28: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

ROPE – Erweitertes ModellROPE – Erweitertes Modell

SOAPPackagerSOAPPackager hoher Grad an Kontrollehoher Grad an Kontrolle sehr flexibelsehr flexibel orientiert an der Nachrichten-Welt orientiert an der Nachrichten-Welt

(Senden, Empfangen) (Senden, Empfangen)

WireTransferWireTransfer Kontrolle über Kopfdaten der Kontrolle über Kopfdaten der

Protokoll-NachrichtenProtokoll-Nachrichten

Page 29: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Client VB6 – extended 1Client VB6 – extended 1Dim oSOAP As New ROPE.SOAPPackagerDim oWire As New ROPE.WireTransferDim cData As ROPE.ServiceDescriptorsDim sBuffer As StringDim bRetVal As BooleanDim sListener As StringConst sMethod = "GetDayCount„

bRetVal = oSOAP.LoadServicesDescription (icURI, _ "http://localhost/demo/vacation.xml")

Set cData = oSOAP.GetServiceDescriptors(icENDPOINTINFO)If VarType(cData(0)) = vbString Then sListener = cData(0)Else sListener = cData(0).URIEnd If

Service-Beschreibung holen

Listener abfragen

z.B. sListener = "http://localhost/demo/vacation.asp"

Page 30: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Client VB6 – extended 2Client VB6 – extended 2

sBuffer = oSOAP.GetMethodStruct (sMethod, icINPUT)

oSOAP.SetPayloadData icREQUEST, "", sMethod, sBuffer

sBuffer = oSOAP.GetPayload(icREQUEST)

oWire.AddStdSOAPHeaders sListener, sMethod, Len(sBuffer)sBuffer = oWire.PostDataToURI(sListener, sBuffer)

oSOAP.SetPayload icRESPONSE, sBuffersBuffer = CStr(oSOAP.GetParameter(icRESPONSE, "return"))MsgBox sBuffer

Methoden-Parameter als XML holen

SOAP-Request als XML erzeugen

evtl. oSOAP.SetParameter icREQUEST, sParaName, sValue

HTTP-POST (Response nach sBuffer)

return-Wert heraussuchen

Page 31: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

DatentypenDatentypen siehe siehe

http://www.w3.org/TR/xmlschema-2/

es ist eine Spezifikation!es ist eine Spezifikation!

Verweise auf andere Standards (ISO, Verweise auf andere Standards (ISO, SQL)SQL)

schön für Sprachexpertenschön für Sprachexperten

Fragen bleibenFragen bleiben

„See also ISO 8601 Date and Time Formats (§D).“

„a datatype is a 3-tuple, consisting of [...] value space [...] lexical space [...] set of facets [...]. A facet is a single defining aspect of a value space.“

„The value space of binary is the set of finite-length sequences of binary octets.“

Page 32: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Datentypen (ff)Datentypen (ff) Primitive DatentypenPrimitive Datentypen

string, boolean, double, decimal, timeDuration, uriReference,...string, boolean, double, decimal, timeDuration, uriReference,...

Vordefinierte abgeleitete Vordefinierte abgeleitete DatentypenDatentypenbyte, short, int, time, date, timePeriod, byte, short, int, time, date, timePeriod, recurringDay (z.B. jeder 5te im Monat)recurringDay (z.B. jeder 5te im Monat)

Benutzerdefinierte DatentypenBenutzerdefinierte DatentypenListen von Datentypen (vgl. structs), Listen von Datentypen (vgl. structs), Bereichseinschränkungen,...Bereichseinschränkungen,...

Toolkit WizardToolkit WizardProbieren geht einher mit Studieren (Toolkit-Gedanke). Probieren geht einher mit Studieren (Toolkit-Gedanke). Notfalls den erzeugten Text nacheditieren.Notfalls den erzeugten Text nacheditieren.

Page 33: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Das Szenario…Das Szenario…

WebService

SOAP(4)(4)

4 – SOAP Anforderung senden4 – SOAP Anforderung senden

(3)(3)

3 – Methodenaufruf (Start)3 – Methodenaufruf (Start)

DATEN

(5)(5)

Web Page

HTML(5)(5)

ROPE

SOAPWeb

ServiceSDL

(5)(5)

5 – WS arbeitet (Business Logic)5 – WS arbeitet (Business Logic)

(6)(6)

6 – SOAP Response erhalten6 – SOAP Response erhalten

(7)(7)

7 – Methodenaufruf (Ende)7 – Methodenaufruf (Ende)

Anwendungoder

Browser

Web Service

SDL

(2)(2)

2 – SDL erhalten und paresen2 – SDL erhalten und paresen

ROPE

(1)(1)

1 – SDL anfordern1 – SDL anfordern

Page 34: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP in der IndustrieSOAP in der Industrie

MicrosoftMicrosoft IBM/LotusIBM/Lotus DevelopMentorDevelopMentor Userland SoftwareUserland Software IONA IONA (Soap Bridge zu CORBA)(Soap Bridge zu CORBA)

Rogue WaveRogue Wave ObjectSpaceObjectSpace

JetFormJetForm Digital CreationsDigital Creations Rockwell SoftwareRockwell Software ScripticsScriptics IntelIntel SunSun und andere…und andere…

ACHTUNG:ACHTUNG:Derzeit ist noch kein Standard endgültig Derzeit ist noch kein Standard endgültig “abgesegnet”.“abgesegnet”.

Page 35: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

InhaltInhalt

Web Services und “.NET”Web Services und “.NET” SOAPSOAP SOAP ToolkitSOAP Toolkit Vergleich SOAP und COMVergleich SOAP und COM Zukunft?Zukunft?

Page 36: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP vs. COMSOAP vs. COM SOAP kein Ersatz für COMSOAP kein Ersatz für COM

SOAP ist Kommunikationsprotokoll, COM ist KomponentenmodellSOAP ist Kommunikationsprotokoll, COM ist Komponentenmodell

Komponentenkonzept, verteilte Transaktionen,Komponentenkonzept, verteilte Transaktionen,Impersonifizierung,...Impersonifizierung,...

SOAP könnte als RPC-Protokoll SOAP könnte als RPC-Protokoll unter COM dienen: DCOM-Ersatz?unter COM dienen: DCOM-Ersatz? aber Kausalität etc. fehlt im Protokollaber Kausalität etc. fehlt im Protokoll

SOAP verbindet zu SOAP verbindet zu Services im WWW (HTTP-Tunneling)Services im WWW (HTTP-Tunneling) Services im FirmennetzServices im Firmennetz Services auf lokalem Rechner (Performance?!)Services auf lokalem Rechner (Performance?!)

Page 37: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

SOAP vs. COMSOAP vs. COM

SOAP-Verbindung ist plattformunabhängig. SOAP-Verbindung ist plattformunabhängig. z.B. Keine COM-CORBA-Bridge nötigz.B. Keine COM-CORBA-Bridge nötig

Lösungs-Design sollte Verlagerung von Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen Services aus dem Firmennetz nach Außen und umgekehrt berücksichtigen (“.net”)und umgekehrt berücksichtigen (“.net”)

Transport-Protokoll (HTTP,...)

Funktionsaufruf-Protokoll (ORPC, SOAP,...)

Objekte und Komponenten (COM...)Abstraktions-Schichten

Page 38: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Außen SOAP – innen...Außen SOAP – innen...

COM: COM: “SOPE Toolkit Wizard” “SOPE Toolkit Wizard” von Microsoftvon Microsoft

man nehmeman nehme COM-ObjektCOM-Objekt WizardWizard

und erhältund erhält SDL-FileSDL-File Programmteile, um das COM-Objekt als Programmteile, um das COM-Objekt als

WebService laufen zu lassenWebService laufen zu lassen

CORBA: “Xorba” von Rogue WaveCORBA: “Xorba” von Rogue Wave EJB: EJB: “Soap4J” von IBM“Soap4J” von IBM

Page 39: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

InhaltInhalt

Web Services und “.NET”Web Services und “.NET” SOAPSOAP SOAP ToolkitSOAP Toolkit Vergleich SOAP und COMVergleich SOAP und COM Zukunft?Zukunft?

Page 40: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

ZukunftZukunft

Lösungs-Design sollte Verlagerung von Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen Services aus dem Firmennetz nach Außen und umgekehrt berücksichtigen (“.net”)!und umgekehrt berücksichtigen (“.net”)!

WebServices werden zum großen Geschäft?WebServices werden zum großen Geschäft? SOAP ersetzt DCOM-Protokoll (bei COM)SOAP ersetzt DCOM-Protokoll (bei COM)

bzw. IIOP (bei CORBA)?bzw. IIOP (bei CORBA)? Visual Studio .NET wird kommen!Visual Studio .NET wird kommen!

ServiceService

App CodeApp Code

ServiceService

Page 41: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

ebXML?ebXML? Electronic Business XML InitiativeElectronic Business XML Initiative

(weniger Microsoft)(weniger Microsoft) Schwerpunkt sind B2B-Szenarien auf XML-Schwerpunkt sind B2B-Szenarien auf XML-

BasisBasis http://ebxml.org./ Ende 1999: ein 18 Monats-Programm zum Ende 1999: ein 18 Monats-Programm zum

Finden einer technischen XML-Basis, auf der Finden einer technischen XML-Basis, auf der eine Standardisierung aufsetzen kanneine Standardisierung aufsetzen kann

08/00: Einigung, dass SOAP alleine zu wenig 08/00: Einigung, dass SOAP alleine zu wenig istist

Fazit: Sich mit XML-Technologien Fazit: Sich mit XML-Technologien beschäftigen und Augen offen haltenbeschäftigen und Augen offen halten

Page 42: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

RessourcenRessourcen SOAP Toolkit DownloadSOAP Toolkit Download

http://msdn.microsoft.com/xml/http://msdn.microsoft.com/xml/

NewsgroupNewsgroup microsoft.public.msdn.soaptoolkitmicrosoft.public.msdn.soaptoolkit

Verbesserungsvorschläge (engl.)Verbesserungsvorschläge (engl.) [email protected]@microsoft.com

World Wide Web ConsortiumWorld Wide Web Consortium http://www.w3.org/xml/http://www.w3.org/xml/ http://www.w3.org/tr/http://www.w3.org/tr/soapsoap

DevelopMentor “Essential .NET”DevelopMentor “Essential .NET” http://www.develop.com/dm/course.asp?id=95http://www.develop.com/dm/course.asp?id=95

Page 43: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.

Fragen?Fragen?

Page 44: SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange (franklan@microsoft.com) Michael Willers (mwillers@microsoft.com) Microsoft.