Web Services Flashcards
Was ist ein Web Service?
- Zentraler Begriff der Dienstleistung: Komponente bietet Dienst an
-aktiver Vorgang beim Erbringen einer Dienstleistung
-Ausführung einer Funktion - Zugang zu Web-Services über das Web: Nutzung standardisierter Protokolle und Konzepte, z.B. HTTP und XML
- Keine allgemeingültige Definition von Web-Services
Web-Services Architecture Group beim W3C:
…ein durch eine URI identifiziertes Softwaresystem, dessen öffentliche
Schnittstellen und Protokollbindungen durch XML definiert …sind … - Aktuelle Bindung: Dienst der via HTTP, REST und JSON realisiert ist
Motivation von Web Services:
-Vision vom Markt der Komponenten bzw. jetzt Web-Services: Unabhängige Softwarefirmen verkaufen Web-Services-Software, Web-Services sind nicht ortsgebunden (Kann aus der Entfernung zugegriffen werden, Benötigt in der Regel keine Installation von Software für den Nutzer)
-Web als einfache Schnittstelle: Verknüpfung verschiedener Webschnittstellen früher nur manuell
(Weitergabe von Daten über Eingabe im Web-Browser),
Automatische Verknüpfung wünschenswert/notwendig
(z.B. Webseite zum Authentisieren von Kreditkarten + Webseite zum Einkauf von Produkten)
-Rückrat für Cloud Computing: Basisdienste werden oft in verschiednen Ausprägungen unterstützt
(z.B.: Amazon S3 unterstützt SOAP und REST)
URI Definition & Sichtweisen
- Uniform Resource Identifier (URI): eindeutige Referenzierbarkeit von Ressourcen (Dokumente, Mailadressen, Mailboxen, Webseiten, Telefone,
Namensdienste, Objekte …), einheitliches Schema zur Referenzierung (erweiterbares, lesbares und maschinenlesbares Format) - klassische Sichtweise: Aufteilung in Uniform Resource Locator (URL) und Unfiromf Resource Name (URN)
- heutige Sichtweise: alles ist eine URI
HTTP
=Hypertext Transfer Protocol (HTTP)
- Basierend auf TCP/IP (verbindungsorientiert)
- Anfrage-Antwort-Interaktion (Request-Reply): Client sendet Anfragenachricht (Request), Server sendet Antwortnachricht (Response)
Nachrichtenaufbau HTTP
= Textbasiertes Protokoll: Einfache Analysierbarkeit (ohne zusätzliche Werkzeuge)
- Anfrage: Request-Methode: Anfragetyp, Methodenauswahl (z.B. GET /robots.txt HTTP/1.0), Request-Header - Zusatzinformationen zur Anfrage
(z.B. User-Agent: OperMoz und Host: www.fau.de)
-Leerzeile
-Optionaler Datenbereich (Body): Inhalt beschrieben durch bestimmten Request-Header (Content-Type), MIME-Type (Multi-Purpose Internet Mail Extension) [Body]
- Antwort: HTTP-Response: Status der Antwort, (z.B. HTTP/1.0 200 OK), Response-Header: Zusatzinformationen zur Antwort
-Leerzeile
-optionaler Datenbereich (Body)
-Daten:
Beliebig (orientiert an MIME-Types)
z.B. application/pdf
Mehrere Einzelteile durch Multipart-Typen
z.B. multipart/mixed
Methoden HTTP
Definierte Methoden: GET: Anfrage nach Daten HEAD: Hole Response-Header ohne Datenanhang (sonst wie GET) PUT: Speichere Daten POST: Schicke Daten OPTIONS: Hole Serverinformationen
Verbindung über TCP/IP
Heute:
- Wiederverwendung der Verbindung für mehrere Anfragen an den gleichen Server
- Zusätzlich ist Pipelining möglich (HTTP/1.1): Mehrere Anfragen hintereinander (über eine Verbindung), Antworten kommen in gleicher Reihenfolge später
Was ist Extensible Markup Language (XML)?
-Auszeichnungssprache (Markup Language) zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten
-Ermöglicht z.B. den plattform- und implementationsunabhängigen Austausch von Daten zwischen Computersystemen eingesetzt: Grundlage für Web-Services
-Vom World Wide Web Consortium (W3C) herausgegebene
XML-Spezifikation
-Metasprache auf deren Basis durch die strukturelle und inhaltliche
Einschränkungen anwendungsspezifische Sprachen definiert werden können
Aufbau eines XML Dokuments
Jedes XML-Dokument ist aus drei Teilen aufgebaut:
- XML-Header: enthält XML-Version und Zeichensatz
- Verarbeitungsanweisungen und XML-Elemente (Daten)
- Elemente können hierarchisch verschachtelt sein
- Anmerkung: XML ist „case-sensitive“
XML Wohlgeformtheit
Formale Voraussetzung für korrekte XML-Dokumente:
-jedes Start-Tag hat zugehöriges Ende-Tag
-Elemente dürfen geschachtelt werden, aber nicht überlappen
-genau ein Wurzelelement
-Attributwerte in Anführungszeichen
-keine zwei Attribute gleichen Namens in einem Element
-Kommentare und Verarbeitungsanweisungen nicht innerhalb eines
Tags
–> Wohlgeformtheit sorgt für Baumstruktur!
XML Gültigkeit
- Konkrete Strukturüberprüfung für ein korrektes XML-Dokument - ist das Dokument gültig/valide (Validierung)
- Überprüfung der Anordnung von Elementen und Attributen(z.B. XML-Dokument zur Beschreibung einer Word-Datei unterscheidet sich in der Struktur von XML-Dokumenten zur Beschreibung von Webseiten)
- Festlegung der Dokumentstruktur: DTD (Document Type Definition), XML-Schema, Beide Arten der Dokumentstruktur-Definition können im Dokument oder außerhalb des Dokuments stehen. (Außerhalb ist in der Regel aber sinnvoller)
XML Namensraum
Problem: Verknüpfung von XML-Dokumentausschnitten verschiedener Struktur in einem neuen XML-Dokument
–> Problem: Elementnamen nicht eindeutig!
Lösung: XML-Namensräume
-Jedes Element in einem XML-Dokument kann
Namensraumzuordnung haben
- Default: keine Namensraumzuordnung
- Identifikation des Namensraums durch URI
– der lediglich bezeichnenden Charakter hat!
Syntax für Namensraumzuordnung: In einem Element Nutzung des reservierten Attributs xmlns, Attributwert ist Namensraum-URI
Wikipedia: XML-Namensräume (englisch „XML namespaces“) werden benutzt, um Elemente und Attribute in einem XML-Dokument eindeutig zu identifizieren und um in einem einzelnen Dokument mehrere XML-Sprachen mischen zu können. Ihre Funktionsweise ist mit Vorwahlen bei Telefonnummern zu vergleichen
XML Schema
Funktion: Strukturbeschreibung von XML-Dokument-Klassen (XML-Anwendung), Grundlage zur Validierung von XML-Dokumenten - Syntaxprüfung, Löst DTD (Dokumententypdefinition) ab
XML-Schema:
- XML-Anwendung zur Beschreibung von XML-Anwendungen
- XML-Schema-Definition ist ein XML-Dokument
- XML-Schema-Instanz ist ein XML-Dokument das gültig/valide ist bzgl. einer XML-Schema-Definition
Wikipedia: XML Schema, abgekürzt XSD, ist eine Empfehlung des W3C zum Definieren von Strukturen für XML-Dokumente. Anders als bei den klassischen XML-DTDs wird die Struktur in Form eines XML-Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt
XML-RPC
XML-RPC ist eine Definition zum Methoden- oder auch Funktionsaufruf durch verteilte Systeme.
Einfacher/primitiver Fernaufruf:
- Basierend auf XML-Nachrichten
- Limitierte Menge von primitiven Datentypen
- Unterstützung von arrays und structs
- HTTP als Trägerprotokoll
- Von nahezu allen aktuellen Programmiersprachen unterstützt
- JSON-RPC als gängige Alternative verfügbar
XML Struktur einer Anfragenachricht
XML-RPC Anfragen werden durch Methodennamen und Parameter beschrieben
HTTP Request
HTTP Body: Anfrage
HTTP Response
HTTP Body: Antwort