• 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
SOA: no silver bullet
Danny Greefhorst   
Wednesday, 30 January 2008
As an IT professional I am often confronted with people that try to convince others that SOA and ESB are the holy grail. Such statements simply give me goosebumps. As a subject matter expert I know that although SOA and ESB do provide a lot of best-practices, they do not provide the ultimate solution. Also, most of these best-practices have been around for a lot of years and SOA and ESB are simply new labels pushed by IT providers. I will explore SOA and ESB in a little more detail in the next two sections and support my previous statements with specific insights.

I consider SOA to be a new a label on best-practices such as Enterprise Architecture and Component Based Development (CBD). Services are positioned to be the concepts that align business to IT. This is similar to what Enterprise Architecture aims to provide, and calling things "service" does not make enterprise architecture different. A few years earlier the term "component" was positioned with similar intentions; then called CBD. In fact a lot of people really mean "component" when they use the term "service". CBD was also focused on standardisation and reuse; nothing new here either. It is true that certain standards have now gained broader industry acceptance, but that does not make SOA different from CBD. In general I feel that organisations should not try to invest a lot of money to implement SOA, since SOA is not a goal in itself. Instead they should take an Enterprise Architecture approach. They should look at their strategic goals and organisational issues and carefully selected and apply the right elements of SOA.

ESB has also become a container term, missing universal agreement on what it really is. I encounter people that think that it is the ultimate glue between applications. Although that may be sufficient for some, for others it seems to be an excuse not to think about the real integration issues. An ESB is not a single piece of software that you can simply plug into; it is basically the collection of all integration infrastructure in the organisation. As such, careful selection of the right infrastructure for specific situations is necessary. In addition, architects, designers and developers need to be aware of the peculiarities and restrictions of specific infrastructure. Also, they need to select the right design patterns to actually use it. All in all, simply drawing an ESB component in your component model is not enough. Another problem that I have with the term ESB is that it seems to imply that there always needs to be some intermediary component (the ESB) in all integration scenarios. In my view intermediary components should be applied very carefully. Functional decoupling can be achieved by defining a neat functional interface for a service, that is independent of specific requesters and that uses a canonical data model. Technical decoupling implies using standard protocols and naming and directory services; not something that requires an intermediary. Also, intermediary components are often supported by specific departments that make development projects more complex. I also see these departments pushing their solution beyond where it adds value.

It should be clear by now that organisations that think SOA and ESB will solve their problems need some rethinking. Making a business case for the implementation of SOA is probably not such a good idea. In general I think that application integration is an issue that does require a lot of attention. Instead of writing business cases for SOA or general SOA visions time is however probably better spend on Enterprise Architecture and integration architecture. An integration architecture can focus on the specific integration issues that exist in the organisation and find appropriate solutions and patterns.




Comments (6)
RSS comments
Written by Joost de Vries on 31-01-2008 19:35
 
 
Those are a lot of interesting points you're raising. 
 
I'd like to highlight your scepsis regarding the desirability of introducing an intermediary component. I think central components have a tendency to become major barriers in innovation in organisations. So your advice to muster great restraint in introducing them sounds very wise to me. Can it be that the fondness to introduce central components is directly correlated to their single defining characteristic: they're involved in everything that transcends the scope of a single project/application/organisational unit and as a result represent power to architects/ISPs/vendors? A more charitable explanation is that they provide a locus to enforce standardisation to prevent maintainance nightmares. 
 
Personally I'm under the impression that a central component should be as lean as possible and play a very commoditised role: it's services should be well understood by the organisation and easy/simple/quick to provide. So that it's like the use of tcp/ip networks in organisations or like the use of commoditised applications (ERP) are meant to be.

 
Written by Danny Greefhorst on 31-01-2008 19:35
 
 
I do think that vendors play a role; they have a direct concern in selling software products and additional licenses for additional use. It would be strange if they would tell you that you really do not need an ESB software product; that would be like a car dealer telling you that a bike is cheaper and healthier for you. 
 
