Where Have All the SOA Mashups Gone?

John Heintz responded to my serendipitous reuse post. Nice to see I misunderstood his opinions about how easy RESTful systems are to integrate:

I didn’t mean to imply that building RESTful system would lead to magical integration without any hard work. I can see how that came across in my post, and I guess I got the reaction I asked for 😉

I get the feeling that John would be a good guy to have a beer with.

John spends most of his post writing about the SOA in the Real World book. I’ve flipped thru it and I’m familiar with the model (it is my old team after all) but I haven’t read it so I don’t really want to comment about the book specifically. But there were two things John mentioned that I did want to comment on.

First, at the end of his post John writes:

Can some of the constraints of REST be applied to SOA? Absolutely. I think an asynchronous, message-passing architecture with a uniform interface would be astoundingly interesting! I’m not the only one: see MEST, AMPQ, and Erlang.

This goes back to a REST question I asked two months ago: is it still REST if you don’t use HTTP? I’m guessing John would say yes.

I might be going out on a limb here, I’ll bet the core of John’s problem with SOA is how toolkits like WCF all but force you to build RPC style services that can easily be modeled as method calls. That’s certainly one of my problems with SOA. Tim Ewald said it best:

It’s depressing to think that SOAP started just about 10 years ago and that now that everything is said and done, we built RPC again. I know SOAP is really an XML messaging protocol, you can do oneway async stuff, etc, etc, but let’s face it. The tools make the technology and the tools (and the examples and the advice you get) point at RPC. And we know what the problems with RPC are. If you want to build something that is genuinely loosely-coupled, RPC is a pretty hard path to take.

If SOA == RPC and REST == loosely coupled messages, then I’ll start growing dreadlocks right now. Frankly, as Tim says, I think it’s a problem with the tools (I’m looking at you WCF) and not the underlying architecture, but how many people can distinguish the architecture from the tools? Not many, I’m afraid.

Second, John asks an interesting question:

Where are the SOA mashups?

That’s easy! They’re inside the firewall where you can’t see them! 😉

Seriously, I’m not sure about “SOA” mashups, but I’m working with what you might call a huge “enterprise” mashup system inside Microsoft. Our Enterprise Data Integration Services push around massive amounts of data to downstream systems. There are over fifty datasets in production, each with scores of tables, millions of rows and hundreds of subscribing systems. One example, our Products dataset, has over 100 tables and nearly 300 subscribing systems.

Is it “service oriented”? No, but then again it was originally developed ten years ago on SQL 6.5. But is it a mashup? Is it an “application that combines content from more than one source into an integrated experience“? Yep. Is it easy to work with? No, but guess why I’m involved? We’re looking at ways to “modernize” the system. Am I going to build RPC style services as part of this modernization? Hell, no.

So John, am I right or wrong about that beer?

Morning Coffee 107

  • The last day of the service factory workshop was much like the second, primarily focusing on stuff p&p built to integrate GAT and DSLs. We also got a briefing in what’s coming for factories after VS08 (can’t blog about that). We ended with a look at the DSL Editor Power Toy, which provides additional views on a given model and allows you to completely replace the graphical editor with a Windows Forms UserControl. I wonder if you could use ElementHost in order to build a WPF based editor?
  • Finished the last Harry Potter book last night. My wife finished it last week but kept quiet about it until I got to the end. No spoilers here, but I wasn’t exactly surprised by how it played out. I wonder what J.K. Rowling will write next?
  • As promised, Silverlight 1.0 RC and Silverlight 1.1 Alpha Refresh were released last week. Also finishing out this beta wave were Silverlight 1.1 Alpha Tools for VS08 and a new preview of Expression Blend 2. Scott Hanselman has all the details on all the releases.
  • In one of his articles on LINQ to SQL, Scott Guthrie mentioned the LINQ to SQL debug visualizer in passing. Now, he drills into that feature in more detail. Apparently, this isn’t a built-in feature of VS08 – it has to be installed separately. Make sure you do that, this seems like a must-have extension for LINQ to SQL development.
  • Jeff Atwood is worried that he spends more time talking about programming than actually programming. That’s exactly why I left evangelism to join MSIT.
  • I’m still way behind on blogs, but if I don’t post this soon, it’s going to be an afternoon coffee. I’ve also got this day job thing that I’ve been away from for several days. So more old news tomorrow.