Daily Archives: February 20, 2007

Windows Workflow Foundation: Concurrency by Stealth

I just picked up this thread by Joel Pobar discussing the current state of play with concurrency in computing. I respect Joel, he is one of the smartest people that I know and I think that he is right, we will end up with a lot of the hard work done down in the plumbing but it still isn’t going to be for free. The software that we write is going to need to tackle problems in a different way.

First of all we are going to need to make it fairly obvious which parts of our code base can be executed on a seperate logical thread, this will allow the scheduling routines in the runtime/operating system to start to leverage those multiple cores that we have at our disposal.

Enter Windows Workflow Foundation

Windows Workflow Foundation is not the first attempt by an organisation to provide a workflow solution that targets developers and users alike, but upon closer inspection the actual architecture of WF leads me to believe that it will be one of the vehicles that programmers (on the Microsoft platform atleast) use to achieve a higher degree of concurrency potential in their applications.

One of the partners of concurrency is asynchronicity and Windows Workflow Foundation is designed from the ground up to support the asynchronous execution of business logic. Each workflow is invoked on its own thread and within the workflow you can have multiple threads of execution.

Where it gets interesting is that it forces interactions with external services to follow an asynchronous pattern where you invoke an external data exchange service and then wait for an event to come back. This forced seperation triggers the developer to consider WHEN they need the result of an external service call and allows the runtime to schedule those calls as background operations while the main workflow thread continues.

WF has simply addressed the problem of how to visualize concurrent programming constructs, its a technology that is available right now and developers are already starting to use it, in effect we are building in concurrency into our applications by stealth.

Vista: It’s a frick’n operating system people!

Lately a lot of people have been talking about Vista lately. Some of it good, some of it bad, even folks like Mini-Microsoft are questioning the outcome so far. People are asking questions like “Why should I upgrade to Vista?”.

Its a good question, but to be honest, its not going to be the operating system itself that gets peoplt to upgrade, its going to be the applications, and specifically the applications that ONLY run on Windows Vista – right now there are precious few. Even Office 2007 isn’t a Windows Vista exclusive.

Love thy developers!

Once again the thing that is going to drive adoption of Windows is the legion of developers world wide producing niche applications who have decided to invest in a Windows Vista exclusive technology.

Vista is much more interesting from a software developers perspective because it bundles a whole bunch of technologies together removing setup dependencies along with the few unique features of the platform itself. While the adoption may happen slowly at first (adoption of Windows XP was slow as well remember) it will ramp up increasingly so as the aftermarket APIs begin to arrive from Microsoft and other vendors.