Grid Computing: The Easier Distribution Model
If you’re thinking about adding distribution to your Windows project or starting a new Windows project that uses distribution you will likely read the Microsoft MSDN article ”Developing Distributed Services Today”. This is a great paper to begin your research into the new distribution models available to Microsoft Windows based applications. But one of the basics of distributed computing is that some part of the distribution model needs to run on each compute resource. One of the other basics is that you have to build a lot of stuff yourself.
Historically most distributed products have been built with a proprietary distribution framework. So the work of building the framework is repeated over and over again at different companies and sometimes even within the same company. The efficiency freak in me is freaking. This is a lot of wasted work because it is highly unlikely that the distribution framework you built is delivering a competitive advantage. Now if we talk about small projects built for internal use it is even less likely that the distribution framework is providing a competitive advantage and it is also likely that these projects will not be written as distributed applications. Why? Because the framework is too complicated to build and maintain for small projects. But just because it’s not cost effective to build it doesn’t mean that the project wouldn’t benefit from it.
Enter grid computing. Grid is a distribution framework that provides a standardized approach to distribution. With the Digipede Network the distribution framework is the Network and the work that you want to distribute is run by the Network component called the Digipede Agent. The .NET and COM interfaces available in the Digipede Framework work the way Microsoft developers have learned to work. The developer derives a class from the Worker class, defines the work in the DoWork() method, and sends the work to the Digipede Server for distribution. The code that owns the Worker derived class can register event handlers and receive notification at submission, job, and task levels. The entire substructure of resource availability, job registration, task assignment, etc...is all taken care of by the Digipede Network. The hard part of the distribution process is now limited to you figuring out what you want to distribute.
By using a distribution framework like the Digipede Network you off-load all the work of building the framework yourself. This lets your development team:
- Focus on writing the code that is going to directly benefit your business.
- Add distribution to projects based on need and not project size.
- Build scalable software solutions that will grow with your company.
- Keep the software architecture simple because the entire distribution layer is abstracted away.
And of course you save all the development, testing, and documentation time and money that you would have otherwise spent building it yourself. Just think what you could do with that.
The power of grid computing is no longer just for the Linux crowd and with the Digipede Network; it works the way you work. You should consider grid computing as a distribution model if scalability is an issue; the project is parallelizable, and/or computationally intensive.