InfoQ

Interview

Gregor Hohpe on Conversation Patterns

Interview with Gregor Hohpe by Stefan Tilkov on Aug 09, 2008 08:25 AM

Community
SOA
Topics
Orchestration ,
Business Process Management ,
Choreography
Tags
WS-CDL ,
WSDL ,
BPEL ,
Transactions ,
WS-BPEL
Summary
In this interview, recorded at QCon London, Google architect Gregor Hohpe talks to Stefan Tilkov about his new work on conversation patterns. Building upon his earlier work on enterprise integration patterns, Gregor sees conversation patterns as playing a critical role in real-world interactions, with analogies in the natural world.

Bio
Gregor Hohpe is a software architect with Google, Inc. Gregor is a widely recognized thought leader on asynchronous messaging and service-oriented architectures. He co-authored the seminal book "Enterprise Integration Patterns". In 2005, Joel Spolsky selected Gregor's article "Starbucks Does Not Use Two-phase Commit" for his "Best Software Writing".
This is Stefan Tilkov at QCon London 2008. I am sitting here with Gregor Hohpe. Welcome, Gregor! What is it that you do?
What is your current job, what are you currently doing?
It's been a while since you wrote that book. Is it still valid, has everything changed?
Is there going to be an update?
Can you give us an idea about what these conversation patterns are about?
One of the real life examples that you have written about is the Starbuck's example; this interaction and coordinating, reminds me very much of the two-phase transaction protocol you described there. Is a transaction a conversation pattern?
It's interesting you bought up the Starbucks example: because Jim Webber's talk last night went through the same example. It was a very good way of describing a RESTful kind of Starbucks service. At the beginning of his talk he mentioned the lack of support of anything that describes conversations. He wsas saying the WSDL doesn't really help us there, it says here's a request and here's a response and that's the conversation. So in your work concerning conversation patterns, do you see more of a need for a framework to describe the conversations that a service supports or do you think that request/response is all we'll ever need?
What makes BPEL a better match for describing a process or a conversation than any other programming language? What's the specific thing that such a language adds as a benefit?
Would you say that BPEL is more for the internal use, and WS-CDL more for the overarching B2B scenarios? Is that a useful assumption? Assume a central coordinator when you're within the company, and rely on mutual agreement whenever you cross company boundaries?
Your track here at QCon had the magic "cloud" word in its title. Can you describe what it was all about? What do people mean when they talk about "cloud computing"?
ow much similarity did you see in the different speakers' presentations? Are they following the same patterns? Did you see some commonality emerge, or there is a lot of competing different approaches?
So given the transaction topic we talked about before, is this something people do on that scale? Or is it that you can no longer work with transactions if you are on a global scale?
Are you saying that we have to learn to live with the shortcomings, with the mistakes, with the inconsistencies that eventually arise and deal with them
So it would be reasonable to expect that people at least are honest about what you can expect from them. One of the problems I see with the cloud offerings is that you have no idea whether the services are going to live for as long as you need it, whether it is going to up for as much as you need it, whether it offers some performance
If I want to run a 24x7 business that never goes down, I want to deploy my software frequently, and in particular, in a non-disruptive way. Isn't how the cloud supports that today an important property?
Why would you take that approach when there's off-the-shelf technology that has solved that problem. Why wouldn't you just buy a technology that does that for you?
show all  show all

1 comment

Reply

Agree in part, definitely leaves room for improvement IMHO by Guy Pardon Posted Nov 5, 2008 5:09 AM
  1. Hi,

    I definitely agree that "it should not be one big transaction". However, I would consider as transactional at least those parts of the system tied together synchronously. For instance: consuming messages from a queue and processing the results in a database. Or: checking a balance and crediting an account.


    The proposed model to solve transactional problems in a business way (trusting the goodwill of your bank) clearly does not work: how will the bank find out that they lost my 50 bucks? Either they find out themselves (pre-supposing some transaction monitor to be in place) or they know because I complain (in which case the damage is already done).

    A similar thing happened to me recently with Amazon (see my blog post). I consider myself a good customer of theirs, yet I had no refund so far :-(

    If you follow my rule of thumb then the scope of a transaction will always be very limited:

    -2 systems in queued order processing
    -N systems in SOA/workflow processing, where N is the number of services synchronously invoked/connected

    I think these are very acceptable. Again, I do not claim there should be one big transaction, but transactions should be used where they are of value.

    Best,
    Guy

    Atomikos - 3rd generation transaction management for XTP and SOA

    PS I also believe Starbucks would offer better service if they used two-phase commit to process their queued orders :-)

Exclusive Content

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.

Biztalk Services in the Cloud

Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.

Java FX Technology Preview

InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.

Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.

Steven "Doc" List About Open Spaces

In this interview made by InfoQ's Greg Young, Steven "Doc" List talks about Open Space conferences, a way of running meetings of groups of various sizes by facilitating self organizing the sessions.