I concur with your view on central components. I would even extend it to the principle that infrastructure in general should be kept as simple as possible, perform a well defined function, and should not be extended with custom code. I still see a lot of organisations spending large amounts of money in developing their own infrastructure or wrappers around infrastructure. In addition, this custom infrastructure often turns into a monster that is hindering change since lots of applications have become dependent on it.

 
Written by Hans Bot on 01-02-2008 07:58
 
 
Is there really a valid reason, I wonder, why a single CRM service can fit the needs of an entire enterprise, just like an ERP service, or data warehouse, whereas an enterprise service for application integration or an enterprise nervous system seems to be a pipe dream? Are the shortcuts in integration issues sincerely different from bypassing the enterprise directory for authentication and authorization, or any other precious design principle?

 
Written by Danny Greefhorst on 01-02-2008 14:03
 
 
I am not stating that you should not strive for generic integration infrastructure, standardization or reuse of services. To the contrary; these are absolutely best-practices that you should apply. My message is however that you should apply them carefully. 
 
With respect to the shortcutting you refer to; I would like to see it as using the right tools for the right purposes. Your comparison with security is of a totally different order; surely security risks should not be taken lightly. On the other hand, also security measures should be applied with care. Maximum security is often not the best solution; measures should depend on the risks involved.

 
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it on 16-03-2008 18:37
 
 
Hi Danny 
 
First of all. Good initiative : starting a discussion on the question whether or not SOA is the silver bullet, the newest IT hype or just a nasty disease (not exactly your words).  
 
In the initial statement and the subsequent reactions I see a couple of different themes. (1) What should be understood by "services" and are they so different from "components" in the traditional sense of the word? (2) What is the role of the "ESB" in a service oriented architecture? Is an ESB a MUST or can we request and provide service without intervention of an ESB? By the way what do we mean by an ESB? (3) How come SOA prophets seem to think that all experience from enterprise architecture is no longer valid? 
 
In my view all three themes need attention. 
 
Ad (1) In Ziv Baida's thesis on service bundlining read a good definition of "service". Ziv makes a distinction between (business) services, e-services and web services. I think that in order to avoid confusion we have to adopt a similar definition. Ziv's e-service is very similar to a component with an interface, a runnable an data. Ziv's business service is not comparable to a component. This type of service does not need to be fully automated; i.e. can also contain human interventions or even be completely manual. If you think about it in this way service level management (to give an example) is a SUPERSET of IT service level management. 
 
Ad (2) Litteraly Service Oriented Architecture deals with providing and requesting services. I see no good reason why this could not be done without an ESB. I realize that in saying this I divert from the official message that my employer (IBM) is bringing to the market. 
 
Ad (3) I think you are absolutely right in stating that all old (good) experience from Enterprise Architecture (and Component Modeling and Operational Modeling and ITIL and.....so on and so forth) still apply. We just started an interest group on SOA governance and management and one of our first conclusions was that it partly builds on EA, partly on ITIL.

 
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it on 16-03-2008 18:58
 
 
Hi Lydia, 
 
Indeed I think that a lot of confusion stems from the multiple meanings of the term "service". Personally, I like to refer to the ArchiMate terminology that discerns business services, application services and infrastructure services; business services are defined independently of any IT support. Another distinction made in ArchiMate is external versus internal services. External services are exposed to the layer above, whilst internal services are exposed within the same layer (business, application, infrastructure). Services in ArchiMate are primarily aimed to be EA constructs; they show which behavior is exposed from a certain element. This does not automatically imply that it is a service from an integration perspective, and even if it does it's implementation does not have to be a Web Service. And even if the latter does; it does not necessarily map 1-1 onto a specific Web Service. 
 
With respect to ESB; if you think of it as a concept then all application integration can be seen to use the "ESB", independent of whether integration middleware is used. 
 
Regards, 
 
Danny

 

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