Datenbanken und Internet XML-Schema oder DTD XML-Datei XML-Datei XML-Datei XML-Datei XML-Datei Validating XML Parser Application?
Applikation / Anwendung Was ist das eigentlich? Wofür und für wen? Wie ist das aufgebaut? Architektur Schichten-Architektur SOA Service Oriented Architecture
Unternehmung Abteilungen, z.b.: Leitung Beschaffungswesen Produktion Vertrieb Geschäftsprozesse / Business Processes (BP) Interne/externe Abläufe und Kommunikation können je nach Abeilung und Prozess unterschiedlich sein viele eigenständige Anwendungen! Zum Gegensteuern: Enterprise Application Integration (EAI) z.b. durch Einführung von Enterprise Resource Planning (ERP) - Systemen
Beispiel für BP in BPMN (Business Process Modelling Notation) Bild von:
SOA - Service Oriented Architecture An Geschäftsprozessen ausgerichtete IT- Infrastruktur. In SOA werden Services (Dienste) lose miteinander verbunden. Service Provider (bietet den Dienst an) Service Consumer (ruft den Dienst ab) Prinzip ist IT unabhängig, z.b. Restaurant, Dienstleistungsservices allgemein,
SOA Vorteile Einfaches Austauschen von Services möglich (Beispiel: Kauf eines neuen CD-Spielers) Anderer Ansatz als bei Objektorientiertem Programmieren! Lose Verknüpfung ist flexibler/modularer, daher leicht an Änderungen anpassbar. Konzentration auf BP Übel bei der Wurzel packen, Vergleichbar mit Wahl des Algorithmus [O(n 2 ) O(n) bringt es!] Langfristiger Kosten- und Effizienz-Vorteil! $$$$
SOA Probleme Modularisierungs Komplexitäts Trade off Bei hoher Modularisierung erreicht man hohe Flexibilität, wodurch aber die Komplexität steigt! Never change a running system! EAI-Gross-Projekte sind oft gescheitert SOA ist vielversprechend aber noch sehr jung! Standards noch nicht ganz stabil, Werkzeuge entsprechend uneinheitlich Bevor man auf das falsche Pferd setzt warten CIOs ab!
SOA Voraussetzungen BP muss sinnvoll erfasst und modularisiert werden. Schwer!!!! Darstellung z.b. über UML oder BPMN Schnittstellen müssen klar definiert werden! In welcher Form erhält der Service Provider die Nachricht (Service Request)? Was muss in dem Service Request alles enthalten sein? Format, Struktur, Vokabular müssen passen. Web Services
Web Services Web Services (allgemein): Software-Anwendung Identifizierbar durch URI XML basiert Interface basiert auf Internet Protokoll, z.b.: HTTP, FTP, SMTP, Klassische Beispiele: Hotelbuchung, Flugbuchung, Autovermietung, Abrufen von Börsendaten,
Web Services Zurzeit in drei Ausprägungen: SOAP Web Services (das bekannteste) Remote Procedure Call (RPC) Web Services REpresentational State Transfer (REST) Web Services
SOAP Web Services Basiert auf Spezifikationen des W3C Kodierung der Nachricht in XML (ausgenommen Daten-Anhänge, diese können binär sein) Nachrichten müssen in SOAP enthalten sein, man spricht auch vom SOAP-Envelope (Briefumschlag) Beschreibung des Service mittels Web Service Description Language (WSDL)
RPC und REST Web Services RPC Web Service Kann, muss aber nicht mit SOAP sein Arbeitet meist ohne automatische Service Beschreibung (WSDL) Meist nur für kleine Anwendungen REST Web Services Andere (flexiblere) Adressierung Mehr Details unter: http://www.oio.de/public/xml/restwebservices.htm
Die wichtigsten W3C WS-Spezifikationen WSDL Web Service Anbieter veröffentlichen binden UDDI SOAP Service Register finden Service Client
Web Service Technologien Web Services werden beschrieben durch WSDL (Web Service Description Language) werden bekannt gemacht mittels UDDI (Universal Description, Discovery and Integration) werden aufgerufen über SOAP (früher: Simple Object Access Protocol, jetzt eigenständiger Name)
SOAP History SOAP Version 1.2 (Second Edition) Z.B. SOAP Version 1.2 Part 0: Primer (Second Edition) W3C Proposed Edited Recommendation 19 December 2006 http://www.w3.org/tr/2006/per-soap12-part0-20061219/ SOAP Version 1.2 W3C Recommendation 24 June 2003 SOAP Version 1.2 Part0: Primer http://www.w3.org/tr/2003/rec-soap12-part0-20030624/ SOAP Version 1.2 Part1: Messaging Framework http://www.w3.org/tr/2003/rec-soap12-part1-20030624/ SOAP Version 1.2 Part2: Adjuncts http://www.w3.org/tr/2003/rec-soap12-part2-20030624/ SOAP Version 1.2 Specification Assertions and Test Collection http://www.w3.org/tr/2003/rec-soap12-testcollection-20030624/ Simple Object Access Protocol (SOAP) 1.1 - W3C Note 08 May 2000
SOAP Second Edition This second edition includes additional material on the SOAP Message Transmission Optimization Mechanism (MTOM), the XML-binary Optimized Packaging (XOP) and the Resource Representation SOAP Header Block (RRSHB) specifications. Nicht Simple!
SOAP SOAP Messages enthalten (mindestens) einen Umschlag,einen Kopf und einen Rumpf. Umschlag (Envelope) Definiert Start und Ende der Message Kopf (Header) Enthält Attribute, welche für die Verarbeitung der Message wichtig sind. Rumpf (Body) Enthält die Message,also die Informationen, welche an den Empfänger gesendet werden sollen.
<?xml version='1.0'?> <env:envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:header> <m:reservation SOAP-Beispiel xmlns:m="http://travelcompany.example.org/reservation" env:role="http://www.w3.org/2003/05/soap-envelope/role/next" env:mustunderstand="true"> <m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference> <m:dateandtime>2001-11-29t13:20:00.000-05:00</m:dateandtime> </m:reservation> <n:passenger xmlns:n="http://mycompany.example.com/employees" env:role="http://www.w3.org/2003/05/soap-envelope/role/next" env:mustunderstand="true"> <n:name>åke Jógvan Øyvind</n:name> </n:passenger> </env:header> <env:body> <p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel"> <p:departure> <p:departing>new York</p:departing> <p:arriving>los Angeles</p:arriving> <p:departuredate>2001-12-14</p:departuredate> <p:departuretime>late afternoon</p:departuretime> <p:seatpreference>aisle</p:seatpreference> </p:departure> </env:body> </env:envelope> Beispiel aus: SOAP Version 1.2 Part 0: Primer (Second Edition)
WSDL WSDL definiert die Web Service Schnittstellen, Datentypen,Protokolle WSDL beschreibt : - die Nachrichten,die ausgetauscht werden - wie sie ausgetauscht bzw.veröffentlicht werden - wo der Service zu erreichen ist und - mit welchem Protokoll
WSDL WSDL besitzt drei Hauptelemente: Datentyp-Definition (types) - Bestimmt Struktur und Inhalt der Message Abstrakte Operationen (interface / operation) - spezielle Operationen, welche auf dem Message Inhalt ausgeführt werden dürfen. Service Bindung (binding) - Bestimmt den Netzwerk-Transport, mit dem die Message übermittelt wird
WSDL-Beispiel <?xml version="1.0" encoding="utf-8"?> <description xmlns="http://www.w3.org/2006/01/wsdl" targetnamespace= "http://greath.example.com/2004/wsdl/ressvc" xmlns:tns= "http://greath.example.com/2004/wsdl/ressvc" xmlns:ghns = "http://greath.example.com/2004/schemas/ressvc" xmlns:wsoap= "http://www.w3.org/2006/01/wsdl/soap" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsdlx= "http://www.w3.org/2006/01/wsdl-extensions"> <documentation> This document describes the GreatH Web service. Additional application-level requirements for use of this service -- beyond what WSDL 2.0 is able to describe -- are available at http://greath.example.com/2004/reservation-documentation.html </documentation> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://greath.example.com/2004/schemas/ressvc" xmlns="http://greath.example.com/2004/schemas/ressvc"> <xs:element name="checkavailability" type="tcheckavailability"/> <xs:complextype name="tcheckavailability"> <xs:sequence>
UDDI Nicht W3C Früher: IBM, HP und andere Mittlerweile bei OASIS (Organization for the Advancement of Structured Information Standards) 3. Version der Spezifikation Siehe: www.uddi.org
UDDI UDDI besteht aus drei Komponenten : - Weisse Seiten: Informationen über Unternehmen und ihre angebotenen Dienste. -Gelbe Seiten: Kategorisierung von Unternehmen nach z.b. Produktcode oder geografischem Ort. - Grüne Seiten: Technische Beschreibung des angebotenen Dienstes.
UDDI UDDI beschreibt ein Mechanismus zum Finden,Nutzen und Veröffentlichen von Diensten im Internet. UDDI ist ein Register Service zum Speichern und Bestimmen von Web Service Interfaces. Es finden Anmeldung/Abfrage von Web Service statt.
Bis jetzt SOA ist toll $$$ Umsetzung einzelner Aufgaben durch Web Services Z.B. SOAP, WSDL, UDDI basiert Darstellung des BP z.b. mit BPMN
Wie steuert man den Ablauf eines BP? Orchestration einer bestimmt (orchestration engine) und ruft in gewünschter Reihenfolge die entsprechenden Services auf. Choreographie jeder Service weiß was zu tun ist, sprich wem er Ergebnisse schicken soll (master plan known to everyone). Teile der Choreographie können orchestriert werden. Orchestration vs Choreographie == Ampel vs Kreisel
Standards BPEL4WS oder WS-BPEL (kurz BPEL Business Process Execution Language) für Orchestration OASIS Standard Web Services Choreography Description Language (WS-CDL) für Choreographie W3C XML Process Definition Language (XPDL) alternative zu BPEL (Workflow orientiert bezieht auch Human Interactions ein und nicht nur Web Service aufrufe) Workflow Management Coalition (WfC)
Wie führt man einen BP aus? Designer z.b. basierend auf BPMN BPEL oder XPDL Visio, ActiveBPEL, BPEL oder XPDL Engine
Bis jetzt SOA ist toll $$$ wenn es passt! Umsetzung einzelner Aufgaben durch Web Services Darstellung des BP z.b. mit BPMN Tools zur Erzeugung von BPEL oder XPDL wie baut man einen Web Service? siehe z.b. Web Tool Project (WTP) von Eclipse http://www.eclipse.org/webtools/ Projekt-Seite http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/ Tutorials
Mind Map Unterstützung für Aufgabe 22 http://freemind.sourceforge.net/wiki/index.php/ Main_Page