InfoQ

Interview

Mark Little on Transactions, Web Services and REST

Interview with Mark Little by Stefan Tilkov on Jun 24, 2008

Community
SOA
Topics
WS Standards ,
Transactions Processing ,
REST ,
Web Services
Tags
QCon London 2008 ,
QCon ,
WS-Coordination ,
WS-AtomicTransactions ,
WS-CAF ,
WS-TX ,
WS-BusinessActivity
Summary
In this interview, recorded at QCon London 2008, Red Hat Director of Standards and Technical Development Manager for the SOA platform Mark Little talks about extended transaction models, the history of transaction standardization, their role for web services and loosely coupled systems, and the possibility of an end to the Web services vs. REST debate.

Bio
Dr Mark Little is Technical Development Manager for the JBoss SOA Platform, Red Hat's Director of Standards and representative on the Java Executive Committee. He has over 20 years of experience working in the area of reliable distributed systems. While at Red Hat/JBoss Mark has been the lead of the JBoss ESB and JBoss Transactions products as well as working from the office of the CTO.
This is Stefan Tilkov at QCon 2008, and I am interviewing Mark Little. Welcome Mark! Can you tell us a little bit about yourself and what you do?
Ok, so if I read your name somewhere the one thing that pops up in my mind, the one thing I associate you with is transactions. I think you have a long history in being involved with standards around transactions. Can you give us a little background; can you actually define the term transaction for us, give us a little refresher there?
One of the topics that come up often in discussions about web services is whether or not they need transactions. Maybe we can start by a quick description of what is actually available for web services in the transactions space.
So you have some practice now, so maybe it's no wonder it took you less than ten years to start.
So you said that on the Internet you would never use atomic transaction, which is pretty obvious, but I believe some people would claim that even if you have the ideals of building a service oriented architecture then loose coupling becomes a design principle even if you stay within the company's boundaries. Would you also say that if loose coupling is one of your goals, atomic transactions is not a good match for that?
Many people say transactions and SOA, transactions and loose coupling don't mix at all. What are the benefits, how would you actually advocate the usage of those pretty complicated standards to people who use them?
One of the things you have briefly touched upon is that it is actually WS-Coordination, and WS-Atomic Transaction and WS-Business Activity, which are essentially the Microsoft-driven standards, that have been incorporated. Is that a correct view of this? Because I actually remember that there was a sort of as usual in the web services, or what used to be in the web services space there was a wall between two different fractions, maybe you can give us some background on that?
Sounds like a VHS/BetaMax story.
Given that web services support - for some level of support - transactions, would you see this as one of the benefits over REST? You know there is one continuous topic that comes up.
What is your opinion about the REST vs. web services war? While we are at it we might as well address it? What is your opinion on that?
Could you become a little more specific, so what is good in web services that should be adopted in the RESTful word and what is good in the RESTful world that should be adopted in the web services world? Is there such a list?
Which nobody needs.
You mentioned that it is now time to go beyond the wars between different facts. I mean that's probably something that has been going on for years in different areas, it's been COM vs. CORBA, and it's been these kind of web services versus that kind of web services and now it's REST versus web services. Given the last debate what would be your suggestion, what do you think should be worked upon, what are the things that we should address to get those two to unite, kiss and make up?
Would you say that a lot of the arguments that were dismissed within sixty seconds five or six years ago that the REST people made are now being accepted pretty much by everybody in the web services world? I mean I personally see lots of people like you, people who write the standards, who are involved at least conceding that REST is a good solution for many cases? I distinctly remember five years ago when it was said that it was only usable for browsers, for human to web server interaction, no machine to machine could ever possibly work within HTTP. That seems to have changed?
Could it be that they were just right?
One of the basic principles of web services is this protocol independence, is the independence of particular transport protocol, which is one of the big elements in the sales pitch for web services. Doesn't that make the option of consolidating HTTP the way it was supposed to be used impossible. Is there really a way to consolidate web services in Restful HTTP?
There are lots of rumors going on at the moment about those two companies that happen to have merged recently, which happen to be JBoss and Red Hat. Can you give us a little bit of background on that? Tell us a little bit about whether everything is just nice and all those rumors are just crazy little things that we shouldn't believe? Are you willing to talk about that?
show all  show all

