Dr.-Ing. Iris Braun

Werbung
Vorlesung „SOA –
Entwicklung verteilter Systeme auf
Basis serviceorientierter
Architekturen“
2. Technologien
Dr.-Ing. Iris Braun
Gliederung
•  Anforderungen an die Technologien zur Umsetzung von
SOA
•  Vorstellung geeigneter Technologien
–  Klassischer RPC
–  Middleware
–  Komponentenplattformen
–  Web Services
–  RESTful Services
•  Bewertung
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 2
Bewertung der Technologien zur Umsetzung
von SOA
•  Anforderungen:
–  Effect: Funktionalität kapseln
–  Visibility: Über wohldefinierte Schnittstelle anbieten
–  Interaction: Lose Kopplung über
Nachrichtenaustausch
–  Interoperabilität
–  Transparenz der zugrundeliegenden Implementierung
•  Geeignete Technologien?
–  Klassischer RPC
–  Middleware
–  Komponentenplattformen
–  Web Services
–  RESTful Services
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 3
Client-Server-Paradigma
Aufrufender
(Nutzer)
Middleware
Client
(z.B. Java RMI, CORBA,
(z.B. Kasse)
.NET, SOAP)
Transportorientierte
Schichten
(z.B. TCP/IP, UDP)
Phys. Netzwerk
(z.B. Ethernet, WLAN,
UMTS)
Dr.-Ing. Iris Braun
Aufgerufener
(Anbieter)
Anwendungsinteraktion
Kommunikationsprotokoll
Datenübertragung
Vorlesung SOA, 2. Technologien
Server
Middleware
(z.B. Kontenserver)
Transportorientierte
Schichten
Phys. Netzwerk
Folie 4
Remote Procedure Call (RPC)
•  Erweiterung des Prozeduraufrufs zum Fernaufruf
•  Ziel: Syntaktische und semantische Uniformität
(Aufrufmechanismus, Sprachumfang, Fehlerfälle)
•  Definition (nach Nelson)
• 
• 
• 
• 
• 
Synchrone Übergabe des Kontrollflusses
Auf Ebene der Programmiersprache
Getrennte Adressräume
Kopplung über relativ schmalen Kanal
Datenaustausch: Aufrufparameter und Ergebnisse
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 5
RPC: Beispielarchitektur
•  Beispielsystem: DCE (Distributed Computing Environment)
Netz
Client-Rechner
Client
ClientStub
Laufzeitsystem
lokaler
Aufruf
Aufrufkodierung
sende
warten
lokales
Ergebnis
Dekodierung
Server-Rechner
Laufzeitsystem
Ruf-
empf.
ServerStub
Dekodierung
Paket
Server
Aufruf
Ausführung
Ergebnisempf.
Paket
sende
Import
Kodierung
Ergebnis
Export
Directory
Service
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 6
RPC für SOA
+  Interaction, Effect: Aufrufparameter und Ergebnisse
+  Visibility: Schnittstellenbeschreibung: IDL (Interface
Definition Language)
+  Visibility: Verzeichnisdienst (Directory Service)
+  Getrennte Adressräume
+  Kopplung über relativ schmalen Kanal möglich
–  Plattform- und programmiersprachenabhängig
–  Synchrone Übergabe des Kontrollflusses, Client muss auf
Server warten
–  Strenge Client- / Server Semantik
–  Nicht für Austausch größerer Datenmengen geeignet
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 7
XML-RPC
+ 
+ 
+ 
- 
Aufruf entfernter Prozeduren (RPC) über XML-Nachrichten
W3C-Standard
Interoperabel, Module in vielen Programmiersprachen verfügbar
Beschränkt auf RPC, synchrone Kommunikation:
+  Einfacher implementierbar,
-  weniger flexibel
-  Keine SOAP-vergleichbare Industrieunterstützung
Client
Server
Daten
XML
XML
Daten
Daten
Dr.-Ing. Iris Braun
Daten
HTTP
Vorlesung SOA, 2. Technologien
Folie 8
Middleware im Client-Server-Paradigma
Client
(z.B. Kasse)
Middleware
Client
(z.B. Java RMI, CORBA,
(z.B. Kasse)
.NET, SOAP)
Anwendungsinteraktion
Objektinteraktion
Server
(z.B. Kontenserver)
Server
Middleware
(z.B. Kontenserver)
Transportorientierte
Schichten
(z.B. TCP/IP, UDP)
Transportorientierte
Schichten
Phys. Netzwerk
(z.B. Ethernet, WLAN,
UMTS)
Phys. Netzwerk
Definition von Middleware: “Infrastrukturdienste für verteilte Anwendungen
zur Überbrückung der Heterogenität unterschiedlicher Systeme und Netze.”
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 9
Java Remote Method Invocation (RMI)
•  Interaktion auf Objekt-Ebene
Server
Client
Naming Lookup
Remote
Object
Registry
uB
Referenz z
Lokales
Objekt
(RemoteInterface)
A
Laden von KlassenInformationen zu B
Aufruf von B
B
RemoteObjekt
Antwort
Objekt-Interface, von A und B implementiert
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 10
Java RMI: Interne Systemarchitektur
Anwendung
ClientObjekte
ServerObjekte
Stub
RMI
System
Remote Reference Layer
Transport Layer
Remote Reference Layer:
•  Verwaltung entfernter Objektreferenzen
•  Aufruf replizierter Objekte
•  Aktivierung von Objekten bei Bedarf
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 11
Java RMI für SOA
-  Nur zur Vernetzung von verteilten Java-Anwendungen - auf
Java-Umgebung beschränkt
-  Schnittstellenbeschreibung in Java, keine spezielle IDL
-  Visibility: Sehr einfacher Namensdienst
+  Keine Umwandlung in spezielles Übertragungsformat, hohe
Performanz
+  Kann wie lokales Objekt aufgerufen werden
C++
Dr.-Ing. Iris Braun
Java
Vorlesung SOA, 2. Technologien
Folie 12
CORBA - Architektur
•  ORB: Object Request Broker, zentrale CORBA-Komponente,
ermöglicht transparente Kommunikation über GIOP / IIOP
(General / Internet Inter-ORB Protocol)
•  AO: Application Objects, nutzen den ORB zur Kommunikation
•  CORBA definiert Standarddienste, u.a. Naming Service (findet
Objekte über Name), Persistence Service (nichtflüchtiges
Speichern/Laden von Objekten), Trader Service (Gelbe Seiten),
Transaction Service
AO
Dienst
AO
ORB
Dienst
AO
ORB
Dr.-Ing. Iris Braun
GIOP /
IIOP
Vorlesung SOA, 2. Technologien
ORB
Folie 13
CORBA - Architektur
•  standardisierte Schnittstelle: IDL (Interface Definition
Language), enthält u.a. Datentypen, Schnittstellen von Objekten
und Instanzvariablen
•  Ermöglicht automatische Codegenerierung: IDL-Compiler
erzeugt „Übersetzer“ für Client (Stub) und Server (Skeleton)
•  Implementierung von Objekten: sprachunabhängig
•  Auch dynamische Schnittstellen möglich
Objektreferenz
Server
Client
Stub
Dr.-Ing. Iris Braun
durch
den ORB
durchgeführt
Vorlesung SOA, 2. Technologien
Skeleton
Folie 14
CORBA für SOA
+  Ermöglicht plattform- und sprachenunabhängige
Kommunikation durch IDL und standardisierten ORB
+  Visibility: Namensdienst-Lösung (mittlerweile von URI
verdrängt)
-  Komplexe Spezifikation -> Entstehung inkompatibler
Lösungen
•  Best Practice Credit Suisse AG:
–  Seit 1999 CORBA-Implementierung nach SOAPrinzipien
–  Rund 800 „Public Services“, 44 Prozent mehrfach
verwendet
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 15
Komponentenarchitekturen
Komponente
–  funktional/technisch abgeschlossene ausführbare Einheit
innerhalb eines Komponentencontainers
–  eindeutige Klassifizierung
–  als Einheit entwickel- und konfigurierbar
–  klar spezifizierte Schnittstelle (Kapselung)
–  Granularität der Anwendung (Komplexität vs.
Wiederverwendbarkeit)
„Software-Komponenten sind ausführbare Software-Einheiten,
die unabhängig hergestellt, erworben und konfiguriert werden
und aus denen sich funktionierende Gesamtsysteme
zusammensetzen lassen.“ – Szyperski [SZY02]
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 16
Komponentenframeworks
•  Java (Sun u.a.):
- Java Applets
- Enterprise Java Beans (EJB)
- OSGi (Open Service Gateway Initiative)
•  CORBA (Common Object Request Broker Architecture):
- CORBA Components
- Standard der Object Management Group (OMG)
•  Microsoft .NET:
- .Net Remoting – RPC ähnlich Java RMI
- .Net Assemblies
- Sprachunabhängige Laufzeitumgebung
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 17
Enterprise Java Beans (EJB)
• 
• 
Java Bean: Komponente mit
–  Öffentlichen Methoden, Attributen (getProperty/setProperty)
–  Events: Ereignis- und EventListener-Klassen
–  BeanInfo: Introspection (Informationen über Bean abfragen)
Enterprise Java Beans: Serverkomponenten, nichtvisuell
–  Ausführung in EJB-Container (Laufzeitumgebung)
–  Session Beans: nicht persistent, Steuerung der Dialoge mit
Business-Objekten, Schnittstelle zum Client, Varianten: Stateless /
Stateful
–  Entity Beans: persistent, Business-Objekte mit Schnittstelle zur
Datenebene, Primärschlüssel-Mapping auf Datenbank
–  Message Driven Beans: ermöglichen asynchrone Kommunikation
über Java Messaging Service
Client
Session Bean
(z.B. Überweisung)
Entity Bean
(z.B. Konto)
EJB-Container
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 18
EJB für SOA
+  Interface-Beschreibung in Java
+  Stateless Session Beans können über Web Service-Schnittstelle
aufgerufen werden
+  Enterprise Beans können als Client auf WS zugreifen
+  Komposition / Wiederverwendbarkeit
+  Lose Kopplung (dependency injection)
+  Plattformunabhängig
-  Sprachabhängig (Java) (mit WS-Schnittstelle auch
Interoperabilität möglich)
-  Kein zentrales Repository
-  EJB-Container sehr „schwergewichtig“
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 19
OSGi (Open Service Gateway Initiative)
•  komponentenbasierte Framework-Architektur
–  1999 gegründetes Non-Profit-Konsortium
•  BMW, Telekom, Ericsson, IBM, Intel, Oracle, Sun, Siemens, …
–  verschiedene „Expert Groups“ erstellen Spezifikationen
•  Heimvernetzung, Automobile, Fabrikautomation, mobile Geräte
•  Eigenschaften:
–  Kommunikationsstandard für Vernetzung von Endgeräten
•  Fernsteuerung, Diagnose und Wartung
– 
– 
– 
– 
Verwaltung von Diensten auf Komponentenbasis
Bundles sind wiederverwendbar, plattformunabhängig
integrieren und verändern von Komponenten zur Laufzeit
Plattform bietet Basisdienste an
Log-/Config-/User-Management, Device Access, Web-Server
–  mehrere Komponenten in VM, geringer Ressourcenbedarf
–  Java basiert
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 20
OSGi Framework - Kernelemente
•  Bundles (Komponenten)
–  dynamisches Bereitstellen und Nutzen von Services
–  in standardisierten .jar-Dateien verpackt
•  enthält Manifest-Datei für Metadaten
•  OSGi-Framework
–  Layer 3: Service Registry (Steuerung
der Interaktion)
–  Layer 2: Life Cycle (dynamische
Verwaltung von Bundles)
–  Layer 1: Modules (Klassen, Ressourcen
des Frameworks)
–  Layer 0: Execution Environment
(Laufzeitumgebung)
–  verwendet Java 2 Security Model
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 21
OSGi für SOA
+ 
+ 
+ 
+ 
Bundles bieten Services an
Beschreibung der Interfaces in Java
Schnittstelle zu anderen Sprachen über JNI
Registry zum Suchen und Nutzen der Services durch andere
Bundles
+  Core Services als Bundles in Plattform integrierbar
+  Hohe Dynamik: Services und Bundles können zur Laufzeit
integriert, verändert oder entfernt werden
-  Bundles laufen innerhalb eines Containers – keine
Kommunikation mit entfernten Services
-  SOA-Umsetzung für lokale Maschinen (Fokus auf Embedded
Systems)
-  Java-basiert - programmiersprachenabhängig
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 22
Microsoft .NET Platform
.NET Anwendungen
(Assemblies)
.NET Entwicklungswerkzeuge
.NET 3.0
WCF
WPF
WCS
WWF
Klassenbibliotheken
(Basisklassen, ASP.NET, ADO.NET, WinForms)
Common Language Runtime
Betriebssystem
Windows
Windows
Windows
Windows
Communication Foundation (WCF)
Presentation Foundation (WPF)
Card Space (WCS)
Workflow Foundation (WWF)
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 23
Microsoft .NET
•  Erweiterung des DCOM-Konzeptes
•  wichtigste Elemente:
–  Common Language Runtime (CLR): sprachunabhängige
Laufzeitumgebung (virtuelle Maschine), bietet u.a.
Typprüfung und Garbage Collection
–  Microsoft Intermediate Language (MSIL): ermöglicht
Interoperabilität, Übersetzung: Source Code (C#, VB.net,
Visual C++, J#) -> Intermediate Language -> Machine Code
–  Assemblies: selbstbeschreibende Komponenten, enthalten
Schnittstellen als Metadaten, Programmcode und
Ressourcen, Versionierung, Signierung möglich
–  Umfangreiche Klassenbibliothek (Base Class Library BCL), in
Namensräume gegliedert (z.B. System.Collections)
–  Unterstützt Web-Service-Technologien
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 24
.NET für SOA
+ 
+ 
+ 
+ 
+ 
Visibility: Schnittstelle der Assemblies als Metadaten
Kapselung: .NET Enterprise Services und .NET Remoting Services
Interoperabilität: sprachunabhängige Laufzeitumgebung (CLR)
Standardisiert
Unterstützt Web-Service-Technologien:
+  Erzeugung von Schnittstellenbeschreibung in WSDL
+  Stub-Generierung aus WSDL
-  Laufzeitumgebung plattformabhängig
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 25
Lernaufgaben
Sie haben jetzt ein paar Minuten Zeit für die Beantwortung einiger
Lernaufgaben.
http://tud.invote.de/24042
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 26
Web Services: Begriffsdefinition
•  World Wide Web Consortium (W3C):
„A Web service is a software application identified by a URI,
whose interfaces and bindings are capable of being defined,
described, and discovered as XML artifacts. A Web service
supports direct interactions with other software agents using
the XML-based messages exchanged via Internet-based
protocols.”
•  IBM:
„Web Services are self-contained, modular applications that
can be described, published, located and invoked over a
network, generally, the World Wide Web.”
•  Cerami:
„A Web Service is any piece of software that makes itself
available over the Internet and uses a standardized XML
messaging system.”
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 27
Web Services: Architektur
UDDI
Verzeichnis
publizieren
finden
SOAP
WSDL
interagieren
Dienstnutzer
Dienstanbieter
: Dienstschnittstellenbeschreibung
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 28
Discovery
UDDI (Universal Description, Discovery and Integration)
Description
WSDL (Web Services Description Language)
Messaging
SOAP (Simple Object Access Protocol*)
XML-RPC (XML Remote Procedure Call)
Transport
HTTP (Hyper Text Transfer Protocol)
SMTP (Simple Mail Transfer Protocol)
FTP (File Transfer Protocol)
JMS (Java Message Service)
Management
Security
Web Services: Basic Protocol Stack
*: ursprüngliche Abkürzung, die nicht mehr verwendet wird
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 29
SOAP
•  W3C-Standard, aktuelle Version: 1.2
•  Setzt auf vorhandenen Protokollen
auf: HTTP, HTTPs, SMTP, ...
•  SOAP-Envelope: besteht aus
–  Header: optional, enthält MetaInformationen wie Transaktionsund Verschlüsselungsattribute
–  Body: enthält „Nutzdaten“ und
Bereich für Fehlermeldungen
(fault messages)
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
soapenv:envelope
soapenv:header
Header 1
Header 2
soapenv:body
Body
(message payload)
Folie 30
SOAP
•  Teilnehmer eines SOAP-Austauschs:
–  Sender
–  Intermediary (Vermittler)
–  Receiver (Empfänger)
Sender
Nachricht A
Als Empfänger
•  Vermittler erscheint je nach Sicht als
Empfänger oder als Sender
•  Wenn A‡B: Active Intermediary
–  Vermittler verändert Header der
SOAP-Nachricht (z.B.
Verschlüsselung, Re-Routing
zum Lastausgleich)
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Intermediary
Als Sender
Nachricht B
Receiver
Folie 31
WSDL
•  Web Services Description Language: allgemeingültige,
programmiersprachenunabhängige Schnittstellenbeschreibung
•  W3C-Standard, aktuelle Version: Version 2.0, aber von vielen
Engines/Tools noch nicht unterstützt (WSDL 1.1)
•  6 Hauptelemente (WSDL 2.0):
–  Type: alle Datentypen, die zwischen Client und Server
ausgetauscht werden
–  Message: abstrakte Beschreibung der Nachrichten
–  Interface: Menge von abstrakten Operationen
–  Binding: legt konkretes Protokoll und Datenformate für
Operationen und Nachrichten eines Port Types fest
–  Endpoint: Adresse für ein Binding (KommunikationsEndpunkt)
–  Service: Menge von Endpoints
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 32
WSDL (2.0)
Operation
Operation
Operation
Abstraktes Interface
Interface
Message
Message
Message
realisiert durch
Operation
Operation
Operation
Konkrete Implementierung
Binding
Message
Message
Message
adressiert durch
Endpoint
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 33
UDDI
•  Universal Description, Discovery and Integration
•  OASIS-Standard, aktuell Version 3.0
•  Ziel: Standardisierte Methode zum
Veröffentlichen und Auffinden von Web Services
•  3 Hauptkategorien:
–  White Pages: Namensregister, Kontakt zum
Anbieter, mehrsprachige Unternehmenvorstellung, Klassifizierungscode (z.B. „Bank“)
–  Yellow Pages: „Branchenbuch“, Einordnung
der Web Services in standardisierte
Geschäftskategorien (z.B. UNSPSC)
–  Green Pages: technische Informationen zu
den angebotenen Web Services (tModel),
Geschäftsmodell und -prozesse
UDDI
White Pages
(Business)
Yellow Pages
(Services)
Green Pages
(technische
Spezifikation)
UNSPSC: United Nations Standard Products and Services Code
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 34
UDDI
•  Mögliche Anfragen an UDDI-Registry (via SOAP-Nachrichten)
–  Authentifikation (bei Nutzeranmeldung)
–  Suchen (Nachrichten zum Auffinden von Diensten, SOAPBody beginnt mit find)
–  Detailinformationen abfragen (von Entities)
–  Hinzufügen und Ändern (gleich aufgebaut, automatische
Erkennung durch die Registry ob Änderung oder Erstellung)
–  Löschen (erfordert wie Hinzufügen/Ändern Authentifikation)
•  Unabhängiges Konsortium verwaltet frei zugängliche UDDIRegister, automatischer Abgleich der öffentlichen Informationen
+  Globales „öffentliches“ Register UBR (UDDI Business Registry)
-  Hat aber in den letzten Jahren an Bedeutung verloren
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 35
Zusammenfassung Web Services
Client
Anwendung
Server
Anwendung
Web Service
Client
Web Service
Provider
UDDIRegistry
bind
XML
WSDL
find
WSDL
publish
XML
SOAP
HTTP
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 36
Web Services für SOA
+  Ansatz von XML-RPC: Kopplung heterogener Softwaresysteme
+  XML-Technologien (allgemein verfügbare Standards) für
Schnittstellenbeschreibung und Nachrichtenaustausch
+  Möglichst einfache, leicht umsetzbare Protokolle
+  Interoperabilität von Plattformen und Programmiersprachen
+  Idee weltweiter Verzeichnisdienste und Service Marketplaces
Ø  Vision „Internet der Dienste“: Sammlung von Diensten, die von
Menschen, Maschinen und Anwendungen effizient genutzt
werden können
-  XML-Overhead
Internetprotokolle
XML
Dienstnutzer
z.B. HTTP
Dienstanbieter
XML
XML
Dr.-Ing. Iris Braun
Dienstbeschreibung
Vorlesung SOA, 2. Technologien
Folie 37
RESTful Services
REST: Representational State Transfer
§  Architekturstil, beschrieben in der Dissertation von Roy T.
Fielding [Fie00]
§  Client verändert seinen Anwendungszustand, indem er
Repräsentationen von Ressourcen von einem Server bezieht
Grundlegende Konzepte:
§  Eindeutige Identifikation von Ressourcen (z.B. über URIs)
§  Repräsentationen von Ressourcen (z.B. in XML, JSON)
§  Selbstbeschreibende Nachrichten (z.B. mittels HTTP)
§  Hypermedia zur Veränderung des Anwendungszustands
http://holtin.com/
hotels
HotelListe
Resource Identifier
Resource
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
XML
JSON
Representation
Folie 38
RESTful Services: Hypermedia
Client
Server
HotelListe
GET http://holtin.com/hotels
Accept: text/html
XML
HTML
Holtin Hotels
F
Holtin Dresden
Holtin Hamburg
Hotel
Dresden
GET …/hotels/dresden
Holtin Hotel Dresden
XML
HTML
Direkt am Elbufer ab 99€!
Adresse
Buchung
F
GET …/hotels/dresden/buchung
Buchung Dresden
Dr.-Ing. Iris Braun
Buchung
Dresden
Vorlesung SOA, 2. Technologien
HTML
Folie 39
REST: Uniform Interface
§  Bedingung: alle Komponenten nutzen einheitliche Schnittstelle,
d.h. begrenzte Anzahl an Methoden (CRUD)
Beispiel SOAP Web Service
REST Web Service
http://holtin.com/
HotelService
•  getHotelList
•  checkRoomAvailability
•  bookHotelRoom
•  cancelBooking
•  obtainInvoice
HotelListe
GET
PUT
POST
DELETE
Hotel
Details
Liste
Buchungen
Buchung
§  Z.B. cancelBooking =
DELETE Buchung
Dr.-Ing. Iris Braun
Rechnung
Vorlesung SOA, 2. Technologien
Folie 40
Das REST-Missverständnis
§  Häufig: „REST ist XML über HTTP“ (HTTP+POX: „HTTP and plain
old XML“)
•  Query-Parameter kaschieren spezielle Methodenaufrufe, oft
gibt es nur eine Ressource, die die gesamte Funktionalität
bereitstellt
§  Kein REST im eigentlichen Sinn!
§  Besser: Ressourcen-orientierte Architektur (ROA) [RR07]
GET …/rest?action=cancelbooking&bid=1
Accept: application/xml
…
<?xml version=“1.0“?>
<booking id=“1“>
<state>cancelled</state>
</booking>
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 41
RESTful Services für SOA
+  Interaction: Client-Server, Nachrichtenaustausch über
standardisierte Protokolle (HTTP)
+  lose Kopplung, Zustandslosigkeit
+  Uniform Interface (Einheitliche Schnittstelle)
+  Plattformunabhängig, Transparenz der Implementierung
-  Visibility: Dienstbeschreibung:
-  WSDL ungeeignet (beschreibt hauptsächlich Operationen)
+  mögliche Alternative WADL (noch wenig verbreitet)
-  Geringe Werkzeugunterstützung (verglichen mit SOAP WS)
-  Browser machen optimale Umsetzung schwierig (z.B. fehlende
PUT-/DELETE-Unterstützung bei Formularen)
-  Kaum zusätzliche Unterstützung für geschäftskritische
Anwendungen (Sicherheit, Zuverlässigkeit, Zusammenarbeit
mehrerer Partner etc.)
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 42
Bewertung der Technologien zur Umsetzung
von SOA
XMLRPC
Java
RMI
.NET
CORBA OSGi Web
Serv.
REST
Serv.
Kapselung der
Funktionalität
+
+
+
+
+
+
+
wohldefinierte
Schnittstelle
+
+
+
+
+
+
+
Transparenz der
zugrundeliegenden
Implementierung
+
+
+
+
+
+
Lose Kopplung
+
+
+
+
+
+
Standardisierung
+
+
+
Interoperabilität
+
+
+
++
(+)
Industrieunterstützung
Dr.-Ing. Iris Braun
+
+
(+)
(+)
+
+
+
Vorlesung SOA, 2. Technologien
(+)
Folie 43
Standardisierungsgremien
W3C
OASIS
WS-I
Gründung
1994
1993 (SGML
Open), 1998
2002
Mitglieder (ca.)
400
600
200
Gesamtziel (in
Bezug auf SOA)
Entwicklung des
Web, fundamentale
Standards für
Online-Business und
Informationsaustausch
Onlinehandel
fördern durch
spezialisierte
Web Services
Standards
Standardisierte
Interoperabilität
Wichtige
Ergebnisse (in
Bezug auf SOA)
XML, XML-Schema,
XQuery, XPath, XSLT,
WSDL, SOAP, XML
Encryption, XML
Signature, Web
Services Architektur
UDDI, SAML,
ebXML, WSSecurity, WSBPEL, XACML
Basic Profile,
Basic Security
Profile
Dr.-Ing. Iris Braun
Vorlesung SOA, 2. Technologien
Folie 44
Herunterladen