11. Übung zur Vorlesung Service-orientierte Architekturen

Ähnliche Dokumente
10. Übung zur Vorlesung Service-orientierte Architekturen

A Comparison of BPML and BPEL4WS

Business Process Execution Language. Christian Vollmer Oliver Garbe

Model-Driven Software Development

Konzepte und Anwendung von Workflowsystemen. Kapitel 8: Workflow Ausführungssprache BPEL

9. Business Process Execution Language

Web Services Composition (BPWS4J )

Geschäftsprozessmodellierung essmodellierung mit BPEL

DOAG SIG Day. E-Business Suite und SOA: Was ist heute schon möglich? Thomas Karle PROMATIS software GmbH. Frankfurt 26. April 2007

BPEL Schulung. Autoren: Kaveh Keshavarzi, Thomas Bayer. Copyright by. predic8 GmbH Moltkestr Bonn.

Finde den Fehler SOA Suite und BAM effizient einsetzen. DOAG 2013 Konferenz + Ausstellung - Nürnberg 21. November 2013

Fault Handling in Webservices. SoSe 2011

20. DOAG-Konferenz. Wohlstrukturierte Prozesse auf SOA-Basis. mit der Oracle E-Business Suite. Thomas Karle PROMATIS software GmbH

BPEL Wie werden meine Prozesse ausgeführt?

19,21,25,41,43,49,51,58,62,65,67,69,71,78,80,82,8 4,86,88,90

Enterprise Applikation Integration und Service-orientierte Architekturen 11 BPEL

BPEL und Transaktionen

Business Process Execution Language for Web Services (BPEL4WS)

Möglichkeiten der Orchestrierung von Grid Web Services mit BPEL. Uschi Beck Marko Brosowski

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2013

Using Workflows to Coordinate Web Services in Pervasive Computing Environments

Grafische Repräsentation von BPEL4WS

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014

Vergleich von Prozessbeschreibungssprachen: BPEL vs. XPDL vs. jpdl

Seminar E-Services WS 02/03 BPEL4WS. Business Process Execution Language for Web Services. Mirwais Turjalei SES 02 BPEL4WS

Oracle SOA Suite 10g: Services-Orchestrierung

Übungen zur BPEL Schulung

Seminarvortrag. Transaktionen in WebServices. Service-orientierte Architektur (SOA) Vortragender: Tobias Ramin

BPEL. Business Process Execution Language. Andre Rein. 21. August Serviceorientierte Architekturen

Entwurf und Implementierung einer Workflow-basierten Anwendung zur Auswertung mathematischer Formeln

Bachelorarbeit. Modellierung interaktiver Web Service Workflows. Thema: Benjamin Koch. von

Oracle SOA Suite 10g: Services-Orchestrierung

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Fachliche Prozessmodellierung BPMN 2.0. HU Berlin, 27. Mai 2009

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Geschäftsprozessmodellierung mit BPEL

Sind Prozessmanagement-Systeme auch auf eingebetteten Systemen einsetzbar?

Service-Orientierte Architekturen

Tutorial zu WS-BPEL. Veranstaltung: Entwicklung verteilter Softwaresysteme mit Webservices im Sommersemester 2008

Entwicklung eines Error- Hospital für Oracle SOA Suite

Ermittlung von Testabdeckungsmetriken in BPEL-Kompositionen

Geschäftsprozessmodellierung mit BPEL4WS: Aufbau und Beispiel

Integration im Enterprise Umfeld

Web Services Integration mit Oracle BPEL Process Manager

FaultHandling. Hinweise zum Design von Fault Handling in SOA Composite Applications

Objektorientierte Programmierung

Service Oriented Architecture

1. Wie können Forms und SOA integriert werden?

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

Bachelorarbeit. Konzeption und Umsetzung einer Praktikumsaufgabe zur Komposition von Web Services mit BPEL

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm

Interface. So werden Interfaces gemacht

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

BPEL - Business Process Executable Language

Sind Prozessmanagement-Systeme auch für eingebettete Systeme einsetzbar?

Modellierung von Geschäftsprozessen mit BPEL4WS

Modeldriven SOA Modellgetriebene Entwicklung von SOA Anwendungen. Java Forum Stuttgart,

Elementare Konzepte von

4. Übung zur Vorlesung Service-orientierte Architekturen

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Beschreibungssprachen

Interaktives Monitoring von wissenschaftlichen Workflows

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3

BPEL Business Process Execution Language

Sortieralgorithmen. Nachfolgend wird die Menge der ganzen Zahlen und die darauf definierte Relation betrachtet.

Business Process Management und Workflow-Technologien: Grundlagen, Produkte, Forschung Seminar

Transaktionsverwaltung

Konzept und Entwicklung einer BPEL Compliance Testsuite in BPELUnit

Do 6.1. BPM - Brücke zwischen Business und IT? Status, Mythen, Missverständnisse und Potentiale. Jakob Freund Bernd Rücker

Enterprise Service Bus (ESB) in einer SOA

Girls Day 2017 Programmierung

Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Vertiefte Grundlagen Graphentheorie

About me. Hajo Normann SOA/BPM Architect at EDS, an HP company. Oracle ACE Director

Aus EAI wird SOA: Integration mit Forms und ADF. pdv TAS. Torsten von Osten, Sven Tissot pdv Technische Automation + Systeme GmbH Hamburg

Testen von SOA-Anwendungen mit dem BPEL Testframework

Unified Modelling Language

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

1 Fehler-Objekte: Werfen, Fangen, Behandeln

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

BPEL und Transaktionen. Referenten: Guido Neander, Senior-Berater, MT AG, Ratingen Arne Platzen, Leiter Competence Center Oracle SOA, MT AG, Ratingen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Praktikum aus Softwareentwicklung 2, Stunde 5

8. Stateflow Grundlagen. Daniel Schrammel - BA Stuttgart -

POIS-Praktikum Prozessimplementierung, RosettaNet PIPs 3A

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Statische Analyse von BPEL4WS-Prozeÿmodellen

COPPER. - Next Generation SPOCK Michael Austermann SCOOP Software GmbH

(Ausnahmebehandlung)

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Schleifen: Immer wieder dasselbe tun

Einstieg in die Informatik mit Java

Konzeption und Implementierung von SOA Composed Services in der Praxis

Transkript:

11. Übung zur Vorlesung Service-orientierte Architekturen Business Process Execution Language (BPEL) Fault- und Compensation-Handling SoSe 2011

Aktivitätsübersicht Einfache Aktivitäten Invoke Receive Reply Assign Compensate CompensateScope Empty Exit Strukturierte Aktivitäten Flow foreach If Pick repeatuntil Scope Sequence While Throw Rethrow Validate Wait SOA BPEL Fault- und Compensation-Handling SoSe 2011 2

Fehler in BPEL Fehler werden in BPEL durch Faults signalisiert (vgl. Webservices) Faults unterbrechen den normalen Kontrollfluss Wie bei den Webservices sollte man 2 Arten von Fehlern unterscheiden Technische Faults (System-centric) Von BPEL-Engine geworfen z. B. Netzwerkfehler, Syntaxfehler, Fachliche Faults/Fehler (Business-centric) selber geworfen, durch throw- bzw. rethrow-aktivitäten Meist fachliche Fehler bei Aufruf von Webservices z. B. Kunde existiert nicht in DB, Produkt nicht in ausreichender Menge vorhanden, SOA BPEL Fault- und Compensation-Handling SoSe 2011 3

Technische Faults in BPEL ambiguousreceive completionconditionfailure conflictingreceive conflictingrequest correlationviolation invalidbranchcondition invalidexpressionvalue invalidvariables joinfailure mismatchedassignmentfailure missingreply missingrequest scopeinitializationfailure selectionfailure sublanguageexecutionfault uninitializedparterrole uninitializedvariable unsupportedreference xsltinvalidsource xsltstylesheetnotfound SOA BPEL Fault- und Compensation-Handling SoSe 2011 4

Fehlerbehandlung in BPEL Faults werden zu Fault-Handlern weitergereicht (ähnlich catch-blöcke in Java) Es gibt catch- und catchall FaultHandler FaultHandler können für ein Invoke, einen Scope oder einen ganzen Prozess definiert werden FaultHandler enthalten Programmlogik zur Fehlerbehandlung Und nur diese, keine sonstige Logik! Catch fängt einen bestimmten Fault <bpel:catch faultname="bpel:selectionfailure"> <BPEL-Activity /> </bpel:catch> CatchAll fängt alle sonstigen Faults <bpel:catchall> <BPEL-Activity /> </bpel:catchall> SOA BPEL Fault- und Compensation-Handling SoSe 2011 5

FaultHandler-Definitionen Syntaxdefintion <catch faultname="qname"? faultvariable="bpelvariablename"? ( faultmessagetype="qname" faultelement="qname" )? >* Faults sind damit identifizierbar über Name Variable Message Type oder (Schema-)Element SOA BPEL Fault- und Compensation-Handling SoSe 2011 6

