Web Services Flashcards

1
Q

Was ist ein Web Service?

A
  1. Zentraler Begriff der Dienstleistung: Komponente bietet Dienst an
    -aktiver Vorgang beim Erbringen einer Dienstleistung
    -Ausführung einer Funktion
  2. Zugang zu Web-Services über das Web: Nutzung standardisierter Protokolle und Konzepte, z.B. HTTP und XML
  3. 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 …
  4. Aktuelle Bindung: Dienst der via HTTP, REST und JSON realisiert ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Motivation von Web Services:

A

-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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

URI Definition & Sichtweisen

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

HTTP

A

=Hypertext Transfer Protocol (HTTP)

  • Basierend auf TCP/IP (verbindungsorientiert)
  • Anfrage-Antwort-Interaktion (Request-Reply): Client sendet Anfragenachricht (Request), Server sendet Antwortnachricht (Response)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nachrichtenaufbau HTTP

A

= 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Methoden HTTP

A
Definierte Methoden:
GET: Anfrage nach Daten
HEAD: Hole Response-Header ohne Datenanhang (sonst wie GET)
PUT: Speichere Daten
POST: Schicke Daten
OPTIONS: Hole Serverinformationen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Verbindung über TCP/IP

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist Extensible Markup Language (XML)?

A

-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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Aufbau eines XML Dokuments

A

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“
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

XML Wohlgeformtheit

A

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!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

XML Gültigkeit

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

XML Namensraum

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

XML Schema

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

XML-RPC

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

XML Struktur einer Anfragenachricht

A

XML-RPC Anfragen werden durch Methodennamen und Parameter beschrieben

HTTP Request
HTTP Body: Anfrage
HTTP Response
HTTP Body: Antwort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

XML Datentypen

A

Primitive Datentypen:

  • int oder i4 – 32 Bit, ganze Zahl
  • double – Fließkommazahl
  • string – Zeichenkette
  • boolean – 0 oder 1
  • dateTime.iso8601 – Datum noch ISO 8601
  • base64 – Binärdaten (Base64)

komplexe Datentypen:

  • arrays, können verschiedene Datentypen enthalten
  • struct, sowas wie ein (ungeordneter) Hash

Fehlerbehandlung: Fehlermeldungen werden durch den fault-Tag im Rückgabewert eines Aufrufs signalisiert

17
Q

SOAP - SImple Object Access Protocol

A

= Standard Kommunikationsprotokoll für Web-Services

  • Nachrichtenbasierte Übertragung
  • Übertragung vom Sender über Zwischenstationen zum Empfänger
  • Aus mehreren Nachrichten komplexere Kommunikationsparadigmen zusammensetzbar: Request-Reply-Protokolle (z.B. entfernter Aufruf ), Multicast-Protokolle (z.B. mehrere Empfänger und/oder mehrere Antworten), mehrere Antworten auf einen Request, SOAP ist eine XML-Anwendung
  • SOAP-Nachrichten sind XML-Dokumente
  • SOAP-Nachrichten werden mittels Trägerprotokoll transportiert (z.B. HTTP, E-Mail, TCP/IP)
18
Q

Bestandteile von SOAP

A
  • Definition des Nachrichtenumschlags (Envelope): Beschreibung des Nachrichteninhalts und dessen Verarbeitung
  • Definition von Codierungsregeln für anwendungsspezifische Datentypen (Encoding Rules): Umsetzung der Datentypen in XML (z.B. über XML-Schema-Datentypen)
  • Choreographie für komplexe Interaktionen: Konventionen für die Nachrichten entfernter Aufrufe
  • Abbildung auf ein Trägerprotokoll: Regeln zur Abbildung auf HTTP und E-Mail
19
Q

SOAP Umschlag

A

= SOAP-Umschlag (Envelope) ist eine XML-Datei
-SOAP-Tags werden über XML-Namensräume von
anwendungsspezifischen Tags getrennt
-Interner Aufbau des Umschlags: Envelope mit Header und Body:

optionaler Kopf (Tag: Header):
-enthält Anwendungsdaten (beliebig viele Elemente)
-hauptsächlich für Zwischenknoten bei der Übertragung
-für Kontextinformationen
-Zwischenknoten kann Kopf-Komponenten verändern
– (Daten entfernen, hinzufügen, ändern)
-Adressat der Kopfelemente wird über Attribute angegeben

Rumpf (Tag: Body)

  • enthält eigentliche Nachricht für den Empfänger
  • beliebig viele Elemente
20
Q

SOAP Codierungsregeln

A

Abbildungsregeln für Body- und Header-Daten in ein XML-Dokument:
-festgelegt durch freies Attribut soap:encodingStyle (im
Umschlagnamensraum) bei einem Body- oder Header-Element: Wert ist eine URI, welche die Abbildungsregel charakterisiert
-Attribut gilt für aktuelles und alle eingebetteten Elemente

Mögliche URI-Werte

  • leere URI: keine Angabe zur Abbildungsregel
  • anwendungsspezifische URI (z.B. zur Kennzeichnung eines bestimmten XML-Formats)
  • SOAP-Encoding: für aktuelle Version SOAP 1.2: Rückgriff auf XML-Schema, Definition der Abbildung komplexer Datenstrukturen
21
Q

SOAP Fehlernachrichten

