Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Aufgabe1: Probleme mit Seife

Ähnliche Präsentationen


Präsentation zum Thema: "Aufgabe1: Probleme mit Seife"—  Präsentation transkript:

1 Aufgabe1: Probleme mit Seife
Trotz aller Standardisierung gibt es immer noch Interoperabilitätsprobleme zwischen den einzelnen SOAP-Implementierungen (z.B. IBM WebSphere und MS .Net). a) Wodurch entstehen diese Probleme? Wo treten sie auf? b) Welche Möglichkeiten gibt es um Interoperabilitätsprobleme zu vermeiden? (Best Practice) Zusatz: Welche Probleme der Interoperabilität können durch die WSDL bei der Zusammenarbeit von MS .Net und IBM WebSphere entstehen und wie können diese vermieden werden? Gibt es evtl. Richtlinien oder Konventionen, die bei der Erstellung von WSDL-Dateien beachtet werden sollten, die nicht im Standard definiert sind?

2 Wodurch entstehen diese Probleme?
- zahlreiche SOAP-Implementierungen (BEA, IBM, Microsoft, Sun Microsystems, Systinet, Apache, ...) - SOAP-Standard lässt vieles offen und bietet oft Möglichkeiten zur Interpretation; ist nur Recomendation

3 Wo treten diese Probleme auf?
Transport SOAPAction XML BOM Marks SOAP Datatype conversion

4 Wo treten diese Probleme auf::Transport()
SOAPAction im HHTP request header muss spezifiziert und quotiert sein. .NET Benutzt den SOAPAction header um die gewünschte Operation auszuführen z.B: urn:Example1/sayHello (/ ist Separator) Apache benutzt den namespace URI des ersten Kindelementes von <SOAP:Body> um die gewünschte Operation auszuführen; SOAPAction wird ignoriert. Lite benuzt # als den Separator im SOAPAction header z.B: urn:Example1#sayHello (# ist Separator)

5 Wo treten diese Probleme auf::Transport()
Bestpractice: SOAPAction header sollte immer vorhanden sein, und " delimitiert - SOAPAction: " - SOAPAction: - SOAPAction null, nicht immer möglichch, da viele HTTP Cliente nicht die möglichkeit haben null als einen Headerwert zu spezifiziern Beispiel Recommendations von ws-i - R1109 The value of the SOAPAction HTTP header field in a HTTP request MESSAGE MUST be a quoted string. - R1119 A RECEIVER MAY respond with a Fault if the value of the SOAPAction HTTP header field is not quoted.

6 Wo treten diese Probleme auf::XML()
n++ is BOM Mark BOM wird benutzt um die Encodierung einer Portion von einem XML Dokument zu spezifizieren; Apache hat einen Problem damit Wo treten diese Probleme auf::XML() HTTP/ OK Content-Type: text/xml; charset=utf-8 Content-Length: length n++<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi=" xmlns:xsd=" xmlns:soapenc=" xmlns:tns=" xmlns:soap=" <soap:Body soap:encodingStyle=" <tns:echoStringResponse> <Return>string</Return> </tns:echoStringResponse> </soap:Body> </soap:Envelope>

7 Wo treten diese Probleme auf::SOAP()
Einbindung komplexer, selbstdefinierter Datentypen Float Decimal Datetime Bytearrays

8 Wo treten diese Probleme auf::SOAP()
Bsp: Es wurden einige Methoden zum Ein- und Ausgeben diverser Datentypen definiert (z.B. echo2DStringArray) <complexType name="ArrayOfString2D"/> <complexContent> <restriction base="SOAP-ENC:Array"> <sequence> <element name="item" type="string" minOccurs="0" maxOccurs="unbounded" nillable="true"/> </sequence> <attributeGroup ref="SOAP-ENC:commonAttributes"/> <attribute ref="SOAP-ENC:offset"/> <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[,]"/> </restriction> </complexContent> </complexType>

9 Wo treten diese Probleme auf::SOAP()
Ergebnisse: Files: und

10 Wo treten diese Probleme auf::SOAP()::Float()
- XML stellt Infinity als INF dar - Apache SOAP 2.2 gibt Infinity zurück Apache AXIS gibt Inf zururück MS SOAP Toolkit 3.0: SoapMapper:Converting data for SoapMapper failed inside the typemapper - Schicken von E38 IONA XMLBus E38 White Mesa E38 MS SOAP ToolKit E+38

11 Wo treten diese Probleme auf::SOAP()
Decimal -> Minimum 18 Digits, nach spezifiktion von XML Schema -> Aber: keine höchste Grenze spzifiziert! -> MS & MESA: 28 Digits -> Axis: >100 Digits DateTime ->Mesa: Seconds ->Apache SOAP & Axis: Milliseconds Bytearrays ->Apache scheitert an base64Binary encodierte Bytearrays

12 Welche Möglichkeiten gibt es um Interoperabilitätsprobleme zu vermeiden? (Best Practice)
- Best Practice für Endanwender schwierig, da Programmierumgebung das Tool stellt, welches SOAP- und WSDL-Dokumente erstellt (testen, testen, testen!!!) - Toolkits verwenden, die weitgehendst interoperabel sind (welche sind das? eventuell SQLData SOAP Interop Interface Ergebnisse: - WS-I: Organisation die versucht Web Services weitesgehend interoperabel zu machen -> durch weitere Spezifikationen - Aufpassen mit den Datentypen, und wissen welche Datentypen eventuelle Schwachstellen oder Interoperabilität verursachen könnten

13 Probleme der Interoperabilität zwischen MS .NET und IBM WebSphere WSDL
Bsp: entspricht Standard läuft aber nicht überall <definitions name="StockQuote" targetNamespace=" xmlns:sq=" ... xmlns=" <import namespace=" location=" <message name="GetLastTradePriceInput"> <part name="body" element="sq:TradePriceRequest"/> </message> </definitions>

14 Probleme der Interoperabilität zwischen MS .NET und IBM WebSphere WSDL
WS-I konform <definitions name="StockQuote" targetNamespace=" xmlns:sq=" ... xmlns=" <types> <xsd:schema xmlns:xsd=" <xsd:import namespace=" schemaLocation=" </xsd:schema> </types>

15 Probleme der Interoperabilität zwischen MS .NET und IBM WebSphere WSDL
.NET generiert einen WSDL Datei per Webservice IBM WS generiert 2: eine für das Interface und eine für die Implementation - An WS-I Basic Profile halten - WSDL Analyzer (testen, testen, testen) File:

16 Aktuelle Informationen
- Aktuelle Links und Infos über unser Projekt unter: eitchteeteepee://wsp2003.tripod.com/x/ Links, PPTs, Kontakt


Herunterladen ppt "Aufgabe1: Probleme mit Seife"

Ähnliche Präsentationen


Google-Anzeigen