Motivation. Überblick. Plattformunabhängiges Fernaufrufprotokoll. Fernaufruf: Interaktion zwischen Client und Dienst



Ähnliche Dokumente
Überblick. c td MWCC (WS12/13) Plattformunabhängige Fernaufrufe 2 1

Containerformat Spezifikation

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Containerformat Spezifikation

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Verteilte Systeme: Übung 4

RESTful Web. Representational State Transfer

Wiederholung: Beginn

Web-Konzepte für das Internet der Dinge Ein Überblick

Zustandsgebundene Webservices

Java und XML 2. Java und XML

Man liest sich: POP3/IMAP

Überblick. c td MWCC (WS15/16) Web-Services 2 1

Implementierung von Web Services: Teil I: Einleitung / SOAP

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Proseminar: Website-Management-Systeme

Einführung. Internet vs. WWW

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

Überblick. Fernaufrufe Motivation Stubs und Skeletons Marshalling und Unmarshalling Automatisierung XML-RPC. c td VS (SS17) Fernaufrufe 3 1

Anwendungsprotokolle: HTTP, POP, SMTP

Thema: Web Services. Was ist ein Web Service?

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Client/Server-Systeme

Java Kurs für Anfänger Einheit 5 Methoden

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Securing SOAP e-services

VVA Webservice Online Lieferbarkeits-Abfrage

XML Schema vs. Relax NG

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Klaus Schild, XML Clearinghouse Namensräume

Beispiele, um das Spektrum an Szenarien aufzuzeigen, die mit dem extra Standard möglich sind

STARFACE SugarCRM Connector

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

OP-LOG

XML DTD und Schema von Thomas Mangold

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

XML-RPC & SOAP. Sven Heß & Fabio Caprera Systemprogrammierung SS 08

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Transmission Control Protocol (TCP)

Norm 230 Übertragung von Dateien

CORBA. Systemprogrammierung WS

Kontroll- und Mitteilungsverfahren

Information über die WebServices der Parlamentsdienste

SAP NetWeaver Gateway. 2013

Web Sockets mit HTML5. Quelle:

Ursprung des Internets und WWW

Grundlagen der Web-Entwicklung INF3172

AlwinPro Care Modul Schnittstelle TV-Steuerung

Objektorientierte Programmierung

Session Management und Cookies

3. Stored Procedures und PL/SQL

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Überblick. Multi-Cloud Computing Motivation Redundant Array of Cloud Storage (RACS) Zusammenfassung. c td MWCC (WS14/15) Multi-Cloud Computing 13 1

Web Grundlagen zum Spidering

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

XSL Templates. Mit Templates arbeiten. XSL Templates

ObjectBridge Java Edition

Internet Protokolle für Multimedia - Anwendungen

Firewalls für Lexware Info Service konfigurieren

Gesicherte Prozeduren

Online-Publishing mit HTML und CSS für Einsteigerinnen

32.4 Anpassen von Menüs und Symbolleisten 795i

Technische Anforderungen. zum Empfang. von XML-Nachrichten

Client-Server mit Socket und API von Berkeley

XML-Namensräume. Marc Monecke

SOAP Simple Object Access Protocol

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

-Inhalte an cobra übergeben

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Ausblick: Archivierung elektronischer Standesamtsunterlagen

Leitfaden zur Nutzung von binder CryptShare

Firewalls für Lexware Info Service konfigurieren

Web Service Discovery mit dem Gnutella Peer-to-Peer Netzwerk

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

System-Update Addendum

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flash, Network und Facebook. Steven Mohr

!"# $ % Internet Protokolle: HTTP 1/38

XMPP: Extensible Messaging and Presence Protocol

WEBSEITEN ENTWICKELN MIT ASP.NET

Anforderungen an die HIS

Wirtschaftsinformatik 2

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

OPERATIONEN AUF EINER DATENBANK

IT- und Medientechnik

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Realisierung asynchroner Client/Server-Kommunikation im Mobilfunk

Validierungsarchitektur

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Transkript:

