33
Betrieb s- systeme und Verteil te Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

Embed Size (px)

Citation preview

Page 1: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

Betriebs-systeme

und Verteilte Systeme

Namens- und Verzeichnisdienste

Projektgruppe Peer2Peer Suche nach WebservicesWS 2004/SS 2005Maher Al-Bunni

Page 2: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 2

Inhalt Einleitung. Web Service Architektur. Wie werden Dienste, Schnittstellen oder

Fähigkeiten beschrieben. Web Services Fundamente

SOAP WSDL

Wie werden diese beschrieben? Was ist WSDL (Web-Service Description Language)?

UDDI Wie werden diese gefunden? Was ist UDDI (Universal Description, Discovery and Integration)?

Sicherheitsaspekte, Vor- und Nachteile/Probleme.

Page 3: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 3

Einleitung

Die Große Rolle des Internets in unserem heutigen Leben.

Nicht nur Unterhaltungsangebote sondern auch Informationsdienste (Börsen-, Nachrichtenticker).

Unerlässlichkeit in den Bereichen Business-to-Business (B2B) und e-Commerce.

Von der individuellen Anpassung und der manuellen Abstimmung zu der Automatisierung (mittels Web Services).

Page 4: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 4

Web Service-Architektur

Beschreibt die Interaktion zwischen drei Akteuren:

Web Service Provider : Anbieten, Entwickeln und Definieren von Web Services.

Web Service Requestors : Suchoperationen nach gewünschten Web-Service Ausführen und im Erfolgfall direkte Zur Verfügung Stellung und unmittelbare Verbindung .

Web Service Registry:Als zentrales Verzeichnis so wie Bibliothek betrachten.

Page 5: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 5

Web Service-Architektur

suchen/finden

Service RegistryService Description (WSDL + UDDI)

SOAP

veröffentlichen

aufrufen

SOAP SOAP

Abbildung: Architektur von Web Services

Service Description (WSDL)

Service Implementation

Service Requestor Service Provider

Page 6: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 6

Web Services Fundamente

Die Fundamente der Web Service-Architektur: Datenaustausch mit dem Kommunikationsprotokolls

SOAP (Simple Object Access Protocol ).

Beschreibung des Web Services durch WSDL (Web Service Description Language).

Der Verzeichnisdienst UDDI (Unisersal Description, Discovery and Integration).

Page 7: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 7

Web Services Fundamente2. WSDL

Eine XML basierende Sprache, welche die Schnittstellen von Web Services in ihrer Funktionalität beschreibt.

Definiert einen plattform-, programmiersprachen- und protokollunabhängigen XML-Standard zur Beschreibung

von Netzwerkdiesten zum Austauschen von Nachrichten. Eine Metasprache mit funktionellen Angaben zu:

dem Interface. Zugangsprotokoll und Details zum Deployment. Allen notwendigen Informationen zum Zugriff auf den

Service, in maschinenlesbaren Format. Die Implementierung mittels SOAP über HTTP.

Page 8: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 8

WSDL – Beschreibungselemente Root-Element (definition)

Hauptelement. Datentypen (types) 

Definition der Datentypen, die zum Austausch der messages benutzt werden.

Mitteilungen (messages)  Abstrakte Definitionen der übertragenen Daten, bestehen aus mehreren

logischen Teilen, von denen jedes mit einer Definition innerhalb eines Datentypsystems verknüpft ist.

Port-Typen (portType)  Eine Menge von abstrakten Arbeitsschritten (eine Input-Mitteilung

und mehrere Output-Mitteilungen). Bindung (binding) 

Bestimmt das konkrete Protokoll und Datenformat für die Arbeitsschritte und Mitteilungen, die durch einen bestimmten Port-Typ gegeben sind.

Ports (ports)  Spezifiziert eine Adresse für eine Bindung, also eine

Kommunikationsschnittstelle, üblicherweise eine URI.

Page 9: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 9

WSDL – Beschreibungselemente Services (services) 

Fassen eine Menge von verwandten Ports zusammen. Optional können noch folgende Elemente eingefügt werden

<documentation> Dient zur Dokumentation und Kommentierung

<import> Ermöglicht den Import von andern WDSL-Dokumenten oder XML-Schema-Definitionen.

Am 15. März 2001 veröffentlichte das Word Wide Web Consortium die WSDL Note Version 1.1. Inzwischen ist auch schon Version 2 in einem Draft-Dokument für die Sprachdefinition (core language) und die Nachrichten-Muster (message patterns) verfügbar.

Page 10: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 10

WSDL – Beschreibungselemente

WSDL-Dokument-Struktur

Definitons

types schema

message part

portType operation

binding operation

services port

Page 11: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 11

WSDL – BeschreibungselementeBeispiel

WSDL - Dokument Beispiel

<?xml version="1.0"?> <definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"

xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">

Page 12: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 12

WSDL – Beschreibungselemente Datentypen (types)

<types> <schema targetNamespace="http://example.com/stockquote.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType>

<all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice">

<complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types>

Page 13: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 13

WSDL – Beschreibungselemente Mitteilungen (messages) und Port-Typen

