Morning Coffee 51

  • Visual Studio for DB Professionals – my favorite new part of the Visual Studio – won a JOLT award. Congrats to the Data Dudes! (via Knowing.NET)
  • When they’re older, I’d like to send my kids to Tinkering School. Come to think of it, I’d like to go with them to Tinkering School. According to Geekdad, they’re looking helping others set up their own Tinkering Schools. I wonder if Jules would be down to help me run one?
  • Sandboxie is a sandbox environment for your windows based PC. Basically, it traps writes to the filesystem and registry and stores them in a seperate file that is easily tossed away. Sort of like virtual machine differencing drives, but for your host machine. I’ll have to check it out. I wonder how it compares to Microsoft’s recent aqusition Softricity? (via Larkware News)
  • I didn’t realize Bug Bash had an external website. As per the about page, Bug Bash started “a comic strip in the company newsletter of a large northwest software company…[who's] name rhymes with ‘Microsoft’.” It is a hilarious Dev/IT focused comic strip from the same guy who writes Mr. Cranky. Subscribed. (via Coding Horror)

Morning Coffee 50

  • Nick Carr on net neutrality: “Protocol is neutral. Infrastructure isn’t.” This is a more complicated issue than it appears on the surface.
  • Nick Malik on enterprise architecture: “Enterprise Architecture is not about ‘building solutions right’. Enterprise Architecture is about ‘building the right solutions’.
  • If there had been a good quote on Nicholas Allen’s blog today, then I could declare it “Quote a Nick” day. Alas, his posting on how to respond to GetProperty isn’t very quotable.
  • Hot on the heels of the new GAT CTP is the new Software Factories Toolkit CTP from Clarius. Among other new features is a Recipe Designer. Having mucked around in the Recipe XML, this is A Good ThingTM (via Larkware)
  • Politics 2.0 Watch: Phil de Vellis – the guy that made “Vote Different“, the Hillary Clinton/Apple 1984 video mashup – said he made said video in part because he “wanted to show that an individual citizen can affect the process”. Furthermore, “This shows that the future of American politics rests in the hands of ordinary citizens.” Personally, Bush as Big Brother would have been more appropriate, but I think the video got more attention becuase it cast Hillary in that role.

When is a Service Not a Service?

Conceptually, I like both Service Oriented Architecture (aka SOA) and Software as a Service (aka SaaS). However, I think we’ve done the industry a disservice by overloading the term “service”.

John deVadoss likes the following definition of SaaS from Wikipedia. So do I.

Software as a service (SaaS) is a model of software delivery where the software company provides maintenance, daily technical operation, and support for the software provided to their client. SaaS is a model of software delivery rather than a market segment; it assumes the software is delivered over the Internet. Software can be delivered using this method to any market segment including home consumers, small business, medium and large business.

To paraphrase, SaaS is software that traditionally you might have bought, installed and run yourself but instead now can access over the network where someone else is responsible for installing and running it. For example, instead of buying, setting up and managing my own mail server to handle a single @devhawk.net email address, I use the WL Custom Domains service.

SOA on the other hand isn’t a model of software delivery, it’s a model of software segmentation. Again, here’s the Wikipedia definition, this time for SOA:

There is no widely-agreed upon definition of Service-oriented architecture other than its literal translation that it is an architecture that relies on service-orientation as its fundamental design principle.

Err, that’s not very helpful. Let’s check out the OASIS definition (cribbed from Wikipedia).

[SOA is] A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.

Well, at least it’s not a self-referential recursive definition. But it is littered with committee-speak. (Who talks like that in real life?) Frak it, here’s my definition:

SOA is a way of implementing IT systems as a web of interconnected yet independent loosely coupled subsystems (typically called services) instead of as big honking systems we have traditionally built that tend to be unwieldy, in-agile, difficult to change and probably obsolete by the time they were deployed.

We could argue about the language, but you get the point. There would be a ton of argument about the size of the subsystems (i.e. the service granularity), but I think most people can agree that SOA encourages building multiple smaller interconnected subsystems instead of one big (honking) system.

Which brings me back to my original point: Service, in the SOA sense, describes the approach to factoring parts of an software solution. Service, in the SaaS sense, describes a software delivery mechanism. Certainly, you can use both together and take an SOA approach to building a SaaS product. But you don’t have to. So having the same term “service” used in both is very confusing.

How many SaaS products use SOA today? I would guess “not many” since there hasn’t been much demand for it. When you’re selling to the long tail of the LOB market, support for service-oriented integration isn’t a critical selling feature. As SaaS becomes more attractive to larger companies (i.e. ones with dedicated IT staffs), using a SOA approach will be more important to SaaS product vendors. So they will converge in a way, but not in the way their naming suggests.

Of the two uses, SaaS seems closer to the dictionary definition of service. Maybe the S in SOA should stand for “Subsystem”? Nah, I like the term “connected systems” better than “service oriented” anyway.

Morning Coffee 49

  • The eBay Architecture SD Forum presentation that spawned the whole Transactionless meme is available here. As I reported yesterday, it doesn’t call for going completely transactionless as Martin suggested. It calls for going without distributed transactions, which I agree with 100%.
  • More interesting than the transactional aspects, I found the data tier functional segmentation information facinating. Too bad those guys aren’t using our platform, SSB was expressly designed for exactly this sort of segmentation. I also liked that step 1 for “massively scaling J2EE” is to “throw out most of J2EE”.
  • After going mostly dark since last august, the manager of my old team John deVadoss has been blogging up a storm since the beginning of March. So has my old boss Mike Platt. I wonder what happened at the begining of March? Here’s hoping this blogging fever spreads on my old team.
  • Joe McKendrick: “The bottom line is that ROI on SOA is an enterprise challenge, not an IT challenge.” Truer words are rarely spoken.
  • The rumor mill on the Black Xbox 360 “Elite” are coming fast and furious. I don’t care about the HDMI port (my HDTV is five years old and doesn’t have one) but I would like a bigger hard drive…

Morning Coffee 48

  • John Backus, leader of the team that developed the first high-level programming language, died yesterday. It’s been a hard year so far for IT industry luminaries. (via Good Math, Bad Math)
  • Yesterday, I followed on Martin Fowler’s post on going transactionless. As I said yesterday, I didn’t agree with the idea of no transactions inside a service, but I agree 100% with no transactions between services. Via Paul Brown, we learn that EBay does allow forbids the use of client-side or distributed transactions, but doesn’t outlaw the use of transactions in general. That makes much more sense to me since transactions between services would have to be are distributed.
  • Wired just launched a new blog called GeekDad with the mission statement “Cool toys and fun projects you and your kids do together”. Subscribed (via The Long Tail)
  • DevHawk made Todd Bishop’s Microsoft Blog Directory. It’s in the “Software Development and Design” section. Not sure why I’m listed above Raymond Chen, John Montgomery, Chris Sells and Don Box in that section, but that’s nice company to be included with.