Afternoon Coffee 59

Friday’s Morning Coffee didn’t happen because I fraked up the DNS settings when I moved devhawk.net to a new registrar. Today’s morning coffee was drastically delayed on account of car troubles. Tuesday, I have an 8am meeting so tomorrow’s not looking good either.

  • The big news for Xbox 360 is details on the Spring Update. Big news is WLMessenger integration + a QWERTY thumb pad that snaps right into the controller. (via Gamerscoreblog and Major Nelson)
  • Speaking of Xbox, I completed the Old Spice Experience Challenge today on my lunch break (couldn’t go to the office due to the car troubles). My reward is an upgrade to level 2, a gamerpic I’ll never use and a free copy of Contra. (Estimated total value: $5)
  • Scott Guthrie continues his series on new language features in C#3/VB9. This time it’s lambda expressions. This is the “killer” feature in the new language version IMHO, since you can use lambda expressions either as code or data. Furthermore, it’s up to the class/method handling the lambda expression to decide if it should be treated as code or data. That decision is made and design time, but the upside is that as a developer, I write my queries exactly the same way regardless if they are to be executed directly (aka code) or analyzed (aka data). Scott also metions a few new LINQ to * projects: LINQ to Amazon, LINQ to NHibernate and LINQ to LDAP.
  • Speaking of LINQ to *, here’s LINQ to 3D Objects in a C# ray tracer. I think it’s safe to say that LINQ to *whatever* is the new hotness. (via DotNetKicks)
  • The new version of F# is out. Looks like the big new feature is Active Patterns which is described in this draft paper. If I only had more time to investigate this. (via Don Syme)
  • For the third time in the past six months, my laptop power supply has died. I’ve never had a problem like this before, much less three times. It’s not even the same laptop as I recently moved over to a Tecra M4 Tablet. I just don’t get it.
  • P&P has shipped the 3.0 release of Enterprise Library. Tom Hollander has the details. Personally, I am most interested in the new Policy Injection Block.
  • Having worked with self-signed certificates and understanding what a PITA they are, it’s nice to see that IIS 7 has explicit support for them.
  • I saw a reference to “The Halo Effect” on one of the political blogs I read. Needless to say, as an Xbox gamer, my first reaction was that this had something related to Master Chief. It doesn’t.
  • Joe McKendrick compares SOA governance to national governance. Given our polarized political climate, this analogy may hurt more than it helps. Also, the next enterprise architectural board that has equal “branch” footing with IT and executive management will be the first.

Morning Coffee 52

  • I finally found a use for the free SOA book I got from attending that Thomas Erl workshop. I’m using it to prop up one end of my daughter’s mattress while she’s sick so she can sleep better.
  • Jeff Tash states axiomatically that CASE has evolved into Enterprise Architecture. I agree with his points about why software construction isn’t like manufacturing, but he seems to be describing BDUF rather than EA. I’m anti-BDUF too, but why blame EA? (via John deVadoss)
  • Joe McKendrick comments on my SaaS/SOA post and wonders if SOA should stand for “SOA Oriented Architecture”. He also writes that most organizations these days don’t have an SOA, they have an AOS, “Agglomeration Of Services”. So true, so true.
  • JD Meier talks up the new VSTS guidance available on CodePlex. Looks like some good stuff in there. I like how the p&p guys are moving from documents to wikis to deliver their guidance.
  • I’ve held off on getting the HD-DVD drive for my Xbox, but I think I’m going to cave soon, where soon == about two months. That’s when The Matrix Trilogy is released on HD-DVD. Right around my birthday too, how convienent.

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 34

  • Old news, but Reflector 5.0 is out. W00t! Not sure when Scott Hansleman became chief Reflector cheerleader, but he’s got the rundown on the new features.
  • Politics 2.0 Watch: OpenCongress. Sort of like Wikipedia for government. If we can disseminate information on bills and resolutions via the Internet, couldn’t we collect votes on them as well?
  • I got my hardcopy of Powershell in Action while I was on vacation. Highly recommended.
  • Sam Gentle is starting to dig into WF, and he posts about the difficulty getting data in and out of workflows. He’s using the ExternalDataService infrastructure which I don’t like very much. I recommend getting friendly with the WorkflowQueuingService which is the low-level communication infrastructure that ExternalDataService builds on top of. The WQS docs are severely lacking, but it’s fairly straight forward to figure out.
  • Speaking of WF, Tomas Restpro reviews Programming WF. Sounds fairly introductory. Personally, Essential WF is one of the best tech books I’ve read in a long time, so I’ll be skipping this book.
  • My teammate Dale is continuing his daily posts on his blog.
  • Joe McKendrick wonders if EDA is the new SOA. Frankly, both terms are so poorly defined that it’s hard to determine exactly what each term means, much less how they’re related. If you’re an IT industry analyst, you probably can make a ton of cash describing the differences between them. Maybe it’s me, but I don’t see that much value in SOA without EDA. In fact, I’d go so far as to say service orientation without events isn’t much a new architecture paradigm at all. It’s just the Same Old Architecture with better support for interop.

Morning Doughnuts 6

  • The Wall Street Journal is reporting that Massachusetts lawmakers are considering a bill to punish retailers for leaks in personal data. I wonder how long it will take for a law like that to go nationwide? Looks like there may be some good jobs in retail IT data security opening up shortly.
  • There is an interesting debate on the SAAS architecture in Dr. Dobb’s Portal. The money quote for me was as follows:

“Ajax and Web 2.0 are great technologies for casual use, but for mission critical you need the capabilities of a desktop app,” RightNow CEO Greg Gianforte says.

I have to admit I don’t agree with that quote at all. It seems pretty shortsighted in minimizing the capabilities of web based applications.

  • As a follow-up to yesterdays entry about the 12 steps to overcome email addictionhere is a 12 step program to help you overcome being a SOAholic. There are also some symptoms you can look for to see if you are a SOAholic.
  • Ram Ravishankarposts on if SOA requires web services. He makes pretty good arguments for an against a SOA requiring web services and ultimately doesn’t answer the question. I would say that a SOA doesn’t require web services, but it is very likely in the range of 90% plus that a SOA within a company is going to have at least some web services in it.
  • Harry returns from his secret mission and will be back blogging on Monday. I have really enjoyed stepping in being a replacement blogger this week. While my take on technology is a bit different that Harry’s I hope that my entries were interesting and offered a bit of a different perspective on IT.