Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange Michael Willers Microsoft.

Ähnliche Präsentationen


Präsentation zum Thema: "SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange Michael Willers Microsoft."—  Präsentation transkript:

1 SOAP Simple Object Access Protocol

2 Simple Object Access Protocol SOAP Frank Lange Michael Willers Microsoft GmbH Small Business & Partner Group (SBPG)

3 Inhalt Web Services und.NET Web Services und.NET SOAP SOAP SOAP Toolkit SOAP Toolkit Vergleich SOAP und COM Vergleich SOAP und COM Zukunft? Zukunft?

4 .net – zu Lesen services over a wide range of Internet- connected devices Sun 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 wide range of Internet- connected 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. converting its revenue from packaged software sales into software rentals 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 its revenue from packaged software sales into software rentals. Web Services Services (ver)mieten Microsoft will tie things together into one environment Nevertheless, Kusnetzky says Microsoft's superior tools and its integrated products are an advantage. "Microsoft will tie things together into one environment with point-and-click, and with the linkage to Windows 2000, you'll get it all," Kusnetzky says. Visual Studio.net

5 Web-Service Web ist/wird performant und hochverfügbar Web ist/wird performant und hochverfügbar Services wie Hotmail liefern Bedienoberfläche im Browser (Endanwender als Zielgruppe) Services wie Hotmail liefern Bedienoberfläche im Browser (Endanwender als Zielgruppe) Künftig Services, welche programmatisch nutzbar sind Künftig Services, welche programmatisch nutzbar sind Funktionsaufrufe über Services sind wünschenswert (bequeme Kommunikation: was ich will, was ich sende, was bekomme ich...) Funktionsaufrufe über Services sind wünschenswert (bequeme Kommunikation: was ich will, was ich sende, was bekomme ich...)

6 .net – für Entwickler Entwicklerkonfernz stand ganz im Zeichen.net Entwicklerkonfernz stand ganz im Zeichen.net Experten: in 3 Jahren haben wir die Welt der Web-Services Experten: in 3 Jahren haben wir die Welt der Web-Services Tools kommen: MS Visual Studio.NET Tools kommen: MS Visual Studio.NET Windows DNA wird ersetzt durch.NET Framework Windows DNA wird ersetzt durch.NET Framework

7 Windows DNA Design firmeninterne Dienste und Daten App Code Browsers Internet Geschäftslogik Datenhaltung Darstellungs UI Skalierbarkeit Skalierbarkeit Verfügbarkeit Verfügbarkeit Sicherheit Sicherheit Wartbarkeit Wartbarkeit Kriterien Rich Clients HTML

8 Das Problem Win DNA ist fürs Windows-Netz designed – alles andere ist oft Bastelei Win DNA ist fürs Windows-Netz designed – alles andere ist oft Bastelei Server-Dienste sind im Firmennetz Server-Dienste sind im Firmennetz Aufwand: Aufwand: Implementierungs-Details (COM+, API, Security,...je nach OS) Implementierungs-Details (COM+, API, Security,...je nach OS) Umwege für heterogene Infrastruktur (COM+ zu CORBA etc.) Umwege für heterogene Infrastruktur (COM+ zu CORBA etc.) Andere Schnittstellen, sobald Infos aus dem Netz (Sockets...) Andere Schnittstellen, sobald Infos aus dem Netz (Sockets...)

9 .NET - Design OS and Local Services App Code Web Service DevicesBrowsers Internet Verlagerung von Diensten ins Internet (evtl. andere Firma) Verlagerung von Diensten ins Internet (evtl. andere Firma) Verlagerte Dienste arbeiten funktional Verlagerte Dienste arbeiten funktional Einheitlicher Schnittstellenstandard Einheitlicher Schnittstellenstandard Components for the Web

10 .NET Plattform Server & Clients Framework & Tools Building Block Services Stichworte: Visual Studio.NET, CRL, COM+- Erweiterungen, Programmiermodell Ständig verfügbare Dienste (Code-Updates, Benachrichtigungsdienste, Suchdienste,...) DNA 2000 Produktfamilie, Windows Powered- Geräte

11 Web Services - Technisch Programmatischer Zugriff auf Services im Web Programmatischer Zugriff auf Services im Web Kommunikation von Web-Anwendungen untereinander Kommunikation von Web-Anwendungen untereinander XML als Standard für Daten(beschreibung) (plattform- und sprachunabhängig) XML als Standard für Daten(beschreibung) (plattform- und sprachunabhängig) SOAP als Protokoll für Funktionsaufrufe (plattform- und sprachunabhängig) SOAP als Protokoll für Funktionsaufrufe (plattform- und sprachunabhängig) z.B. SDL als Metabeschreibung der Web Services z.B. SDL als Metabeschreibung der Web Services XML=Extensible Markup Language SOAP=Simple Object Access Protocol SDL=Service Description Language

