200 likes | 327 Views
Transactions != Business Processes. William Cox, Ph.D. OASIS Symposium on Reliable Infrastructure New Orleans 26 April 2004. Outline. Motivation and History Common Misconceptions Need for Transactions BPEL and WS-BA not equivalent Common Misconceptions (reprise) Summary References.
E N D
Transactions!=Business Processes William Cox, Ph.D. OASIS Symposium on Reliable Infrastructure New Orleans 26 April 2004
Outline • Motivation and History • Common Misconceptions • Need for Transactions • BPEL and WS-BA not equivalent • Common Misconceptions (reprise) • Summary • References Cox OASIS Symposium 20040426a
Motivation • Business Processes and [long-running distributed] Transactions have some similarities • Misconceptions about their relationship • Both what that relationship is, and what it should/could be • If transactions support business processes, and business processes can do transactions… • Deeper look Cox OASIS Symposium 20040426a
History • XA (X/Open) ACID Transactions • OMG Object Transaction Service • And Extended Structures for OTS • BTP (similar goals but more complex) • BPEL4WS (BEA, IBM, MS 2002) • WS Business Process Execution Language OASIS Technical Committee • Our examples and sketches are based on recent versions of • BPEL4WS 1.1 [BPEL] • WS-BusinessActivity 1.1 [WS-BA] • WS-Coordination 1.1 [WS-C] Cox OASIS Symposium 20040426a
Long-running transactions • Many Business Transaction Specs • Business Transaction Process (OASIS TC 2000, C Draft 2002) • WS-Transaction/WS-Coordination (BEA/IBM/Microsoft 2002-2003-2004) • WS-CAF (Sun/Oracle/Iona 2003, OASIS TC) • Termination protocols, coordination protocols • Consistent results of an activity Cox OASIS Symposium 20040426a
Outline • Motivation and History • Common Misconceptions • Need for Transactions • BPEL and WS-BA not equivalent • Common Misconceptions (reprise) • Summary • References Cox OASIS Symposium 20040426a
Common Misconceptions • Heard around the industry: • Since a transaction tree is similar to a business process graph, business processes can do transactions • If you have business processes you don’t need transactions • If you have business processes you ONLY need atomic transactions • WS-BusinessActivity requires WS-Coordination which requires a single coordinator, and that’s a problem for distributed systems • Transactions can be hidden completely within a business activity, so if you need them you can use anything you want (and mix and match) • If business processes need transactions, and transactions can be implemented by business processes, isn’t this an infinite recursion? • You don’t need transactions for business process failure recovery • Interoperation of transaction protocols isn’t needed Cox OASIS Symposium 20040426a
Need for Distributed Transactions • Inter-enterprise error recovery • Too much recovery is manual, expensive, and slow • A phone call can be expensive and not just in $$ • Don’t want a custom recovery algorithm for each pair of partners! • This is biggest economic benefit of distributed transactions • Conciseness of expression • BPEL is a clumsy way to express transactional semantics Cox OASIS Symposium 20040426a
A Business Process • Consider a lender who wants to create as part of a loan approval process a BP to get credit reports from three different credit bureaus then calculate a credit score Cox OASIS Symposium 20040426a
A Business Process (continued) • Each Credit Bureau may have different • Logging • Recovery • Legal requirements” • Which in turn forces the lender to deal with three different recovery mechanisms • “… the absence of [a] well-defined protocol forces me to…over engineer error handling for every service and system as a whole.” - CNA Insurance email to BTP-comment list, 2003 Cox OASIS Symposium 20040426a
Outline • Motivation and History • Common Misconceptions • Need for Transactions • BPEL and WS-BA not equivalent • Common Misconceptions (reprise) • Summary • References Cox OASIS Symposium 20040426a
WS-BA emulating BPEL? • No • WS-BA is a protocol, not an execution environment • WS-BA doesn’t express BPEL constructs such as • Switch • While • Links • Message Properties • Expressions and assignment • No separate notion of state in WS-BA Cox OASIS Symposium 20040426a
BPEL emulating WS-BA? • Yes, but not quite: • BPEL join conditions are clumsy for WS-BA semantics • No Boolean optimization; all branches must evaluate • So use PICK • But PICK order of selection is implementation-defined • Exponential state expansion to deal with incomplete branches • WS-BA user can program join conditions without limitations of BPEL Cox OASIS Symposium 20040426a
BPEL emulating WS-BA?(continued) • BPEL expresses too much and too little • BPEL is a programming environment • But hard to use vs Java, C#, etc • Distributed agreement is not part of BPEL • Within a platform-specific implementation • BPEL recognizes need for WS-TX or equivalent Cox OASIS Symposium 20040426a
BPEL emulating WS-BA?(continued) • BPEL a hard way to express common transactional situations • BPEL is prescriptive on SOAP headers • Hard to layer without changes to the spec Cox OASIS Symposium 20040426a
Outline • Motivation and History • Common Misconceptions • Need for Transactions • BPEL and WS-BA not equivalent • Common Misconceptions (reprise) • Summary • References Cox OASIS Symposium 20040426a
Common Misconceptions (reprise) • Since a transaction tree is similar to a business process graph, business processes can do transactions • Similar doesn’t mean the same. BPEL can’t effectively do BA • If you have business processes you don’t need transactions • You’ll need transactions for distributed agreement. Are you using web services for process steps? • If you have business processes you ONLY need atomic transactions • Below the level of this talk. Atomic transactions aren’t distributed. • WS-BusinessActivity requires WS-Coordination which requires a single coordinator, and that’s a problem for distributed systems • A non-issue. Who’s running your business process, by the way? Cox OASIS Symposium 20040426a
Common Misconceptions (reprise) • Transactions can be hidden completely within a business activity, so if you need them you can use anything you want (and mix and match) • But if you care about recovery and need application logic you need to expose • If business processes need transactions, and transactions can be implemented by business processes, isn’t this an infinite recursion? • No. You don’t want to use business processes to implement transactions, only to describe their semantics. • You don’t need transactions for business process failure recovery • No you don’t. But you’ll save money and time by using transactions • Interoperation of transaction protocols isn’t needed • Unless you have more than one business partner, and use more than one transaction protocol among your partners Cox OASIS Symposium 20040426a
Summary • Recovery for multiple partnerships is hard. WS-BA can help • WS-BA cannot express business processes as can BPEL • BPEL can superficially describe BusinessActivity transactions, but cannot express their semantics in a meaningful and effective manner • Don’t try to push application logic into transaction protocols. Use transaction protocols to support application logic • Don’t believe everything you hear around the industry Cox OASIS Symposium 20040426a
References • WS-Coordination • WS-BusinessActivity • IBM Links http://www-106.ibm.com/developerworks/views/webservices/standards.jsp Alphabetization problems--some under “WS-”, some under “Web Services” • Microsoft Links http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/wsatspecindex.asp • BEA Links http://dev2dev.bea.com/technologies/webservices/standards.jsp Interoperability and Feedback http://www-106.ibm.com/developerworks/offers/WS-Specworkshops/ws-tx200402post.html http://msdn.microsoft.com/webservices/community/workshops/transactionws032004.aspx • WS Business Process Execution Language OASIS Technical Committee • http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel Cox OASIS Symposium 20040426a