Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Transactional Web Services, WS-Transaction and WS-Coordination Based on “WS Transaction Specs,” by Laleci, Introducing WS-Transaction Part 1 & 2, by Little et. al, and “The Current and Emerging State of Web Services Standards,” by J. Chiusano  Distributed system  Reliability problems  Subject to independent failure of any of its components  Decentralization allows:  Parts of the system fail  Other parts remain functioning  Possibility of abnormal behaviors  Atomicity: The transaction completes successfully (commits) or if it fails (aborts) all of its effects are undone (rolled back)  Consistency: Transactions produce consistent results and preserve application specific invariants  Isolation: Intermediate states produced while a transaction is executing are not visible to other transactions  appear to execute serially  achieved by locking resources  Durability: The effects of a committed transaction are never lost (except by a catastrophic failure)  can be terminated in two ways:  Committed  all changes made within it are made durable  Aborted (rolled back)  all changes made during the lifetime of the transaction are undone  Suitable for short lived applications  Long-lived transactions may reduce the concurrency  By holding onto resources for a long time  If it aborts  Much valuable work already performed will be undone  Pure ACID transactions are not suitable for Web Services  WS Transactions  Atomic transactions  Business Activities  As a response to these needs in July 2002, BEA, IBM, and Microsoft released a trio of specifications designed to support business transactions over Web services:  BPEL4WS (Business Process Execution Language for Web Services),  WS-TX (WS-Transaction), and  WS-C (WS-Coordination)  WS-Transaction specification proposes two distinct models:  Atomic transaction (AT) Model is used to coordinate activities having a short duration and executed within limited trust domains  addresses "fine-grained" transactions  Business Activity (BA) Model is used to coordinate activities that are long in duration and desire to apply business logic to handle business exceptions  addresses “coarse-grained" transactions  WS-Coordination defines a framework for providing protocols that coordinate the actions of distributed applications  Provides a generic framework for coordination protocols to be plugged in  Provides only context management - it allows contexts to be created and activities to be registered with those contexts.  The WS-Transaction specifications leverage WS-Coordination     for coordination of context among activities Applications register with a coordinator to create a coordination context that is carried by all applications within a given activity It defines a coordination context to be included in the header of SOAP messages. The context stores unique conversation identifiers used for routing and protocol verification. It includes a solution for registering the protocol handlers of the Web services with the coordination infrastructure. With it, protocol handlers can be notified when specific steps of the protocol are carried out. It contains an activation interface, used to create a new coordination context and inform each peer about the role it should assume while running the protocol.  WS-Transaction is an example of how to apply the framework defined by WS-Coordination to define a specific protocol.  WS-Transaction defines short lived atomic transactions standardizing the interfaces provided by traditional TP-monitor tools.  However, in an Web services scenario, transactions may also take a long time to complete. For this case, WS-Transaction uses the notion of business activity and defines a protocol based on compensation (as opposed to locking) used to achieve distributed consensus on whether the results of a long-running message exchange should be made persistent.  This standard defines the port types (WSDL interfaces) that must be implemented by each participant service depending on its role in the transaction (e.g., initiator, outcome listener). It also specifies the port types provided by the coordinator.  The actual implementation of the operations corresponding to a commit, abort or compensate message are left unspecified as they are highly dependent on the business logic of the specific Web service.  Similar to traditional ACID transactions  Services enroll transaction-aware resources  Databases  Message queues  Completion Initiator  Application  Signals coordinator to complete a transaction  Can request commit or rollback  Coordinator  Responsible for coordinating a single outcome  Drives 2PC with participants  Phase 1: Ensure all participants are prepared  Phase 2: Notify participants of outcome  Participants  can vote to abort  Can vote “prepared to commit”  Must honor coordinator’s commit decision  Short running atomic transactions can be part of a long running business transaction  The actions of the embedded atomic transactions are committed and made visible before the long running business transaction completes  In the event of the long running business transaction failing, the effects of such atomic transactions need to be compensated for.  The business activity model has multiple protocols:  BusinessAgreement  BusinessAgreementWithComplete  Unlike the AT protocol, which is driven from the coordinator down to participants, this protocol is driven from the participants upwards. It is based on BPEL4WS (Business Process Execution Language for Web Services), originally authored by IBM, Microsoft, BEA Systems, SAP, and Siebel Systems A BPEL4WS process is a reusable definition that can be deployed in different ways and in different scenarios, while maintaining a uniform application-level behavior across all of them BPEL4WS includes transactional capabilities for business processes, as well as compensation activities that “undo” the results of longer-running transactions  Example: A compensation activity for a purchase order activity would result in the status of the pertinent purchase order being changed to “Cancelled” The following is a BPEL4WS process for handling a purchase order: Cannot complete price calculation until shipper is determined Cannot complete production scheduling until shipping logistics are arranged Source: BPEL4WS Version 1.1 Specification  The following represents the dependency of the price calculation on the shipper selected: <invoke partnerLink=“shipping" portType="lns:shippingPT" operation=“requestShipping" inputVariable="shippingRequest"> outputVariable="shippingInfo"> <source linkName="ship-to-invoice"/> </invoke> <invoke partnerLink=“invoicing" portType="lns:computePricePT" operation=“sendShippingPrice" inputVariable="shippingInfo"> <target linkName="ship-to-invoice"/> </invoke> This represents the “Complete Price Calculation” activity This represents the “Decide on Shipper” activity The common common link link The name represents represents aa name dependency dependency between the the two two between activities activities