Überblick Motivation Plattformunabhängige Fernaufrufe Motivation Extensible Markup Language (XML) Hypertext Transfer Protocol (HTTP) XML-basierte Fernaufrufe (XML-) Zusammenfassung Fernaufruf (Remote Procedure Call, ) [Bei Interesse: Weiterführende Informationen in der Veranstaltung Verteilte Systeme im Sommersemester.] Kurzbezeichnung für Fernenaufruf Unterschiede zu lokalem Methodenaufruf Aufruf und Ausführung einer Methode erfolgen auf verschiedenen Rechnern Nachrichtenaustausch übers Netzwerk Komplexeres Fehlermodell Einsatzszenarios (Beispiele) Zugriff auf per Web-Service angebotene Cloud-Dienste Auslagerung von aufwendigen Berechnungen in die Cloud Herausforderungen im Kontext von Cloud Computing Wie lässt sich ein Fernaufruf so weit wie möglich transparent realisieren? Aufrufer soll den Unterschied zu einem lokalen Methodenaufruf nicht merken Cloud-Zugriff soll verschattet werden Wie kann ein plattformunabhängiges Fernaufrufprotokoll aussehen? c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe 2 1 Fernaufruf: Interaktion zwischen Client und Dienst Umwandlung des lokalen Aufrufs in Nachrichtenaustausch Client sendet Anfragenachricht (Request) Dienst sendet Antwortnachricht (Reply) c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Motivation 2 2 Plattformunabhängiges Fernaufrufprotokoll Anforderungen Systemunabhängige Nachrichtenformate und Übertragungsprotokolle Einsatz weit verbreiteter Standards Client Application Cloud Service Client Application Cloud Service Client Host Network Cloud Host Client Host Network Cloud Host c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Motivation 2 3 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Motivation 2 4

Extensible Markup Language (XML) Aufbau eines XML-Dokuments Auszeichnungssprache für hierarchisch strukturierte Daten Überblick Repräsentation in Textform Intention: Lesbarkeit für Mensch und Maschine Nachteile Mehraufwand für das Erzeugen und Einlesen von Nachrichten Erhöhtes Datenvolumen bei Übertragung über ein Netzwerk Darstellung von Informationen Ursprünglich: Format zur Repräsentation von Dokumenten Häufig aber auch als allgemeines Datenformat im Einsatz ( Web-Services) Tim Bray, Jean Paoli, Michael Sperberg-McQueen, Eve Maler et al. Extensible Markup Language (XML) 1.0 (Fifth Edition), 2008. Dokumentstruktur XML-Deklaration <?xml version="[versionsnummer]"?> Wurzelelement Bestandteile Elemente <[Elementname] [Optional: Attribut 1, Attribut 2,...]>[Inhalt]</[Elementname]> Beschreibung mittels eindeutigem Start- und End-Tag Inhalt Nutzdaten Weitere Elemente ( Elementhierarchie) Spezialfall: Empty-Element-Tag für leeres Element <[Elementname] [Optional: Attribut 1, Attribut 2,...]/> Attribute: Bereitstellung als Schlüssel-Wert-Paare [Attributname]="[Attributwert]" c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 5 Namensräume Problem Bei der Kombination mehrerer XML-(Teil-)Dokumente zu einem neuen XML-Dokument sind Elementnamen eventuell nicht eindeutig Lösung: Verwendung von XML-Namensräumen Identifizierung eines Namensraums per Universal Resource Identifier (URI) [Hinweis: Ein Namensraum-URI hat nur bezeichnenden Charakter; unter der angegebenen Adresse muss nicht notwendigerweise eine Ressource mit Kontextinformationen zum referenzierten Namensraum abrufbar sein.] Definition eines Default-Namensraums [xmlns: XML namespace] <[Elementname] xmlns="[uri des Namensraums]"> [Gültigkeitsbereich der Namensraumreferenz] </[Elementname]> Einsatz von Präfixen für verschiedene Namensräume (Beispiel) <[Elementname] xmlns:[präfix A]="[URI des Namensraums A]" xmlns:[präfix B]="[URI des Namensraums B]"> <[Präfix A]:[Subelementname]></[Präfix A]:[Subelementname]> <[Präfix B]:[Subelementname]></[Präfix B]:[Subelementname]> </[Elementname]> c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 6 Überprüfung von XML-Dokumenten Wohlgeformtheit (Well-formedness) Dokument entspricht der XML-Spezifikation Überprüfung der Syntax Kriterien (Beispiele) Einzelnes Wurzelelement Zu jedem Start-Tag muss ein korrespondierender End-Tag existieren Keine Überlappung von Elementen Attributname muss innerhalb eines Start-/Empty-Element-Tag eindeutig sein [Hinweis: Die ersten drei Kriterien garantieren eine Baumstruktur des XML-Dokuments.] Gültigkeit (Validity) Dokument entspricht der XML-Spezifikation sowie weiteren Kriterien Zusätzliche Überprüfung des Dokuments auf Konformität zu einem im XML-Dokument referenzierten, zumeist separat bereitgestellten Schema Festlegung von Regeln, z. B. mittels XML Schema Definition (XSD) Definition der erlaubten Elemente und Attribute c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 7 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 8

