This topic one of my favorites. In the IT sector there are several topics which priority goes up and down. Somehow we always go to the start point. If we look into this topic from above, we think the form what we are creating is a circle, but if we look into space, the form what we are walking thru is much more a spiral form.

Currently the most important topic in this area is the paradox how we are implementing a system. Previously everything was implemented in one system. Later we separated everything to standalone systems. Now we have a hell of interfaces, which may an ESB implementation is a Holy Grail, but I much more think an apparent symptomatic treatment. The way of healing would be much more integration of functionalities into a single system which belongs together. ESB in an ideal case would be used only for external communication, to reduce the development needs of the external parties. After this prologue, what could be the subject of my article?

I think we currently arrived to the start point, and we need to build our mainframe for the 21th century.

If I would need to build this mainframe, it would be run on a grid infrastructure for sure. Every component could run on physical environment, as the machine will able to use all of its resources. The system will scale online without outage, so we can increase, decrease the resources without any painful outage. Components can be upgraded without pain. Because every component has redundancy we can change them without any outage. What could make this architecture successful, it must have the following functionalities:

Integrated development environment
Integrated intelligent logging system
Integrated Change management system
Integrated Performance monitoring and tuning system

For the system build I would use the following concepts:

It should run on a free Open Source platform, which react immediately to the technological evolution.
It's built from the same kind of universal components. Components from different domains, which can be isolated like island solutions on version change.
In every component we should minimize the processing time / latency, to make the system well performing.

In this system we need to develop the components on three different layers:

UI layer
Processing logic layer
Persistence, data layer

Later I will write a detailed article on each component, and a basic concept on a new breed of application server platform what we could create if we thinking about this concept.