<message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/></message> <message name="GetLastTradePriceOutput">

<part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType">

<operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation>

</portType>

Page 14: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 14

WSDL – Beschreibungselemente Bindung (binding)

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="GetLastTradePrice"> <soap:operation

soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Page 15: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 15

WSDL – Beschreibungselemente Ports - Services

<service name="StockQuoteService"> <documentation> My first service </documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>

Page 16: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 16

Web Services Fundamente:3. UDDI

UDDI (Universal Description, Discovery and Integration) Wie werden die Diensten der Web Services wieder gefunden? Wird eine reine Suche durchgeführt oder

kann man es besser realisieren? UDDI als Begriff aus der Computertechnik und Bezeichnung

eines Verzeichnisdienst (Gelbe Seiten). UDDI ist eine Anwendung von SOAP. Sie stellt mit Hilfe einer SOAP Schnittstelle

einen Verzeichnisdienst bereit. Die Spezifikation wurde 2000 durch Ariba, IBM und

Microsoft entwickelt konzeptionell dem DNS (Domain Name System) nachempfunden, das Internet-Hostnames in TCP-Adressen umsetzt.

Page 17: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 17

Web Services FundamenteUDDI

Es gab bisher keinen Standard, zum Auffinden von Diensten. Yahoo unzureichend.

Plattformunabhängiger offener Rahmen, um Services zu beschreiben (DESCRIPTION), Unternehmen zu finden (DISCOVERY) und die Services zusammenzuschließen (INTEGRATION)

UDDI-Vorteile Steigerung der Interoperabilität im B2B Bereich.

Dadurch Kostenreduzierung Bessere Suchmöglichkeiten. RPC - unabhängig von Programmiersprache.

Page 18: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 18

Web Services FundamenteUDDI

UDDI Benutzung - Konzeptuell

Zugriff auf UDDI Registry erfolgt: über ein Web Interface oder ein Tool. Via SOAP (XML Applikation). Die SOAP Message wird via RPC gesendet.

Software Firmen und Programmierer tragen Beschreibungen von verschiedensten Diensten ein

UBR weist jedem Dienst- und Geschäftseintrag einen eindeutigen Identifizierer

Marktplätze, Suchmaschinen und Geschäftsanwendungen machen Anfragen um Dienste anderer Firmen zu finden

Unternehmen tragen Beschreibung der Dienste, die sie anbieten ein

UDDI Business Registry

Unternehmen nutzen die Daten, um eine leichtere Integration mit anderen Firmen zu ermöglichen

4.1.

5.

2.

3.

Business Registrations

Service Type Registrations

Page 19: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 19

Web Services FundamenteUDDI-Registry-Teilung

White Pages: Namenregister, sortiert nach Namen. Auflistung der Anbieter mit allen Detailangaben. Kontaktinformationen (Telefon, Telefax,….).

Yellow Pages: Branchenverzeichnis. Spezifische Suche gemäß

verschiedener Taxonomien (Ort, Dienstart). Verweist auf White Pages.

Green Pages: Informationen über Geschäftsmodell der Unternehmens. Technische Details zu den angebotenen Web Services. Auskunft über Geschäftsprozesse.

Weiße Seiten

Grüne Seiten

Gelbe Seiten

Namen und Kontakt Details

Branchen-Verzeichnis

Kategorisierung Nach

Unternehmen

Technische Daten über den Service

Page 20: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 20

Web Services FundamenteUDDI-Spezifikation

UDDI-Spezifikation

XML-Schema fürSOAP-Nachrichten

Beschreibung der UDDI API

Generisches Interaktionsmodell

Grundlegendes Informationsmodell

Informationstyp Datenelemente Dokumenttyp

Business-Information businessEntity Yellow Page

Service-Information businessService Green PageBinding-Information tbindingTemplate

detaillierte technische Information

tModel

Information über organisationelle Beziehungen

publisherAssertion White Page

Hauptsächliche Informationstypen

Page 21: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 21

Web Services FundamenteUDDI-Data-Struktur

BusinessEntity: Informationen über die Partei, die Informationen über

einen Service veröffentlicht.

businessService: beschreibende Info. über eine bestimmte Familie der technischen Dienstleistungen.

bindingTemplate: technische Information über einen Service

tModell: Beschreibungen der Spezifikationen für

Dienstleistungen oder Wertsätze. businessEntities enthalten businessServices

businessServices enthalten bindingTemplate

bindingTemplate enthält Verweise auf tModels. diese Verweise bestimmen die Schnittstellenbeschreibungen für einen Service

Page 22: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 22

Encodierung der Information

Page 23: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 23

Encodierung der Inf. - businessEntity

<businessEntity businessKey= “...“ operator=“…” authorizedName=“…”><Name> ...</name><discoveryURLs>…</discoveryURLs><description> .. </description><contacts> .. </contacts><businessServices> …</businessServices><identifierBag> ... </identifierBag><categoryBag> ... </categoryBag>

</businessEntity>

<businessEntity>+name+businessKey-businessServices-contacts-discoveryURLs-discription-identifierBag-catecoryBag-operator-authorizedName