XML Schema Definition (XSD) XML Schema Vordefinierte Datentypen Überblick Strukturbeschreibung von XML-Dokument-Klassen Datentypen Elemente Attribute XML-Schema-Definitionen sind selbst XML-Dokumente Einsatzbereiche Validierung von XML-Dokumenten Beschreibung der in Web-Service-Schnittstellen verwendeten Datentypen Einbindung einer XML-Schema-Definition in ein XML-Element <[Elementname] xmlns:xsd="http://www.w3.org/2001/xmlschema-instance" xsd:schemalocation="[uri auf XML-Schema-Definition]"/> David C. Fallside and Priscilla Walmsley XML Schema Part 0: Primer Second Edition, 2004. Primitive Datentypen Datentyp Beschreibung boolean Mögliche Werte: wahr (true bzw. 1), falsch (false bzw. 0) decimal Zahl der Form i 10 n mit i, n N 0 string Zeichenkette datetime Kombination aus Datum und Uhrzeit anyuri Absolute oder relative URI [14 weitere...] Abgeleitete Datentypen Datentyp Abgeleitet von Beschreibung integer decimal Ganze Zahl normalizedstring string Zeichenkette ohne \r, \n oder \t [23 weitere...] anytype: Abstrakter Basistyp für alle anderen Datentypen c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 9 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 10 XML Schema Benutzerdefinierte Datentypen XML Schema Benutzerdefinierte Datentypen Definition eigener einfacher Datentypen (simpletype) <xsd:simpletype name="[name des Datentyps]"> [Beschreibung des Datentyps] </xsd:simpletype> Liste <xsd:list itemtype="[datentyp der Listenelemente]"/> Union: Datentyp mit kombiniertem Wertebereich <xsd:union membertypes="[aufzählung erlaubter Datentypen]"/> Ableitung eines Basisdatentyps mit Einschränkung des Wertebereichs <xsd:restriction base="[basisdatentyp]"> [Einschränkung des Basisdatentyps] </xsd:restriction> Aufzählung: Festlegung bestimmter zulässiger Werte (enumeration) Minimal-/Maximalwerte für Integer (mininclusive, maxinclusive) Reguläre Ausdrücke für Zeichenketten (pattern)... Definition eigener komplexer Datentypen (complextype) <xsd:complextype name="[name des Datentyps]"> [Beschreibung des Datentyps] </xsd:complextype> Festlegung der Reihenfolge von Subelementen <xsd:sequence>[subelemente]</xsd:sequence> Referenzierung von existierenden Datentypen <xsd:element ref="[name des Datentyps]"/> Spezifizierung eigener Elementnamen und Zuordnung zu Datentypen <xsd:element name="[elementname]" type="[name des Datentyps]"/> Definition eigener Attribute (nur einfache Datentypen erlaubt) <xsd:attribute name="[attributname]" type="[name des Datentyps]"/> Attribute zur Einschränkung der Anzahl von Elementen Festlegung einer Mindest- bzw. Maximalanzahl (minoccurs, maxoccurs) Für optionale Elemente: minoccurs auf 0 setzen c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 11 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Extensible Markup Language (XML) 2 12

