Grid Computing and Rich Client
I’m currently sitting in a demo of grid computing with .NET. The system was built by external people (I am not sure if I can say who it is), and is working quite well, at least in demos. They are demonstrating interop with Linux, Windows rich client, tons of complicated data analysis algorithms, including genetic algorithms, and so on. The demo is really dazzling.
Now, I tend to have some personal biases about the whole concept of “grid computing”. In many ways, “web services” is just a rebranding of the whole “distributed computing” meme, and “grid computing” takes us even further down that path. It is a continuation of the “network is the computer” dream. The demo that I am watching right now is very similar to the demos that we saw with RPC, and then years later, with Corba. Of course, things appear to be vastly simpler and more productive today with OGSI than before (and .NET really helps, IMO), but the business problems being solved are very similar. These “grid” demos typically involve things that are extremely computationally intensive, such as crash test analysis, environmental simulation, and so on. You can also make a case that complicated composition or workflow scenarios warrant a grid abstraction.
Which gets to my personal bias. I believe that all of these “distributed computing” paradigms all come down to a model where code is central.I believe that there are a huge number of business problems which are more suited to a data-central view. People will argue that code and data are complimentary, and it can even be argued that code is data, but I am talking about a fundamental architectural bias here. Do you view your system as being one big chunk of RAM, or one big CPU? I think it’s typical for developers to think from a code-centered perspective first, and it takes a certain amount of experience with the boring, bread-and-butter business apps before a developer realizes that the data is the only really important part of the application. Of course, there are still scenarios (and veryimportant ones) where a code bias is warranted, but I don’t believe these will ever account for the majority of what we do with computers.
~
This brings up the question asked by Mike Sanders; what is the business model for rich client apps? The way I see it, there are some apps that simply could not be built without rich client, just as there are apps that require the distributed “grid” paradigms. CAD/CAM programs are the obvious example, BI clients are another. True, web-based applications are pretty successful value proposition for applications like forms-based data-entry, and I’m just as happy as the next guy that we no longer have to deal with silly overdesigned GUI for such apps. But no way am I going to want to use Matlab or SPSS through HTML. The fact that people have trouble imagining uses for rich client is more evidence that HTML has had a blinding effect on people’s imaginations than evidence that there are a lack of such applications.