Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SOAP Simple Object Access Protocol

Ähnliche Präsentationen


Präsentation zum Thema: "SOAP Simple Object Access Protocol"—  Präsentation transkript:

1 SOAP Simple Object Access Protocol

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

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

4 “.net” – zu Lesen Web Services Services (ver)mieten Visual Studio.net
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. 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. 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. Web Services Services (ver)mieten Visual Studio.net

5 Web-Service Web ist/wird performant und hochverfügbar
Services wie Hotmail liefern Bedienoberfläche im Browser (Endanwender als Zielgruppe) Künftig Services, welche programmatisch nutzbar sind 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” Experten: “in 3 Jahren haben wir die Welt der Web-Services” Tools kommen: MS Visual Studio .NET Windows DNA wird ersetzt durch .NET Framework

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

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

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

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

11 Web Services - Technisch
Programmatischer Zugriff auf Services im Web Kommunikation von Web-Anwendungen untereinander XML als Standard für Daten(beschreibung) (plattform- und sprachunabhängig) SOAP als Protokoll für Funktionsaufrufe (plattform- und sprachunabhängig) 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” SOAP SOAP Toolkit
Vergleich SOAP und COM Zukunft?

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

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

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 <SQ:Envelope xmlns:SQ="http://schemas.xmlsoap.org/soap/envelope/" SQ:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > <SQ:Body> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SQ:Body> </SQ:Envelope>

16 Eine SOAP Response (über HTTP)
HTTP/ OK Content-Type: text/xml; charset="utf-8“ Content-Length: nnnn <SP:Envelope xmlns:SP="http://schemas.xmlsoap.org/soap/envelope/" SP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > <SP:Body> <m:GetLastTradePriceResponse xmlns:m="Some-Namespace-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SP:Body> </SP:Envelope>

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

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

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

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

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

22 Was ist SDL? “Service Description Language”
XML-basierte Grammatik zur Beschreibung der Funktionalität von Web-Services Erweiterbar Vergleich mit IDL IDL ist plattformabhängig SDL ist plattformunabhängig 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
Aufrufschnittstelle für Web Service-Clients ATL COM nutzbar von COM-unterstützenden Sprachen Objekte Proxy SOAPPackager WireTransfer versch. Objekte Zwei Programmier-Modelle Einfach – “VB”-typisch Erweitert – “VC”-typisch

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

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

26 ROPE – Einfaches Modell
Proxy Object.Method(Param1, … ParamN) Benutzen wie gewohnt Wenig Quelltext-Aufwand für Entwickler Hohe Abstraktionsstufe 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 hoher Grad an Kontrolle sehr flexibel orientiert an der Nachrichten-Welt (Senden, Empfangen) WireTransfer Kontrolle über Kopfdaten der Protokoll-Nachrichten

29 z.B. sListener = "http://localhost/demo/vacation.asp"
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 Methoden-Parameter als XML holen
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 SOAP-Request als XML erzeugen evtl. oSOAP.SetParameter icREQUEST, sParaName, sValue HTTP-POST (Response nach sBuffer) return-Wert heraussuchen

31 Datentypen siehe http://www.w3.org/TR/xmlschema-2/
es ist eine Spezifikation! Verweise auf andere Standards (ISO, SQL) schön für Sprachexperten 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,... 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,... Toolkit Wizard Probieren geht einher mit Studieren (Toolkit-Gedanke). Notfalls den erzeugten Text nacheditieren.

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

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

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

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

37 SOAP vs. COM Transport-Protokoll (HTTP,...) Funktionsaufruf-Protokoll (ORPC, SOAP,...) Objekte und Komponenten (COM...) Abstraktions-Schichten 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”)

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

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

40 Zukunft Service App Code 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? SOAP ersetzt DCOM-Protokoll (bei COM) bzw. IIOP (bei CORBA)? Visual Studio .NET wird kommen!

41 ebXML? Electronic Business XML Initiative (weniger Microsoft)
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 08/00: Einigung, dass SOAP alleine zu wenig ist Fazit: Sich mit XML-Technologien beschäftigen und Augen offen halten

42 Ressourcen SOAP Toolkit Download http://msdn.microsoft.com/xml/
Newsgroup microsoft.public.msdn.soaptoolkit Verbesserungsvorschläge (engl.) World Wide Web Consortium DevelopMentor “Essential .NET”

43 Fragen?

44


Herunterladen ppt "SOAP Simple Object Access Protocol"

Ähnliche Präsentationen


Google-Anzeigen