• English
  • Nederlands
HOME
SEARCH
CONTACT
NEWSLETTER
 
 
 
CONTENT
About us
Call for contribution
Contributions
The CIO talks
Proceedings
Blogs
Master thesis
Forum
Wiki
Events calendar
Links
Login/Register
advertisements
Zoek je een baan?
Zoek je hulp?
Zoek je een opleiding?
Zoek je een boek?
Zoek je een tool?












 
 
BLOGS
The worldwide pitfall of SOA
Jack van Hoof   
Wednesday, 25 June 2008
The promise of SOA is better integration, cleaner data and a higher level agility. But the promise of SOA also is decoupling. The decoupling promise is in contradiction with the way most people are promoting SOA: synchronous services calls.

The problem with this current SOA-hype is that we are tightly coupling our systems in stead of decoupling. I mean: it is all about reuse of functionality, so "calling" foreign services and rely on foreign data via service calls. This makes the performance of your business process dependent on external entities. That is a way of tight coupling. Be aware of this pitfall.

Don't misunderstand me, SOA is not a bad idea. You can rearrange processes rather quickly with reusable building blocks. But on the other hand, the granularity level where the hype wants us to implement SOA - the business process level - is not well fit for reusability and thus dependency. At that level we want to be specific in stead of generic. And we want to be independent on that level. Reusability fits better at the lower levels of granularity.

Think of what happens when we have woven our business processes together with reusable components to share functionality and data resources. What will happen when higher management decides for instance to outsource a part of the business or reorganizes the business into value chains including external parties? It will be a hard job to put the scissors in the neatly integrated processes and shared data resources. Our perfectly built SOA will turn into a nightmare. A better approach at the business process level is to decouple business processes by inversing the grand design:
  • Stop thinking that calling foreign (reusable) services is the best design pattern
  • Embrace data redundancy
  • Concentrate on synchronization
  • Decide what processes in the information domain contain the master data
  • Have the master publish its changes and have your interested processes subscribe to it
Here you start thinking event-driven. It is about reuseable data (events) in stead of reusable services. Some call it SOA 2.0. But unfortunately the hype is still continuing promoting SOA 1.0 (...) at the business process level. So think twice before running after the hype and dare to say "STOP! Wait a minute..." to your CIO.

The inversion of the grand design works as follows. The initiative for data exchange is not taken by the consuming application as in the pattern of calling services, but the producing application takes the initiative. It decouples your applications (and so the supported business processes) and it reduces the load on the data supplier and the network. This also avoids scalability issues.

You can add and remove consuming processes as much as you like without effecting any of the other applications. And the same applies to publishing processes. The consumer's datastore can be viewed as a kind of cache which is automatically synchronized with the publisher's datastore in real-time. And at the same time the consumer is completely independent of the availability of the publisher. So no problem to put the scissors in the processes.

A SOAP oriented ESB infrastructure gives you full reliability and security of this process. And above that the dataflows are a source for real-time business activity monitoring, if you like that. My vision is that you can obtain decoupling (independency), reliability and performance at the (low) cost of redundant data persistency.

When you stick to "calling services" you gain benefits at the level of application construction, but at the cost of higher loads, less predictable performance, scalability issues and higher costs in business level reorganizations.
 
Jack van Hoof




Comments (3)
RSS comments
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it on 26-06-2008 10:00
 
 
Jack, 
 
I agree that services should decouple systems and that asynchronous communication is at the heart of decoupling. The anti-pattern that I see is that services are defined within an application; between components that have high coupling. In my view SOA is about integrating disparate applications. 
 
With respect to replication I see a similar need, but would not want to position replication as the silver bullet. I think you need to carefully look at your process and only replicate when you really need to. Also, replication should be strictly controlled. What you want to avoid is that the master and slave get out of sync. 
 
Regards, 
 
Danny

 
Written by Borjan Cace on 01-07-2008 21:55
 
 
Jack, 
 
I go along with Danny and would like to stress again the essence of SOA. SOA is a means to enable applications with separate life cycles to interact through well-defined services. SOA is not about how one partitions or organizes applications. The fact that SOA enables applications to interact better than before likely influences these architectural decisions, but no more than that. In other words, the existing architectural principles remain, like coherence and coupling; having SOA allows us to do some things somewhat differently.  
 
We should follow the same reasoning when talking about data replications and synchronous services.  
 
SOA neither proscribes synchronous data retrievals nor prohibits data replications. To access data through a synchronous service is an architectural decision that maybe right or wrong; there are trade-offs an architect has to consider and decide.  
 
The same holds for data replications. Many enterprises have their replicated data accessed through synchronous services, and it works just fine. Again, whether or not to build such a solution should be an architectural decision. based on many trade-offs that are not bound to SOA. 
 
Regards, 
 
Borjan

 
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it on 02-07-2008 14:06
 
 
@Brojan and Danny, 
 
You might be interested in this one... 
 
http://www.soamag.com/I4/0207-2.asp

 

Only registered users can write comments.
Please login or register.




Share / deel
Del.icio.us!Google!Technorati!Yahoo!
 

Via Nova Architectura is not responsible for the content of blogs, but authors and readers are asked to adhere the following guidelines. Authors are strongly encouraged to check facts, cite sources, present balanced views, acknowledge and correct errors. Respect copyright, fair use and financial disclosure laws. Please do not disparage organizations, or individuals. Being critical of someone's practice is acceptable, when it is done in a professional manner. Prevent usage of marketing statements. Comments should be relevant to the specific post they are attached to. Spam, flaming, personal attacks, and off-topic comments are not permitted. Readers are requested to notify This e-mail address is being protected from spam bots, you need JavaScript enabled to view it of any violations. The editor holds the right to remove any statements that, in the editors opinion, infringe the above guideline(s). The author receives a notification of this action.
feed image
ISSN: 1877-2994