Web Services offer interoperability as one of their main benefits. We now have demonstrated transactional interoperability between all of the major TP vendors. For customers who have heterpogeneous implementations, then this is a critical component. I see large and small companies wanting to have their WebLogic apps talk to WebSphere or JBossAS, and do it transactionally. And we do not do that today with XA. Sitting in both camps (Red Hat supports XA, OTS/JTS, Web Services transactions and other extended transaction models), I'm fairly comfortable repeating that the easiest way to do heterogeneous transaction service interoperability today is via something like WS-AT. That doesn't mean that it's necessarily the most efficient in all cases, but from what we're seeing so far, it definitely hits the 80/20 rule.
As authors of the specifications, we have *never* said that WS-AT et al should be used for long duration interactions. Over the past 8 years the reasons for not doing so have been well documented by myself and others. Now we can't prevent people from using WS-AT in other situations. But it's an education thing.
BTW, even Jim (Gray) admitted that Paxos isn't the solution. There is no single solution. All protocols make certain assumptions about the environment in which they work. Paxos is good. 3PC also exists. Nested transactions. Multi-colored actions, etc. etc. One size does not fit all.
Mark.
On 30 Aug 2007, at 18:57, Stuart Charlton wrote:
Actually, I didnt misunderstand. My point is that I don't believe it will be a robust, widely supported reality for many years, especially considering we do this today with XA (painstakingly). The market for this kind of protocol is pretty conservative, they likely will not transition for many, many years, robbing vendors of field experience to harden their implementations.I am particularly concerned with how isolation will be achieved in practice across all of these diverse platforms, with all sorts of service interfaces that have varying granulatity, supposedly pluggable transport protocols, etc.And in the end, we would have much the same heartache we have with today's coarse-grained locking approaches and dealing with in doubt transactions.Basically, I think WS-TX is great plumbing for problems we had 15 years ago. I'm not saying that consistency and isolation are bad - when you need them, you need them. I am saying, "shouldn't we be looking at newer ideas?" For example, perhaps if the industry created a standard for Paxos agreement, and drove adoptipn in databases, some of our 2pc headaches would ease.CheersStuSent from my iPhoneOn Aug 30, 2007, at 5:39 AM, Mark Little <nmcl2001@...> wrote:I think you completely misunderstood what I said and what the aims ofthe specifications (and WS-* in general) are: interoperability. WS-TX(and WS-CAF) were never meant as replacements for XA but ascomplimentary. I think the original article missed that completely too.But have you ever tried to get CICS to talk to Tux out-of-the-box? OrTux to Encina? Yes, IONA has a protocol bridge to do this. Yes,there's been work on TIP-to-OTS bridging. But it's all requiredintimate knowledge of how each end behaves and under whatcircumstances. It's done on a one-to-one basis. I spent many yearsworking with the OTS to achieve interoperability in the standard andseveral implementations and the main problems weren't with the OTS:they were with the based CORBA platform and peculiarities ofimplementations.With WS-TX, we got interoperability with CICS, Encina, JBossTS, MSFT-DTC, (no Tux because BEA dropped out of the process) straight away.No expensive consultants. No one-on-one interoperability that doesn'tscale. No vendor specific extensions or wire protocols. And yes, someof us were using XA at the back-end to drive things like participantupdates, logs etc.I can't obviously speak for Eric (the co-chair of WS-TX and someoneI've co-authored WS-TX and WS-CAF as well as other transactionstandards), but speaking personally: after spending 20+ years workingin the transaction arena I find that pretty impressive. But thenmaybe I'm just easily pleased ;-)Mark.On 29 Aug 2007, at 14:42, Stuart Charlton wrote:In my experience, distributed transaction interoperability isalmost always conducted at the language-level with XA resourcemanagers, because most databases or message queues use proprietarywire protocols. This happens whether it is the MSDTC in COM+ ora Java transaction service, etc. IIOP and the OTS only worksbetween CORBA-compatible servers, which works in the J2EE world,but the Microsoft world chose TIP. Environments like CICS could dothis at the protocols level quite well, though (when crossingregions)..While Ws-ReliableMessaging arguably removes the need forproprietary messaging protocols to some degree, I don't see asimilar wire protocol for queries and data services (and tightly-binding result sets to a custom domain-dependent XSD isquestionable). XA likely will reman the plodding workhorse that itis for a long time....CheersStuSent from my iPhoneOn Aug 25, 2007, at 2:06 AM, Mark Little <nmcl2001@...> wrote:I'm really not quite sure what to say about this article. While theauthor is right that XA is more mature than WS-TX, and thattransactions are an important tool in an achitect's tool-belt,saying that XA is a replacement for Web Services transactions is abit like saying that because IIOP is more mature than SOAP weshould all be using it. It's true, but it's never going to happenand overlooks what Web Services bring to distributed transactions:interoperability.It's nice to hear that Oracle have identified problems with WS-TX.We all have. But then who hasn't identified problems in the waydifferent XA implementations interpret the XA specification? Lasttime I looked, we had several workarounds for the differencesbetween Oracle 9i and 10g, let alone how they differ between DB2and SQLServer.Mark.On 24 Aug 2007, at 17:17, Gervas Douglas wrote:<<Today, many technologists believe that Web services are theproper mechanism for integrating with disparate databaseenvironments. Contrary to public opinion, Web services anddistributed (aka XA) transactions are complementary, notalternative, technologies.Recently, I read an article that stated that:"Enterprise service buses are the preferred tools for integratingsystems with heterogeneous data interchange interfaces and based ona wide array of technologies, from COBOL to CORBA to JEE". (EugeneCiurana, Mule: A Case Study, TheServerSide.com)While Web services are clearly useful for integration withheterogeneous data sources, relying solely on Web services,especially for heterogeneous (that is, distributed) transactions ismore complex than supporting XA and architecturally limiting.Furthermore, the Web services specifications and resultingimplementations are new, and therefore not as mature as XA. If Webservices are pursued, a number of other WS-* specifications wouldneed to be in place to begin to construct the transactionalmanagement that XA provides.Still, I agree with Dan Foody, CTO of Actional in that "The longterm success of Web services and SOA is directly affected by theirability to be used for mission critical solutions in theenterprise. Because many mission critical applications requiretransactional integrity, WS-TX (Web Services Transaction) willenable these applications to be successfully built and deployedusing Web services without sacrificing multi-vendor interoperability."Business and technical requirementsFor the most part, all business software systems are derived fromcorporate processing requirements. Even the modern concept of an"enterprise service bus" I am sure was developed within aPowerPoint presentation of a senior business analyst in order toaddress the dysfunctional enterprise environment after a merger andacquisition.Still, business process analysts should not be encumbered by thetechnological feat of a process design during the visioning stageof a new application, even if the requirements indicate the needfor heterogeneous transactions between legacy applications. Afterall, that is what XA is all about.My most recent project can be characterized as a significantenhancement to a five-year-old J2EE application, which by today'sstandards is part service bus and part business process management.This application was designed to integrate and unify the manyclaims management systems within a large insurance company.These integration points are at the individual claim transactionlevel, so internal consistence of workflow transactions isparamount to the overall "enterprise-wide" system stayinginternally consistent. Based on these requirements and thespecified logical units of work (see figures: Logical Unit of Work1 and 2), it became clear to me that the best way to guaranteetransaction integrity was to develop a set of XA-styletransactions. While some analysts suggest that a set of Webservices could accomplish the same object, there are limitations tousing that construct, which will be further discussed.XA-style distributed transactionsThe XA interface is a mature protocol for treating DB2, Oracle andJMS (an XA-compliant interface to a physical queue) as essentiallyone resource, where logical transactions can be committed androlled back. Using an XA-style transaction, the programmer does notneed to be concerned with handwriting defensive, compensatingtransaction code, which is by nature error prone, in the event ofunknown application-bound SQLExceptions or Java runtime exceptions.The programmer, because of the enabling XA technology, can focusmore on simply creating the atomic transaction code, let the XAresource manager handle rollback and commit logic. Without XA, theprogrammer needs to find a creative solution to rolling back thedistributed transaction in case one of the participating resourcesfails, instead of a standard mechanism. Alternatively, theprogrammer might develop an optimistic construct and assume thathis code will never fail, and it may not … until he/she leaves theproject.According to the XA specification documents in the Open Group's X/Open Distributed Transaction Processing (DTP) model, which defineshow an application program uses a transaction manager to coordinatea distributed transaction across multiple resource managers, anyresource manager that adheres to the XA specification canparticipate in a transaction coordinated by an XA-complianttransaction manager, thereby enabling different vendors'transactional products to work together.High-end JEE application servers, such as, Oracle ApplicationServer, WebLogic and WebSphere support JTA (Java Transaction API)required for XA style transactions. An XA transaction involvescoordination among the various resource managers, which is theresponsibility of the transaction manager.The transaction manager is responsible for making the finaldecision either to commit or rollback any distributed transaction.JTA specifies standard Java interfaces between the transactionmanager and the application server and the resource managers.All XA-compliant transactions are distributed transactions. XAsupports both single-phase and two-phase commit. A distributedtransaction is a transaction between two or more independenttransactional resources (for example, two separate databases). Forthe transaction to commit successfully all of the individualresources must commit successfully; if any of them areunsuccessful, the transaction must roll back in all of the resources.XA - The forgotten protocolHowever, finding individuals initiated to XA is now becoming asomewhat elusive endeavor. Although, a colleague of mine within theorganization corroborated that XA would be an appropriatemechanism, based on the design requirements (see figures below).My next step was to contact the infrastructure manager(s) to see ifXA was supported in the enterprise environment. I was surprisedthat the individual I contacted, although at least candid, did notknow what XA was. After contacting other administrators that did,they were opposed to supporting XA, because of the additional OSand middleware (i.e. XA-specific database drivers) support thetechnology would require.I first used XA on a large-scale DCE (Distributed ComputingEnvironment) project with a major NYC bank where we used Transarc'sEncina Transaction C++ (now an IBM company). This was in the middle'90s and XA was already established and one of the key protocolswithin the DCE. After all, if you are going to call yourself the"distributed computing environment" you better support distributedtransactions.XA, then and even now has a reputation for being slow, mainlybecause of the complex prepare and commit transaction lifecycleamong disparate resources coordinated by the transaction manager.Although, considering the alternatives, it remains an importanttool in the integration architect's toolbox. Indeed, XA outside thebanking industry still appears to be an unknown or at least alittle-used protocol.Identifying the need for a distributed transactionIf your organization doesn't have a high-end data integration tool,you may need to develop custom distributed transactionsapplications. Here is a short list of reasons for using XA:Moving data between a database and a JMS message within a tightlycoupled workflow -- An application may need to move data from adatabase to another database and then send a JMS message to anotherdisparate system or a message-driven bean that indicates the newdata has arrived (see figure below).<part1.06030403.00020201>Moving data between disparate databases as a transaction hand-off-- Moving data from one database to another requires an XA-styletransaction or a normal transaction that includes a compensatingtransaction in the event of a failure. For example, the insertcompletes and the update fails (see figure below).<part2.02070306.02000807>Alternatives to XA: The creative art of compensating transactionsAs mentioned, most Java programmers use bean-managed transactionsfor developing distributed transactions. While bean-managedtransactions can be straightforward, developing compensatingtransactions in the event of a failure sometimes can bechallenging, especially with JMS in the mix that is.A compensating transaction can take the form of a delete operationor a forced rollback. For example, for bean-managed transactions,an update, although successful, can be rolled back if the insertoperation fails (see Logical Unit of Work 2) in order to keep theapplication workflow internally consistent.Alternatively, for Logical Unit of Work 1, if the JMS send fails,the application construct can be built to be idempotent. That is,if the send operation fails it can be "repeated safely" maybe notimmediately, because a failure might indicate that the resource isin an inconsistent state, but at some future time. Again, theapplication workflow will remain internally consistent. As acolleague of mine once cautioned, maintaining state in adistributed environment is an evil thing.The point here is not that designing and developing compensatingconstructs is necessarily complicated. It is that in the absence ofXA, non-standard and sometimes very unique strategies need to bedevised for each distributed action failure, instead of letting theXA protocol and underlying resource manager manage the transaction.Essentially, the programmer has a standard mechanism for managingdistributed transactions.Alternatives to XA: Web servicesToday some technologists are even positioning the enterpriseservice bus (ESB) as a standard mechanism for integrating systemswith heterogeneous data interfaces. While ESB and Web services canclearly be used to move data between disparate data sources, Iwould not recommend using a set of Web services to implement adistributed transaction if the transaction requirements could beachieved by using XA, even if the enabling Web services technologysupported WS-Transaction (WS-TX). The one advantage Web serviceshave over XA is that XA is not a remote protocol, though.WS-Transaction is the name of the OASIS group that is currentlyworking on the transaction management specification. WS-TX is thename of the committee, and they are working on three specs:WS-Coordination (WS-C) - a basic coordination mechanism on whichprotocols are layered;WS-AtomicTransaction (WS-AT) - a classic two-phase commit protocolsimilar to XA;WS-BusinessActivity (WS-BA) - a compensation based protocoldesigned for longer running interactions, such as BPEL scripts.In practice, WS-AT should be used in conjunction with XA toimplement a true distributed transaction. WS-TX essentially extendstransaction coordinators, such as OTS/JTS and Microsoft DTC tohandle transactional Web services interoperability requirements.I recently spoke with a senior member of the OASIS WS-TX committeefrom Oracle while researching this article regarding the robustnessof WS-AT versus XA. He clearly indicated that while the technologywas similar, testing at Oracle was problematic in certain systemuse case scenarios. This discussion has further corroborated myopinion that in the near future, if a distributed transaction iswarranted, I will rely on XA rather that an immature, albeit,modern solution.XA supported within JEE application servers, OS platforms anddatabasesOracle, WebSphere and WebLogic application servers support XAtransactions on Microsoft Windows (32-bit versions only), IBM AIX,Sun Solaris and HP-UX. The following enterprise grade databases areXA-compliant: IBM DB2 Universal Database V8.2 and Oracle 9i and10g. Note that this is not a complete list of XA-compliant DBMS andit depends on your definition of enterprise grade.Of interest to the Open Source and Java communities, MySQL 5.0 nowhas distributed transaction processing support through XA.Additionally, FirstSQL/J Enterprise Server has comprehensivesupport for connection pooling and Java Transaction APIs (JTA) fordistributed transaction (that is, XA) capabilities.ImplicationsTruth be told, XA is viewed as a luxury and not a "required"application tool for programmers within most organizations.However, infrastructure groups that don't support XA areessentially establishing an asymmetrical transaction failure riskcurve that is skewed against the application programmer.>>You can read this at:http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1268976,00.html?track=NL-451&ad=600655&asrc=EM_NLC_2047205&uid=5532089____________________________________________________________________________________Take the Internet to Go: Yahoo!Go puts the Internet in your pocket:mail, news, photos & more.Yahoo! Groups Linkstings via email:____________________________________________________________________________________Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.Yahoo! Groups Links<*> To visit your group on the web, go to:<*> Your email settings:Individual Email | Traditional<*> To change settings online go to:(Yahoo! ID required)<*> To change settings via email:<*> To unsubscribe from this group, send an email to:<*> Your use of Yahoo! Groups is subject to: