This posting was triggered from a conversation with Mark Masterson (available here), which sprang from topics mentioned in Tim Bray's Wide Finder blog swarm.
As we watch a fundamental shift in system architecture, migrating towards large quantities of processors/cores on single machines, many people are discussing corresponding need for shifts in programming languages, programmer skills, and techniques.
Rather than assuming computer languages and coding techniques will evolve to meet this change, it seems prudent to consider the possibility of an environment containing thousands of little SOA web services and various other LAMP-based applications.
I'm less interested in whether this is the right thing, as much as I'm interested in the possibility of anticipating it and preemptively shaping it to avoid some of the potential pitfalls.
Or as Mark puts it,
I think the great challenge for us is how to find a way to enable and allow that paradigm, as a welcome and valid part of our EA.Is the answer a combination of LAMP, embedded computing, cluster management, and virtualization?
For its part, the LAMP stack brings an emphasis on
- HTTP-based services
- multiple storage models (DB and Filesystem)
- System-level containment
- Commodity components
- Asymmetrical host and target environments
- System-level packaging
- Minimize ongoing support
- Uniformity of management
- Holistic view of many machines
Here is a parting thought. While cogitating on the topic, I recalled a posting from Andrew Clifford. In The dismantling of IT, he postulates a simplification of IT Architecture. I mildly questioned the viability in this post, but I'm beginning to wonder if some variation of this approach is capable of providing part of what Andrew is pondering.