Everyone speaks about Service Oriented Architectures (SOA) nowadays, but aren?t we just repeating history? Actually, if you think about it, SOA is really nothing new. Just 10 years ago we called something quite similar ?Component Based Development?, while 20 years ago we had something called structured (or modular) programming.
In reality, what people are trying to achieve when implementing an SOA is a reduction of the number of redundant and inconsistent components that cover the same business functionality. The idea is to have only one version of every component available in the IT environment and to have client programs access these unique components over a corporate network. Isn?t that actually what we all learned when we went to college; remove potential room for inconsistencies and keep maintenance as straightforward as possible?
Is there really nothing new then, when we look at SOA?
One aspect of integrating different technologies in an SOA has definitely changed. It?s the larger number of different development languages ? often incompatible with each other ? that have to be integrated in an SOA. In reality, this is extremely complex work and often leads to failed projects.
Still it is important to do this since an actual reduction of the number of development and deployment techniques in use in any organization would create an important benefit. It would potentially lower the number of technologies an organization has to maintain from a knowledge and skills point of view. This creates an optimal result on achieving what the main goal of implementing an SOA should be: reducing costs, improving agility and freeing up development staff for building new business requirements?