Web-Services (WS)
• Ursprungsidee / Motivation
• Definition Web Service
• WS-Architektur / Service Oriented Architecture
• WSDL
• UDDI
• SOAP
• XML
•Fazit
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
1
Ursprungsidee / Motivation
Wirtschaftliche Apekte in der modernen Arbeitswelt:
• Dezentralisierung: Verteilung/Auslagerung bestimmter
Unternehmensteile
• Modularisierung: Wiederverwendbarkeit erhöht
wirtschaftlichen Nutzen
• Standardisierung: schafft einheitliche Rahmenbedingungen
• Komposition: fasst bestehende Module zusammen
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
2
Ursprungsidee / Motivation
Businessprozesse zwischen Unternehmen werden
stärker standardisiert
• Business to Business (B2B): ermöglicht eine automatisierte
Zusammenarbeit zwischen Unternehmen
• Beispiel: Kunde greift über Kataloge direkt in das
Geschäftssystem des Lieferanten und löst durch die
Bestellung automatisch Geschäftsprozesse an (z.B.
Bestellung, Produktion)
• Beispiel: Online-Bewerber meldet sich auf eine Anzeige und
gibt seine persönlichen Daten im Web ein, produziert einen
Datensatz im Personal-/Bewerber-System des Personal
suchenden Unternehmens
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
3
Ursprungsidee / Motivation
Businessprozesse zwischen Unternehmen werden
stärker standardisiert
• B2B ist dynamisch: Anpassung an Kundenwünsche sind
möglich
• B2B bedeutet meist automatische Kommunikation
zwischen zwei oder mehreren Softwaresystemen
• B2B funktioniert nur zwischen Partnern, die eine
gemeinsame Kommunikation vereinbart haben
• B2B kann aufwändig sein, wenn beteiligte Unternehmen
unterschiedliche (heterogene) Systeme besitzen
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
4
Scenario BBP (without Business Connector)
LOG-ON
TO BBP
1.
REQUEST
HTML
IIS
Web Server
7.
HTML
2.
4.
SAP
8.
ITS
3.
IIS
Web Server
IDOC
SAP
HYPERLINK WITH
RETURN ADRESS
5.
9.
BBP
SYSTEM
RESPONSE
URL
ORDER BOOKED
INTO SYSTEM
6.
CATALOG
10.
Back End
R/3
• No direct communication between ITS and Catalog
• Order still carried
out by FAX
or EDI
IT-Architekturen,
Datenbanken
Karczewski
und Connectivity
5
Scenario Business Connector
Integration into BBP scenario:
BBP
SYSTEM
ORDER BOOKED
INTO SYSTEM
Supplier
IDOC
Supplier
Supplier
Component
System
R/3
SAP
Business
Connector
XML
ORDER SENT
TO SUPPLIER
IDOC
CONVERT
ORDER SENT
TO SAP BC
• any SAP or
Non-SAP system
• Order
carried out via
internet
IT-Architekturen,
Datenbanken
Karczewski
und Connectivity
6
Scenario Total Package
IIS
ITS
WORKPLACE
SERVER
IIS
ITS
BBP
SYSTEM
IIS
Catalog
Comp.
System
R/3
SAP Business Connector
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
7
Ursprungsidee / Motivation
Das World Wide Web (WWW) bietet eine große
Möglichkeit, Kommunikation mit Geschäftspartnern
über eine standardisierte Plattform zu führen
• Benötigt werden Services, die im Web angeboten werden
und über das Web abrufbar sind.
• Diese Services müssen so konzipiert sein, dass sie jederzeit
von Interessenten genutzt werden können.
• Die Services müssen sinnvoll kombinierbar sein, so dass
komplexe Geschäftsabläufe darstellbar sind.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
8
Definition Web-Services
A Web service is a software system identified by a URL, whose
public interfaces and bindings are defined and described using
XML. Its definition can be discovered by other software systems.
These systems may then interact with the Web service in a
manner prescribed by its definition, using XML based messages
conveyed by Internet protocols.
W3C
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
9
Definition Web-Services
Bedeutung der Definition:
• Web Services kapseln Funktionalität einer Anwendung und
bringen diese standardisiert ins Internet
• Web Services hüllen somit existierende Geschäftssysteme so
ein, dass aus bilateralen B2B Funktionen standardisierte
Funktionen zwischen beliebigen Geschäftspartnern werden
• Web Services sind plattform-, protokoll- und sprachenunabhängig
• Web Services sind kombinierbar und können auf diese Weise
auch komplexe Geschäftsprozesse abbilden
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
10
Web Service-Architektur
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
Business Logic
Business Fascade
XML• Web Service besteht aus
Request
mehreren XML-Dokumenten
• Ein standardisiertes WebInterface kaschiert die darunter
liegende Geschäftslogik
• Ein WS-Modul wartet auf eine
XML-Anfrage, um darauf
XMLzu reagieren
Response
Listener
Aufbau:
11
Service Orientierte Architektur (SOA)
Bei der Web Service-Integration
kann man drei Partner
identifizieren:
1. Anbieter (Service Provider)
2. Verwalter (Service Broker)
3. Benutzer (Service Requester)
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
12
Service Orientierte Architektur (SOA)
•
Der Service Provider will einen Dienst im Web anbieten und
meldet diesen an.
•
Der Service Broker stellt in einer großen Datenbank
verschiedene Web Services vor (z.B. Nutzen eines WS).
•
Der Service Requester will einen Service nutzen und
informiert sich darüber bei dem Service Broker.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
13
Service Orientierte Architektur (SOA)
Technisch unterstützt werden diese Prozesse zwischen Provider,
Broker und Requeser durch
•
WSDL = Web Service Description Language
•
UDDI = Universal Description Discovery and Integration
Protocol
•
SOAP = Simple Object Access Protocoll
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
14
Beschreibung von Web-Services
WSDL – Grundlagen
WSDL definiert ein einheitliches Format für Beschreibung
und Veröffentlichung von Web-Services
- WSDL Elemente beschreiben Daten und Operationen (Methoden für diese Daten).
* Beschreibung der Daten typischerweise in XML.
* Beschreibung, wie diese Daten manipuliert werden können.
* WSDL beschreibt Web Services als Sammlung von Kommunikationspunkten, die Nachrichten austauschen können.
* Typischerweise verwendet WSDL SOAP als Übertragungsprotokoll.
Die Spezifikation von WSDL enthält die SOAP Bindung.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
15
Beschreibung von Web-Services
WSDL – Grundlagen
WSDL Dateien können in drei separate, wiederverwenbare Bereiche
aufgeteilt werden.
1. Was ein Service macht (abstrakte Definition).
- Operationen auf Messages
2. Wo sich ein Service befindet (konkrete Definition).
- Protokoll-spezifische Netzwerk-Adressen
3. Wie ein Service genutzt wird (Konkretisierung der Abstraktion).
- Inhalt und Datentypen der Messages
- Protokolle für den Zugriff auf die Methoden des Dienstes
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
16
Beschreibung von Web-Services
WSDL – Elemente
Elemente einer WSDL Beschreibung werden in der Regel
automatisch generiert.
- Types
- definieren neue Datentypen für die Kommunikation.
Standardmäßig werden einfache Typen aus der XML Schema Definition
verwendet.
- Message
- Eine abstrakte Definition der Daten, entweder in Form einer Message
als ganzes Dokument, oder als Argument eines Methodenaufrufs.
- Operation
- Die abstrakte Definition der Operationen (auf Messages).
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
17
Beschreibung von Web-Services
WSDL – Elemente
- PortType
- Ein abstraktes Set von Operationen, welche einem oder mehreren
Endpunkten zugeordnet werden. Die Bindung an das Protokoll wird
separat beschrieben, damit unterschiedliche Protokoll-Bindungen
verwendet werden können.
- Binding
- Ein konkretes Protokoll und dessen Datenformate für die Operationen
und Messages, die für diesen Port-Typ definiert sind.
- Port
- Eine Kombination einer Bindung und einer Netzwerk-Adresse.
(Die Target-Adresse der Service-Kommunikation).
- Services
- Eine Kollektion von zusammengehörigen Endpunkten.
Services bilden die Bindungen auf Ports ab.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
18
Beschreibung von Web-Services
WSDL – Framework
Dokumentstruktur
Eine WSDL Spezifikation besteht aus mehreren Elementen.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
19
Beschreibung von Web-Services
WSDL – Framework
Definition von Operationen auf Messages
<message>
definiert Nachrichten die bei der Kommunikation verwendet
werden können.
<operation> stellt abstrakt eine Methode des Web-Services dar.
- Beschreibung, was gemäß Inhalt der
Message ausgeführt werden soll.
- Operationen beinhalten mehrere Messages
- Beschreiben Patterns
(input, output, fault)
- vier Kommunikationsformen:
One-Way
Fire-and-Forget, es wird keine Antwort erwartet.
Request/Response
Client sendet Message, Server sendet Antwort.
Solicit/Response
Server sendet Message, Client antwortet.
Notification
Mehrere Empfänger einer Message (broadcast ähnlich).
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
20
Beschreibung von Web-Services
WSDL – Framework
Abbildung auf Endpunkte
<portType>
beschreibt die Schnittstelle des Web-Services.
- Gruppierung zusammengehörender Operationen.
- Wiederverwendbar
- Nach der Definition der Operationen und
Nachrichten müssen diese auf konkrete
'Endpoints' Protokolle/Adressen abgebildet
werden.
- Das Mapping geschieht Protokoll-abhängig
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
21
Beschreibung von Web-Services
WSDL – Framework
Erweiterungselemente
Erweiterung der WSDL-Elemente um technologiespezifische Details.
- Werden üblicherweise in den <binding> und <port> Elementen eingesetzt.
- Jedes Protokoll hat seinen eigenen Satz an Erweiterungselementen.
- Müssen einem von WSDL verschiedenen Namespace zugeordnet werden.
<binding> beschreibt die Bindung einer abstrakten Einheit
(message, operation, portType) an ein Protokoll.
- Erhält als Attribut ein portType-Element. Bindet jede Operation an Protokoll.
- Teilt dem Client, welches protokoll-spezifische Format seine Anfragen haben müssen.
- Legt Formatierung für Nachrichten fest.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
22
Beschreibung von Web-Services
WSDL – Framework
Ports und Services
<port> definiert Kommunikationsendpunkt durch Adresse
und Protokollbindung.
- sind Transport spezifisch.
- Kommunizieren nicht untereinander.
- identifizieren eine/mehrere TransportBindung(en) für einen bestimmten Port-Typus.
<services> Gruppe zusammengehörender
Ports.
- Mit Hilfe der Services kann ein Endpoint
unterschiedliche Kategorien von
Operationen darstellen und anbieten.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
23
Beschreibung von Web-Services
WSDL – Framework
Schematische Darstellung
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
24
Beschreibung von Web-Services
WSDL – Framework
Beispiel
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
25
WSDL - Fazit
•
Beschreibt nur Syntax, nicht die Semantik eines WS
•
Kann nicht mehrere WS zusammenfassen
•
Kann keine komplexeren Interaktionen außer Request/Response
beschreiben
•
Ist sowohl programmiersprachen- als auch plattform-unabhängig
•
Ist in guten Tools bereits integriert
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
26
Beschreibung von Web-Services
UDDI – Registry (Universal Description, Discovery and Integration)
Zentrales Repository für die Verwaltung der Informationen
über Web Services
- UDDI offeriert
White Pages
Yellow Pages
Green Pages
API
Karczewski
Adressen und Kontaktinformationen
Zuordnung zu bestimmten Industriebereichen
Technische Beschreibung der Web Services
mit dessen Hilfe die UDDI Services genutzt werden können
IT-Architekturen, Datenbanken
und Connectivity
27
Beschreibung von Web-Services
UDDI - Registry
Organization
Mehr als 300 UDDI Firmen sind Mitglieder der UDDI.ORG.
- UDDI wurde von Microsoft, IBM und Ariba gestartet.
- Die Working Group Members haben das Sagen.
- Ab UDDI V.3 wird die Spezifikation bei einem unabhängigen StandardisierungsGremium eingereicht (W3C oder OASIS).
- Die Operators können, sowohl produktive, als auch Test-UDDI Sites anbieten.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
28
Beschreibung von Web-Services
UDDI - Registry
Konzept
UDDI ermöglicht Publizieren und Finden von Services.
- Die öffentliche UDDI Registry funktioniert analog zu DNS.
Anbieter können sich bei einem beliebigen Anbieter registrieren.
Regelmässige synchronisation und Austausch der Datenbestände.
- Sicherheitsaspekte sind ein zentrales Thema:
Infos über Anbieter nur auf Original-Site vorhanden.
Die Autorisierung für den Ersteintrag muss beantragt werden.
- Die Datenqualität ist ein zentrales Thema:
Ist der Anbieter echt ?
Wie heisst er ?
Besitz er eine ID ?
Welche Art von Services werden angeboten ?
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
29
Beschreibung von Web-Services
UDDI - Registry
Das UDDI Datenmodell
UDDI identifiziert fünf grundlegende Datenstrukturen.
1. businessEntity
Top-level Struktur, das Unternehmen beschreibend und die von ihm angebotene
Services, s.B. BusinessKey, name, contact.....
Andere Informationen werden mit diesem Wurzelobjekt verkettet.
2. businessServices
alle Informationen über einzelne Web-Services, z.B. BusinessKey, name....
3. bindingTemplate
Technische Beschreibung von Service, z.B. BindingKey, serviceKey, accesPoint...
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
30
Beschreibung von Web-Services
UDDI - Registry
Das UDDI Datenmodell
UDDI identifiziert fünf grundlegende Datenstrukturen (Forts.)
4. tModel
Technische Spezifikation von Service, abstrakte Klasse, z.B. TmodellKey,
overviewDoc, identifierBag...
Kann mit Queries abgefragt werden.
5. publisherAssertion
Beziehungs-Entität, beschreibt die Beziehung zwischen mehreren businessEntity
Strukturen .
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
31
Beschreibung von Web-Services
UDDI - Registry
Das UDDI Datenmodell
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
32
Beschreibung von Web-Services
UDDI - Registry
Publizieren WSDL in UDDI
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
33
Beschreibung von Web-Services
UDDI - Registry
UDDI Application Programming Interfaces (API) lassen sich in
zwei Kategorien einteilen, zum Publizieren und zum Konsumieren.
- Publizieren:
Eintragen, Ändern, Löschen der UDDI Informationen.
Diese Aktivitäten müssen autorisiert werden.
- Konsumieren:
Suchen von Business Informationen, Queries, ...
- Falls SOAP eingesetzt wird, muss das mittels HTTP POST geschehen.
- Verschiedene UDDI Versionen werden über unterschiedliche Namensräume
erkennbar.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
34
Beschreibung von Web-Services
UDDI - Registry
UDDI für den privaten Gebrauch
UDDI kann auch innerhalb eines Unternehmens eingesetzt werden.
- In einem privaten UDDI können Applikationen registriert und gefunden
werden. In einer UDDI Registry können Metadaten über Applikationen
gespeichert werden.
- UDDI könnte somit als zentrale Drehscheibe eines Unternehmens eingesetzt
werden, für Informationen über intern verfügbare Services, auch
Integrations-Services.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
35
SOAP
Definition:
SOAP ist ein „einfacher […] Mechanismus für den Austausch
strukturierter und typisierter Informationen zwischen
Rechnern in einer dezentralen, verteilten Umgebung auf
Basis von XML“
W3C
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
36
SOAP
Geschichte:
•
1998: Entwicklung von SOAP durch Microsoft u.a.
•
1999: erste Version von SOAP wird durch Microsoft über die
Internet Engineering Task Force (IETF) veröffentlicht
•
2000: SOAP Spezifikation in der Version 1.1 beim W3C
eingereicht (noch kein Standard)
•
2000: Beim W3C formiert sich eine Arbeitsgruppe, die ein
XML-basiertes Protokoll zur Kopplung von
Applikationen über das Web definieren soll (SOAP 1.2)
•
2003: SOAP 1.2 wird Empfehlung des W3C (Standard)
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
37
SOAP
Aufbau:
•
Eine SOAP-Spezifikation definiert eine XML-Grammatik, mit
der strukturierte und typisierte Informationen zu einer
Nachricht zusammengefasst werden können.
•
Eine SOAP-Nachricht ist ein XML-Dokument, auch Umschlag
(„Envelope“) genannt, das einen optionalen Kopfteil
(„Header“) und den Inhaltsteil („Body“) enthält.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
38
SOAP
Aufbau:
•
Eine SOAP-Nachricht ist eine unidirektionale Übermittlung
von einem Sender zu einem Empfänger (auch über mehrere
Instanzen).
•
Mehrere Nachrichten können über mehrere Instanzen zu
komplexen Interaktionsmustern komponiert werden. Das
Ergebnis, das eine Instanz liefert, wird als Eingabe für den
Funktionsschritt bei der nächsten Instanz verwendet
(Pipelining)
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
39
SOAP
Aufbau:
•
•
•
Der Envelope kapselt die
Informationsblöcke für die
Aufgabenbeschreibung und die
Nachrichten-Daten.
Der Header ist optional und
enthält z.B. die Verarbeitungsinformationen, die von
eventuellenZwischenstationen
bearbeitet werden müssen.
SOAP-Envelope
SOAP-Header
SOAP-Block
SOAP-Block
SOAP-Body
SOAP-Block
SOAP-Block
Der Body enthält die zu
übermittelnde Information, die
vom letzten Empfänger verwertet
IT-Architekturen, Datenbanken
werden soll.
Karczewski
und Connectivity
40
SOAP
SOAP-Paket:
Karczewski
+----------------------------------------------------------------------------------- HTTP-Header--+
| POST /realtimequotes/ncrouter HTTP/1.1
| Host: mysoapserver
| Content-Type: text/xml; charset=utf-8
| Content-Length = 426
+-------------------------------------------------------------------------------------------------------- +
<?xml version="1.0" encoding="UTF-8"?>
+--------------------------------------------------------------------------------SOAP-Envelope--+
| <SOAP-ENV:Envelope
| xmlns:SOAP-ENV=“http://www.w3.org/2001/12/soap-envelope“
| xmlns:encodingStyle="http://www.w3.org/2001/12/soap-encoding“
| xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“
| xmlns:xsd=“http://www.w3.org/2001/XMLSchema“
| +----------------------------------------------------------SOAP-Header (optional)---+
|
| <SOAP-ENV:Header>
|
|
….
|
| </SOAP-ENV:Header>
| +---------------------------------------------------------------------------------------------- +
| +--------------------------------------------------------------------SOAP-Body----------+
|
| <SOAP-ENV:Body>
|
|
<Telefon>
|
|
<name>Sommer</name>
|
|
<number>025689753</number>
|
| </SOAP-ENV:Body>
| +---------------------------------------------------------------------------------------------- +
| </SOAP-ENV:Envelope>
+------------------------------------------------------------------------------ -------------------------+
IT-Architekturen, Datenbanken
und Connectivity
|
|
|
|
|
|
|
|
|
|
|
|
41
Player bei den Web Services
Global Player: Microsoft, IBM, SUN, Oracle, Intel, HP, Bea …
Weitere Standards: ebXML, bizTalk, BPEL4WS …
Systeme: .NET, WebSphere, Sun ONE …
Organsiationen: W3C, OASIS, MS+IBM+BEASystems
Allgemeiner Standard: XML, SOAP, WSDL, UDDI
Neu: Web Service Interoperability Organization
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
42
Fazit: Web Services
Stärken der Web Services als eine moderne Middleware:
• Alle eingesetzten Techniken basieren auf Internet-Standards
(HTTP, XML, …)
• WS passen gut in das allgemein angebrochene Internet-Zeitalter
• Zwischen den Anwendungen existieren nur lose Kopplungen und
keine Transaktionen, deshalb einfache Verwendbarkeit
• Komplexität wird durch Kapselung verringert
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
43
Fazit: Web Services
Stärken der Web Services als eine moderne Middleware
(Forts.):
• Zugriff über Standards erleichtert die Nutzung vorhandener
Internet-Infrastruktur (z.B. Firewalls, Lastverteiler)
• Skalierbarkeit ist gegeben durch den Einsatz der InternetTechniken
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
44
Fazit: Web Services
Schwächen der Web Services:
• Standardisierungsprozess der einzelnen Komponenten ist nicht
abgeschlossen
• Vollständigkeit und Verlässlichkeit der UDDI-Informationen ist
nicht gegeben
• Automatisches, exaktes Finden, Interoperieren und Komponieren
von WS ist unmöglich. Genaues Matchen der Anforderungen
kann nur durch Menschen realisiert werden.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
45
Fazit: Web Services
Schwächen der Web Services (Forts.):
• Unternehmen müssen entscheiden, ob die vorhandene InternetSicherheit ausreichend ist für den Informationsaustausch zu
ihren Geschäftspartnern
• Aufgrund des Einsatzes besteht die Gefahr, dass Geschäftspartner auf interne Informationen Zugriff erhalten.
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
46
Quellen: Web Services
J. Snell, D. Tidwell, P.Kulchenko: Programming Web Services
with SOAP, O´Reilly 2002
SOAP, Spezifikation des W3C (www.w3.org/TR/SOAP/)
WSDL, Spezifikation des W3C (www.w3.org/TR/wsdl/)
UDDI Data Structure Reference
(www.uddi.org/pubs/DataStructure-V1.0-Open-20000930.html)
www.uddi.org
Weiterführend:
www.ebXML.org -> Electronic Business mit XML
www.apache.org/soap/
Karczewski
IT-Architekturen, Datenbanken
und Connectivity
47

Services