Faults in der BPEL-Struktur Process extensions imports partnerlinks Deklaration von benutzten BPEL-Erweiterungen Importieren von WSDL- und XML Schema Definition von beteiligten Parteien/Partnern messageexchanges variables correlationsets faulthandlers eventhandlers activity Definition von Nachrichtenaustäuschen Definition von Variablen Definition von Korrelationen Fehlerbehandlung (Prozess-Scope) Ereignisbehandlung Der Schritt, der den Prozess beinhaltet. Hier können Fehler auftreten (Invoke, Scope, Process). SOA BPEL Fault- und Compensation-Handling SoSe 2011 7

Compensation-Handling Aus dem Englischen Ausgleich Kompensation (Wiedergutmachung / Schadenersatz) Für Transaktionen bei langlebigen Prozessen Da dort keine Sperren möglich sind Compensation ist Gegenaktion einer Aktion Wird bei einem später im Prozess auftretenden Fehler ausgeführt, um eine bereits erfolgreich ausgeführte Aktivität rückgängig zu machen Bsp.: Hotel buchen Hotel stornieren Erfüllt keine ACID-Eigenschaften! BPEL kennt kein autom. Rollback (vgl. DB), Compensation muss explizit definiert werden Transaktionsgrenzen werden durch Scopes festgelegt SOA BPEL Fault- und Compensation-Handling SoSe 2011 8

Beziehung Fault Handling und Compensation Handling Fault Handler Reagieren auf Fehler Handler pro Prozess, Scope oder Invoke Werden bei einem Fehler ausgelöst Default verhalten Aufruf aller Compensation- Handler direkter Kind-Scopes Danach Rethrow des Faults ( nach oben weiter reichen) Compensation Handler Machen bereits erfolgreich ausgeführte Aktivitäten rückgängig Handler pro Scope oder Invoke Warum nicht für den ganzen Prozess? Werden durch Compensate- Aktivität ausgelöst Aus einem Fault-Handler oder anderem Compensate-Handler heraus Default verhalten (ohne expliziten Compensation-Handler) Aufruf aller Compensation- Handler von Kind-Scopes des aktuellen Scopes In umgekehrter Reihenfolge ihrer Beendigung SOA BPEL Fault- und Compensation-Handling SoSe 2011 9

Was passiert bei einem Fehler in bookhotel? SOA BPEL Fault- und Compensation-Handling SoSe 2011 10

Was passiert hier bei einem Fehler? SOA BPEL Fault- und Compensation-Handling SoSe 2011 11

Übung Faults Entwickelt einen BPEL-Prozess, der einen Customer- Relationship-Service benutzt, um zu testen, ob ein Kunde existiert (true) oder nicht (false) WSDL: http://services.se.uni-hannover.de/ CustomerService/services/CustomerManager?wsdl Interface: existscustomer(customerid:int) boolean Id < 0 ungültige ID 0 <= Id <= 9 Kunde existiert Id > 9 Kunde existiert nicht Rückgabewerte für den Prozess True, wenn Kunde zurückgegeben wird False, wenn Fault fault (Kunde existiert nicht) geworfen wird Der Fault fault1 (ungültige ID) soll weiter gereicht werden SOA BPEL Fault- und Compensation-Handling SoSe 2011 12

Aufgabe 11 (10P) Bestellprozess Schreiben Sie einen BPEL-Bestell-Prozess, der folgendes Interface implementiert processorder(amount:unsignedint, money:int) return:boolean 1. Im ersten Schritt soll der Prozess den folgenden Geldeinzugsservice benutzen, um das Geld für die Bestellung dem Lieferanten zu überweisen http://services.se.uni-hannover.de/withdrawservice/services/withdrawservice?wsdl 2. Im zweiten Schritt soll Verpackungsmaterial mit dem CartonJungle-Service aus der letzten Übung bestellt werden. Der Prozess soll bei erfolgreicher Bestellung true und bei einem fachlichen Fehler (OutOfStockFault) false zurück liefern Schreiben Sie einen Compensation-Handler für den 1. Schritt, der das bereits überwiesene Geld wieder zurück bucht (withdraw) Schreiben Sie einen Fault-Handler für den 2. Schritt, der eine Compensation auslöst, wenn das Produkt nicht in ausreichender Menge vorhanden ist, und den Prozess mit Rückgabe false beendet SOA BPEL Fault- und Compensation-Handling SoSe 2011 13