Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Loreley Hellman Geändert vor über 10 Jahren
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!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.