With this post, I'm starting a series of blog entries describing how a distributed application should be built. I'm not making any claims that how I build distributed application is the only way, or even the best way. Instead, I'm trying to do what I described in my
initial post on this site: Create a context in which people can think about building distributed applications.
There are two distinct ways to think about a "How-To" approach. One is to focus on the architecture and design of distributed applications. The other is to focus on the process for building distributed applications. I plan to focus on both aspects of the "How-To" because I've come to understand that they are fundamentally related. In fact, I use the same underlying mental model for both (more on that a little later).
One thing that's clearly true about distributed systems design and the software development lifecycle is that they are both primarily realized through a collection of "best practices" rather than as an expression of any coherent theoretical foundation. The best information available in both domains comes from the experience of successful practitioners. Unfortunately, it is often difficult to distinguish which practices really contributed to success and which were merely incidental. Moreover, advancing the state of the art becomes both tedious and risky. Without a theoretical framework to guide us, we stumble around in the dark looking for ways to improve our efforts.
In an effort to shed some light on these topics, I'm going to put forth a model that will serve as unifying model for discussing how we build distributed applications. As always, your feedback is welcomed.
Posted
Jan 12 2006, 02:54 PM
by
john-cavnar-johnson