Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rosalind Apel Geändert vor über 10 Jahren
2
Die letzte Festung : Transaktionen
3
Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
4
Die letzte Festung : Transaktionen Eine starke Festung...
5
Die letzte Festung : Transaktionen... ein neuer Herausforderer
6
Die letzte Festung : Transaktionen Web Services 101 Web Services sind hip! Breites Angebot von Services. Aggregation dieser Komponenten ist der neue Weg, Anwendungen zu bauen. SOAP als Basis für die Kommunikation bietet ein Reihe von Vorteilen.
7
Die letzte Festung : Transaktionen Trouble in Paradise Löst Port 80 alle Probleme ? Waren alle Probleme ungelöst ? Fremde Komponenten verhalten sich nicht immer so wie erwünscht. Verfügbarkeit und Latenzzeit können Problem werden. Behandlung der möglichen Fehlerszenarien ist sehr komplex.
8
Die letzte Festung : Transaktionen Fault (In)Tolerance Grosse Systeme sind fehleranfällig. OO macht Systeme robuster. Verteilte Systeme sind fehleranfälliger. Programmiermodell kann helfen. Heterogene Systeme sind eine echte Herausforderung ! Muss der Gesetzgeber muss her ?
9
Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
10
Die letzte Festung : Transaktionen Grundlagen Transaktionen Eine klassische Transaktion ( TA ) ist ein unit of work, die entweder erfolgreich abgeschlossen wird, oder vollkommen ohne Auswirkung bleibt. Die wichtigen Eigenschaften von TA werden markant ACID abgekürzt: Atomic: unteilbar, ganz oder gar nicht. Consistent: ein gültiger Zustand wird in eine anderen, gültigen Zustand überführt. Isolated: Jede TA scheint Highlander zu sein. Durable: Der Ausgang der TA bleibt dauerhaft gespeichert.
11
Die letzte Festung : Transaktionen Transaktionen 1. Generation Tx.begin(); UPDATE amount = amount + 100 FROM account WHERE id = 1000; UPDATE amount = amount - 100 FROM account WHERE id = 1001; Tx.commit();
12
Die letzte Festung : Transaktionen Verteilte Transaktionen (1) Verteilte Transaktionen basieren auf dem Two-Phase Commit (2PC) Protokoll. Eine Transaktion beginnt und es werden modifizierende Operationen durchgeführt. Teilnehmende Resourcen erfahren (irgendwie) von der Transaktion Fertig, das 2PC Protokoll beginnt :
13
Die letzte Festung : Transaktionen Phase1Phase1 Phase1Phase1 Verteilte Transaktionen (2) Der Coordinator befragt jede Resource nach ihrem Befinden : VoteReadOnly VoteCommit VoteRollBack
14
Die letzte Festung : Transaktionen Phase2Phase2 Phase2Phase2 Verteilte Transaktionen (3) Nachdem alle Resources positiv abgestimmt haben veranlasst der Coordinator die dauerhafte Speicherung (meist unter Nutzung einer DB). Das Rollback-Veto einer Resource reicht aus, um die ganze Transaktion zu invalidieren. Der Coordinator und die Resourcen muessen sich um das Recovery kümmern.
15
Die letzte Festung : Transaktionen Verteilte Transaktionen ! Einfaches Programmiermodell für den Nutzer. Bewährter Industriestandard. Black-Boxing : Komposition zur Laufzeit. konsequentes information hiding. Jede Resource entscheidet nur für sich. Optimierungspotentiale : Lokale Sub-Coordinatoren. Asynchrones 2PC-Protokoll. Minimierung des Context-Overheads.
16
Die letzte Festung : Transaktionen Extended Transactions Die Konzepte für xTX sind lange Forschungsgegenstand. Einsetzbare Realisierungen von xTX werden entwickelt. OMG Activity Service Specification OASIS BTP ist eine wichtige Spezifikation.
17
Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
18
Die letzte Festung : Transaktionen Applikationslogik 2PC Transaktion Lokale Transaktion 1 Sek.
19
Die letzte Festung : Transaktionen Applikationslogik 2PC Transaktion Lokale Transaktion 1 Sek. preparecommit
20
Die letzte Festung : Transaktionen Applikationslogik 2PC OTS Transaktion Qualitativer Vergleich Applikationslogik 2PC Business Transaktion
21
Die letzte Festung : Transaktionen Quantitativer Vergleich 100 Sek.Applikationslogik 2PC Business Transaktion
22
Die letzte Festung : Transaktionen Probleme… Um die ACID-Eigenschaften sicherzustellen müssen zumindest für die Dauer des 2PC Locks auf wertvollen Resourcen gehalten werden. Eine kontrollierte / zuverlässige Umgebung ist Voraussetzung ( typisches Einsatzfeld von CORBA / RMI / DCOM-Anwendungen ). Unbrauchbar bei unvorhersagbarer Latenzzeit. unbekannter Verfügbarkeit. unkontrollierter Nutzermenge. Deshalb : OTS über SOAP reicht nicht !
23
Die letzte Festung : Transaktionen Mehr Probleme… Längere Dauer -> erhöhtes Fehlerrisiko. SOAP ist nicht das schnellste Protokoll ! Physikalische Entfernung der Teilnehmer. Mehr Komplexität -> längere Bearbeitung. Mehr Teilnehmer -> höheres Rollback- Risiko. Ablehnungswahrscheinlichkeiten summieren sich. ( 0,93 10 < 0,5 ) Time Outs werden wahrscheinlicher. Der Recovery-Fall wird Standard !
24
Die letzte Festung : Transaktionen Episode IV: A New Hope Der Bedarf an Transaktionen bei Web Services ist unumstritten ! Glücklicherweise haben Forscher schon lange darüber nachgedacht. Es gab Versuche, einen anerkannten Standard für extended Transactions zu schaffen. Z.B. OMG : Activity Service Specification OASIS BTP passt am Besten !
25
Die letzte Festung : Transaktionen ACID korrodiert ! Aufgabe zumindest der ACI- Eigenschaften. Atomicity: Die TA überlebt trotz einzelner Fehler / Rollbacks. Consistency: Durch Verzicht auf langlebige Locks kann die Konsistenz nicht garantiert werden. Isolation: Teile einer TA können schon vor ihrem Gesamt-Abschluss sichtbar werden.
26
Die letzte Festung : Transaktionen Problem- / Lösungsbereiche PersistenzACI DB
27
Die letzte Festung : Transaktionen Problem- / Lösungsbereiche Persistenz Verteilung ACI DB XA / OTS
28
Die letzte Festung : Transaktionen Problem- / Lösungsbereiche Persistenz Verteilung Differenzierter Ausgang Multi- Protokoll Minimales Locking ACI DB XA / OTS BTP
29
Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
30
Die letzte Festung : Transaktionen OASIS BTP Spec Business Transaction Protocol www.oasis-open.org/committees/business-transactions Kick Off : 13. 03. 2001 Termin 1.0 : Ende Dezember ?
31
Die letzte Festung : Transaktionen OASIS BTP Technical Committee –BEA Systems, Inc. –Bowstreet, Inc. –Choreology Ltd. –Entrust, Inc. –Hewlett-Packard Co. –Interwoven Inc. –IONA Technologies PLC –SeeBeyond Inc. –Sun Microsystems Computer Corp. –Talking Blocks Inc.
32
Die letzte Festung : Transaktionen Business Transaction Protocol BTP ist ein Inter-Operation Protokoll, das definiert, wie sich transaktionale (Web) Services zu verhalten haben. Und es wird festgelegt, welche Nachrichten während einer Transaktion ausgetauscht werden. Basis ist das 2PC für kleine ( lokale ) Teile, die zu größeren, nicht-ACID Transaktion zusammengefügt werden. Die Spezifikation definiert keine API ! ( siehe aber JSR 156 ) Einige Firmen haben Implementierungen zugesagt, bzw. haben Demos fertig: HP Choreology/Bowstreet TalkingBlocks BEA...
33
Die letzte Festung : Transaktionen BTP – Anforderungen Mehrere erfolgreiche Ausgänge einer Transaktion sind zulässig. Auswirkungen von Operationen müssen nicht isoliert / dauerhaft sein. Transaktionsteilnehmer können zeitweise unerreichbar sein. Kommunikation basierend auf XML. Verschiedene Transportprotokolle sind zulässig.
34
Die letzte Festung : Transaktionen ISO / OSI Schichten Anwendung Session Low Level Transport Präsentation Layer 3, 2, 1 Layer 4 Layer 7 Layer 6 Layer 5
35
Die letzte Festung : Transaktionen ISO / OSI Schichten Anwendung Session Low Level Transport Präsentation Layer 3, 2, 1 Layer 4 Layer 7 Layer 6 Layer 5 BTP
36
Die letzte Festung : Transaktionen Transaktionale Schichtung Anwendung Cohesion Composer Atom Coordinator ACID Resource BTP spezifisch
37
Die letzte Festung : Transaktionen Begriffe : Atom / Cohesion Ein Atom ist die BTP Bezeichnung für eine Standard -Transaktion ( atomar ). Innerhalb eines Atoms gelten die Regeln des bekannten 2PC. Der Ausgang eines Atoms ist Alles-Oder-Nichts. Atome können zu Cohesions aggregiert werden. Business-Regeln bestimmen den Ausgang einer Cohesion in Bezug auf den Ausgang der zugrundeliegenden Atoms.
38
Die letzte Festung : Transaktionen Coordinator Atome werden von einem Coordinator gesteuert. In Process : die Applikation steuert selbst. Out of Process : ein spezieller Dienst übernimmt die Coordinator-Aufgabe. Im Inter-Enterprise-Bereich bietet sich eine Trusted- Coordinator-Dienstleistung an. Der Coordinator muss fehler-tolerant sein: Das Ergebnis muss im Stable Storage gesichert sein, bevor es an die einzelnen Teilnehmer propagiert wird. Im Recovery-Fall dient das Log als Basis für das replay completion der koordinierten Transaktion.
39
Die letzte Festung : Transaktionen Atom Example Atom Client Application Coordinator Credit Card Clearance Book Shop
40
Die letzte Festung : Transaktionen Atom3 Coordinator Hierarchien Coordinator 1 Atom2Atom1 Atom5Atom4 Atom7Atom6
41
Die letzte Festung : Transaktionen Atom3 Coordinator Hierarchien Coordinator 2 Coordinator 1 Atom2 Coordinator 3 Coordinator 4 Atom1 Atom5Atom4 Atom7Atom6
42
Die letzte Festung : Transaktionen Atomare Gesetzmäßigkeiten Der Atom Coordinator ist reaktiv Prepare und Commit des Coordinators ( damit des Atoms ) werden von aussen gesteuert. Beliebige Blockierung von Resourcen möglich. Die Atoms können ihr Vote qualifizieren : Zeitangabe, wie lange ein Atom bereit ist, auf das Commit zu warten. Danach : Einseitige Annahme über den Ausgang Unilateral confirm / cancel. Mehrfaches Prepare pro Atom ist zulässig. Rücksetzen der Time-Outs.
43
Die letzte Festung : Transaktionen Composer = Cohesion Manager Der Composer übernimmt die Steuerung der Cohesions ( nicht-atomaren Business TA ). In-Process / Out-Of-Process. Make Or Buy ( / Use ). Der Composer entscheidet über den Ausgang der nicht-atomaren TA anhand des Ausgangs der zugeh. Atoms und der Business Logik. Durch Composer als Teilnehmer an einer Cohesion kann ein Baumstruktur erzeugt werden. Ein subordinate Composer verhält sich nach aussen wie ein Atom.
44
Die letzte Festung : Transaktionen Cohesion Cohesion Composer Client Application Atom 1Atom 2Atom N
45
Die letzte Festung : Transaktionen Cohesion = Businesslogik Cohesion Composer Application Atom A 1 Atom A 2 Atom A N Confirm Cancel (A 1 =Cancel, A 2 =Cancel, A N =Confirm)
46
Die letzte Festung : Transaktionen Atom3 Cohesion Hierarchien Cohesion 2 Cohesion 1 Atom2 Cohesion 3 Cohesion 4 Atom1 Atom5Atom4 Atom7Atom6
47
Die letzte Festung : Transaktionen Atom3 Superior - Inferior - Beziehungen Cohesion 2 Cohesion 1 Atom2 Cohesion 3 Cohesion 4 Atom1 Atom5Atom4 Atom7Atom6 Superior Inferior
48
Die letzte Festung : Transaktionen Atom3 Superior - Inferior - Beziehungen Cohesion 2 Cohesion 1 Atom2 Cohesion 3 Cohesion 4 Atom1 Atom5Atom4 Atom7Atom6 Superior Inferior Superior Inferior
49
Die letzte Festung : Transaktionen Inferiors Quelle : Sanjay Dalal, BEA
50
Die letzte Festung : Transaktionen Superiors
51
Die letzte Festung : Transaktionen Atom Atom Demo: Organising a Night Out Application Message BTP Message Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server SOAP WebRestaurant Participant SOAP Quelle : Jim Webber, HP
52
Die letzte Festung : Transaktionen Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Create Atom Atom IDCreate AtomAtom ID WebRestaurant Participant
53
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Book Taxi Enrol Book Taxi Enrol Application Message !
54
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Book Table WebRestaurant Participant Enrol Book Table
55
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Book Seats WebRestaurant Participant Enrol Book Seats
56
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Prepare
57
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Vote confirm
58
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Confirm
59
Die letzte Festung : Transaktionen Oder…
60
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Prepare
61
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Vote confirm Vote cancel Vote confirm
62
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Cancel
63
Die letzte Festung : Transaktionen Atom ID Atom Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Atom cancelled
64
Die letzte Festung : Transaktionen Weniger Kultur... Cohesions erlauben die Aufweichung der ACID-Anforderung. Die Buchung der Theaterkarten wird als nice to have eingestuft. Die Transaktion kann trotzdem zu einem erfolgreichen Abschluss kommen. Ohne Abendessen geht es aber nicht !
65
Die letzte Festung : Transaktionen Atom 2 Cohesion Demo: Organising a Night Out Application Message BTP Message Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server SOAP WebRestaurant Participant SOAP Atom 1 Cohesion
66
Die letzte Festung : Transaktionen Cohesion Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Create Cohesion Cohesion ID Create Cohesion Cohesion ID WebRestaurant Participant
67
Die letzte Festung : Transaktionen Cohesion Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Create Atom, associate with Cohesion Atom 1 Create Atom, associate with Cohesion Atom 1 WebRestaurant Participant
68
Die letzte Festung : Transaktionen Cohesion Atom 1 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Book Taxi Enrol (Atom 1) Book Taxi Enrol (Atom 1)
69
Die letzte Festung : Transaktionen Atom 1 Cohesion Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Book Table WebRestaurant Participant Enrol (Atom 1) Book Table
70
Die letzte Festung : Transaktionen Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Create Atom, associate with Cohesion Atom 2 Create Atom, associate with Cohesion Atom 2 WebRestaurant Participant Cohesion
71
Die letzte Festung : Transaktionen Atom 2 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Book Seats WebRestaurant Participant Enrol (Atom 2) Book Seats Cohesion
72
Die letzte Festung : Transaktionen Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Prepare WebRestaurant Participant Prepare Cohesion
73
Die letzte Festung : Transaktionen Atom 1 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Prepare Cohesion
74
Die letzte Festung : Transaktionen Atom 1 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Vote confirm Cohesion Vote confirm
75
Die letzte Festung : Transaktionen Atom 2 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Prepare Cohesion
76
Die letzte Festung : Transaktionen Atom 2 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Vote cancel Cohesion
77
Die letzte Festung : Transaktionen Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Prepare Atom 1: confirm Atom 2: cancel WebRestaurant Participant Cohesion Prepare Atom 1: confirm Atom 2: cancel
78
Die letzte Festung : Transaktionen Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server Confirm WebRestaurant Participant Cohesion Confirm
79
Die letzte Festung : Transaktionen Atom 1 Cohesion Demo: Organising a Night Out Client Application SOAP server BTP Service SOAP server WebTaxi Participant WebTheatre Participant SOAP server WebRestaurant Participant Confirm Cohesion
80
Die letzte Festung : Transaktionen Taxi Night Out Beispiel : Ergebnisse Atom 1 Cohesion Restaurant Theatre Atom 2
81
Die letzte Festung : Transaktionen Ausgang der Transaktion CommitedRollbacked Klassisches 2 PC
82
Die letzte Festung : Transaktionen Ausgang der Transaktion CommitedRollbacked Klassisches 2 PC BTP Outcome
83
Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
84
Die letzte Festung : Transaktionen BTP Messaging BTP SOAP Binding hat höchste Priorität. BTP messages basieren nicht auf SOAP- RPC. Das BTP SOAP Binding nutzt kein WSDL. Die Umfang der BTP Messages ist beachtlich gross. RTFM.
85
Die letzte Festung : Transaktionen BTP Messaging :Prepare PREPARE...additional address information......hexstring... ? ?...address......hexstring... ? ?...hexstring... + ?...qualifiers...
86
Die letzte Festung : Transaktionen BTP Messaging : SOAP soap-http-1 http://example.com/soaphandler btpengine 1001... ABC8329045 224352 5
87
Die letzte Festung : Transaktionen BTP Messaging : SOAP soap-http-1 http://example.com/soaphandler btpengine 1001... ABC8329045 224352 5
88
Die letzte Festung : Transaktionen XA State Table
89
Die letzte Festung : Transaktionen State Table ( Auszug )
90
Die letzte Festung : Transaktionen Java Binding JSR 156 XML Transactioning API for Java JAXTX Initiiert von HP ( Mark Little ), IBM, IONA,und Choreology. Abstimmung über den Specification Request am 5.11.2001. Erwartete Fertigstellung : Sommer 2002
91
Die letzte Festung : Transaktionen Related... XAML Transaction Authority Markup Language deprecated ebXML High Level, Ebene Geschäftslogik. Nicht Fehlertolerant. WSFL Skript-basierte Steuerung von Web Services. Nicht Transaktional.
92
Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung
93
Die letzte Festung : Transaktionen Zusammenfassung Transaktionen sind ein entscheidender Baustein für das zuverlässige Durchführen von nicht-trivialen Prozessen. BTP ist die Lösung für transaktionale Web Services. Freiheit zur Komposition von Prozessen aus ACID- und nicht-ACID Teilnehmern Die Geschäftslogik entscheidet über den Ausgang der Transaktion, nicht die starre Infrastruktur. Die Spezifikation ist ( fast ) fertig, der Weg ist frei für Implementierungen.
94
Die letzte Festung : Transaktionen Die BTP Festungsanlage
95
Die letzte Festung : Transaktionen Resourcen OASIS BTP: http://www.oasis-open.org/committees/business-transactions OMG OTS Spec: http://www.omg.org/technology/documents/formal/transaction_service JAXTX JSR 156: http://www.jcp.org/jsr/detail/156.jsp HP XTS Software: http://www.arjuna.com/xts/ Choreology : http://www.choreology.com/~btp/ KLuP http://www.klup.de
96
Die letzte Festung : Transaktionen Fragen...... jetzt......später : kuehne@klup.de
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.