320 likes | 458 Views
XML-Datei. XML-Datei. XML-Datei. XML-Schema oder DTD. XML-Datei. XML-Datei. Validating XML Parser. Application. Datenbanken und Internet. ?. Applikation / Anwendung. Was ist das eigentlich? Wofür und für wen? Wie ist das aufgebaut? Architektur Schichten-Architektur
E N D
XML-Datei XML-Datei XML-Datei XML-SchemaoderDTD XML-Datei XML-Datei Validating XML Parser Application Datenbanken und Internet ?
Applikation / Anwendung • Was ist das eigentlich? • Wofür und für wen? • Wie ist das aufgebaut? Architektur • Schichten-Architektur • SOA – Service Oriented Architecture • …
Leitung Abteilungen, z.B.: Beschaffungswesen Produktion Vertrieb Unternehmung • 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 BPin 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(n2) 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/rest-webservices.htm
Die wichtigsten W3C WS-Spezifikationen WSDL Web Service Anbieter veröffentlichen binden SOAP UDDI Service Client Service Register finden
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.
SOAP-Beispiel 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
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 einzelnerAufgaben durch WebServices • 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? BPELoderXPDL Designerz.B. basierend auf BPMN Visio, ActiveBPEL, … BPEL oder XPDLEngine
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