31 October 2006 - 22:30SOA and N-tier architectures

The more I read about SOA the more I get the feeling that it grew out of N-tier architectures and that one its boosters was the so maligned EJBs.

When you are looking at an N-tier architecture you will probably notice the communication between various nodes providing various services to each other: this node gives you data on commodities, another one on users, another one on tax transactions, etc… The result of such an architecture is a proliferation of services on various nodes, services which have to be managed one way or another. In comes SOA to the rescue which manages the relationships between the services provided by various nodes thru governance (it is a lot more complex that this, but let’s keep things simple). It is the distributed nature of the N-tier architecture that created all these conversations between nodes, conversations which were then turned into services, services which started being managed with an SOA mind-set.
I think I am right when I say that SOA comes from distributed computing and that once the interaction between various computing nodes reaches a certain threshold it becomes mandatory to manage this interaction. If I was to look at the various distributed computing platforms I would pick EJBs as the ones which were dominant in the last 4-5 years, the ones with the greatest mind and market share. The built-in distributed nature of the EJBs has been frequently denounced as resource-hungry, backward, one-size-fits-all design. It would be ironic if this very nature played a part in the birth of the SOA paradigm, a paradigm that promises to start a whole new era in IT development.
What would be interesting to watch is if the various design patterns that the EJBs have spawned (business delegate, service locator, data transfer object, etc…) and that were sometimes denounced as band-aids to EJBs’ horrific problems will appear in one form or another in the IT environment which enables SOA. After all, the above designs patterns are mostly concerned with distributed computing.

Later edit: Communication between various systems existed long before EJBs, this is for sure. However, the EJBs increased the communication between various systems due to their distributed nature.

No Comments | Tags: Development

Add a Comment