on Mar 1st, 2007Distributed Applications : is it the future ?
Computing populous grows in astounding numbers. The number of people who use a computing engine in their everyday life has almost doubled in the last five years. Considering that only a fraction of the world is digitized and as time progresses, more people will use computers on a regular basis, we are going to be in a crunch of physical resources for such a crowd. And by crunch, I don’t mean programmers who can conjure up code, but physical machines that can provide on demand computing power.
The adopting rate of computers across the world cannot be compared to the manufacturing rate of servers and other high end computing devices. No wonder, distributed technology is being looked at as a viable alternative. Virtualization of resources will be at its peak growth in the next couple of years. As more and more applications try and self sustain their growth, many will be trying to leverage the technology offered by companies like Akamai, that distributes and mirrors content across multiple servers in the world for more faster and reliable delivery of content. A look at Yahoo’s sites and you will know what I am talking about.
Every application developed 10 years from now will have to be designed to be distributed. There is hope that high level platforms like Java and .Net probably will probably support seamless integration of distributed architecture into sequential programs but thats too far fetched. Distribution in itself will pose many scenarios, there could be hardware dist, program dist, data dist even execution dist. Such scenarios are bound to present challenges amongst designers and architects alike.
How are we future proof in a certain way ? : If you have adopted modern day platform based languages like Java or any of the .NET languages you would be familiar with lots of programming constructs that help serialize access methods to make it thread safe. Take that concept and think of it in a distributed way, rather than multiple threads writing to an object, think multiple machines or pieces of code. Im not saying, its panacea, good work will go into envisioning such an architecture, but we should be able to manage existing apps for the next 10 years at least.
Another interesting point of view is new programming methodologies. The more recent Aspect Oriented Programming (aop) is designed to focus on a entity like security, data abstraction or monetary rules across the length of the application. Could the distribution also become an aspect of the application. Its an intriguing thought and one to ponder over.