SOA Implementation Challenges
Why do so many companies think that if they put up a web
service that they are creating Service-Oriented Architecture (SOA)?
Unfortunately, the IT and business world love to run on the latest hype
or buzz words of which very few even understand the meaning. One of the
largest issues companies have today as they consider going down the path
of SOA, is the lack of knowledge regarding the architectural style and
the over usage of the term SOA. So how do we solve this issue?
I
am sure most of you are thinking by now that you know what SOA is
because you developed a few web services. Isn’t that SOA, right? No,
that is not SOA, but instead Just Another Web Service (JAWS). For us to
better understand what SOA is let’s look at a few definitions.
Douglas
K. Bary defines service-oriented architecture as a collection of
services. These services are enabled to communicate with each other in
order to pass data or coordinating some activity with other services.
If
you look at this definition closely you will notice that Bary states
that services communicate with each other. Let us compare this statement
with my first statement regarding companies that claim to be doing SOA
when they have just a collection of web services. In order for these web
services to for an SOA application they need to be interdependent on
one another forming some sort of architectural hierarchy. Just because a
company has a few web services does not mean that they are all
interconnected.
SearchSOA from TechTarget.com states that SOA
defines how two computing entities work collectively to enable one
entity to perform a unit of work on behalf of another. Once again, just
because a company has a few web services does not guarantee that they
are even working together let alone if they are performing work for each
other.
SearchSOA also points out service interactions should be
self-contained and loosely-coupled so that all interactions operate
independent of each other.
Of all the definitions regarding SOA
Thomas Erl’s seems to shed the most light on this concept. He states
that “SOA establishes an architectural model that aims to enhance the
efficiency, agility, and productivity of an enterprise by positioning
services as the primary means through which solution logic is
represented in support of the realization of the strategic goals
associated with service-oriented computing.” (Erl, 2011)
Once
again this definition proves that a collection of web services does not
mean that a company is doing SOA. However, it does mean that a company
has a collection of web services, and that is it.
In order for a
company to start to go down the path of SOA, they must take a hard look
at their existing business process while abstracting away any
technology so that they can define what is they really want to
accomplish. Once a company has done this, they can begin to factor out
common sub business process like credit card process, user
authentication or system notifications in to small components that can
be built independent of each other and then reassembled to form new and
dynamic services that are loosely coupled and agile in that they can
change as a business grows.
Another key pitfall of companies
doing SOA is the fact that they let vendors drive their architecture.
Why do companies do this? Vendors’ do not hold your company’s success as
their top priority; in fact they hold their own success as their top
priority by selling you as much stuff as you are willing to buy. In my
experience companies tend to strive for the maximum amount of benefits
with a minimal amount of cost. Does anyone else see any conflicts
between this and the driving force behind vendors.
Mike Kavis
recommends in an article written in CIO.com that companies need to
figure out what they need before they talk to a vendor or at least have
some idea of what they need. It is important to thoroughly evaluate each
vendor and watch them perform a live demo of their system so that you
as the company fully understand what kind of product or service the
vendor is actually offering. In addition, do research on each vendor
that you are considering, check out blog posts, online reviews, and any
information you can find on the vendor through various search engines.
Finally he recommends companies to verify any recommendations supplied by a vendor.
From
personal experience this is very important. I can remember when the
company I worked for purchased a $200,000 add-on to their phone system
that never actually worked as it was intended. In fact, just after my
departure from the company started the process of attempting to get
their money back from the vendor. This potentially could have been
avoided if the company had done the research before selecting this
vendor to ensure that their product and vendor would live up to their
claims.
I know that some SOA vendor offer free training
regarding SOA because they know that there are a lot of misconceptions
about the topic. Superficially this is a great thing for companies to
take part in especially if the company is starting to implement SOA
architecture and are still unsure about some topics or are looking for
some guidance regarding the topic. However beware that some companies
will focus on their product line only regarding the training.
As
an example, InfoWorld.com claims that companies providing deep seminars
disguised as training, focusing more about ESBs and SOA governance
technology, and less on how to approach and solve the architectural
issues of the attendees.
In short, it is important to remember
that we as software professionals are responsible for guiding a
business’s technology sections should be well informed and fully
understand any new concepts that may be considered for implementation.
As I have demonstrated already a company that has a few web services
does not mean that they are doing SOA. Additionally, we must not let
the new buzz word of the day drive our technology, but instead our
technology decisions should be driven from research and proven
experience. Finally, it is important to rely on vendors when necessary,
however, always take what they say with a grain of salt while cross
checking any claims that they may make because we have to live with the
aftermath of a system after the vendors are gone.
References:
- Barry, D. K. (2011). Service-oriented architecture (SOA) definition. Retrieved 12 12, 2011, from Service-Architecture.com: http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html
- Connell, B. (2003, 9). service-oriented architecture (SOA). Retrieved 12 12, 2011, from SearchSOA: http://searchsoa.techtarget.com/definition/service-oriented-architecture
- Erl, T. (2011, 12 12). Service-Oriented Architecture. Retrieved 12 12, 2011, from WhatIsSOA: http://www.whatissoa.com/p10.php
- InfoWorld. (2008, 6 1). Should you get your SOA knowledge from SOA vendors? . Retrieved 12 12, 2011, from InfoWorld.com: http://www.infoworld.com/d/architecture/should-you-get-your-soa-knowledge-soa-vendors-453
- Kavis, M. (2008, 6 18). Top 10 Reasons Why People are Making SOA Fail. Retrieved 12 13, 2011, from CIO.com: http://www.cio.com/article/438413/Top_10_Reasons_Why_People_are_Making_SOA_Fail?page=5&taxonomyId=3016
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Carlos Perez replied on Wed, 2012/10/24 - 11:07am
Todd Merritt replied on Wed, 2012/10/24 - 11:49pm
in response to:
Carlos Perez
Thanks Carlos,
I will take a look at that.
Todd