<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Middleware Matters</title>
      <link>http://blogs.iona.com/vinoski/</link>
      <description>Steve Vinoski&apos;s Weblog</description>
      <language>en</language>
      <copyright>Copyright 2007</copyright>
      <lastBuildDate>Wed, 14 Feb 2007 22:03:23 -0500</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>So long</title>
         <description><![CDATA[Today was my last day at IONA. After a little over ten years here, I'm heading off to join a startup, an opportunity of a lifetime, in a business very different from IONA's. I can't tell you any details about the startup, but I can say that it involves both hardware and software, which takes me back to my roots (I started to shift from hardware development into software 20 years ago), and of course it involves some distributed computing, but in this case, I'll be a user of distributed computing infrastructure, not a provider like I've been for the past 16 years.

IONA has been nothing short of wonderful. This little company has an amazing number of brilliant people, so much passion, and simply excellent leadership. It's not a company, it's a family. That's why I stayed for over ten years, that's why it took the prospect of an opportunity of a lifetime to convince me it was time to go, and that's why I had such a difficult time actually deciding to leave. Here at the end, it came as no surprise to me that IONA would handle my departure with nothing but class and respect, with no exceptions. In a recent internal presentation, I stated that IONA is great because its people are great, and that's a fact. I'm going to miss this place.

Obviously, this is my final posting on this blog. I'll eventually reappear in the blogosphere, but it might be awhile. I do plan, however, to keep writing my "Toward Integration" column in <a href="http://computer.org/internet">Internet Computing</a>. Thanks for reading this blog over the past few years and for all your comments and trackbacks. Take care, and I hope to see you again soon.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000458.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000458.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">General</category>
        
        
         <pubDate>Wed, 14 Feb 2007 22:03:23 -0500</pubDate>
      </item>
            <item>
         <title>&quot;REST Eye&quot; now on DSOnline</title>
         <description><![CDATA[In case you're allergic to PDF, my <a href="http://blogs.iona.com/vinoski/archives/000438.html">"REST Eye for the SOA Guy"</a> column is now also available over at <a href="http://dsonline.computer.org/portal/pages/dsonline/2007/01/w1tow.html">IEEE Distributed Systems Online</a>.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000440.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000440.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">REST</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">column</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">rest</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Thu, 04 Jan 2007 14:09:29 -0500</pubDate>
      </item>
            <item>
         <title>REST Eye for the SOA Guy</title>
         <description><![CDATA[For some reason I've always been able to see both sides of most arguments. I'm not sure why, but maybe it's because I'm the middle of seven children. Whatever the reason, my latest <a href="http://computer.org/internet">Internet Computing</a> (IC) <i>Toward Integration</i> column tries to take a middle ground in the ongoing "REST vs. SOA" debate. It's called <a href="http://www.iona.com/hyplan/vinoski/pdfs/IEEE-REST_Eye_for_the_SOA_Guy.pdf">"REST Eye for the SOA Guy"</a> (PDF) and it attempts to explain, from the perspective of someone like me with a lengthy SOA background, the benefits that REST brings to the distributed systems picture. As always, all feedback on the column (or any of my previous columns) is welcomed.

This column is my 30th for IC, which is published bimonthly, which in turn means that <i>Toward Integration</i> now enters its 6th year. I'd like to thank all of you who have read my work over the past 5 years, and would especially like to thank those of you who provided me with reviews and feedback. If you have ideas for topics you'd like to see me cover in 2007, please <a href="mailto:vinoski@iona.com?Subject=IC topic idea">drop me a note</a>. I write this column in my "spare time" — being chief engineer for IONA is more than a full-time job, as you might imagine — so coming up with topics isn't always easy.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000438.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000438.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">REST</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">column</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">rest</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Tue, 02 Jan 2007 11:15:00 -0500</pubDate>
      </item>
            <item>
         <title>Code-first services</title>
         <description><![CDATA[Most people who have been around distributed systems development for awhile recommend against <i>code-first services</i>. These are services where someone writes a normal programming language artifact, usually a Java or C++ object, and then turns it directly into a distributed service. Among the reasons to avoid this are that such objects are not designed to deal with distributed system issues, such as partial failure, and also because the approach more easily allows language-specific features to creep into the service contract, potentially giving service consumers no choice but to implement using the same programming language.

Despite such recommendations, however, sometimes developers still want to take the code-first approach. Many see it as convenience, and are unaware of the long-term ill effects that it can create. Others choose the development convenience even when they know that what they're doing could cause problems down the road.

And because developers demand to be able to do code-first development, suppliers and vendors have to support it in their products, and eventually even standards support it too. <a href="http://www.jcp.org/en/jsr/detail?id=224">JAX-WS 2.0</a>, for example, specifies standard annotations that allow programmers to turn POJOs into web services. Microsoft supports similar stuff in their tools and languages as well.

Through a <a href="http://blogs.zdnet.com/service-oriented/?p=782">recent Joe McKendrick blog posting</a>, I see that our old friend Ronan Bradley <a href="http://blog.lustratusresearch.com/litebytes/2006/12/the_danger_of_a.html">has issues</a> with <a href="http://www.iona.com/products/celtix/">Celtix Enterprise</a> for supporting code-first services through JAX-WS 2.0. Ronan, a former IONA employee, says that he's not intentionally singling us out for this, given that we're not alone in supporting that standard, but I'm not sure why he also chooses to ignore all the <i>contract-first</i> service support that Celtix Enterprise also offers.

<a href="http://www.iona.com/products/orbix">Orbix</a> has long promoted contract-first development, which may in fact be where Ronan first learned about it. Our <a href="http://www.iona.com/products/artix">Artix</a> GUI tools strongly push customers toward contract-first services, and our experiences there have helped create the <a href="http://www.eclipse.org/stp/">Eclipse SOA Tools Platform Project</a> (STP) to promote open implementations for such tools. All of our training courses recommend contract-first services over code-first services. But ultimately, our WS products support both approaches <i>because that's what our customers want them to do</i>. It would be helpful to neither our customers nor ourselves if we held back useful features from them in the name of some sort of SOA purity.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000429.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000429.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">SOA</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">development</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">services</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Wed, 20 Dec 2006 14:06:40 -0500</pubDate>
      </item>
            <item>
         <title>Coupling isn&apos;t so black and white</title>
         <description><![CDATA[<a href="http://www.addsimplicity.com/adding_simplicity_an_engi/2006/12/you_call_it_cou.html">Dan Pritchett takes issue</a> with <a href="http://www.infoq.com/articles/pete-lacey-ws-criticism">Pete Lacey's characterization in his InfoQ interview of web services being too tightly coupled</a>. Dan's issue seems to be that REST is more tightly coupled than its proponents would have you believe. He writes:

<blockquote><i>The simple facts though is that REST doesn't make this any better. Resources have formats (schemas if XML). They are located by URI's which is a contract for where they can be found. Change the resource format in an incompatible way and clients break. Move the resource to a new location and the clients break. Contracts are contracts, break them and you break the software.</i></blockquote>

The "move the resource" issue is bogus, given that you can just redirect clients (e.g., HTTP 301). But more generally, coupling isn't so black-and-white. It's not an on-or-off switch. Rather, coupling is measured in degrees. REST advocates claim that it can allow for more loosely coupled systems than SOA or WS-*. And I agree with them.

Take for example REST's uniform interface constraint. If you consider the client/service interaction equation to consist of factors for interface coupling, data coupling, and semantic coupling, REST's uniform interface constraint effectively removes the entire interface coupling factor. SOA and WS-*, OTOH, actually promote interface coupling as a strength.

As I finish writing this, I see that <a href="http://wanderingbarque.com/nonintersecting/2006/12/19/coupling/">Pete has already responded to Dan</a>, and he's right on target, as usual.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000427.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000427.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">REST</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">coupling</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">rest</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">SOA</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">ws</category>
        
         <pubDate>Tue, 19 Dec 2006 18:50:57 -0500</pubDate>
      </item>
            <item>
         <title>SE Radio Interview</title>
         <description><![CDATA[When I was at <a href="http://jaoo.dk/">JAOO 2006</a> back in October, <a href="http://voelterblog.blogspot.com/">Markus Voelter</a> interviewed me for <a href="http://www.se-radio.net/">Software Engineering Radio</a>. Markus has just posted the interview <a href="http://media.libsyn.com/media/seradio/seradio-episode39-steveVinoski.mp3">as a podcast</a>.

I enjoyed this interview more than most because Markus asked such a broad range of questions, rather than just narrowing in on whatever the topic of the day might be. His questions covered the whole range of my career in distributed computing, from pre-CORBA distributed systems all the way through to my current work on <a href="http://incubator.apache.org/qpid/">Qpid</a>, and it was especially nice to be able to talk about the early days for a change.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000421.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000421.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Middleware Approaches</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">interview</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">middleware</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">podcast</category>
        
         <pubDate>Thu, 07 Dec 2006 00:36:10 -0500</pubDate>
      </item>
            <item>
         <title>Celtix Enterprise: so far, so good</title>
         <description><![CDATA[<a href="http://www.innoq.com/blog/st/">Stefan Tilkov</a> has written a <a href="http://www.infoq.com/news/2006/12/celtix-enterprise">nice article</a> describing our new <a href="http://www.iona.com/products/celtix/?WT.mc_id=1234668">Celtix Enterprise</a> release. The response to our announcement so far has been pretty good, with a few hundred downloads over the past 24 hours.

My own little contributions here are in the <a href="http://dsonline.computer.org/portal/pages/dsonline/2006/06/w3tow.html">CXF dynamic language support</a>, which I originally designed and wrote for the Celtix open source project but which has now moved to <a href="http://cwiki.apache.org/CXF/">CXF</a>, and in <a href="http://incubator.apache.org/qpid/">Qpid</a>, the Apache Incubator implementation of <a href="http://dsonline.computer.org/portal/pages/dsonline/2006/12/w6tow.html">AMQP</a>, where I'm a committer.

Don't let the "ESB" label scare you, BTW. I know many of you dislike ESBs and for good reason: most vendors' ESBs are either just glorified JMS implementations or are big, scary, centralized, and expensive EAI-like monstrosities. With Celtix Enterprise, IONA has again used its extensive pedigree in distributed computing to put together an adaptive and truly distributed SOA offering. While in theory all SOA is distributed, in practice, many ESB solutions force you to use centralized hubs no matter what. With Celtix Enterprise, knowing there's no such thing as a one-size-fits-all enterprise solution, we give you the full range of options, from centralized messaging brokers with <a href="http://incubator.apache.org/qpid/">Qpid</a>, for example, to smart multi-protocol multi-format SOA endpoints with <a href="http://cwiki.apache.org/CXF/">CXF</a>.

Speaking only for myself, I actually wish IONA wouldn't define <a href="http://www.iona.com/products/artix/">Artix</a> or Celtix Enterprise as ESBs, but given that I'm not in marketing, what do I know. Well, I guess I do know that given the <a href="http://www.iona.com/products/celtix/?WT.mc_id=1234668">features and functions we offer</a>, ESB is, for better or worse, the closest fit for us from a market category perspective. Whatever you want to call it, Celtix Enterprise is about as far away from the "business as usual" ESBs as you can get. But don't take my word for it, check it out for yourself.

These are cool times to be at IONA, I must say. In about three weeks I will have been employed here for 10 years (!), and the release of Celtix Enterprise is in all honesty the most exciting product release I've seen in my time here. It represents a new way of doing things, technically and business-wise, both for our customers and for ourselves. And it's only going to continue to get cooler going forward.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000420.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000420.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">open source</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">celtix</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">enterprise</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">opensource</category>
        
         <pubDate>Tue, 05 Dec 2006 18:15:40 -0500</pubDate>
      </item>
            <item>
         <title>SOA Facts</title>
         <description><![CDATA[My colleague Aidan pointed me to these <a title="SOA Facts" href="http://soafacts.com/">SOA Facts</a>. It's about time someone properly explained the big picture. :-)]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000411.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000411.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">SOA</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">humor</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Wed, 22 Nov 2006 11:40:11 -0500</pubDate>
      </item>
            <item>
         <title>JAOO video</title>
         <description><![CDATA[Regular readers of this blog know that I speak highly of the <a href="http://www.jaoo.dk/">JAOO conference</a>, and those of you who have been lucky enough to attend JAOO know why. Yet, despite JAOO's consistently high marks, sometimes it can be hard to explain exactly <i>why</i> JAOO is so amazingly good. Well, maybe <a href="http://video.google.com/videoplay?docid=-2733940246444446454&hl=en">this new video</a> will help. It gives you a look at a bunch of different facets of the conference and introduces you to some of the key folks, like <a href="http://www.jaoo.dk/geronimo/speakers/show_speaker.jsp?oid=6">Kresten</a>, the spokesman in the video, who put it together every year. The video is well worth watching if you want to learn more about JAOO.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000405.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000405.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Conference/Meeting Report</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">conference</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">jaoo</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">video</category>
        
         <pubDate>Thu, 09 Nov 2006 01:53:46 -0500</pubDate>
      </item>
            <item>
         <title>Advanced Message Queing Protocol</title>
         <description><![CDATA[My Nov/Dec 2006 <a href="http://computer.org/internet">Internet Computing</a> "Toward Integration" column just came out. This one is entitled <a href="http://www.iona.com/hyplan/vinoski/pdfs/IEEE-Advanced_Message_Queuing_Protocol.pdf">"Advanced Message Queuing Protocol"</a> (PDF), aka <a href="http://www.iona.com/opensource/amqp/">AMQP</a>, and as its name implies it provides an overview of AMQP.

Over in the <a href="http://incubator.apache.org/">Apache Incubator</a>, the <a href="http://incubator.apache.org/qpid/">Qpid</a> project, an open-source implementation of AMQP, is up and running. As I mention in the column, you can find working Java and C++ AMQP brokers there, as well as client capabilities in Java, C++, Python, and Ruby. Qpid is where I spend almost all of my development cycles these days.

It's about time the industry had a standard, interoperable enterprise messaging protocol, and I think AMQP is on track to meet that need. If you're interested, get involved in <a href="http://incubator.apache.org/qpid/">Qpid</a>.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000398.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000398.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Middleware Approaches</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">amqp</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">column</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">messaging</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">middleware</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">qpid</category>
        
         <pubDate>Wed, 01 Nov 2006 00:27:04 -0500</pubDate>
      </item>
            <item>
         <title>One More Thing</title>
         <description><![CDATA[I don't disagree with <a href="http://www.coactus.com/blog/2006/10/one-thing/">what Mark is saying about interface generality</a>, but I do disagree that REST and SOA can be compared like that, since a SOA can be REST-based.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000393.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000393.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">SOA</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">rest</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Fri, 20 Oct 2006 00:14:55 -0500</pubDate>
      </item>
            <item>
         <title>Booch on snakes and SOA</title>
         <description><![CDATA[<a title="IBM developerWorks : Blogs : Software architecture, software engineering, and Renaissance Jazz" href="http://www-03.ibm.com/developerworks/blogs/page/gradybooch?entry=snake_oil_oriented_architecture">Grady Booch talks about SOA: "Snake Oil-oriented Architecture."</a> :-) Well worth the read. Here's my favorite paragraph:

<blockquote><i>"Having said that, there follow a multitude of hard technical and process decisions that must be made, which the Snake Oil-oriented Architecture showmen often neglect to tell you about: what distinguishes a good service from a bad one? what should the granularity of a service be? when should I offer up a stateless service versus a stateful one? as for the stateful ones, how to [sic] I express their semantics, and how do I ensure their their [sic] misuse doesn't corrupt my system? how do I express the semantics of a society of services (only the most trivial services work in isolation)? how do I decide upon the semantics of the information transmitted by these services so that locally they are efficient and useful but that also globally they are consistent? how do I expose some services to some clients and hide them from others? how do I offer up variants on a service, so that different clients see a different face to that service? how do I ensure the security of critical services, such that I am confident I'm not opening up holes in my enterprise that will let the bad guys in? what services should I expose to the world, and what services should I keep hidden? where are services appropriate, and where are they not? how do I best expose services in a legacy system? who should own/maintain these services? are there alternative architectural patterns I should employ instead of services, and where, and why?"</i></blockquote>

These are indeed the right questions, and they are hard questions. At the <a href="http://blogs.iona.com/vinoski/archives/000380.html">recent JAOO SOA panel</a>, some attendees expressed disappointment afterward essentially because we didn't give them cookbook answers to these questions. Unfortunately, someone speaking to an audience about SOA can give general high-level advice about such things, and that's about it. People seem to want SOA to be a silver bullet design blueprint for solving all these issues, such that they don't even have to think about these questions, but that just ain't gonna happen. I guess that's why I prefer "SOA" to mean "service-oriented <i>approach</i>," as it doesn't directly provide you with an architecture, but instead steers you toward a desirable architecture. But if you want to succeed with a service-oriented system, you eventually have to answer the hard questions that Grady brings up. Like he says, don't let the snake-oil salesmen fool you: there's no easy way around it.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000390.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000390.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">SOA</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">SOA</category>
        
         <pubDate>Mon, 16 Oct 2006 17:13:22 -0500</pubDate>
      </item>
            <item>
         <title>JAOO Rules, Again</title>
         <description><![CDATA[Imagine if your day job is writing software, writing documentation, or running a software company, and in your "spare time" you planned and executed an absolutely killer technical conference that every year for a full decade has gotten rave reviews from pretty much everyone who's attended. Sound far-fetched? Perhaps it is, which is why, as <a href="http://blogs.tedneward.com/2006/10/06/JAOO+Ja+I+OO+Too.aspx">Ted Neward so rightfully says</a>, the organizers of <a href="http://www.jaoo.dk/">JAOO</a> should be knighted or something. Once again this year, they put together one of the best technical conferences I've ever attended. And they do it year after year after year. It makes me feel sorry for people who run conferences for their full-time jobs, because the JAOO folks make most of them look very, very incompetent.

Highlights from JAOO 2006 for me included, in no particular order:

<ul><li><i>Hanging out with the other speakers.</i> JAOO always hosts a gathering of <a href="http://www.jaoo.dk/speakers/">great speakers</a>. This year <a href="http://www.allthingsdistributed.com/">Werner</a> gave the Monday morning keynote, <a href="http://research.sun.com/people/mybio.php?uid=25706">Guy Steele</a> gave a wonderful talk on the history of Scheme, <a href="http://www.davethomas.net/">Dave Thomas</a> (Smalltalk Dave, not <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi">Pragmatic Dave</a>) gave an absolutely amazing talk on the overall history of computing and what ideas originated where, <a href="http://www.jroller.com/page/obie">Obie Fernandez</a> led a great Ruby track, and there was also our <a href="http://blogs.iona.com/vinoski/archives/000380.html">SOA track</a> of course. It was interesting to sit in the back of Dave's talk and watch the young Java-heads squirm as he talked about all that has gone before, given that many of them seem to think that there was no computing or software before Java came along. <a href="http://research.microsoft.com/~emeijer/">Erik Meijer</a> gave a talk on functional programming that I would have liked to have seen, but I went to Obie's Ruby talk instead.  That's really the only downside of JAOO: parallel tracks mean you always have to choose between two or three talks you'd really like to see. I also finally got to meet Ted, but unfortunately didn't get to talk to him as much as I would have liked. Similarly, I didn't get to see <a href="http://www.vanderburg.org/Blog">Glenn Vanderburg's</a> Ruby talk, but I did get to meet him and travel with him from Aarhus to Washington, D.C. (and from there my luggage went to <a href="http://www.massport.com/logan/default.aspx">Logan</a> while I almost got stuck in Washington overnight but went to <a href="http://www.flymanchester.com/">Manchester, N.H.</a> instead -- thanks, <a href="http://www.united.com/">United</a>).</li>

<li><i>The closing panel.</i> I was fortunate enough to appear on the conference closing panel with Guy, <a href="http://www.daimi.au.dk/~olm/">Ole Lehrmann Madsen</a>, <a href="http://www.two-sdg.demon.co.uk/curbralan/kevlin.html">Kevlin Henney</a>, Erik Meijer, and Dave as the moderator. The panel topic was, "What will programming be like in 2016?" The beginning of the panel was kind of funny, as seated at one table with Dave were Guy and Ole, and each of them had pens and paper and they were taking notes, and Ole even had his laptop up and running, while Kevlin and I sat at the other table, and all we had in front of us were two beers -- each. :-) Erik was a bit late due to another overlapping event, and when he sat down at our table (with a beer, of course), Kevlin noted to the audience that by doing so he had considerably raised the I.Q. of our table. :-) All in all, it went really well, with some excellent questions from the audience -- notably, many of them were about dynamic languages -- and some insightful answers from the panel. Most of the panelists agreed that we'd be using multiple languages together by 2016, instead of trying to stretch single general-purpose languages to cover everything. I heard afterwards that this idea disturbed a number of attendees, to which my reaction is, "Good!" After all, there's no such thing as a "one size fits all" language, so get over it. All in all, it was probably the best panel I've ever participated in.</li>

<li><i>The social scene.</i>The  JAOO crew takes very good care of the attendees, and extra good care of the speakers. The Monday party was great, with <a href="http://www.chilijohn.com/">Chili John's</a> great food, the <a href="http://www.absolutegirls.dk/">Absolute Girls</a> laying down the tunes, and a local brewery serving up the tasty fresh suds. I even found myself behind the kegs for quite awhile, pouring beers for everyone who asked, just to save myself the walk everytime I needed a fresh one. :-) Then there was the Wednesday speaker dinner, again with Chili John's wonderful creations. I always make it a point to spend some time at the dinners chatting with Chili John, and this year he gave me another of his cookbooks, which he also graciously signed for me. It may seem like a strange combination of flavors, but his Chocolate Chili Steak is a truly incredible dish.</li>

<li><i><a href="http://intentsoft.com/company/management.html">Charles Simonyi's</a> yacht.</i> On Tuesday evening I got "dragged" along with the track chairs to a little gathering on a yacht. I imagined we'd be on some 35-footer or similar. When we got to the harbor, though, I thought, "So where's this boat? Over there behind that enormously large cruise-ship-looking thingie?" As you've guessed by now, it <i>was</i> the enormously large cruise-ship looking thingie. It was 70 meters long, had 6 levels, was spotlessly clean (we even had to remove our shoes as we stepped on board), had lots of niceties like a helicopter pad, a hot tub, and a very well-stocked exercise room, carried 200 000 gallons of diesel fuel, and was permanently staffed by a crew of 16. All through the evening, at least four or five young ladies kept the wonderful finger food and drinks coming. Every time I finished a beer, a new one magically appeared -- I never wanted to leave! :-) Charles, whom I had never met before, was a gracious host, and he spent a lot of time giving us a thorough tour even though he had to fly to the U.S. in the morning and hadn't yet packed. All in all, it was a laid-back and delightful evening, and the small group made for easy conversation. Thanks again, Charles, and best of luck with <a href="http://www.spaceadventures.com/media/releases/2006-08/421">your space flight</a>!</li></ul>

What I found striking about the more famous speakers like Guy and Charles is how incredibly pleasant and humble they are. They've contributed more to the craft and science of software than most of us could ever dream of, and yet they are totally at ease with themselves and are completely approachable, perhaps even shy to some degree.

JAOO, thanks again. I'm already looking forward to next year.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000383.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000383.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Conference/Meeting Report</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">conference</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">jaoo</category>
        
         <pubDate>Tue, 10 Oct 2006 00:05:58 -0500</pubDate>
      </item>
            <item>
         <title>JAOO SOA Track</title>
         <description><![CDATA[On the first day of the<a href="http://www.jaoo.dk/"> JAOO conference</a> (with over 1000 attendees this year!), after <a href="http://www.allthingsdistributed.com/">Werner's</a> excellent keynote about the Amazon.com technology platform (which, BTW, is service-oriented), <a href="http://www.enterpriseintegrationpatterns.com/">Gregor Hohpe</a> hosted the SOA Track. He opened the track with a quick yet deep overview of SOA -- probably the most useful introduction to SOA I've ever heard.

Following Gregor's introduction, I gave my talk on dynamic languages and SOA. For better or worse, SOA is often associated with large and sometimes expensive "enterprise" software systems, where your choice of programming language tends to be limited to Java or C++. I encouraged the attendees to avoid being <a href="http://lesscode.org/2006/03/26/its-enterprisey/">"enterprisey,"</a> which is defined as coming up with vastly overblown architectures or designs for the problem at hand. There are many functions within a SOA that can be handled by just a few lines of Ruby, Python, or JavaScript, rather than hundreds of lines of Java or C++. I also gave some examples of <a href="http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/2006/06&file=w3tow.xml&xsl=article.xsl&">scripting JAX-WS</a> with ECMAScript for XML (E4X) in <a href="http://cwiki.apache.org/confluence/display/CXF/Index">CeltiXfire</a>, scripting <a href="http://www.iona.com/products/artix/">Artix</a> with Ruby, and scripting clients for <a href="http://incubator.apache.org/projects/qpid.html">Qpid</a> with Ruby and Python.

After lunch, <a href="http://www.jaoo.dk/speakers/show_speaker.jsp?oid=66">Ivo Totev</a> of Software AG talked about SOA governance. This is one of the newest aspects of SOA, and it's particularly important because it raises the issues above the pure technology level to how SOA systems are deployed, managed, and extended over time, understanding how changes to parts of a system are going to affect the overall system, and how SOA systems can be made to properly reflect the appropriate business operating procedures. Governance is often a term that's thrown about without much definition or depth behind it, but Ivo gave it a very thorough and informative treatment.

Next up was <a href="http://blogs.msdn.com/beatsch/">Beat Schwegler</a> from Microsoft, who talked about how to architect applications for SOA. Beat hammered home the point that there's a huge difference between technology and business, that SOA ultimately is about reducing the cost of doing business, and that technology is subservient to that need. He pointed out that technology flexibility is a benefit of SOA that allows the business to control its cost of IT. Beat gave the example of moving services off of a mainframe to reduce costs without breaking users of those services: this is much more feasible with a service focus rather than a technology focus. He talked about the folly of trying to build reusable services right off the bat, explaining that you first have to have "use" before you can move on to "reuse." Beat then covered service contracts, architectural refactoring, and application partitioning, all required to create adequate boundaries within a SOA so as to ensure that it's properly abstracted and give it the required business flexibility.

Following the break, Gregor again took the stage, this time to talk about loosely coupled conversations. Coupling is extremely important in SOA systems because if subsystems are coupled too tightly, the business agility you seek by adopting SOA ends up eluding you. Conversations between subsystems obviously impact the degree of coupling present in the system. Gregor explained various message exchange patterns, choreography, and approaches for verifying message exchange rules. He then gave an overview of several service conversation description standards, including BPEL, CDL, and SSDL, each of which takes a different approach to defining and prescribing conversations. He explained that the outputs of tools based on these standards are meant for machine, not human, consumption, and so then moved on to explain a number of <a href="http://www.enterpriseintegrationpatterns.com/ramblings/09_correlation.html">conversation patterns</a>, which are far more human-friendly.

We capped off the SOA Track with a panel consisting of all the track speakers as well as <a href="http://www.jaoo.dk/speakers/show_speaker.jsp?oid=31">Frank Buschmann</a> of Siemens AG, whom Gregor invited as a devil's advocate of sorts. The panel stressed the fact that SOA isn't magic, and that doing it right required all the non-technical business factors to be addressed by the organization's leadership. Even Werner, who normally asks really hard questions at such panels, said that he thought the panelists were on the right track.

What was most impressive to me about the SOA Track is that none of the speakers communicated about their talks or exchanged slides before the conference, yet the messages of all the track's speakers meshed very well. Furthermore, despite the heavy technical leanings of the audience, they too understood that SOA is ultimately not about technology but about creating business value. I believe this is all good testament not only to the expertise of my fellow SOA Track speakers, but to JAOO's amazing ability to always attract highly knowledgeable speakers and attendees who possess formidable hands-on experience.

And finally, what JAOO would be complete without a great conference party! The Monday evening event was outstanding, as usual, complete with <a href="http://www.chilijohn.com/">Chili John's</a> excellent "Route 66" buffet, a great performance by the<a href="http://www.absolutegirls.dk/"> Absolute Girls</a>, and some <em>really</em> nice locally-brewed beer.]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000380.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000380.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Conference/Meeting Report</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">conference</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">jaoo</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">patterns</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">services</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">soa</category>
        
         <pubDate>Tue, 03 Oct 2006 07:18:22 -0500</pubDate>
      </item>
            <item>
         <title>It&apos;s JAOO time!</title>
         <description><![CDATA[<a href="http://www.jaoo.dk/">JAOO</a>, the finest software development conference on the planet, is upon us. The main conference days are Monday through Wednesday of next week. Monday starts with <a href="http://www.allthingsdistributed.com/">Werner's</a> keynote, which I'm really looking forward to, and then the conference branches out into a number of interesting topic areas, as <a href="http://www.jaoo.dk/schedule/monday.jsp">the schedule shows</a>. And as is always the case for JAOO, the <a href="http://www.jaoo.dk/speakers/">list of speakers</a> is a veritable "who's who" of well-known technology leaders. JAOO takes very good care of all attendees, and especially their speakers, which is why they're consistently able to attract a large number of top presenters.

At most conferences, I usually don't go to any sessions. The talks are usually uninteresting and are often delivered by first-time public speakers who are nervous and sometimes barely able to stumble through their presentations. Not so at JAOO! Because of the high quality of the speakers and their topics, at JAOO I attend as many sessions as I can, and often wish to be in 2 or 3 sessions at the same time. And of course, after a day full of formal sessions, there's nothing better than JAOO's legendary <a href="http://www.jaoo.dk/events/">social events</a> to help you unwind.

Hopefully I'll see you there!]]></description>
         <link>http://blogs.iona.com/vinoski/archives/000369.html</link>
         <guid>http://blogs.iona.com/vinoski/archives/000369.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Conference/Meeting Report</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">conference</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">jaoo</category>
        
         <pubDate>Sat, 30 Sep 2006 08:48:11 -0500</pubDate>
      </item>
      
   </channel>
</rss>
