Morning Coffee 76

  • Dare Obasanjo sez Cool URIs Don’t Change. He’s got other versioning advice, but that’s the main takeaway. Good advice that dovetails nicely with “It’s the URI, Stupid“.
  • I usually agree with Jack van Hoof’s stuff, but I don’t agree with his thoughts on loosely coupled transaction processing. It’s much better than suggesting the use of 2PC system like WS-AT, but when he writes that “by design every action has a compensating action to undo the original action” I am reminded of Pat’s old post Why I hate the phrase “Long Running Transactions”. Personally, I’m a fan of using the Tentative Operation or Reservation pattern, described by John Evdemon. Note the lack of a transaction coordinator in that pattern.
  • Speaking of service anti-patterns, I wonder how we rationalize the following two statements, both from Microsoft, in documents published by my old team:
    • “CRUD operations are the wrong level of factoring for a Web service. CRUD operations may be implemented within or across services, but should not be exposed to consumers in such a fashion. This is an example of a service that allowed internal (private) capabilities to bleed into the service’s public interface.” John EvdemonPrinciples of Service Design: Service Patterns and Anti-Patterns, Readings in Service Orientation
    • “It is very common for Entity Services to support a create, read, update and delete (CRUD) interface at the entity level, and add additional domain-speciic operations needed to address the problem-domain and support the application’s features and use cases.” Shy Cohen, Ontology and Taxonomy of Services in a Service-Oriented Architecture, Journal 11
  • Ian Thomas wonders Does ERP suck? In a word: Yes! 😄 Seriously, I’m a strong believer in what Ian alternatively calls “unbundling” and “disaggregation” of monolithic enterprise systems – ERP is the most glaring example of such systems.
  • Jamie Cansdale is figuring out how to host Silverlight’s CLR outside of the browser. He’s already got a console runner up and running. He’s working of adding “Test With Silverlight” option to TestDriven.NET. You go Jamie.

Morning Coffee 71

  • It’s been almost four months since I started these morning coffee posts. I like the regularity – there’s been 84 weekdays so far this year, so 84 – (71 + 6 days missed from vacation) = only seven missed morning coffees. On the other hand, I think my daily blogging fix is keeping me from digging deeper into some issues. So I’m going to start cutting back to only three morning coffee posts per week, with the hope of three deeper technical posts and one wildcard post per week.
  • Speaking of cutting back, my parents are in town this weekend so I doubt I’ll get a post out tomorrow or Monday. Have a good weekend anyway.
  • Windows Server “Longhorn” Beta 3 is out. Now is time to start getting serious with it.
  • Joe McKendrick is reporting that Gartner has given the green light to spending more on SOA. Maybe it’s because I work for a technology savvy company, but I’ve never understood outsourcing critical business decisions about technology adoption to a consulting company.
  • It’s a Joe McKendrick twofer: He also reports that IBM is calling for a new SOA directory / discovery / registry standard to replace UDDI. I totally get the need a “new UDDI”, though I’d wager that my issues with UDDI are very different than Big Blue’s.
  • Yesterday, I made a crack about how un-scalable the Internet would be if every cFonnection went thru a central hub. Two days ago, Clemens has a long post about the implications of an Internet Service Bus. First, I can’t wait to see how that thing works. Second, it’s fairly obvious that not all traffic will go thru this bus (since the bus ain’t out yet and yet you’re still reading this via the Internets), so maybe that answers my question about ESB’s and centralization? That is to day, use the bus where you it’s useful, otherwise don’t bother?

Enterprise Service Bus? Give Me an Extra Special Bitter Instead

I went to a talk on BizTalk and ESB at lunch today that was sponsored by the local connected systems user group. Like many terms in this space (SOA and governance to name two others), ESB doesn’t seem to have a consistent definition. The industry seems to be inventing terms at a fair clip as vendors attempt to differentiate themselves on what to me seem like fairly minor solution aspects.

Today’s speaker talked at length about a “large health care company in California” that he had personally worked with, building an ESB for them with BizTalk. He spoke in glowing terms of the size of the BizTalk environment and the number of messages passing through the bus every day. Then someone asked how many systems this unnamed company had hooked up to the bus. He paused, then admitted: “Six”.

