betriebs- systeme und verteilte systeme einführung in web services projektgruppe peer2peer suche...
TRANSCRIPT
Betriebs-systeme
und Verteilte Systeme
Einführung in Web ServicesProjektgruppe Peer2Peer Suche nach WebservicesWS 2004/SS 2005Christian Neubert
PG P2P: Einführung in Web Services 2
Gliederung Einführung Service Oriented Architecture Web Service Architektur
Simple Object Access Protocol eXtensible Markup Language Namensräume Document Type Definition XML Schema Definition Language Hypertext Transport Protocol Nachrichtenstruktur Verarbeitungsmodell Protokollbindung
Web Service Analyse Web Services & Projektgruppe Fragen & Diskussion
PG P2P: Einführung in Web Services 3
WS - Motivation
Interpretation des Begriffs: Web Service
Netzwerk
Web Service
Konsument
Einführung - Service Oriented Architecture …
PG P2P: Einführung in Web Services 4
WS - Netzwerk
Internet, Intranet Standardprotokolle zur Kommunikation
Netzwerkebene: TCP/IP Transportebene: HTTP (synchron), SMTP (asynchron) HTTP auf Port 80 Firewall durchlässig plattform- und sprachunabhängig
Netzwerk
Einführung - Service Oriented Architecture …
PG P2P: Einführung in Web Services 5
Dienst
entspricht Anwendung kapselt Funktionalität Dienstkomponente kann wiederverwendet werden Analogie zu Softwarekomponenten Dienstnutzer weiß nichts über die Realisierung Blackbox Zugriff über Standardprotokolle
Blackbox=
Einführung - Service Oriented Architecture …
PG P2P: Einführung in Web Services 6
WS - Konsumenten
Benutzer greift über einen Desktop-Browser zu Beispiel: Aktueller Börsenkurs von Wincor-
Nixdorf
Anwendung eigentliche Idee von Web-Services Anwendungen können automatisiert
miteinander kommunizieren Beispiel: Börsenkursabfrage wird
automatisiert “Echtzeitkurse“
anderer Web-Service
Anwendung
Einführung - Service Oriented Architecture …
PG P2P: Einführung in Web Services 7
WS - Architektur
Wie finden sich Konsumenten und Dienstanbieter?
Consumer Provider
Broker
Web-Service Architektur ist realisiert durch: Service Oriented Architecture (SOA)
Einführung - Service Oriented Architecture …
PG P2P: Einführung in Web Services 8
Service Oriented Architecture (SOA)
Consumer
Broker
ProviderClient Service
DescriptionFind Register
Interact
Description
- Service Oriented Architecture - SOAP ……
PG P2P: Einführung in Web Services 9
Rollen der SOA Provider
generiert Dienst veröffentlicht Schnittstellen und Zusatzinformationen beim Broker Festlegen in welcher Kategorie Dienst zu finden ist Sicherheit vs. Geschwindigkeit
Broker
stellt Requestoren Schnittstellen und Implementierungsinformationen bereit
Informationen können privat (Intranet) oder öffentlich sein (Internet) Consumer
lokalisiert Brokereinträge und nutzt diese
- Service Oriented Architecture - SOAP ……
PG P2P: Einführung in Web Services 10
Funktionale Komponenten der SOA
Transport-Komponente Protokolle und Formate für die Kommunikation mit einem Dienst Datenformat und Datentypen für die Codierung Transportprotokoll Verpacken der Nachricht Netzwerkprotokoll Nachrichtentransfer
Beschreibungs-Komponente maschinenlesbare Beschreibungssprache für einen Dienst Generierung von Stubs und Skeletons für automatisierte und
transparente Kommunikation zeigt Informationen zur Benutzung des Dienstes mindestens: Adresse, Operationen, Parameter
Endeckungs-Komponente Mechanismus zum Registrieren und Finden von Diensten
- Service Oriented Architecture - SOAP ……
PG P2P: Einführung in Web Services 11
SOAPInteract
Umsetzung Web Service Architektur
Consumer
UDDI
ProviderClient Service
DescriptionFind Register
WSDL
Transportkomponente SOAP (Simple Object Access Protocol) Beschreibungskomponente WSDL (Web Service Description Language) Entdeckungskomponente UDDI (Universal Description, Discovery and Integration )
Broker
Description
- Service Oriented Architecture - SOAP ……
PG P2P: Einführung in Web Services 12
Simple Object Access Protocol
Spezifikation für den Austausch von strukturierten Informationenin einer verteilten Umgebung
offizieller Standard des W3C Kommunikation basiert auf XML Interoperabilität Unabhängigkeit von:
Transportprotokoll, setzt aber oft auf HTTP, SMTP auf Betriebssystem Programmiersprache
Client und Server können mit unterschiedlichen Technologien entworfen werden
nicht objektorientiert human-readable
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 13
eXtensible Markup Language (XML)
Familie von Standards des W3C: XML, XSD, XSLT, XPATH, DOM,... universelles Format für den Datenaustausch strukturierte Informationen beliebige Informationen systemunabhängig Auszeichnungssprache Tags + Attribute Analogie zu HTML (Hypertext Markup Language) Unterschiede zu HTML
XML ist erweiterbar XML ist nicht nur auf die Erstellung von Websites beschränkt Tags sind in XML beschreibende Befehle (Datenbeschreibung) Tags sind in HTML formatierende Befehle (Datenformatierung)
Trennung von Nutzdaten und Layout
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 14
XML (Baum)Struktur
<Auftraege> <Auftrag>
<Kunde >Maier
</Kunde><Telefon>
SXM 23</Telefon>
</Auftrag><Auftrag>
…</Auftrag>…
</Auftraege>
Auftraege
kNr=12
Kunde Telefon
SXM 23Maier
Auftrag Auftrag
<?xml version=“1.0“ encoding=“iso-8859-1“?>
kNr=“12“
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 15
xsd: xmlns:
XML Namensräume
XML-Tagbezeichnung frei wählbar Problem: gleiche Namen mit unterschiedlicher Semantik Namensräume zur Beseitigung von Konflikten Sammlung von Namen Eindeutiger Bezeichner URI (Uniform Resource Identifier) URI in zwei Formen URL (Locator), URN (Name) Deklaration durch xmlns-Attribut Tags werden durch Präfix einem Namensraum zugeordnet Beispiel Namensraumzuweisung:
Original: <schema> … </schema >
="http://www.w3.org/2001/XMLSchema"><
schema
xsd
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 16
XML Schemata Beschreibungssprache zum modellieren von Daten Vertrag über den Datenaustausch zwischen zwei Anwendungen Sicherstellen, daß Empfänger die Daten richtig interpretiert syntaktische und strukturelle Beschränkungen des XML-Dokuments Konventionen für den Datenaustausch bezüglich
Tags Struktur Datentypen Attribute
Validierung von XML-Dokumenten Grammatik für eine Klasse von XML-Dokumenten Verweis auf Schema zu Beginn des XML-Dokuments früher: Document Definition Language (DTD) jetzt: XML Schema Definition Language (XSD)
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 17
Dokument Type Definition (DTD)
Verweis auf DTD im XML-Dokument:<!DOCTYPE auftraege SYSTEM „auftraege.dtd">
Beispiel DTD:<!-- DTD auftraege.dtd --><!ELEMENT Auftraege (Auftrag)* ><!ELEMENT Auftrag ( Kunde , Telefon ) ><!ELEMENT Kunde (#PCDATA) ><!ATTLIST Kunde kNr #PCDATA ID #REQUIRED ><!ELEMENT Telefon (#PCDATA) >
Auftraege
AuftragkNr=12
Kunde Telefon
SXM 23Maier
Auftrag
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 18
XML Schema Definition Language (XSD)
beschreibt wie DTD Struktur des XML-Dokuments XSD vs. DTD
objektorientierte, modulare Modellierungssprache Erweiterbarkeit Vererbungskonzept
Strukturbeschreibung wird in XML abgespeichert eigene und viele vordefinierte Datentypen kein separater Parser notwendig, sondern XML-Parser einziger Nachteil gegenüber DTD ist der längere Quellcode Erweiterung des XML-Dokuments durch Namensraumangabe
Verweis auf XSD im XML-Dokument durch xsi-Attribut: <MyDokument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="artikel.xsd"> …
</MyDokument>
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 19
XSD Typdefinition
43 Basistypen bereits in XML Schema definiertu.a. string, bool, integer, float, date
Beispiel für einfache Typen:<xsd:simpleType name="Text" type="xsd:string">
Beispiel für eigene Typdefinition: <xsd:simpleType name="ID"><xsd:restriction base="xsd:integer"><xsd:minInclusive value="1"/><xsd:maxInclusive value="9999"/></xsd:restriction></xsd:simpleType>
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 20
XSD Beispiel
Auftraege
AuftragkNr=12
Kunde Telefon
SXM 23Maier
Auftrag
<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Auftraege"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Auftrag" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Auftrag"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Kunde" minOccurs="1" maxOccurs="1"/> <xsd:element ref="Telefon" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Kunde" type="xsd:string"> <xsd:complexType> <xsd:attribute name="kNr" type="xsd:ID" use=“required“/> </xsd:complexType> </xsd:element> <xsd:element name="Telefon" type="xsd:string"/></xsd:schema>
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 21
Hypertext Transport Protokoll (HTTP)
Netzwerk
Web-Server
www.upb.de
HTTP-Request
GET index.html HTTP/1.1Host: www.upb.deContent-Type: text/html; charset=utf-8Content-Length: 0
HTTP-Request
HTTP-ResponseHTTP-Response
HTTP/1.1 200 OKContent-Type: text/html; charset=utf-8Content-Length: xxx<html> … </html>
GET-Methode, um Informationen zu bekommen POST-Methode, um Informationen zu versenden
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 22
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
</env:Envelope>
<?xml: version = “1.0“?>
<env:Header>
…
</env:Header>
<env:Body> …</env:Body>
Envelop
SOAP Nachrichtenstruktur
Bestandteile: Briefumschlag
SOAP-Header optional zusätzliche Informationen für
Verarbeitung z.B. Sicherheit, Logging, Qualität, Transaktion
mehrere Headerblöcke SOAP-Body
obligatorisch eigentliche Nachricht mehrere Unterelemente
protokollspezifische Informationen
protokollspezifische Informationen
SOAP-Header
SOAP-Body
Header Block: 1
Body sub-element: 1
Body sub-element: n
Header Block: n
SOAP-Nachricht
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 23
Formen des SOAP-Nachrichtenaustausch
RPC-basierter Nachrichtenaustausch Request entspricht Methodenaufruf Ein- und Ausgabeparameter Web-Service liefert Ergebnisse Namensraum der Elemente: http://www.w3.org/2003/05/soap-rpc Ergebnisse durch <rpc:result>…<\rpc:result> gekennzeichnet
Dialog-basierter Nachrichtenaustausch SOAP-Aufruf entspricht dem Übermitteln einer Botschaft Empfänger bearbeitet diese asynchron in mehreren Schritten z.B. komplette Bestellungen
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 24
SOAP Fehler
Fehler müssen dem Sender gemeldet werden
Fehlernachricht entspricht Envelop-Struktur Header + Body
Body enthält genau ein Unterelement Angaben über: Grund, Knoten, Rolle Fehlertypen:
VersionMismatch MustUnderstand DataEncodingUnknown Sender Receiver
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
</env:Envelope>
<?xml: version = “1.0“?>
<env:Header>…</env:Header>
<env:Body> <env: Fault>
…
<env: Fault></env:Body>
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 25
SOAP Verarbeitungsmodell I
Consumer
UDDI
ProviderClient Service
DescriptionFind Register
SOAP
WSDL
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 26
SOAP Verarbeitungsmodell II
Consumer WS 1 ProviderWS n
Client Service
Nachrichtenpfad: Menge von Knoten, die von einer SOAP-Nachricht passiert werden
Typen von SOAP-Knoten SOAP-Sender (initial) SOAP-Receiver (ultimative) SOAP-Intermediaries
z.B. Web-Service zur Authentifizierung
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 27
SOAP Verarbeitungsmodell III SOAP Knoten des Nachrichtenpfades nehmen Rollen ein:
next: z.B. Intermediaries ultimativeReceiver: ultimativeReceiver, Intermediaries nicht none: kein Knoten benutzerdefiniert
Knoten kann mehrere Rollen annehmen Rollen konstant Ablauf bei Nachrichtenankunft
Syntaxprüfung: Envelop, Header, Body Headerbearbeitung Headerblöcke einer SOAP-Nachricht kann 3 Attribute enthalten:
role, mustUnderstand, relay Headerblöcke können verändert, hinzugefügt, gelöscht werden Body ist nur für UltimativeReceiver bestimmt
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 28
Header Attribute
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
</env:Envelope>
<?xml: version = “1.0“?>
<env:Header><m:reservation xmlns:m="http://travelcompany.org/reservation"
env:role="http://www.w3.org/2001/12/soap-envelope/role/next" env:mustUnderstand="true“ env:relay="true">
..…</m:reservation>
</env:Header>
<env:Body> …</env:Body>
SOAP-Nachricht
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 29
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
</env:Envelope>
<?xml: version = “1.0“?>
<env:Body xmlns:m=“http://www.stock.org/stock> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse></env:Body>
SOAP-Message
SOAP mit HTTP-Bindung
Consumer
POST /servlets/InStock HTTP/1.1Host: www.stock.orgContent-Type: application/soap+xml; charset=utf-8Content-Length: xxx
HTTP-Request
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
</env:Envelope>
<?xml: version = “1.0“?>
<env:Body xmlns:m=“http://www.stock.org/stock> <m:GetStockPrice> <m:StockName> IBM </m:StockName> </m:GetStockPrice></env:Body>
SOAP-Message
Netzwerk
HTTP-Request HTTP-Request
HTTP-ResponseHTTP-Response Provider
HTTP/1.1 200 OKContent-Type: application/soap+xml; charset=utf-8Content-Length: xxx
HTTP-Response
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 30
SOAP Zusammenfassung Spezifikation zum Austausch von strukturierten Informationen in einer
verteilten Umgebung SOAP-Nachrichten:
Basis XML Envelope-Struktur: Header, Body Angabe von Namesräumen zur eindeutigen Kennzeichnung XML-Schemata für die Struktur der XML-Nachricht
Basis für Nachrichtentransport: HTTP SOAP-Nachricht wird der HTTP-Anfrage anstelle von HTML angehängt
Nachricht kann vom initialen Sender zum ultimativen Empfänger mehrere Zwischenknoten (Intermediaries) passieren
Zwischenknoten nehmen verschieden Rollen ein und verarbeiten die Nachricht ihrer Rolle entsprechend
Zwischenstationen können der Nachricht im Header Informationen hinzufügen, z.B. Abrechnung, Authentifizierung
RPC- vs. dialog-basierter Nachrichtenaustausch
- Simple Object Access Protocol - WS-Analyse ……
PG P2P: Einführung in Web Services 31
WS Analyse I
Idee einer SOA ist nicht neu vergleichbare Middleware-Architekturen (RMI, CORBA, DCOM) da Transport mittels HTTP: Web-Services = Internet-Middleware Komponentenvergleich:
Java RMI CORBA Web Services
Invocation Mechanism Java RMI CORBA RMI .NET, JAX-RPC,…
Data Format Serialized Java
CDR XML
Wire Format Stream GIOP SOAP
Transfer Protocol JRMP IIOP HTTP, SMTP,…
Interface Description Java Interface CORBA IDL WSDL
Discovery Mechanism Java Registry COS naming UDDI
- Web-Service Analyse - WS & PG ……
PG P2P: Einführung in Web Services 32
WS Analyse II
bisher von WS nur Transportkomponente betrachtet deshalb nur Vor- und Nachteile von WS, die durch SOAP entstehen:
RMI CORBA WS & SOAP
Plattformunabhängigkeit + + +Sprachunabhängigkeit - + +Protokollunabhängigkeit - - +Objektorientierung + + -Firewalls - - +Performance + + -human-readable - - +industrielle Unterstützung - - +Nutzung von Standards - - +Sicherheit + + -
- Web-Service Analyse - WS & PG ……
PG P2P: Einführung in Web Services 33
Web-Services & Projektgruppe
PG Titel: Peer2Peer Suche nach Web-Services Bezug zum Seminarthema naheliegend Fragestellungen:
Welche Web-Services werden gesucht? Rechner mit freien Rechenkapazitäten, die diese anbieten
ein Web-Service pro Knoten Was muß der Web-Service leisten?
Anfragen entgegennehmen statische Anfrageattribute auswerten (z.B. Speicherplatz) dynamische Anfrageattribute auswerten (z.B. Verfügbarkeit) Anfragen ggf. an Nachbarn weiterleiten Schnittstelle mit diesen Funktionalitäten
- Web-Service & Projektgruppe -… Diskussion
PG P2P: Einführung in Web Services 34
Fragen & Diskussion
SOAP zur Kommunikation zwischen den Knoten?
XML-Schemata für Nachrichtenkonventionen?
Welche Sicherheitsmechanismen werden benötigt?
Schnittstelle für Abrechnungsmodul?
- Fragen & Diskussion…
PG P2P: Einführung in Web Services 35
Vielen Dank für Eure Aufmerksamkeit!
PG P2P: Einführung in Web Services 36
Web Service Sicherheit HTTP HTTPS (HTTP Secure)
128 Bit Verschlüsselung Ende-zu-Ende Sicherheit
XML Encryption Abschnittsweise Verschlüsselung der Nachricht
XML Signature Authentifizierung des Senders Nicht-Abstreitbarkeit
SAML Authentifizierung, Autorisierung, Unleugbarkeit, Integrität
XKMS, XACML, … Ansatz zur Vereinheitlichung: WS-Security
Idee: standardisiertes Einbinden von Sicherheitsmaßnahmen wie XML Encryption und XML Signature