InfoQ

Interview

Gregor Hohpe on Conversation Patterns

Interview with Gregor Hohpe by Stefan Tilkov on Aug 09, 2008

Community
SOA
Topics
Business Process Management ,
Choreography ,
Orchestration
Tags
BPEL ,
WS-CDL ,
WSDL ,
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
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 :-)

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.