Six? Not six whole systems! That’s gotta be a record!

Of course, I realize that there are deployed ESB’s out there that are integrating more than six systems. My group – the Integration Center of Excellence (ICoE for short) – runs a comparably sized BizTalk environment and we’re connecting around 50 internal systems and hundreds of external partners. But 50 is still a fairly small number. I can’t help but wonder how well will this ESB approach is going scale as the number of systems goes up a couple orders of magnitude. Frankly, I think the answer is “not well”.

The problem I have with ESB is that it’s a centralized approach. Given that one of the overriding trends of society in general and IT in particular is decentralization, the ESB approach feels like it’s swimming against the current instead of with it.

As an analogy, consider how well would the Internet work if every connection went thru a central hub? See what I mean? Centralized systems don’t scale like decentralized ones do.

I admit that there are scenarios where ESB-esque technology solves a practical problem. Transport adaptation and content based routing leap to mind. Services that need those capabilities should leverage ESB-esque technology. But whenever I listen to ESB proponents, I feel that the need for these capabilities is exaggerated to the point that every message exchanged between every service inside your enterprise travels on a central bus, which doesn’t seem realistic to me.

Am I wrong about this characterization? Do ESB proponents think that all messages must travel on the bus? How about you? What do you think? Inquiring minds (aka me) want to know…

Morning Coffee 65

  • My brother is a VaTech alumni, so the shock of the deadly shootings there yesterday hits very close to home. My heavy heart is with the grieving Hokie nation today.
  • Jeff Atwood has a couple of greatposts on Language vs. Platform. Earlier in my MSFT career, I spent a significant amount of time explaining .NET, often to companies that had made a significant investment in Java. Picking the Java platform is fine (it’s almost the best platform around!), but it seemed many people I spoke to didn’t understand the fact that “[w]hen you choose a language, like it or not, you’ve chosen a platform“.
  • Ian Thomas riffs on my When is a Service Not a Service post. I like Ian’s thinking about SaaS as an analogy for SOA adoption – if for no other reason that SaaS is easier to “get”. But trying to realize SOA via SaaS inside the enterprise is a mistake in my opinion (and I think Ian would agree with that). SaaS is a business model, and I don’t think you want to turn your enterprise into an internal service marketplace. Instead, this ties back with Nick Malik’s points about central planning. Regardless if I’m right or wrong, I subscribed to Ian’s blog (and not just because he linked to me – check out his Elements of the Future Business Ecosystem)
  • TLA Watch: Oracle coins Application Integration Architecture (aka AIA). Joe McKendrick calls it “Big SOA”. Isn’t this the market segment that BizTalk has been in for seven years?

Morning Coffee 63

  • My friend Christoph Schittko (who used to blog here, but hasn’t written anything in almost two years) recently wrote on an internal email thread that he “wonder[s] how many more attempts for “enterprise wide” thingies we need for people to figure out that there’s too much complexity involved to coordinate anything enterprise wide.” I couldn’t agree more, though I think it’s more than just complexity at work here. There are significant forces driving decentralization in society in general and IT in particular, and anything enterprise wide is by definition centralized.
  • I’m way behind on this, but Ray Ozzie did an fascinating interview with Knowledge@Wharton. I was especially interested in his separation of “big-I” and “small-i” innovation. Sounds like disruptive and sustaining innovation from The Innovator’s Dilemma to me.
  • According to Mary Jo Foley, my ex-teammate Mike Walker is “da man” on Office Business Applications, or OBA’s.
  • I think I have an old PocketPC hanging around in a drawer somewhere. Apparently, I can use it as a caller ID server instead of gathering dust. That’s sorta freaky. (via Backstage @ MED)
  • Quote of the Day: “If you have a live show on a TV network, Its not good to have a brain fart during a slow news week.” – Mark Cuban. Personally, I don’t care one way or the other about Don Imus, but Mark’s points about the conservatism of media corporations are spot on.