1 / 82

Business Transactions

Business Transactions. Agenda. Einführung Grundlagen Transaktionen Zwei Welten: web services / ACID Business Transaction Protocol (BTP) SOAP, ebXML, usw. Zusammenfassung. Web Services 101. Web Services sind hip! Breites Angebot von Services

liliha
Download Presentation

Business Transactions

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. Business Transactions

  2. Agenda • Einführung • Grundlagen Transaktionen • Zwei Welten: web services / ACID • Business Transaction Protocol (BTP) • SOAP, ebXML, usw. • Zusammenfassung

  3. 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.

  4. Alles Neu ! Alles Besser ? • Löst Port 80 alle Probleme ? • Waren alle Probleme ungelöst ?

  5. Trouble in Paradise • Fremde Komponenten verhalten sich nicht immer so wie erwünscht. • Vefügbarkeit und Latenzzeit können Problem werden. • Behandlung der möglichen Fehlerszenarien ist sehr komplex.

  6. 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 ?

  7. Agenda • Einführung • Grundlagen Transaktionen • Zwei Welten: web services / ACID • Business Transaction Protocol (BTP) • SOAP, ebXML, usw. • Zusammenfassung

  8. 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: • Atomicity: unteilbar, ganz oder gar nicht. • Consistency: 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.

  9. 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();

  10. 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 :

  11. Verteilte Transaktionen (2) Phase 1 • Der Coordinator befragt jede Resource nach ihrem ‘Befinden’ : • VoteReadOnly • VoteCommit • VoteRollBack

  12. Verteilte Transaktionen (3) Phase 2 • 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.

  13. 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.

  14. Agenda • Einführung • Grundlagen Transaktionen • Zwei Welten: web services / ACID • Business Transaction Protocol (BTP) • SOAP, ebXML, usw. • Zusammenfassung

  15. 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 !

  16. 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 !

  17. 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 !

  18. 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.

  19. Problem- / Lösungsbereiche DB Persistenz ACID

  20. Problem- / Lösungsbereiche Verteilung XA / OTS DB Persistenz ACID

  21. Problem- / Lösungsbereiche Differenzierter Ausgang BTP Verteilung XA / OTS Minimales Locking DB Persistenz ACID Multi- Protokoll

  22. Agenda • Einführung • Grundlagen Transaktionen • Zwei Welten: web services / ACID • Business Transaction Protocol (BTP) • SOAP, ebXML, usw. • Zusammenfassung

  23. OASIS BTP Spec • Business Transaction Protocolwww.oasis-open.org/committees/business-transactions • Kick Off : 13. 03. 2001 • Termin 1.0 : Ende Dezember ?

  24. 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.

  25. 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 • ...

  26. 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.

  27. Begriffe : Atom / Cohesion • Ein Atom ist die BTP Bezeichnung für eine ‘Standard’ -Transaction ( 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 Atomen.

  28. 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.

  29. Atom Example Client Application Coordinator Credit CardClearance Book Shop Atom

  30. Coordinator Hierarchien Coordinator 1 Atom1 Atom2 Atom3 Atom6 Atom7 Atom4 Atom5

  31. Coordinator Hierarchien Coordinator 1 Coordinator 2 Coordinator 4 Coordinator 3 Atom1 Atom2 Atom3 Atom6 Atom7 Atom4 Atom5

  32. 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 AusgangUnilateral confirm / cancel. • Mehrfaches Prepare pro Atom ist zulässig. • Rücksetzen der Time-Outs.

  33. 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.

  34. BTP Schichten Anwendung Cohesion Composer Atom Coordinator ACID Resource

  35. Cohesion Client Application Cohesion Composer Atom 1 Atom 2 Atom N Cohesion

  36. (A1=Cancel, A2=Cancel, AN=Cancel) Cancel Cancel Confirm Cohesion = Businesslogik Application Composer Atom A1 Atom A2 Atom AN Cohesion

  37. Cohesion Hierarchien Cohesion 1 Cohesion 2 Cohesion 4 Cohesion 3 Atom1 Atom2 Atom3 Atom6 Atom7 Atom4 Atom5

  38. Atom Demo: Organising a Night Out WebTheatre Participant Atom SOAP server Client Application SOAP SOAP SOAP WebTaxi Participant SOAP server SOAP SOAP server WebRestaurant Participant SOAP SOAP server Application Message BTP Service BTP Message

  39. Atom ID Create Atom Atom ID Create Atom Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  40. Atom ID Book Taxi Book Taxi Enrol Enrol Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service Application Message !

  41. Atom ID Book Table Book Table Enrol Enrol Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  42. Atom ID Book Seats Enrol Book Seats Enrol Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  43. Atom ID Prepare Prepare Prepare Prepare Prepare Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  44. Vote confirm Vote confirm Vote confirm Vote confirm Vote confirm Vote confirm Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application Atom ID WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  45. Confirm Confirm Confirm Confirm Confirm Confirm Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application Atom ID WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  46. Oder…

  47. Atom ID Prepare Prepare Prepare Prepare Prepare Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  48. Vote cancel Vote confirm Vote confirm Vote cancel Vote confirm Vote confirm Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application Atom ID WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

  49. Cancel Cancel Cancel Atom Demo: Organising a Night Out WebTheatre Participant SOAP server Client Application Atom ID WebTaxi Participant SOAP server SOAP server WebRestaurant Participant SOAP server BTP Service

More Related