Weitere ähnliche Inhalte
Ähnlich wie Service-orientierte Architekturen
Ähnlich wie Service-orientierte Architekturen (20)
Service-orientierte Architekturen
- 1. Service orientierte
Architekturen
VU Wissenstechnologien
WS 2007/08
Werner Klieber
wklieber@knowcenter.at
http://www.know-center.at
© Know-Center - gefördert durch das Kompetenzzentrenprogramm
- 2. Inhalt
Services/WebServices
Service orientierte Architekturen
Einschränkungen
2
http://www.know-center.at
November 2007 © Know-Center
- 3. Was sind (Web) Services?
Definition von Service:
Eine Applikation-Komponente, die Information zur Verfügung
stellt oder Daten transformiert.
Ein Service muss immer auf einem Rechner ausgeführt werden
und kann daher eindeutig adressiert werden.
Implementierung eines Services kann über mehre Rechner
verteilt werden, indem andere Services eingebunden werden
Ein Service soll möglichst autonom und unabhängig arbeiten um
eine lose Kopplung von Systemmodulen zu ermöglichen.
Verwenden von plattformunabhängigen und sprachunabhängigen
Protokollen
Web Services Verwenden Web-Technologien (XML) und sind über
das Web erreichbar.
Web Services stellen ein Interface zur Verfügung, das von
3
anderen Programmen aufgerufen werden kann.
http://www.know-center.at
November 2007 © Know-Center
- 4. Finden von Web Services
Server
Lookup
(Service beschreibung)
Find-bind-execute
WSDL
Client
pattern.
(Stub)
SOAP
Webservice
(Skeleton)
Service lookup auf
UDDI (Universal
Description,
Discovery and
Services finden
Kennt das Service
Integration) Servern
UDDI
4
http://www.know-center.at
November 2007 © Know-Center
- 5. Standards und Spezifikationen 1
Definition von Service:
Standards werden vom W3C Konsortium entwickelt.
WS-I: Industrie Organisation um Web Service
Interoperabilität zwischen Plattformen, Betriebssystemen
und Programmiersprachen zu gewährleisten.
WSDL: Web Service Description Language. Ist ein XML
Format um Web Services technisch als Set von
Operationen basierend auf Messages zu beschreiben.
SOAP: Simple Object Access Protocoll. Ist ein one-way,
stateless Protokoll um Daten in XML von einem Sender zu
einem Empfänger zu transportieren. In SOAP 1.2 können
5
auch Messages an mehre Empfänger gesendet werden.
http://www.know-center.at
November 2007 © Know-Center
- 6. Standards und Spezifikationen 2
Definition von Service:
UDDI: Universal Description, Discovery and Integration
Spezifikation. UDDI ist ein Registry Service für Web
Services als auch anderen elektronischen Services.
SAML: Security Assertion Markup Language vom OASIS-
Konsortium. Ist ein XML-basiertes Framework für
Benutzerauthentifizierung und sicherheitsbezogene
Informationen zu beschreiben und zu übertragen.
XKMS: XML Key Management Specification. Verteilen und
Registrieren von Public-Keys.
REST (Representational State Transfer). Anderer Ansatz
6
zu WSDL/Soap.
http://www.know-center.at
November 2007 © Know-Center
- 7. Überblick Standards
7
(http://www.innoq.com/soa/ws-standards/poster/WS-Standards-2007-02-medium.jpg)
http://www.know-center.at
November 2007 © Know-Center
- 8. WebServices mit WSDL und
SOAP
<wsdl>
<!-- define a operation -->
<wsdl:operation name=quot;GetUserDataquot;>
<wsdl:input message=quot;es:GetUserDataRequestquot;/>
<wsdl:output message=quot;es:GetUserDataResponsequot;/>
</wsdl:operation>
<!-- Request -->
<xsd:element name=quot;GetUserDataRequestquot;>
<xsd:complexType><xsd:sequence>
<xsd:element name=quot;usernamequot; type=quot;stringquot;/>
<xsd:element name=quot;rolequot; type=quot;stringquot;/>
</xsd:sequence></xsd:complexType>
</xsd:element>
<!-- Response -->
<xsd:element name=quot;GetUserDataResponsequot;>
<xsd:complexType><xsd:all>
<xsd:element name=quot;emailquot; type=quot;stringquot;/>
</xsd:all></xsd:complexType>
</xsd:element>
<wsdl>
8
http://www.know-center.at
November 2007 © Know-Center
- 9. WebServices mit WSDL und
SOAP
<soap:Envelope>
<soap:Body
xmlns:m=quot;http://www.example.org/userdataquot;>
<m:GetUserData>
<m:email>user@example.org</m:email>
</m:GetUserData>
</soap:Body>
</soap:Envelope>
9
http://www.know-center.at
November 2007 © Know-Center
- 10. REST (Representational State Transfer)
WebServices mit SOAP: Ursprünglich um Standardisierte
Funktionalitäten in Web-Seiten einzubinden. Werden aber als
Middleware-Komponenten verwendet.
REST als Technologie um WebServices ohne Programierung zu
verwenden.
Inputparameter werden in Web-Url mitgeschickt. Ergebnis ist ein
XML Dokument. Ergebnisse können zum Beispile mit Stylesheet
Transformationen eigene Web-Seiten eingebaut werden.
REST ist statless.
Wie das Ergebnis einer Anfrage repräsentiert wird, ist bei REST
nicht spezifiziert.
Komposition: Es gibt eigentlich keine REST-Services sondern nur
Resourcen. Diese sind über URIS eindeutig im Web Lokalisierbar
und stehen anderen Anwendungen zur Verfügung
10
http://www.know-center.at
November 2007 © Know-Center
- 11. REST Beispiel (Amazon Resultat)
<ProductInfo>
<Request>
<Args> omitted for clarity</Args>
</Request>
<TotalResults>828</TotalResults>
<TotalPages>83</TotalPages>
<Details url=quot;http://www.amazon.com/...quot;>
<Asin>0596004508</Asin>
<ProductName>Mac OS X: The Missing Manual...</ProductName>
<Catalog>Book</Catalog>
<Authors>
<Author>David Pogue</Author>
</Authors>
<ImageUrlSmall>http://images.amazon.com/...</ImageUrlSmall>
<ImageUrlMedium>http://images.amazon.com/...</ImageUrlMedium>
<OurPrice>$20.97</OurPrice>
</Details>
insert nine more books here
</ProductInfo>
11
http://www.know-center.at
November 2007 © Know-Center
- 12. Inhalt
Services/WebServices
Service orientierte Architekturen
Einschränkungen
12
http://www.know-center.at
November 2007 © Know-Center
- 13. Service Oriented Architecture
(SOA)
SOA wird verwendet um Services zu verwalten.
Realisierungen durch ESB (Enterprise Service Bus)
Ist business orientiert (B2B)
13
http://www.know-center.at
November 2007 © Know-Center
- 14. Service Oriented Architecture -
Motivation case studies
SOA verspricht:Technologieunabhängigkeit,
Wiederverwendbarkeit, Flexibiltät, Kostenersparniss
Applikationen besteht aus zusammengesetzten,
wieder verwendbaren Komponenten. (Service
oriented Computing Paradigma).
Kümmert sich um Sicherheit, Workflow, Routing,
Monitoring, Performance, …
14
http://www.know-center.at
November 2007 © Know-Center
- 15. Services zusammenschalten
(orchestrieren)
Kernidee ist eine lose Kopplung einzelner
Services. Services sollen autonom,
isoliert und entkoppelt sein.
“Contracts” definieren was Services
machen (Verträge). “Policies” wie sie
interagieren sollen (Richtlinien).
Services dynamisch anbinden
Applikation
(Service)
(dezentrale Steuerung).
Aggregatons Aggregatons
BPEL (Business Process Execution Service Service
Language): XML-Standart um Prozesse
zu modellieren. Compent Compent Compent
Service Service Service
15
http://www.know-center.at
November 2007 © Know-Center
- 16. Choreography & Orchestration
Orchestration
Aggregation von verschiedenen Services zu Workflows.
Beinhaltet viele Low-Level Engineering-Tasks wie
Transaktionsmangement, Datenkonvertierungen, …
Choreography
Wie man mit dem Service interagiert
Konsumation der Funktionalität
Ziel: Automation von Choreography & Orchestration
16
http://www.know-center.at
November 2007 © Know-Center
- 17. Choreography & Orchestration (Bsp.)
Choreography Orchestration
17
from W3C-Workshop-Talk (John Domingue, DERI)
http://www.w3.org/2005/04/FSWS/Submissions/1/wsmo_v10.pdf http://www.know-center.at
November 2007 © Know-Center
- 18. Limitierungen
SOA-Inseln
Sumpf/Wüsteneffekte
Automatisches Orchestrieren von
Services und Choreographie ist
problematisch
18
http://www.know-center.at
November 2007 © Know-Center
- 19. Ende
19
http://www.know-center.at
November 2007 © Know-Center