« September 2006 | Main | November 2006 »

October 2006 Archives

October 3, 2006

JAOO SOA Track

On the first day of the JAOO conference (with over 1000 attendees this year!), after Werner's excellent keynote about the Amazon.com technology platform (which, BTW, is service-oriented), Gregor Hohpe 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 "enterprisey," 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 scripting JAX-WS with ECMAScript for XML (E4X) in CeltiXfire, scripting Artix with Ruby, and scripting clients for Qpid with Ruby and Python.

After lunch, Ivo Totev 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 Beat Schwegler 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 conversation patterns, which are far more human-friendly.

We capped off the SOA Track with a panel consisting of all the track speakers as well as Frank Buschmann 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 Chili John's excellent "Route 66" buffet, a great performance by the Absolute Girls, and some really nice locally-brewed beer.

October 10, 2006

JAOO Rules, Again

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 Ted Neward so rightfully says, the organizers of JAOO 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:

  • Hanging out with the other speakers. JAOO always hosts a gathering of great speakers. This year Werner gave the Monday morning keynote, Guy Steele gave a wonderful talk on the history of Scheme, Dave Thomas (Smalltalk Dave, not Pragmatic Dave) gave an absolutely amazing talk on the overall history of computing and what ideas originated where, Obie Fernandez led a great Ruby track, and there was also our SOA track 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. Erik Meijer 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 Glenn Vanderburg's 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 Logan while I almost got stuck in Washington overnight but went to Manchester, N.H. instead -- thanks, United).
  • The closing panel. I was fortunate enough to appear on the conference closing panel with Guy, Ole Lehrmann Madsen, Kevlin Henney, 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.
  • The social scene.The JAOO crew takes very good care of the attendees, and extra good care of the speakers. The Monday party was great, with Chili John's great food, the Absolute Girls 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.
  • Charles Simonyi's yacht. 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 was 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 your space flight!

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.

October 16, 2006

Booch on snakes and SOA

Grady Booch talks about SOA: "Snake Oil-oriented Architecture." :-) Well worth the read. Here's my favorite paragraph:

"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?"

These are indeed the right questions, and they are hard questions. At the recent JAOO SOA panel, 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 approach," 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.

October 20, 2006

One More Thing

I don't disagree with what Mark is saying about interface generality, but I do disagree that REST and SOA can be compared like that, since a SOA can be REST-based.

About October 2006

This page contains all entries posted to Middleware Matters in October 2006. They are listed from oldest to newest.

September 2006 is the previous archive.

November 2006 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31