Hypertext Transfer Protocol (HTTP) Header & Body Protokoll für Zugriff auf Ressourcen über ein Netzwerk Lesender Zugriff (z. B. Abruf einer Web-Seite) Schreibender Zugriff (z. B. Hochladen einer Datei) Überblick Zumeist TCP/IP als zuverlässiges Transportprotokoll Eigentlich Anwendungsprotokoll, kommt aber oftmals auch selbst als Transportprotokoll zum Einsatz (siehe XML-) Textbasierter Nachrichtenaustausch Zustandsloses Protokoll Tim Berners-Lee, Roy Fielding, and Henrik Frystyk Hypertext Transfer Protocol HTTP/1.0, RFC 1945, 1996. Roy Fielding, Jim Gettys, Jeffrey Mogul, Henrik Frystyk, Larry Masinter et al. Hypertext Transfer Protocol HTTP/1.1, RFC 2616, 1999. Header [Methode] [Ressourcen-ID] HTTP/[Versionsnummer]\r\n [Feld 1: Name]: [Feld 1: Wert]\r\n [Weitere Felder...] \r\n Startzeile Methode: Operation, die auf die adressierte Ressource angewandt werden soll Ressourcen-ID: Adresse der Ressource, auf die zugegriffen werden soll Nachrichtenkopf Liste von Schlüssel-Wert-Paaren (Feldern) Beispiele Feldname Host User-Agent If-Modified-Since Content-Type Content-Length Body (optional): Nutzdaten Beschreibung Name des Rechners, der die adressierte Ressource verwaltet Client-Anwendung, z. B. Web-Browser Zeitstempel für bedingte Ausführung Art der Nutzdaten, z. B. text/html (HTML-Seite) Länge der Nutzdaten c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 13 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 14 Methoden Ressourcen-ID Überblick über die wichtigsten HTTP-Methoden Methode GET HEAD POST PUT DELETE Beschreibung Lesender Zugriff auf die adressierte Ressource Unterschied zu GET: Antwort enthält keinen Body Modifizierender Zugriff auf die adressierte Ressource (Beispiele) Annotation einer existierenden Ressource Senden einer Nachricht an eine Mailing-Liste Übermittlung von Formulardaten Anfügen eines Datensatzes an eine Datenbank Registrieren von Daten unter der übergebenen Ressourcenadresse Löschen der adressierten Ressource Weitere Methoden: OPTIONS, TRACE, CONNECT,... Zentrale Methoden für die Browser-Server-Kommunikation GET POST [RFC 2616] Universal Resource Identifier (URI) Zeichenkette zur global eindeutigen Identifikation einer Ressource Struktur "http://" [Host] [":" [Port]] [[Absoluter Pfad]] Beispiel http://www4.cs.fau.de/lehre/ws13/v_mw/index.ushtml Absoluter Pfad Lokale Adresse einer Ressource auf dem Zielrechner Globale Eindeutigkeit ist eventuell nur in Kombination mit dem Host-Feld im HTTP-Header gegeben Beispiel-Header GET /Lehre/WS13/V_MW/index.ushtml HTTP/1.1 Host: www4.cs.fau.de c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 15 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 16

Aufbau einer Antwortnachricht Kommunikation über TCP/IP Header HTTP/[Versionsnummer] [Status-Code] [Statusnachricht]\r\n [Feld 1: Name]: [Feld 1: Wert]\r\n [Weitere Felder...] \r\n Statuszeile Status-Code: Als Zahl repräsentierte Statusmeldung Statusnachricht: Textuelle Beschreibung des Status-Codes Klasse Kategorie Beschreibung 1xx Informell Anfrage wurde empfangen, Bearbeitung erfolgt 2xx Erfolg Anfrage wurde empfangen, verstanden und akzeptiert 3xx Weiterleitung Weitere Aktionen notwendig 4xx Client-Fehler Anfrage war fehlerhaft 5xx Server-Fehler Anfrage war korrekt, aber im Server lag ein Fehler vor [RFC 2616] Nachrichtenkopf: Struktur analog zu Nachrichtenkopf in Anfragenachricht Body (optional): Nutzdaten Transmission Control Protocol (TCP) Zuverlässiges Transportprotokoll Verbindungsorientierte Kommunikation Mechanismus für Flusskontrolle Erhaltung der Nachrichtenreihenfolge Einsatz von TCP/IP in unterschiedlichen HTTP-Versionen HTTP/1.0 Separate TCP/IP-Verbindung pro Anfrage-Antwort-Interaktion Nachteil: Zusätzliche Last für Rechner und Netzwerk HTTP/1.1 Persistente Verbindungen: Wiederverwendung der TCP/IP-Verbindung für weitere Anfragen an den selben Server Vorteile Minimaler Mehraufwand für Verbindungsaufbau Pipelining möglich: Parallele, asynchrone Anfragen eines Clients c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 17 Indirekte Kommunikation Aufrufketten Paarweise Punkt-zu-Punkt-Verbindungen Anwendungsprozesse als Bindeglied zwischen Verbindungen Beispiele für als Vermittler fungierende Anwendungsprozesse Proxy Abfangen und Weiterleiten von Anfragen und Antworten Vom Client explizit ausgewählt, um mit dem Server zu kommunizieren Eventuell Modifikation der Nachrichten Gateway Knoten an der Schwelle zwischen zwei heterogenen Netzwerken Client sieht Gateway als eigentlichen Server an Eventuell Modifikation der Nachrichten Tunnel Transparenter Vermittler zwischen zwei Verbindungen Keine Modifikation der Nachrichten c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 18 XML- Plattformunabhängiges Fernaufrufprotokoll XML: Nachrichtenformat HTTP: Transportprotokoll Umfang Spezifikation Festlegung der verfügbaren Datentypen Aufbau von Anfrage- und Antwortnachrichten Implementierungen für verschiedene Programmiersprachen Java C++ Python... XML- http://xmlrpc.scripting.com/ c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Hypertext Transfer Protocol (HTTP) 2 19 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 20

