AWG Blogs

Friday, June 15, 2012

Biological Architecture of Software Applications

Organs communicate through the medium of interstitial fluids, i.e. the environment of the body. The sun communicates with the open system of Planet Earth through an environment of space. When you look around self-sustaining systems communicate through indirect mediums. Why should software architecture be any different?

The easiest-to-develop and most self-sustaining software is done, I propose, through a combination of the Observer design pattern and Environments. These Environments are the Observables that trigger events whenever properties are set; Observers (like cells and enzymes) subscribe to those property initializations of interest and may set further properties on their Environment. Environments may subscribe to the property change events of other Environments and so forth. This is a more natural way to design implement software. DCI on steroids if you will. Makes DDD look rather stodgy by comparison....