12 Inhalt Web Services und.NET Web Services und.NET SOAP SOAP SOAP Toolkit SOAP Toolkit Vergleich SOAP und COM Vergleich SOAP und COM Zukunft? Zukunft?

13 Was ist SOAP? Simple Object Access Protocol Simple Object Access Protocol XML-basierendes Kommunikationsformat XML-basierendes Kommunikationsformat Für XML/HTTP RPC (ab V1.1 auch andere Protokolle als HTTP) Verschiedene Betriebssysteme Verschiedene Betriebssysteme Verschiedene Programmiersprachen Verschiedene Programmiersprachen Verschiedene Plattformen Verschiedene Plattformen Basierend auf Basierend auf W3C XML standards W3C XML standards IETF HTTP standard IETF HTTP standard SOAP-Spezifikation v1.1 zum W3C gereicht SOAP-Spezifikation v1.1 zum W3C gereicht al/soapspec.asp al/soapspec.asp al/soapspec.asp al/soapspec.asp

14 SOAP Message SOAP Envelope SOAP Header SOAP Body Message Name & Data Headers Protocol Headers Funktionsname und Parameter mit XML-Daten mit XML-Daten Individuelle Kopfinfos -Kopfinfos -Kopfinfos -Metainfos Kopf vom Standard-Protololl (HTTP, SMTP, etc.) und SOAP komplette SOAP Message

15 Ein SOAP Request (über HTTP) POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8 Content-Length: 323 SOAPAction: Some-Namespace-URI#GetLastTradePrice DIS DIS

16 Eine SOAP Response (über HTTP) HTTP/ OK Content-Type: text/xml; charset="utf-8 Content-Length: nnnn

17 SOAP in der.NET Plattform Werkzeuge Werkzeuge ASP+, Visual Basic.NET, Visual C++.NET (ATL Server), C#, Visual FoxPro ASP+, Visual Basic.NET, Visual C++.NET (ATL Server), C#, Visual FoxPro Protokolle Protokolle MSMQ, HTTP, TCP/IP, SMTP MSMQ, HTTP, TCP/IP, SMTP SOAP ist überall in.NET

18 Inhalt Web Services und.NET Web Services und.NET SOAP SOAP SOAP Toolkit SOAP Toolkit Vergleich SOAP und COM Vergleich SOAP und COM Zukunft? Zukunft?

19 Brücke zur.NET-Plattform SOAP Toolkit für Visual Studio 6.0 Toolkit Download: Toolkit als Hilfestellung Toolkit als Hilfestellung SOAP kann auch ohne Toolkit genutzt werden (Umgang mit XML, HTTP) SOAP kann auch ohne Toolkit genutzt werden (Umgang mit XML, HTTP)

20 Hilfe durch das SOAP Toolkit Handhabe von XML, SOAP Handhabe von XML, SOAP Kein Einarbeiten in Netzprotokolle Kein Einarbeiten in Netzprotokolle Implementierungs-Hilfen Implementierungs-Hilfen Deployment-Hilfen Deployment-Hilfen Bekannte Fertigkeiten (Umgang mit COM) Bekannte Fertigkeiten (Umgang mit COM) Tools Tools

21 Inhalt des SOAP Toolkit Serverseitige Zugriffslauscher (Reference Listeners) Serverseitige Zugriffslauscher (Reference Listeners) Remote Object Proxy Engine (ROPE) Remote Object Proxy Engine (ROPE) SDL und Quelltext-Generator (Wizard) SDL und Quelltext-Generator (Wizard) Dokumentation Dokumentation Code-Beispiele Code-Beispiele Kompletter Quelltext

22 Was ist SDL? Service Description Language Service Description Language XML-basierte Grammatik zur Beschreibung der Funktionalität von Web-Services XML-basierte Grammatik zur Beschreibung der Funktionalität von Web-Services Erweiterbar Erweiterbar Vergleich mit IDL Vergleich mit IDL IDL ist plattformabhängig IDL ist plattformabhängig SDL ist plattformunabhängig SDL ist plattformunabhängig NICHT in Stein gemeißelt! d.h. solange es keinen echten Standard gibt, ist SDL eine Lösung. NICHT in Stein gemeißelt! d.h. solange es keinen echten Standard gibt, ist SDL eine Lösung.

