Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP,

Ähnliche Präsentationen


Präsentation zum Thema: "Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP,"—  Präsentation transkript:

1

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 FROM account WHERE id = 1000; UPDATE amount = amount 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 Kick Off : 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 btpengine ABC

87 Die letzte Festung : Transaktionen BTP Messaging : SOAP soap-http-1 btpengine ABC

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 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: OMG OTS Spec: JAXTX JSR 156: HP XTS Software: Choreology : KLuP

96 Die letzte Festung : Transaktionen Fragen jetzt......später :


Herunterladen ppt "Die letzte Festung : Transaktionen Agenda Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP,"

Ähnliche Präsentationen


Google-Anzeigen