1. Business Information - Encodiert in businessEntity. - Gelbe und Weiße Seiten Haupstruktur.

Page 24: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 24

Encodierung der Inf. - businessEntity

businessKey: eindeutiger Identifier des Eintrages (UDDI) Contacts: Liste von Kontakten

Contact: personName, useType, description, phone, email, adress discoveryUrls: z.B. Link zum Unternehmen, oder Verweis auf andere

businessEntities. Automatischer Verweis auf eigenes Entity identifierBag: z.B. Handelsregister-Nr (eindeutig) categoryBag: Taxonomierung durch Kategorien, wie

NAICS (North American Industry Classification System ) UNSPSC (Universal Standard Products and Services Classification )

oder durch Orte operator: Name des UBR Operators authorizedName: Name desjenigen, der den Eintrag erstellt hat

Page 25: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 25

Encodierung der Inf. - businessService

<businessService serviceKey=„…..“ businessKey=„….“> <name>………...</name><description>…..</ description ><bindungTemplates> …….….</bindungTemplates><categoryBag> …………</categoryBag>

</businessService>

2. Service Information - Encodiert in businessService. - Jeweils eindeut. Schlüssel „servicekey“ - businessKey > businessEntity

<BusinessEntity>

<businessService>+name+serviceKey+businessKey+binding Templates-description-categoryBag

1

0…*

Page 26: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 26

Encodierung der Inf. - bindingTemplate <bindingTemplate bindingKey=„...“>

<description> ...

</description><accessPoint URLType=„...“> ... </accessPoint><tModelInstanceDetails> <tModelInstanceInfo tModelKey=„...“>

... </tModelInstanceDetails>

</bindingTemplate>

3. Binding Information - Encodiert in bindingTemplate - Beschreibung der Kommunikationsschnittstelle - Green Pages

<BusinessService>

<bindungTemplate>+bindingKey+tModelInataceDetails+accessPoint+binding Templates-keyService-description-hostingRedirector

1

0…*

<BusinessEntity>1

0…*

Page 27: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 27

Encodierung der Inf. - bindingTemplate

hostingRedirector ermöglicht Verweise auf andere bindingTemplates.

accessPoint gibt verfügbareKommunikationsmöglichkeiten an(mailto, http, fax, phone, ...).

tModelInstanceDetails Liste, verweist auf die tModels, dieunterstützt werden

<bindingTemplate>+bindingKey+tModelInataceDetails-description-hostingRedirector-accessPoint

Page 28: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 28

Encodierung der Inf. - tModel

<tModel modelKey=„...“ authorizedName=„“operator=„“><name>...</name><description> ... </description><overviewDoc> ... </overviewDoc><categoryBag> ...</categoryBag><identifierBag> ...</identifierBag>

</bindingTemplate>

<BusinessService>

<tModel>+name+tModelKey-description-categoryBag-overviewDoc-operator-authorizedName

0…*

0…*

<BusinessEntity>1

0…*

4. Technische Spezifikation der Web Service Schnittstelle - Encodiert in tModel

<BindungTemplate>

1

0…*

Page 29: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 29

Encodierung der Inf. - tModel

Metadaten, abstrahiertes Referenzsystem. tModels werden unabhängig von Businesses

definiert, m:n Relation. Web Services zweier Firmen können auf

dasselbe tModel verweisen, dann kompatibel. Verweis auf tmodels innerhalb

bindingTemplates, aber auch möglichinnerhalb categoryBag, identifierBag, address tModel kann somit auch generelle

Beschreibung von Kategorien enthalten. In overviewDoc kann auf ein WSDL Dokument gelinkt

werden, welches die Schnittstelle genau beschreibt.

<tModel>

+name+tModelKey-description-categoryBag-overviewDoc-operator-authorizedName

Page 30: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 30

SOAP - WSDL - UDDI Zeigen, wie UDDI Repository benutzt wird, um einen Web Service

zusammen mit herkömmlichen Firmeninformation zu registrieren und zu finden.

WSDL

SOAP Processor Transport (SOAP)

UDDI Repository

SOAP Processor

WSDL

4

3

615

2

Page 31: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 31

Ausblick

Vorteile Steigerung der Interoperabilität im B2B Bereich.

Dadurch Kostenreduzierung Bessere Suchmöglichkeiten. RPC - unabhängig von Programmiersprache.

Mangelnde Sicherheit (Firewalls unsichtbar). Keine klare Zukunft (Microsoft W3C-Pläne). Kein ontologiebasierter Ansatz. Unnötig kompliziert.

Page 32: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 32

Literatur Referenzen

http://www.uddi.org http://www.w3.org/TR/wsdl http://www.w3schools.com/wsdl/default.asp http://www-106.ibm.com/developerworks/webservices/

library/wssoap/? dwzone=ws http://xml.coverpages.org/wsdl.html

Page 33: Betriebs- systeme und Verteilte Systeme Namens- und Verzeichnisdienste Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Maher Al-Bunni

PG P2P: Titel 33

Vielen Dank für Eure Aufmerksamkeit !