Datentypen Header Primitive Datentypen (<value>) XML-Tag i4 bzw. int double boolean string base64 datetime.iso8601 Wert 32-Bit-Integer Fließkommazahl mit doppelter Genauigkeit 0 (false), 1 (true) Zeichenkette Base64-codierte Binärdaten Datum und Uhrzeit [XML- Specification, http://xmlrpc.scripting.com/spec] Komplexe Datentypen Liste primitiver und/oder komplexer Datentypen (<array>) <array><data> <value>[wert]</value> [Weitere <value>-elemente] </data></array> Ungeordnete Menge aus Schlüssel-Wert-Paaren (<struct>) <struct> <member><name>[schlüssel]</name><value>[wert]</value></member> [Weitere <member>-elemente] </struct> c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 21 HTTP-Header POST [URI] HTTP/1.1 Content-Type: text/xml User-Agent: [Nutzeranwendung] Content-Length: [Nachrichtenlänge] Host: [Zielrechneradresse: z. B. Hostname und Port] POST und Content-Type Identisch für alle Anfragen Intention: Unterstützung einfacher Firewall-Regeln URI Beliebiger Pfad (möglicherweise leer) Ermöglicht die Request-Handler-Auswahl auf Server-Seite c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 22 Body Aufbau einer Antwortnachricht Reguläre Antwort HTTP-Body <?xml version="1.0"?> <Call> <Name>[Methodenname]</Name> <params> <param>[aufrufparameter]</param> </params> </Call> Kapselung der Aufrufinformationen in einzelnem <Call>-Element Methodenname Eindeutige Identifikation der aufzurufenden Methode Beliebige Zeichenkette Beispiel: Zusammengesetzter Name aus Objekt-ID und Methodenname Aufrufparameter: Primitive oder komplexe Datentypen HTTP-Header HTTP/1.1 200 OK Server: [Server-Anwendung] Content-Type: text/xml Content-Length: [Nachrichtenlänge] Identisch für beide Antworttypen Status-Code bezieht sich auf HTTP, nicht auf den Methodenaufruf Reguläre Antwort: HTTP-Body <?xml version="1.0"?> <Response> <params><param>[rückgabewert]</param></params> </Response> Kapselung des Rückgabewerts in einzelnem <Response>-Element Rückgabewert: Primitiver oder komplexer Datentyp in <param>-element c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 23 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 24

Aufbau einer Antwortnachricht Fehlermeldung Zusammenfassung Fehlermeldung: HTTP-Body <?xml version="1.0"?> <Response> <fault> <value><struct> <member> <name>faultcode</name> <value><i4>[fehler-code]</i4></value> </member> <member> <name>faultstring</name> <value><string>[fehlerbeschreibung]</string></value> </member> </struct></value> </fault> </Response> Kapselung der Fehlermeldung in einzelnem <fault>-element Semantik des Fehler-Codes von der Anwendung frei wählbar Extensible Markup Language (XML) Auszeichnungssprache für hierarchisch strukturierte Daten Kriterien für Wohlgeformtheit und Gültigkeit von Dokumenten Definition eigener Datentypen mit XML Schema Hypertext Transfer Protocol (HTTP) Protokoll für Zugriff auf Ressourcen über ein Netzwerk Oftmals TCP/IP als Transportprotokoll Zustandslose Interaktion XML-basierte Fernaufrufe (XML-) Plattformunabhängiger Fernaufrufmechanismus Austausch von XML-Dokumenten HTTP als Transportprotokoll Ausblick: XML- nicht flexibel genug für komplexe Web-Services SOAP: Kommunikationsprotokoll für Web-Services REST: Grundprinzipien für die Entwicklung von skalierbaren Web-Services c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe XML-basierte Fernaufrufe (XML-) 2 25 c td MWCC (WS13/14) Plattformunabhängige Fernaufrufe Zusammenfassung 2 26