17 comments

Watch Thread Reply

Very good presentation about Transcations. by siva prasanna kumar P Posted Jun 24, 2008 10:03 AM
Re: Very good presentation about Transcations. by Mark Little Posted Jun 24, 2008 1:46 PM
Useless by Josh Devins Posted Jun 24, 2008 11:58 AM
Re: Useless by Mark Little Posted Jun 24, 2008 12:58 PM
Re: Useless by Mark Little Posted Jun 24, 2008 1:12 PM
Re: Useless by Josh Devins Posted Jun 24, 2008 1:44 PM
Re: Useless by Mark Little Posted Jun 24, 2008 2:18 PM
Re: Useless by Josh Devins Posted Jun 24, 2008 2:48 PM
Re: Useless by Mark Little Posted Jun 24, 2008 4:06 PM
Re: Useless by Stefan Tilkov Posted Jun 24, 2008 2:56 PM
Re: Useless by Mark Little Posted Jun 24, 2008 3:04 PM
Interesting blue screen behind Mark by Michael Neale Posted Jun 24, 2008 7:42 PM
Other standards by Bilal Choudry Posted Jun 29, 2008 3:14 AM
Re: Other standards by Mark Little Posted Jun 29, 2008 4:04 AM
Commit protocol control by Bilal Choudry Posted Jul 1, 2008 10:05 AM
REST Vs. SOAP by Jibey Jacob Posted Jul 17, 2008 3:23 PM
Transactions - which nobody needs? Most of us not yet, maybe... by Guy Pardon Posted Jun 2, 2009 2:50 PM
  1. Back to top

    Very good presentation about Transcations.

    Jun 24, 2008 10:03 AM by siva prasanna kumar P

    It clearly shows that the BIG Companies were driving the specifications, as usual these will end up in complex stuff, which only help them selling products which are extremely complex ;)

    I think they (BIG Companies) probably wanted to make WS-* some kind of Rocket Science, especially looking at the number of specifications and two different major standardizing agencies (W3C & OASIS in WS-* Space) causes further more problems for standardization itself.



    Best part of presentation was Mark mentioning a hand in hand approach of REST and Web Services in general, it really make sense to say that. Enough of REST vs (ALL of the rest), we all know neither REST solves all the problems nor WS-*. Mark was very clear about the fact that both have their goods and bads.

    BTW I will be more interested in an interview explaining best things of REST, particularly implementing a real life application using RESTful principles and situations under which RESTful approach is appropriate.

  2. Back to top

    Useless

    Jun 24, 2008 11:58 AM by Josh Devins

    A good interview by Stefan, but an entirely useless set of responses from Mark. I don't normally find interviews as irritating as this, but it was pretty typical from a standards body member. Lots of talk, and little action. Where is all of the WS-TX support? Spring WS, CXF, even JBoss WS -- nope. Axis2 + Kandula2 say they have it, yet according to the site, Kandula2 has not been active at all (still in 0.1-SNAPSHOT, site last published 14-May-2006). The current state of WS-TX is perhaps that those that have created the standard (Microsoft, IBM, etc.) are the only ones that end up implementing it, simply because they have the standard, not because it's needed or even valid.



    On REST: stop calling it "REST over HTTP". REST without HTTP is just RPC with POX, no? The whole point of REST is to use the "fabric" of the internet -- HTTP (yes and the underlying protocols). Content negotiation, HTTP verbs, response codes, URIs, etc. You can't take the HTTP out of REST.

  3. Back to top

    Re: Useless

    Jun 24, 2008 12:58 PM by Mark Little

    You should do your background homework before posting. Take a look at JBossTS (XTS) for WS-TX support for instance. Plus, JBossTS has been at the forefront of practical engineering efforts in long running transactions for nearly 20 years; and from a practical perspective not an "ivory tower". WS-TX support in CXF was discussed a while back but there hasn't been the resources: we (JBoss) suggested adding JBossTS bindings to it and would still do that when there's time. Metro supports the WS-AT component of WS-TX despite the fact that Sun didn't participate in the WS-TX technical committee. webMethods has WS-TX support in Fabric back in 2004/2005. Oh and it's pretty common for "those that have created the standard" to implement it: otherwise it's a pretty pointless exercise!


    And REST is an architectural approach, with the Web as the best example of what's possible. But REST does not mandate HTTP. Have you not heard of REST-over-JMS, for instance? Or didn't you catch our WOA article the other week?

  4. Back to top

    Re: Useless

    Jun 24, 2008 1:12 PM by Mark Little

    To quote from Roy's dissertation:

    "REST does not restrict communication to a particular protocol, but it does constrain the interface between components, and hence the scope of interaction and implementation assumptions that might otherwise be made between components [...]"

    And if something has to be supported by Spring and CXF to be meaningful then I think I'll hang up my hat and retire. No disrespect to either of those communities, but for good reasons they can't always be at the forefront of everything.

  5. Back to top

    Re: Useless

    Jun 24, 2008 1:44 PM by Josh Devins

    Yes, I have done some homework. I was hoping that I could in fact use WS-TX for my own purposes, but was woefully dissapointed to not find as much practical, implementation information as I had hoped or expected. I didn't expect it to be difficult for a simple, "busy developer" to find this stuff. However I will gladly look at JBossTS to solve my problem, thank you for that. I certainly did expect more implementations to be out there though, wouldn't you?



    I did not mean to imply that simply because Spring WS or CXF don't have it, then it's not good enough. But if this has been in development for some years now and major open source projects aren't supporting it, it certainly makes you wonder, doesn't it? You probably feel differently since you have been intimiately involved with it, but for an outsider, it's a bit different.



    Re WOA article, you mean the one that quotes, "Resources are manipulated by HTTP verbs (GET, PUT, POST, DELETE)"? Hopefully I'm not taking that out of context. I would love to see what REST-over-JMS looks like too, since I have in fact not heard of it (SOAP-over-JMS I have).



    I'm not at all interested in starting a "flame war", I do appreciate your point of view.

  6. Back to top

    Re: Very good presentation about Transcations.

    Jun 24, 2008 1:46 PM by Mark Little

    I wouldn't get too bogged down on the WS-* complexity. The need for extended transactions (weakening of ACID semantics) goes beyond Web Services or REST. As a developer, you should be able to have long running "transactions" (maybe Sagas based, but doesn't have to be the case) in whatever environment you are using. That's where true extreme transaction processing comes in: it's not just the rate at which you can process transactions, but also the scale of the problem (both number of participants and physical locality), which require these models and implementations. And we can definitely make them easier to use.

  7. Back to top

    Re: Useless

    Jun 24, 2008 2:18 PM by Mark Little

    Hi Josh. No flame war intended :-) I think the implication I was a "standards person" stung ;-) Although I've been involved with standards for more years than I care to remember, it's always been from the practical perspective: pushing user-driven implementations into standards.

    I'd love to see more implementations of WS-TX out there, just as I'd love to see more use of transactions across the board. But transactions are a very hard sell; take it from someone who has been trying to do it for 20+ years: persuading someone that they need something that only shows its benefits when there are failures that don't happen often, is really difficult to do. I think that has affected the take-up of transactions in lots of sections of middleware, not just Web Services. As a die-hard transaction guy, it scares me that there are systems running that really should have transactions (even "just" normal ACID transactions) and don't.


    There's also an aspect of complexity here that doesn't help matters: transactions are hard to do right and this often puts people off. This isn't an open-source vs closed-source issue either: there are (were) closed source transaction managers that didn't really cut it because the developers didn't bother working on the "edge cases" (e.g., recovery). But it's the "edge cases" where transactions really give benefit.


    As for REST support for something other than HTTP, I know a couple of groups have been talking about JMS (JBoss definitely, I think Jersey). I believe Roy is also still working on waka (en.wikipedia.org/wiki/Waka_(protocol)).

  8. Back to top

    Re: Useless

    Jun 24, 2008 2:48 PM by Josh Devins

    Yay, we're all still friends! I certainly have nothing against standards or standards bodies, and this is one place where it seems necessary particularly when involving disparate systems from multiple vendors (MS, IBM, etc.). I wonder what your thoughts are on architectures and approaches that advocate not using spanning transactions such as those of eBay and Amazon.



    I would agree that the "REST style" can be acheived without HTTP. However again, in practical terms, I don't see it (for now at least) living without HTTP. Waka looks fun though!



    Thanks for the replies...

  9. Back to top

    Re: Useless

    Jun 24, 2008 2:56 PM by Stefan Tilkov

    I think Mark's intent was to distinguish between REST as an architectural style and a REST-compliant (or "RESTful") usage of HTTP and other Web protocols. (Correct me if I'm wrong, Mark.) "REST over HTTP" wouldn't be my first choice, but it's as valid as any of the other complicated expressions one can come up with to minimize flames from what Paul Downey called "Roy's posse" :-)

  10. Back to top

    Re: Useless

    Jun 24, 2008 3:04 PM by Mark Little

    You're right with my intent for the term "REST over HTTP" Stefan. I didn't want to use WOA ;-)

  11. Back to top

    Re: Useless

    Jun 24, 2008 4:06 PM by Mark Little

    The ebay/Amazon approach is interesting and would fall within the general concept of extended transactions. It has some similarities to the WS-BP model in OASIS WS-CAF, which was based on real world experiences some of us had (specifically HP) around REST transactions in 2000: funny how things go around.

  12. Back to top

    Interesting blue screen behind Mark

    Jun 24, 2008 7:42 PM by Michael Neale

    Looks like there was intent to Chroma-key some tropical background (or perhaps leaping over tall buildings) but the opportunity was lost.

    Shame.

  13. Back to top

    Other standards

    Jun 29, 2008 3:14 AM by Bilal Choudry

    What is the future for standards like BTP also is there an equivalent for WS-Context in WS-TX ?

  14. Back to top

    Re: Other standards

    Jun 29, 2008 4:04 AM by Mark Little

    BTP and WS-Context are both OASIS standards so they'll continue to exist, but the reality is that none of the major vendors support BTP (some of the more important concepts are available in WS-BA anyway) and only Oracle, IONA and JBoss have implementations of WS-Context. I don't know what's happened to the Oracle and IONA ones since we finalised WS-Context, but I suspect they aren't in product. But many of us still think that WS-Context is important.

  15. Back to top

    Commit protocol control

    Jul 1, 2008 10:05 AM by Bilal Choudry

    Is there an alternative or something similar to open-top control exist in WS-TX ?

  16. Back to top

    REST Vs. SOAP

    Jul 17, 2008 3:23 PM by Jibey Jacob

    I was actively involved in the creation of Web Services. A goal of that technology was to enable interoperability among platforms, so that you can have code written in Java invoke code written in C++ and later on - .NET when that came along.

    REST does not support a contract based approach, so it does not support this kind of interoperability. All I hear is that its lightweight. Well, it lacks a lot of functionality, which is why its lightweight.

    I don't mind using REST where it can be beneficial as a lightweight framework.

  17. A friend of mine is architect in a big IT shop and was doing a huge project at a local telco. They needed to automate the process of reserving a phone number for a customer, and tried to do this with BPEL/SOAP.

    It more or less went like this:

    -reserve the number for the customer (in one backend service)
    -do workflow stuff
    -bill the customer
    -...

    One of the particularities that I remember: they needed to be able to reverse a composite process when it failed at the end, i.e. when billing the customer failed. The number from step 1 had to be freed up again. And: they needed to be able to change the process (business agility) within every x weeks.

    Now, I remember my friend complaining that this was nearly impossible, especially the reverse logic. Had they used transactions, they would have been focusing on the happy path instead.

    My point: IMHO we are still at the dawn of a new age where service composition will happen (some day). When that day comes, I bet a lot of us will looking for some transactional guarantees.

    However, today, for your facebook page all this won't matter I guess; not yet at least...


    Best
    Guy
    www.atomikos.com
    Transactions for SOA and XTP

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.