A

= Mitteilung von Aufruffehlern: im Body-Element gibt es genau ein Fault-Element

-Fehlercodes:
VersionMismatch: Elemente passen nicht zur SOAP-Version
MustUnderstand: obligatorisches Element wurde nicht verstanden
DataEncodingUnknown: unbekannte Codierung für Datenelemente
Sender: Absender hat Fehler verursacht
Receiver: Empfänger kann Nachricht nicht bearbeiten, Fehler liegt beim Empfänger

  • Verfeinerung der Fehlercodes durch untergeordnete Fehlercodes: Element Subcode im Code-Element
  • HTTP-Fehlermeldung gelten nicht für SOAP-Verarbeitung
22
Q

Request-Reply Nachrichten SOAP

A

-Aufrufnachricht (Request): Aufruf ist eine Struktur: Name der aufgerufenen Methode ist Name des Elements, alle in und inout Parameter sind Komponenten der Struktur
-Antwortnachricht (Reply): Antwort ist eine Struktur:
Name der Methode plus angehängtes Response ist Name des Tags, alle out- und inout-Parameter sind Komponenten der Struktur
-rpc ist spezieller Namensraum von SOAP für RPCs

  • Spezifische Fehlermeldungen
    env: Server – Ressourcenproblem
    env: DataEncodingUnkown – Kodierung der Daten unbekannt
    rpc: ProcedureNotPresent – Methode nicht verfügbar
    rpc: BadArguments – Falsche Parameter
23
Q

WSDL

A

= Web-Services Description Language (Version 2.0): Schnittstellenbeschreibung für Web-Services
-Beschreibung von
Typen (Types) – definieren XML-Elemente für Nachrichten
Schnittstellen (Interfaces) – definieren Operationen (Operations) und Fehlermeldungen (Faults)
Bindungen (Bindings) – definieren Abbildung auf ein Protokoll, z.B. SOAP über HTTP
Dienste (Services) – definieren konkrete Web-Service-Instanzen

Wikipedia: Die Web Services Description Language ist eine plattform-, programmiersprachen- und protokollunabhängige Beschreibungssprache für Netzwerkdienste zum Austausch von Nachrichten auf Basis von XML.

24
Q

WSDL Schnittstellen

A

Verschiedene Kommunikationsmuster (Message Exchange Pattern)
-z.B. in-out: eine einkommende Nachricht, eine ausgehende Nachricht
-z.B. in-only: nur einkommende Nachricht acht Muster vordefiniert, weitere definierbar (in-only, robust in-only,
out-only, …)

Stil der Nachrichtenübertragung (Style)

  • definiert Einschränkungen über dem Nachrichtenaufbau
  • z.B. für SOAP RPC

Sicherheit
-freies Attribute wsdlx:safe definiert, ob Aufrufer evtl.
Verpflichtungen eingeht im Beispiel: Konto wird belastet d.h. nicht sicher

-Vererbung von Schnittstellen ist möglich

25
Q

REST

A

= Representational State Transfer
-Entwickelt von Roy Fielding im Rahmen seiner Dissertation: Architectural Styles and the Design of Network-based Software Architectures
-Entstanden aus der Betrachtung der Eigenschaften des WWW: Motivation vor allem: Skalierbarkeit in großer Dimensionen
-Architekturstil zum Aufbau von Systemen
Definierte Randbedingungen für ein RESTful System

26
Q

REST Randbedingungen

A

Einschränkungen für den Aufbau einer Architektur:

  • Identifikation der Ressourcen: Benennung aller Business-Komponenten, alle DInge mit denen die Anwendung umgeht (Produkte, Personen …), Anwendnungszustand (auch Zwischenschritte bei AKtionen)
  • einheitliche Schnittstelle: kleine und uniforme Schnittstelle für Aktionen (Verben), anwendbar auf viele unterschiedliche Ressourcen (Substantive), Bsp: Lesen, Schreiben, Erzeugen, Löschen
  • selbstbeschreibende Nachrichten: eindeutige Identifikation für Identifizierung der Ressource, Typisierung der Repräsentation
  • Hyperlinks zu anderen Ressourcen
  • zustandslose Interaktion: möglichst wenig Zustand im Server, Zustand liegt in den Ressourcen
27
Q

SOA und REST

A

Service-Oriented Architectures können RESTful sein
-Services zum Zugriff auf Ressourcen
-einfachste Implementierung mit HTTP als Anwendungsprotokoll: einfacher Satz von Operationen steht bereits zur Verfügung, Operationen könnten im Bedarfsfall erweitert werden– falls sie auf eine Großzahl von Ressourcen anwendbar wären, typische Operationen angelehnt an CRUD:
– CRUD = Create, Read, Update, Delete
– Operationen im Datenbankumfeld
– für allermeisten Ressourcen ausreichend

Repräsentation von Ressourcen
XML – anwendungsabhängige Schemata

JSON – JavaScript Object Notation
Format entspricht der Definition von JavaScript-Objekten
können leicht in JavaScript eingelesen werden
– Problem: bösartige Code-Injektion
Serializer und Deserializer für viele andere Sprachen erhältlich

SOAP
Repräsentation im SOAP-Body
erlaubt Beschreibung des Services in WSDL
z.B. SOAP Response Message Exchange Pattern