Jack van Hoof's Blog Everything is moving toward on-demand business where service providers react to impulses - events - from the environment. To excel in a competitive market a high level of autonomy is required, including the freedom to select the appropriate supporting IT-systems. The world is preparing for network oriented business structures with independent autonomous service providers and service consumers.
Organizations tend to change their structure frequently. The evolving
focus on service orientation and globalization will enforce this trend.
The world is preparing for network oriented business structures with
independent autonomous service providers and service consumers. Parts
of the business process will be outsourced to external partners.
Departments and business units are transformed to service providers.
These service providers no longer focus only internally on the
organization, but they are seeking for external markets to offer their
services. Everything is moving toward on-demand business where service
providers react to impulses – events – from the environment.
To excel
in a competitive market a high level of autonomy is required, including
the freedom to select the appropriate supporting IT-systems. This
increasing degree of separation creates a need for loose coupling
between application components to be able to have the supported
business processes bend unimpeded with the continuously changing
composition of the organization structure. To achieve this agility the
supporting applications must be agnostic to organizational changes like
reshuffling responsibilities and roles, outsourcing or insourcing,
splitting up departments or the whole company, fusions and all kinds of
other reorganizations.
Business processes must not be limited by the
supporting IT-systems to smoothly follow all of these organizational
changes. If, for instance, part of the process will be outsourced to an
external partner, a part of the supporting IT-system will be cut off.
The remaining part of the system must start communicating with the
external partner. The system must not collapse neither is it desirable
that adaption to the new situation costs a lot of money or time. The
same is applicable in case of changing partners or in case of
insourcing external tasks.
SOA, false promise?
This
requires loosely coupled application components to be able to easily
put the scissors in the organization structure without disturbing the
supporting IT-systems. However, the synchronous command-and-control
nature of SOA is a way of tightly coupling application components which
doesn’t allow for this kind of flexibility. SOA may be loosely coupled
in the technical domain, where common web services technology is used,
but it certainly is not in the functional domain where SOA is
associated with ‘calling’ foreign (reusable) services and eliminating
data redundancy. The availability of services and stored data can be
vanished after an act of outsourcing, which may lead to costly
consequences and high risks. This has all to do with creating
dependencies with SOA. The promise of SOA delivering loose coupling,
which typically is asynchronous, could at the functional level be
stated as a false promise.
IT-flexibility versus organization flexibility
Of
course the use of SOA has benefits. Agility in application construction
by using shareable components in a well defined functional
decomposition and using standards based technology can have benefits in
time to market with concern to the delivery of the application if
adequate tools are used. And also restructuring the application in
following business process redesign can be of much less effort than in
the ‘traditional’ way. The IT-department may gain benefits, which will
lead to lower IT-costs for the business and faster delivery.
At
the moment SOA is positioned in the market mostly as a type
command-and-control architecture at the higher granularity levels of
functional decomposition. To achieve loose coupling and autonomy in the
context of the previous mentioned organizational evolutions EDA
(even-driven architecture) is a more appropriate style of architecture
at this level of granularity. EDA provides flexibility directly to the
organization itself. With EDA an organization can reorganize without
affecting application constructions. Changing the structure of the
organization without changing the applications is a promise of EDA. So
we are talking about quite a different magnitude of agility. Granularity
But
why is SOA promoted at this level of granularity? The causality of four
aspects is in charge. Firstly, SOA by most people is thought of in
terms of web services. Secondly, the performance of web services
technology at the moment is not appropriate at the lower levels of
granularity. Thirdly, web services originate from the request-and-reply
pattern, and so are associated with command-and-control solutions.
Fourthly, the event-driven model is not well known; people tend to look
for solutions in well known domains. Unfortunately the
command-and-control pattern is not appropriate at this level. SOA based
on synchronous web services might be a good idea in the middle layers
of functional decomposition. Here the command-and-control type of
interaction may be required and may be in good balance with web
services performance. But you have to explicitly investigate it during
design phase. So finding the correct context where an SOA might be
appropriate is not a trivial job.
When to use SOA and when to use EDA?
In
contrast to SOA, EDA provides a way of loose coupling. EDA is not a
synchronous command-and-control type of pattern, but just the contrary:
an asynchronous publish-and-subscribe type of pattern. The publisher is
completely unaware of the subscriber and vice versa; components are
loosely coupled in the sense that they only share the semantics of the
message.
If you are seeking to support strong cohesion in the
business processes, situations where all process steps are under one
control, SOA is the way to go. The command-and-control style of SOA -
in general – is applicable to:
Vertical interaction between the hierarchical layers of functional decomposition
Functional request-and-reply processes such as man-machine dialogues; the user waits for an answer
Processes with a transactional nature which require commit and rollback facilities
Data enrichment in a message to be published to bring the message to its full content in a formal format
If
you are seeking to support independency between business process steps,
EDA is the way to go. This style of architecture is appropriate in
federated and autonomous processing environments. Recognizable
situations where EDA might be applicable are:
Horizontal communication between tiers in a process chain
Workflow type of processes
Processes that cross recognizable functional organization borders, external (B2B) as well as internal
To
find points of decoupling look for parts of the business process of
which you are sure they always will stay together in one organizational
unit (strong cohesion, atomic business function). In this way a
functional composition of the business will arise. The borderlines
between the business functions are the points of decoupling. If atomic
transactions cross the decoupling borders, then implement compensating
rollback transactions at these points.
Striving for loose
coupling – and so for flexibility and agility - always is a good idea
at all levels of granularity. So a rule of thumb might be: use loose
coupling whenever possible and only use command-and-control if
required. All of this with respect to the functional dimension for Both
EDA and SOA. Of course these principles always must be challenged with
performance aspects like required and feasible response times.
About Jack van Hoof Jack van Hoof is an Enterprise Integration Architect at Dutch Railways where he advises on modern technologies, standards, and patterns to increase IT maturity with regard to business applications and application infrastructure, specifically in the areas of SOA, EDA, ESB and portals. He maintains a blog where he publishes his thoughts on SOA and EDA: soa-eda.blogspot.com.
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice: