460 likes | 533 Views
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.
E N D
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 infm2 :: AW1 :: SOA (2) :: Martin Gerlach
Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
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
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
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
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
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
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
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
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
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
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
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
Long Running Distributed TX :: Lösungen :: BTP • Gedacht für QoS-Layer aus [1] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
Long Running Distributed TX :: Lösungen :: THP aus [2] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
Long Running Distributed TX :: Lösungen :: WS-* [5] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
Long Running Distributed TX :: Lösungen :: WS-Coordination aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
Long Running Distributed TX :: Lösungen :: WS-Coordination • Transaktionsprotokolle kombinierbar aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
Long Running Distributed TX :: Lösungen :: WS-AtomicTransaction aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
Long Running Distributed TX :: Lösungen :: WS-BusinessActivity aus [8] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
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
Geschäftsprozesse :: SOA Einordnung • SOA Schicht: "Process Layer" (Sven) • Service Orchestration + Choreography [3, 4] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
Geschäftsprozesse :: BPEL4WS [5] infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
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
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
Agenda • Motivation: Ferienclub • Klassische Transaktionen • Services und Transaktionen • Long Running Distributed Transactions • Geschäftsprozesse • Ausblick: AW2+Projekt infm2 :: AW1 :: SOA (2) :: Martin Gerlach
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
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
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