1 / 46

infm2 :: AW1 :: SOA (2)

infm2 :: AW1 :: SOA (2). Transaktionsmanagement mit Services und Geschäftsprozessen Martin Gerlach. Agenda. Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt. Agenda.

halia
Download Presentation

infm2 :: AW1 :: SOA (2)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. infm2 :: AW1 :: SOA (2) Transaktionsmanagement mit Services und Geschäftsprozessen Martin Gerlach

  2. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  3. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  4. Motivation :: Verteilte Services im Ferienclub Autovermietung B Ferienclub Autovermietung A [Attribute…] Anwendung Kalender- Service Reservierungs- Service Reservierungs- Broker-Service Restaurant [Ort, Preiskl., …] Payment- Service Reservierungs- Service Kino [Ort, Genre, …] Hotel [Ort, Preiskl., …] Reservierungs- Service Reservierungs- Service infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  5. Motivation :: Club-Anwendungen sollen funktionieren • Kombinierte Buchung von Leistungen • Mietwagen + Restaurant + Auswärtiges Hotel + Bezahlung • Getränkebestellung + Bezahlung • Buchen von Sportgerät/-plätzen • … • Geht nur mit zuverlässigem "Transaktionskonzept" • "(Geschäfts)Prozesse" definieren die Abfolge der Service-Aufrufe infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  6. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  7. Klassischer Transaktionsbegriff • Transaktion [10, 11] • Handel: Geschäftsvorfall (Business Transaction) • Datenbanken: Allgemein zugängliche Daten bei Zugriff durch mehrere Clients konsistent halten • Ausgeweitet von Datenbanken auf andere Ressourcen • Atomicity, Consistency, Isolation, Durability • Verteilte Transaktionen • Gesamtsystem nach der Transaktion konsistent • Erweiterte Konzepte [nach [2]] • Nested TX + Open Nested TX • Saga • SplitJoin • ConTracts • Long Running Activity infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  8. Klassische verteilte TX :: Zuverlässigkeit • 2 Phase Commit (2PC) • Koordinator (C) steuert Knoten A und B aus [1] • … und andere (3PC etc.), die auch den Ausfall des Koordinators berücksichtigen infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  9. Klassische verteilte TX :: Zeit • Üblicherweise vollautomatisch • Daher "schnell" • Typischer Abstand zwischen 2PC "PREPARE" und "COMMIT" im Millisekunden/Sekunden-Bereich [1] • Bei Timeout ROLLBACK infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  10. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Nutzung klassicher TX • Zeitbetrachtung • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  11. Services :: Nutzung klassischer TX • Jeder Service kann für die Erfüllung seiner Aufgabe, klassische – auch verteilte – Transaktionen nutzen • Der gesamte Prozess muss aber auch gesichert sein … … und zwar hier infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  12. Services :: Verteilte Services im Ferienclub Autovermietung B Ferienclub Autovermietung A [Attribute…] Anwendung Kalender- Service Reservierungs- Service Reservierungs- Broker-Service Restaurant [Ort, Preiskl., …] Payment- Service Reservierungs- Service Kino [Ort, Genre, …] Hotel [Ort, Preiskl., …] Reservierungs- Service Reservierungs- Service infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  13. Services :: Verteilung und Zeit • Hochgradige Verteilung • Über unterschiedliche Organisationen • Abarbeitung eines Requests • Ist u. U. nicht vollautomatisch • Kann u. U. "lange dauern" • Besonders dann, wenn andere Services (entfernt) aufgerufen werden • Mit ACID TX und 2PC würden Ressourcen für zu lange Zeit gesperrt bleiben • Folge: Man benötigt ein Konzept für "Long Running Distributed Transactions" infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  14. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Überblick, Konzepte • Lösungen: BTP, THP, WS-* • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  15. Long Running Distributed Transactions • "Long-running activities can be structured as many independent, short-duration transactions, to form a 'logical' long-running transaction."[1] • Anforderungen • Verteilung • Lange Laufzeit • Ressourcen sollen nicht zu lange gesperrt bleiben • ACID zu restriktiv • Einzelsysteme sollen schnell "committen" • Aber der Mietwagen soll nicht gebucht bleiben, wenn das Restaurant ausgebucht ist… • Optimistische Nebenläufigkeitskontrolle infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  16. Long Running Distributed TX :: Kompensation • Wenn ACID nicht erwünscht ist, benötigt man kompensierende Aktionen • Typischerweise auch über Service Call • Beispiel (aus [1]) • t1: Mietwagen/Taxi • t2: Restaurant • t3: Theater • t4: Hotel (ausgebucht) • tc1: Storno t2/t3 • t5': Kino • t6': More fun stuff infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  17. Long Running Distributed TX :: Systementwurf • Hochgradige Verteilung von Anfang an berücksichtigen • Nicht erstmal alles als lokal, schnell, verfügbar, zuverlässig betrachten. • Unzuverlässigkeiten, Verzögerungen etc. müssen u. U. zunächst simuliert werden (z.B. beim Prototyping) • Architektur muss für verteilte Services gebaut werden (nicht andersherum) • Service Oriented Architecture infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  18. Long Running Distributed TX :: Lösungen :: BTP • Business Transaction Protocol (OASIS) [2, 17] • Koordinator-basiert (ähnl. 2PC) • Applikation hat Kontrolle über beide Commit-Phasen durch Business-Logik • "Open Top" Commit Protocol • Normale Kontroll-Verben • BEGIN, COMMIT, ROLLBACK • Neue Kontroll-Verben • PREPARE, CONFIRM, CANCEL infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  19. Long Running Distributed TX :: Lösungen :: BTP • Zwei Arten von Transaktionen • Atoms • Garantiert konsistent, alle Teilnehmer sehen gleiches Ergebnis (confirm oder cancel) • Cohesions • Teilnehmer können unterschiedliche Ergebnisse haben • 2-Phasen-Protokoll erlaubt genaue Parametrisierung welche Teilnehmer "confirmed"/"canceled" werden • Nur "confirmed" Teilnehmer sehen das gleiche Ergebnis • Dadurch teilweise Aufhebung von "Atomicity" und "Isolation" infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  20. Long Running Distributed TX :: Lösungen :: BTP • Gedacht für QoS-Layer aus [1] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  21. Long Running Distributed TX :: Lösungen :: BTP Optimierungen und weitere Details in [1], [2], [17] • Für Web Services über SOAP 1.1: <?xml version="1.0" encoding="UTF-8" ?> <SOAP:Envelope SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Body> <btp:begin transaction-type="atom" xmlns:btp="urn:oasis:names:tc:BTP:1.0:core"/> </SOAP:Body> </SOAP:Envelope> infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  22. Long Running Distributed TX :: Lösungen :: THP • Tentative Hold Protocol [2, 18] • Nicht-blockierende Sperren vor der TX • "Reservierung"  Paradigma "Online-Ordering" • Nachrichten-basiert • Wenn ein reservierender Prozess "committed", werden andere benachrichtigt • Framework: THP-Koordinatoren auf Requestor- und Provider-Seite • Sollten durch Firewall kommunizieren können • Requestor/Provider-spezifische APIs • Verwaltung der Sperren infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  23. Long Running Distributed TX :: Lösungen :: THP aus [2] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  24. Long Running Distributed TX :: Lösungen :: THP • Erweiterung: Web Service Tentative Hold and Compensation Composition Transaction Model • Dynamische Service-Choreography • Reihenfolge • Parallel/Sequentiell • Constraints • Kompensierung • Kompliziert…  [2] / AW2 / Projekt … aus [2] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  25. Long Running Distributed TX :: Lösungen :: WS-* • WS-* Spezifikationen • WS-Addressing • WS-Coordination • WS-Policy • WS-Security • … • Nur Web Services • BEA, IBM, Microsoft, VeriSign u.a. • Praktisch für alles rund um Web Serivces http://www.ibm.com/developerworks/views/webservices/standards.jsp infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  26. Long Running Distributed TX :: Lösungen :: WS-* [5] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  27. Long Running Distributed TX :: Lösungen :: WS-Coordination • Coordination Framework • Coordination Services (WS-Coordination Spec) • Activation Service • Registration Service • Coordination Service • Coordination Protocols (WS-Transaction Specs) • Protocol for Atomic Transactions • Protocol for Business Transactions (Long Running TX) infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  28. Long Running Distributed TX :: Lösungen :: WS-Coordination aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  29. Long Running Distributed TX :: Lösungen :: WS-Coordination • Transaktionsprotokolle kombinierbar aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  30. Long Running Distributed TX :: Lösungen :: WS-Coordination • Coordination Context <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope"> <S:Header> . . . <wscoor:CoordinationContext xmlns:wsme="http://www.w3.org/2002/06/msgext" xmlns:wscoor="http://www.w3.org/2002/06/Coordination" xmlns:myApp="http://www.w3.org/2002/06/myApp"> <wsme:Identifier>http://foobaz.com/SS/1234</wsme:Identifier> <wsme:Expires>2005-06-30T13:20:00.000-05:00</wsme:Expires> <wscoor:CoordinationType> http://xml-soap.org/2002/06/AtomicTransaction </wscoor:CoordinationType> <wscoor:RegistrationService> <Address>http://myservice.com/mycoordinationservice/registration</Address> <myApp:BetaMark> ... </myApp:BetaMark> <myApp:EBDCode> ... </myApp:EBDCode> </wscoor:RegistrationService> <myApp:IsolationLevel>RepeatableRead</myApp:IsolationLevel> </wscoor:CoordinationContext> . . . </S:Header> infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  31. Long Running Distributed TX :: Lösungen :: WS-AtomicTransaction aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  32. Long Running Distributed TX :: Lösungen :: WS-BusinessActivity aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  33. Long Running Distributed TX :: Lösungen :: WS-* • Spezifikationen teilweise noch nicht vollständig • Implementierungen? • Security ( Thies) • WS-Policy • WS-Security infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  34. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • SOA Einordnung • BPEL4WS • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  35. Geschäftsprozesse • Geschäftsprozess  Technischer Prozess • Technischer Prozess  Services • Analyse, Modellierung für Technische Prozesse: "Service-based processes: design for business and technology"[13] • Technischer Prozess ist auch ein Service • Geschäftsprozessmodellierung infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  36. Geschäftsprozesse :: SOA Einordnung • SOA Schicht: "Process Layer" (Sven) • Service Orchestration + Choreography [3, 4] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  37. Geschäftsprozesse :: Integration • Organisation der Aktivitäten eines Prozesses • Verschiedene existierende Services werden aufgerufen • Patterns (Sven) zur Prozess-Integration [5, 6] • Seriell und/oder parallel parallel ja seriell nein infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  38. Geschäftsprozesse :: BPEL4WS [5] infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  39. Geschäftsprozesse :: BPEL4WS • XML-basierte Modellierungssprache für Service-basierte Prozesse [9] • Kontrollsemantik auf Mengen von Interaktionen mit Services, die Bestandteil des Prozesses sind • Runtime Engine benötigt, z. B. BPWS4J [19] • Rekursiv: BPEL Prozesse sind Web Services • Grober Ablauf • Aufruf ("Receive") • Logik + Service-Aufrufe • Antwort ("Reply") infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  40. Geschäftsprozesse :: BPEL4WS Tooling <process expressionLanguage="Java" name="Process" xmlns:wsdl="http://www.example.com/process/interface" xmlns:wsdl0="http://service1/Serivce1" xmlns:wsdl1="http://service2/Serivce2" ... > <partnerLinks> <partnerLink name="PartnerLink" partnerLinkType="wsdl:PartnerLinkType" partnerRole="ProcessRole"/> <partnerLink name="PartnerLinkA" partnerLinkType="wsdl0:PartnerLinkType" partnerRole="ProcessRole"/> <partnerLink name="PartnerLinkB" partnerLinkType="wsdl1:PartnerLinkType" partnerRole="ProcessRole"/> </partnerLinks> <variables> <variable name="InputVariable" messageType="wsdl:InputMessage"/> <variable name="VariableB" messageType="wsdl0:MessageB"/> <variable name="VariableE"messageType="wsdl1:MessageE"/> </variables> <sequence> <receive createInstance="yes" partnerLink="PartnerLink" variable="InputVariable"/> <switch> <case condition="DefinedByJavaCode"> <wpc:condition> <wpc:javaCode><![CDATA[ return getInputVariable().getContents().startsWith("A"); ]]></wpc:javaCode> </wpc:condition> <sequence> <invoke inputVariable="InputVariable" operation="OperationA" outputVariable="VariableB" partnerLink="PartnerLinkA" portType="wsdl0:PortTypeA"/> <assign> <copy> <from part="NumParam" variable="VariableB"/> <to part="contents" variable="InputVariable"/> </copy> </assign> </sequence> </case> <otherwise> ... </otherwise> </switch> <reply operation="InputOperation" partnerLink="PartnerLink" variable="InputVariable"/> <terminate/> </sequence> </process> infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  41. Geschäftsprozesse :: BPEL4WS & WS-* • Interessantes Paper [3] zur Kombination von BPEL4WS und WS-Coordination mittels WS-Policy[7] • Beispiel 1 "Coordinated BPEL-PartnerLinks": <wsp:Policy wsu:Name="tns:WSATPolicy"> <wsce:CoordinatedService CoordinationType= "http://schemas.xmlsoap.org/ ws/2003/09/wsat"> <wsce:Protocol ProtocolIdentifier= "http://schemas.xmlsoap.org/ ws/2003/09/wsat#Durable2PC"/> </wsce:CoordinatedService> </wsp:Policy> infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  42. Geschäftsprozesse :: BPEL4WS & WS-* • Beispiel 2 "Coordinated BPEL-Scope": <service name="ABCBankService" <port name="creditAccount" binding="tns:CreditBinding" wsp:PolicyRefs="tns:WSATPolicy" > <soap:address location=…/> </port> </service> infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  43. Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  44. Ausblick: AW2 + Projekt (infm3) • Vorschlag für Gesamt-Architektur • mit Tobias Kraue, Thies Rubarth, Sven Stegelmeier • Web Services • Transaktionen: Konzept, Architektur • WS-* • BTP/THP Features evtl. einfließen lassen • Bereitstellung von Framework und Templates • Geschäftsprozesse: • Service Orchestration + Choreography • Konzeptionell • Hands-on: Implementierungen testen, z.B. IBM/Rational • Transaktionen BPEL4WS + WS-* ausprobieren(?) • Hier könnte sich herausstellen, dass das in unserem Fall mit Kanonen auf Spatzen geschossen ist. infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  45. Referenzen :: Haupt • Mark Little, "Service-oriented Computing: Transactions and Web Services", Communications of the ACM, Volume 46 Issue 10, Oktober 2003 • Benchaphon Limthanmaphon, Yanchun Zhang, "Web Service Composition Transaction Management", Proceedings of the fifteenth conference on Australasian database - Volume 27, Januar 2004 • Stefan Tai, Rania Khalaf, Thomas Mikalsen, "Composition of Coordinated Web Services", Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware, Oktober 2004 • Girish B. Chafle, Sunil Chandra, Vijay Mann, Mangala Gowri Nanda, "Decentralized Orchestration of Composite Web Services", Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters, Mai 2004 • Mark Endrei et. al., "Patterns: Service Oriented Architecture and Web Services", IBM ITSO Redbook SG246303, April 2004 • Martin Keen et. al., "Patterns: Serial and Parallel Processes for Process Choreography and Workflow", IBM ITSO Redbook SG246306, April 2004 • WS-* Spezifikationen, Überblick: http://www.ibm.com/developerworks/views/webservices/standards.jsp (WS-Addressing, WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity, …) • Tom Freund, Tony Storey, "Transactions in the world of Web services", http://www.ibm.com/developerworks/webservices/library/ws-wstx1/ und http://www.ibm.com/developerworks/webservices/library/ws-wstx2/, August 2002 • BPEL4WS: http://www.ibm.com/developerworks/library/specification/ws-bpel/ • Tanenbaum, van Steen, "Distributed Systems", Prentice Hall, 2002 • Couloris, Dolimore, Kindberg, "Distributed Systems", Pearson Education, 2001 infm2 :: AW1 :: SOA (2) :: Martin Gerlach

  46. Referenzen :: Interessant • Martin Gudgin, "Web Services: Secure, reliable, transacted: innovation in Web Services architecture", Proceedings of the 2004 ACM SIGMOD international conference on Management of data, Juni 2004 • Martin Henkel, Jelena Zdravkovic, Paul Johannesson, "Service-based Processes: Design for Business and Technology", Proceedings of the 2nd international conference on Service oriented computing, November 2004 • Anis Charfi, Mira Mezini, "Service composition: Hybrid Web Service Composition: Business Processes Meet Business Rules", Proceedings of the 2nd international conference on Service oriented computing, November 2004 • Fabien Baligand, Valérie Monfort, "Service security: A Concrete Solution for Web Services Adaptability Using Policies and Aspects", Proceedings of the 2nd international conference on Service oriented computing, November 2004 • http://www.ibm.com/developerworks/webservices (Sehr viele Ressourcen zu SOA und Web Services) • Business Transaction Protocol (BTP) bei OASIS: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=business-transaction • Jerry Roberts, Krishnamurthy Srinivasan et al., "Tentative Hold Protocol (THP)": http://www.w3.org/TR/tenthold-1/ und http://www.w3.org/TR/tenthold-2/ • BPWS4J (BPEL4WS Java Runtime): http://www.alphaworks.ibm.com/tech/bpws4j infm2 :: AW1 :: SOA (2) :: Martin Gerlach

More Related