23 Was ist ROPE? Remote Object Proxy Engine Remote Object Proxy Engine Aufrufschnittstelle für Web Service-Clients Aufrufschnittstelle für Web Service-Clients ATL COM ATL COM nutzbar von COM-unterstützenden Sprachen nutzbar von COM-unterstützenden Sprachen Objekte Objekte Proxy Proxy SOAPPackager SOAPPackager WireTransfer WireTransfer versch. Objekte versch. Objekte Zwei Programmier-Modelle Zwei Programmier-Modelle Einfach – VB-typisch Einfach – VB-typisch Erweitert – VC-typisch Erweitert – VC-typisch

24 Server mit VB6 Public Function GetDayCount() As Integer GetDayCount = 30 End Function Toolkit Wizard VB6 ActiveX DLL *.ASP *.XML Listener.ASP *DLL Toolkit

25 SOAP Listeners (Dispensers) ISAPI Listener ISAPI Listener ISAPI Extension ISAPI Extension Hohe Performanz Hohe Performanz ASP Listener ASP Listener mehr Kontrolle über den Prozeß mehr Kontrolle über den Prozeß kann den Service direkt ausführen kann den Service direkt ausführen

26 ROPE – Einfaches Modell Proxy Proxy Object.Method(Param1, … ParamN) Object.Method(Param1, … ParamN) Benutzen wie gewohnt Benutzen wie gewohnt Wenig Quelltext-Aufwand für Entwickler Wenig Quelltext-Aufwand für Entwickler Hohe Abstraktionsstufe Hohe Abstraktionsstufe orientiert an RPC-Welt (Funktionsaufrufe) orientiert an RPC-Welt (Funktionsaufrufe)

27 Client 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

28 ROPE – Erweitertes Modell SOAPPackager SOAPPackager hoher Grad an Kontrolle hoher Grad an Kontrolle sehr flexibel sehr flexibel orientiert an der Nachrichten-Welt (Senden, Empfangen) orientiert an der Nachrichten-Welt (Senden, Empfangen) WireTransfer WireTransfer Kontrolle über Kopfdaten der Protokoll-Nachrichten Kontrolle über Kopfdaten der Protokoll-Nachrichten

29 Client VB6 – extended 1 Dim oSOAP As New ROPE.SOAPPackager Dim oWire As New ROPE.WireTransfer Dim cData As ROPE.ServiceDescriptors Dim sBuffer As String Dim bRetVal As Boolean Dim sListener As String Const 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).URI End If Service-Beschreibung holen Listener abfragen z.B. sListener = "http://localhost/demo/vacation.asp"

30 Client 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, sBuffer sBuffer = 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

31 Datentypen siehe siehe es ist eine Spezifikation! es ist eine Spezifikation! Verweise auf andere Standards (ISO, SQL) Verweise auf andere Standards (ISO, SQL) schön für Sprachexperten schön für Sprachexperten Fragen bleiben Fragen 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.

32 Datentypen (ff) Primitive Datentypen string, boolean, double, decimal, timeDuration, uriReference,... Primitive Datentypen string, boolean, double, decimal, timeDuration, uriReference,... Vordefinierte abgeleitete Datentypen byte, short, int, time, date, timePeriod, recurringDay (z.B. jeder 5te im Monat) Vordefinierte abgeleitete Datentypen byte, short, int, time, date, timePeriod, recurringDay (z.B. jeder 5te im Monat) Benutzerdefinierte Datentypen Listen von Datentypen (vgl. structs), Bereichseinschränkungen,... Benutzerdefinierte Datentypen Listen von Datentypen (vgl. structs), Bereichseinschränkungen,... Toolkit Wizard Probieren geht einher mit Studieren (Toolkit-Gedanke). Notfalls den erzeugten Text nacheditieren. Toolkit Wizard Probieren geht einher mit Studieren (Toolkit-Gedanke). Notfalls den erzeugten Text nacheditieren.

33 Das Szenario… Web Service SOAP (4) 4 – SOAP Anforderung senden (3) 3 – Methodenaufruf (Start) DATEN (5) Web Page HTML(5) ROPE SOAP Web Service SDL(5) 5 – WS arbeitet (Business Logic) (6) 6 – SOAP Response erhalten (7) 7 – Methodenaufruf (Ende) Anwendung oder Browser Web Service SDL (2) 2 – SDL erhalten und paresen ROPE (1) 1 – SDL anfordern

34 SOAP in der Industrie Microsoft Microsoft IBM/Lotus IBM/Lotus DevelopMentor DevelopMentor Userland Software Userland Software IONA (Soap Bridge zu CORBA) IONA (Soap Bridge zu CORBA) Rogue Wave Rogue Wave ObjectSpace ObjectSpace JetForm JetForm Digital Creations Digital Creations Rockwell Software Rockwell Software Scriptics Scriptics Intel Intel Sun Sun und andere… und andere… ACHTUNG: Derzeit ist noch kein Standard endgültig abgesegnet.

