Separation of Concerns and SOA
November 24th, 2008 at 1:39 am by Michel KlabbersAccording to Google Trends SOA is not as “hot” as it was a year ago. According to a recent poll by Finalist [0] at the J-Fall [1] SOA is actually very “not”. Does this mean that companies are already preparing or even using SOA? Or are they abandoning SOA?
The idea behind SOA is actually very good. It loosely couples the service and the front-end, thus separating our concerns. The term seperation of concerns (SoC) was first introduced by Edsger Dijkstra about 35 years ago. The Wiki has an interesting qoute on SoC [2]:
“All programming paradigms aid developers in the process of improving separation of concerns. For example, object-oriented programming languages can separate concerns into objects, and a design pattern like MVC can separate content from presentation and data-processing (model) from content. Service-oriented design can separate concerns into services.”
In this context SOA really looks like the next step in programming.
Assuming your company is planning to “go SOA” in near future, what challenges await?
Here are some of the implications that come to mind when using SOA:
- use of external services means higher internet bandwidth usage
- exposure of internal services to external companies means additional security measures become necessary
- using just a single connection to external services means a higher chance of losing messages
- use of possibly badly written external services means additional infrastructure and code measures, such as timeouts, become necessary
- when chaining services complex behaviour can emerge and message based testing tools are highly advised
Using SOA we also have to be more aware of:
- connection failure
- message loss
- service failure
By using a polling mechanism we could improve our awareness, but the transition to a Service Oriented Architecture will still be a step-by-step process [3], where we will learn by doing.
- [0]: http://www.finalist.com/content/19787/hot_or_not_contest_vermaakt_bezoekers_j-fall_
- [1]: http://www.nljug.org/jfall/
- [2]: http://en.wikipedia.org/wiki/Separation_of_concerns
- [3]: http://it.toolbox.com/blogs/the-soa-blog/soa-benefits-challenges-and-risk-mitigation-8075
Popularity: 1451 points


November 24th, 2008 at 2:49 pm
Other sites also mentioned a decreased interest in SOA, but on the other hand, where does that movement (if true) leaves us a software engineers ? I think it is interesting to evaluate whether this is a good or bad movement.
One way to look at it is that it is now mature,as you suggest. Which might actually be a good point to begin with. Since this will make decission makers realize that SOA won’t be the silver bullet, just like other technologies weren’t.
This will make organizations maybe a bit more defensive as to invest in SOA, but on the other hand this might create an attitude of more-over-thought SOA implementations. There will possibly be more collaboration and devotion by the full business to the SOA implementations, which will increase chances for success.
And for developers there is no reasons to expect changes, we still start OO/Java projects everyday although these haven’t been hot in years