|
Danny Greefhorst
|
|
woensdag, 30 januari 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.
Alleen geregistreerde gebruikers kunnen reacties geven. Log in of registreer. |