35 Inhalt Web Services und.NET Web Services und.NET SOAP SOAP SOAP Toolkit SOAP Toolkit Vergleich SOAP und COM Vergleich SOAP und COM Zukunft? Zukunft?

36 SOAP vs. COM SOAP kein Ersatz für COM SOAP ist Kommunikationsprotokoll, COM ist Komponentenmodell SOAP kein Ersatz für COM SOAP ist Kommunikationsprotokoll, COM ist Komponentenmodell Komponentenkonzept, verteilte Transaktionen, Impersonifizierung,... Komponentenkonzept, verteilte Transaktionen, Impersonifizierung,... SOAP könnte als RPC-Protokoll unter COM dienen: DCOM-Ersatz? SOAP könnte als RPC-Protokoll unter COM dienen: DCOM-Ersatz? aber Kausalität etc. fehlt im Protokoll aber Kausalität etc. fehlt im Protokoll SOAP verbindet zu SOAP verbindet zu Services im WWW (HTTP-Tunneling) Services im WWW (HTTP-Tunneling) Services im Firmennetz Services im Firmennetz Services auf lokalem Rechner (Performance?!) Services auf lokalem Rechner (Performance?!)

37 SOAP vs. COM SOAP-Verbindung ist plattformunabhängig. z.B. Keine COM-CORBA-Bridge nötig SOAP-Verbindung ist plattformunabhängig. z.B. Keine COM-CORBA-Bridge nötig Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen und umgekehrt berücksichtigen (.net) Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen und umgekehrt berücksichtigen (.net) Transport-Protokoll (HTTP,...) Funktionsaufruf-Protokoll (ORPC, SOAP,...) Objekte und Komponenten(COM...) Abstraktions -Schichten

38 Außen SOAP – innen... COM: SOPE Toolkit Wizard von Microsoft COM: SOPE Toolkit Wizard von Microsoft man nehme COM-Objekt COM-Objekt Wizard Wizard und erhält SDL-File SDL-File Programmteile, um das COM-Objekt als WebService laufen zu lassen Programmteile, um das COM-Objekt als WebService laufen zu lassen CORBA: Xorba von Rogue Wave CORBA: Xorba von Rogue Wave EJB: Soap4J von IBM EJB: Soap4J von IBM

39 Inhalt Web Services und.NET Web Services und.NET SOAP SOAP SOAP Toolkit SOAP Toolkit Vergleich SOAP und COM Vergleich SOAP und COM Zukunft? Zukunft?

40 Zukunft Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen und umgekehrt berücksichtigen (.net)! Lösungs-Design sollte Verlagerung von Services aus dem Firmennetz nach Außen 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) bzw. IIOP (bei CORBA)? SOAP ersetzt DCOM-Protokoll (bei COM) bzw. IIOP (bei CORBA)? Visual Studio.NET wird kommen! Visual Studio.NET wird kommen! Service App Code Service

41 ebXML? Electronic Business XML Initiative (weniger Microsoft) Electronic Business XML Initiative (weniger Microsoft) Schwerpunkt sind B2B-Szenarien auf XML- Basis Schwerpunkt sind B2B-Szenarien auf XML- Basis Ende 1999: ein 18 Monats-Programm zum Finden einer technischen XML-Basis, auf der eine Standardisierung aufsetzen kann Ende 1999: ein 18 Monats-Programm zum Finden einer technischen XML-Basis, auf der eine Standardisierung aufsetzen kann 08/00: Einigung, dass SOAP alleine zu wenig ist 08/00: Einigung, dass SOAP alleine zu wenig ist Fazit: Sich mit XML-Technologien beschäftigen und Augen offen halten Fazit: Sich mit XML-Technologien beschäftigen und Augen offen halten

42 Ressourcen SOAP Toolkit Download SOAP Toolkit Download Newsgroup Newsgroup microsoft.public.msdn.soaptoolkit microsoft.public.msdn.soaptoolkit Verbesserungsvorschläge (engl.) Verbesserungsvorschläge (engl.) World Wide Web Consortium World Wide Web Consortium DevelopMentor Essential.NET DevelopMentor Essential.NET

43 Fragen?

44


Herunterladen ppt "SOAP Simple Object Access Protocol. Simple Object Access Protocol SOAP Frank Lange Michael Willers Microsoft."

Ähnliche Präsentationen


Google-Anzeigen