http://www.know-center.at
© Know-Center - gefördert durch das Kompetenzzentrenprogramm
Service orientierte Architekturen
VU Wissenstechnologien
WS 2007/08
Werner [email protected]
November 2007
http://www.know-center.at
© Know-Center
2
Inhalt
Services/WebServices
Service orientierte Architekturen
Einschränkungen
November 2007
http://www.know-center.at
© 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 anderen Programmen aufgerufen werden kann.
November 2007
http://www.know-center.at
© Know-Center
4
Finden von Web Services
Find-bind-execute pattern.Service lookup auf UDDI (Universal Description, Discovery and Integration) Servern
UDDI
Server
WSDL
Webservice(Skeleton)
Client(Stub)
Lookup(Service beschreibung)
SOAP
Services finden
Kennt das Service
November 2007
http://www.know-center.at
© 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 auch Messages an mehre Empfänger gesendet werden.
November 2007
http://www.know-center.at
© 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 zu WSDL/Soap.
November 2007
http://www.know-center.at
© Know-Center
7
Überblick Standards
(http://www.innoq.com/soa/ws-standards/poster/WS-Standards-2007-02-medium.jpg)
November 2007
http://www.know-center.at
© Know-Center
8
WebServices mit WSDL und SOAP
<wsdl><!-- define a operation --><wsdl:operation name="GetUserData">
<wsdl:input message="es:GetUserDataRequest"/><wsdl:output message="es:GetUserDataResponse"/>
</wsdl:operation>
<!-- Request --><xsd:element name="GetUserDataRequest">
<xsd:complexType><xsd:sequence><xsd:element name="username" type="string"/><xsd:element name="role" type="string"/>
</xsd:sequence></xsd:complexType></xsd:element>
<!-- Response --><xsd:element name="GetUserDataResponse">
<xsd:complexType><xsd:all><xsd:element name="email" type="string"/>
</xsd:all></xsd:complexType></xsd:element>
<wsdl>
November 2007
http://www.know-center.at
© Know-Center
9
WebServices mit WSDL und SOAP
<soap:Envelope><soap:Body
xmlns:m="http://www.example.org/userdata"> <m:GetUserData>
<m:email>[email protected]</m:email> </m:GetUserData>
</soap:Body></soap:Envelope>
November 2007
http://www.know-center.at
© 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
November 2007
http://www.know-center.at
© Know-Center
11
REST Beispiel (Amazon Resultat)
<ProductInfo><Request><Args> omitted for clarity</Args></Request>
<TotalResults>828</TotalResults><TotalPages>83</TotalPages>
<Details url="http://www.amazon.com/..."><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>
November 2007
http://www.know-center.at
© Know-Center
12
Inhalt
Services/WebServices
Service orientierte Architekturen
Einschränkungen
November 2007
http://www.know-center.at
© Know-Center
13
Service Oriented Architecture (SOA)
SOA wird verwendet um Services zu verwalten.
Realisierungen durch ESB (Enterprise Service Bus)
Ist business orientiert (B2B)
November 2007
http://www.know-center.at
© 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, …
November 2007
http://www.know-center.at
© 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 (dezentrale Steuerung). BPEL (Business Process Execution Language): XML-Standart um Prozesse zu modellieren.
CompentService
Applikation(Service)
AggregatonsService
CompentService
CompentService
AggregatonsService
November 2007
http://www.know-center.at
© 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
November 2007
http://www.know-center.at
© Know-Center
17
Choreography & Orchestration (Bsp.)
Choreography Orchestration
from W3C-Workshop-Talk (John Domingue, DERI)http://www.w3.org/2005/04/FSWS/Submissions/1/wsmo_v10.pdf
November 2007
http://www.know-center.at
© Know-Center
18
Limitierungen
SOA-InselnSumpf/WüsteneffekteAutomatisches Orchestrieren von Services und Choreographie ist problematisch
November 2007
http://www.know-center.at
© Know-Center
19
Ende