Download presentation
Presentation is loading. Please wait.
Published byAlexandre Thomley Modified over 10 years ago
1
WS-AtomicTransaction Mark Little, Chief Architect Arjuna Technologies Ltd
2
2 Introduction Coordinate agreement with ACID semantics –Atomic, Consistent, Isolated, Durable Tried and trusted model –Simple application model –Synchronized state changes –Correctness in the face of failures –Widespread adoption –Proven protocols
3
3 Model Assumptions Transactions are short lived –Resources isolated (locked) for duration Coordinator availability –Connected and responsive –Timely failure recovery Participants trust that the above are true
4
4 But why…? Web services are “for the internet” –B2B communication –Separate trust domains –Why WS-AT? Two reasons –Interoperability Heterogeneous systems –Ubiquity Vision of WS-* scale down
5
5 Core Scenarios Some services require ACID properties - Tight coordination of mission critical state Use with service-based resource managers –Example: Queue service Use within datacenter –Controlled environment Use with virtual datacenter –Between close partners –Contractual QOS
6
6 Protocol Defines WS-Coordination Coordination Type –http://schemas.xmlsoap.org/ws/2004/10/wsat Activities are transactions –CreateCoordinationContext Create transaction Join transaction as subordinate –Register Create subordinate enlistment Three coordination protocols –Completion –Durable 2PC –Volatile 2PC Simple message patterns –One-way messages –Correlation using WS-Addressing Full state machines for 2PC
7
7 The Actors Completion Initiator (I) –Signals coordinator to complete a transaction Can request commit or rollback Coordinator (C) –Responsible for coordinating a single outcome –Drives 2PC with participants Phase 1: Ensure all participants are prepared Phase 2: Notify participants of outcome Participants (P) –Can vote to abort –Can vote “prepared to commit” Must honor coordinator’s commit decision
8
8 WS-C and WS-AT
9
9 Completion Protocol C I Commit Rollback Committed Aborted
10
10 2PC Protocol CP Prepared ReadOnly Aborted Committed Replay Prepare Rollback Commit
11
11 Volatile versus Durable 2PC Two variants of 2PC protocol –One for volatile resources (e.g., cache) –One for durable resources (e.g., database) Phase 1 has sub-phases A) Prepare all volatile participants This can cause more durable participant registrations B) Prepare all durable participants
12
12 WS-Addressing Specification uses WS-Addressing –Important for interoperability Different message classifications –Request messages –Reply messages –Notification messages –Fault messages
13
13 Commit message http://localhost:8080/ws-t/Durable2PCParticipant http://localhost:8080/ws-t/Durable2PCCoordinator 7f000001:8018:4369ea05:e http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit 7f000001:8018:4369ea05:c AUID:ef3bda4cf07c9add
14
14 Committed message http://localhost:8080/ws-t/Durable2PCCoordinator http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed 7f000001:8018:4369ea05:e AUID:ca2178bb6e56949c
15
15 Policy assertions Transaction flow assertion – –Operation Policy Subject –Used by applications to indicate willingness to accept incoming transactions –Wire format of serialized transaction is header Atomic service assertion – –Operation Policy Subject –Used by applications to indicate that a requester’s message will be processed transactionally
16
16 Resources WS-AtomicTransaction –http://schemas.xmlsoap.org/ws/2004/10/wsat/d efault.htmhttp://schemas.xmlsoap.org/ws/2004/10/wsat/d efault.htm Web services whitepapers, specs, workshops –http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/ –http://www- 128.ibm.com/developerworks/webservices/libra ry/specification/ws-tx/ –http://www.arjuna.com/library/http://www.arjuna.com/library/
17
17 State tables (per participant) Atomic Transaction 2PC protocol (Coordinator View) Inbound Events States NoneActivePreparingPreparedPreparedSuccessCommittingAborting Register Invalid State None Send RegisterResponse Active Durable: Invalid State Aborting Volatile: Send Register Response Active N/A Invalid State PreparedSuccess Invalid State Committing Invalid State Aborting Prepared Durable: Send Rollback Volatile: Invalid State None Invalid State Aborting Record Vote Preparing N/A Ignore PreparedSuccess Resend Commit Committing Resend Rollback, and forget Aborting ReadOnly Ignore None Forget Active Forget Preparing N/A Invalid State PreparedSuccess Invalid State Committing Forget Aborting Aborted Ignore None Forget Aborting Forget Aborting N/A Invalid State PreparedSuccess Invalid State Committing Forget Aborting Committed Ignore None Invalid State Aborting Invalid State Aborting N/A Invalid State PreparedSuccess Forget Committing Invalid State Aborting Replay Durable: Send Rollback Volatile: Invalid State None Send Rollback Aborting Send Rollback Aborting N/A Ignore PreparedSuccess Send Commit Committing Send Rollback Aborting
18
18 State tables Atomic Transaction 2PC protocol (Participant View) Inbound Events States NoneActivePreparingPreparedPreparedSuccessCommittingAborting Register Response Register Subordinate Active Invalid State Active Invalid State Aborting Invalid State Prepared Invalid State PreparedSuccess Invalid State Committing Invalid State Aborting Prepare Send Aborted None Gather Vote Decision Preparing Ignore Preparing Ignore Prepared Resend Prepared PreparedSuccess Ignore Committing Resend Aborted, and forget Aborting Commit Send Committed None Invalid State Aborting Invalid State Aborting Invalid State Aborting Initiate commit decision Committing Ignore Committing InconsistentInternalState Aborting Rollback Send Aborted None Initiate Rollback, Send Aborted, and Forget Aborting Initiate Rollback, Send Aborted, and Forget Aborting Initiate Rollback, Send Aborted, and Forget Aborting Initiate Rollback, Send Aborted, and Forget Aborting InconsistentInternalState Committing Send Aborted, and Forget Aborting
19
19 Workshops March 2004 for feedback workshop January 2005 for interoperability workshop –http://msdn.microsoft.com/webservices/comm unity/workshops/transactionsinterop1204.asp xhttp://msdn.microsoft.com/webservices/comm unity/workshops/transactionsinterop1204.asp x Several public endpoints, including … –http://wsi.alphaworks.ibm.com:8080/wstx/servi ces/InteropServicehttp://wsi.alphaworks.ibm.com:8080/wstx/servi ces/InteropService –http://mssoapinterop.org/ws/http://mssoapinterop.org/ws/
20
20 Testing scenarios Explicitly tested WS-AT and WS-BA –Implicitly tested WS-C Many different test cases –Both for coordinator and participants –Included failures
21
21 General flow
22
22 Interoperability results
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.