Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Konzeption und Implementierung einer XML-RPC und SOAP Anbindung Praktikumsbericht von Martin Spindler.

Ähnliche Präsentationen


Präsentation zum Thema: "Konzeption und Implementierung einer XML-RPC und SOAP Anbindung Praktikumsbericht von Martin Spindler."—  Präsentation transkript:

1 Konzeption und Implementierung einer XML-RPC und SOAP Anbindung Praktikumsbericht von Martin Spindler

2 Gliederung 1.Einleitung - SKYRIX Software AG - Die SKYRiX Groupware - Motivation 2.XML-RPC - Spezifikation - XML-RPC Anbindung an Objective-C 3.SOAP: Kurzer Überblick 4.Ausblick und weiterführende Arbeiten 5.Zusammenfassung

3 MDlink GmbH Nov. 2000: SKYRIX Software AG ca. 17 Mitarbeiter davon ein Drittel Studenten Produkt: SKYRiX Groupware 1. Einleitung: SKYRIX Software AG

4 1. Einleitung: SKYRiX Groupware

5 1. Einleitung: Motivation I Unterstützung von Skriptsprachen Automatisieren von Operationen Unterstützung von Hochsprachen native Clients Nutzen fremder Services Standardisierte Schnittstellen:

6 1. Einleitung: SKYRiX – Struktur Schichten verschiedene Abstraktionsstufen gutes Software Design unabhängige Libraries Trennung von UI und Model

7 1. Einleitung: SKYRiX – Struktur SchichtenProzesse

8 1.Einleitung: Motivation II Verteilte Prozesse Stabilität Skalierbarkeit Performance steigt

9 1. Einleitung: RPC RPC Remote Procedure Call Aufruf von Funktionen auf entfernten Rechnern Funktion = Name + Parameter + Resultat

10 2. XML-RPC RPC über XML und HTTP Unterstützt von vielen Programmiersprachen Spezifikation: http://www.xmlrpc.com

11 2. XML-RPC: Struktur Call: add(3,5) add 3 5 8 Response: 8

12 2. XML-RPC: Datentypen oder 4 Byte Integer -42 Wahr oder Falsch 1 ASCII String Hello World Fließkommazahl -23.52341 Datum / Zeit 19980717T14:08:55 Binäre Daten eW9lYWQgdGhpcyE= 3... person_id 3... Skalare Typen: Komplexe Typen:

13 2. XML-RPC: Objective-C Haussprache von SKYRiX Objektorientiert (SMALLTALK für C) Dynamisch bindende und typisierende Sprache Beliebige Klassen können während Laufzeit instanziert werden Syntax: [object messageWith:paramter1 and:parameter2]

14 2. XML-RPC: Aufbau von libXmlRpc Klassen: XmlRpcMethodCall XmlRpcMethodResponse XmlRpcSaxHandler XmlRpcDecoder XmlRpcEncoder

15 2. XML-RPC: MethodCall und -Response XmlRpcMethodCallXmlRpcMethodResponse -initWithName:parameters: -initWithXmlRpcString: -paramters -methodName -xmlRpcString -initWithResult: -initWithXmlRpcString: -result -xmlRpcString

16 2. XML-RPC: XmlRpcEncoder XmlRpcMethodCall bzw. XmlRpcMethodResponse XML Dokumente Beispiel: Person-Klasse mit verschiedenen Attributen - (void)encodeWithXmlRpcCoder:(XmlRpcEnoder *)_coder { [_coder encodeString:[self firstname] forKey:@firstname]; [_coder encodeDate:[self birthday] forKey:@birthday]; [_coder encodeData:[self image] forKey:@image]; [_coder encodeObject:[self address] forKey:@address]; }... Ergebnis:

17 2. XML-RPC: XmlRpcSaxHandler Parsen von XML Dokumenten mit SAX: –SAX = Simple API for XML –Ereignisbasierte Callbacks z.B. Tag geht auf, Tag schliesst sich,… XmlRpcSaxHandler –Ergebnis: XmlRpcMethodCall bzw. XmlRpcMethodResponse –ABER: nur standard XML-RPC Typen!!! –ALLERDINGS: Zuordnung NSObjectClass Attribut zu Values

18 2. XML-RPC: XmlRpcDecoder XML Dokument XmlRpcMethodCall bzw. XmlRpcMethodResponse Mit korrekten Klassen!!! Verwendung des XmlRpcSaxHandlers Funktionsweise: 1.Instanzieren der Klasse anhand des NSObjectClass Attributes 2.Initialisieren dieser Klasse durch Aufruf von –initWithXmlRpcCoder: - (id)initWithXmlRpcCoder:(XmlRpcDecoder *)_coder { if ((self = [super init])) { [self setFirstname:[_coder decodeStringForKey:@firstname]]; [self setBirthday: [_coder decodeDateForKey:@birthday]]; [self setImage: [_coder decodeDataForKey:@image]]; [self setAddress: [_coder decodeObjectForKey:@address]]; } return self; }

19 2. XML-RPC: XmlRpcClient XmlRpcClient *client = nil; NSString *location = @ http://xmlrpc.test.com/Calculator ; id result = nil; client = [[XmlRpcClient alloc] initWithLocation:location]; result = [client invokeMethodName:@ add param:[NSNumber numberWithInt:3] param:[NSNumber numberWithInt:5]]; // result enthält das Ergebnis [client release];

20 3. SOAP: Kurzer Überblick Prinzipiell wie XML-RPC, aber komplizierter XML Schema beliebige Datentypen spezielle Koder-Methoden fallen weg WSDL Service Beschreibung (IDL) Standard durch W3C Stark Propagiert durch Microsoft, IBM,... Einsatz in.NET, SUN ONE,...

21 4. Ausblick und weiterführende Arbeiten Bisherige Fortschritte bei SOAP Implementierung: –XML Schema Unterstützung: XmlSchemaClassGenerator, Encoding/Decoding –WSDLAnalyzer –Noch nicht stabil, aber bereits erste Verbindungen mit.NET, GOOGLE,... –XmlRpc-SOAP-PROXY

22 5. Zusammenfassung RPC = Remote Prozedure Call Wesentliche XML basierte RPCs: XML-RPC und SOAP libXmlRpc bietet XML-RPC Anbindung an Objective-C Unterstützung von beliebigen Typen ist gewährleistet. SOAP könnte Prozesskommunikation von SKYRiX ersetzen.

23 6. Ende Vielen Dank für Eure Aufmerksamkeit!


Herunterladen ppt "Konzeption und Implementierung einer XML-RPC und SOAP Anbindung Praktikumsbericht von Martin Spindler."

Ähnliche Präsentationen


Google-Anzeigen