Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Community Voices

Dr. Dobb's Bloggers

SOA Knots and Governance

December 19, 2008

The blog posting SOA Anti-Patterns: the Knot by Arnon Rotern-Gal-Oz that was linked off of Jon's latest DDJ Report was most interesting but not at all atypical of many initial corporate (or large scale) SOA initiatives.

I am in the business of designing and deploying SOA solutions using Oracle tools.What I have found for my own work and what I recommend to clients is that proper attention to SOA governance before embarking on a large SOA initiative will avoid what was well described in the Knot posting.

Typical SOA Governance consists of goverance software systems, policies and procedures, review processes, and large volumes of consultant-delivered shelfware nobody is really going to use. 

What is really needed is an agreement by the initial SOA team on SOA design patterns, standards, and what constitutes reusable services before any code is written as well as a design review process. The kinks in the governance model are worked out through the implementation of the first few business processes and the policy is updated to better define for the team what is really meant by a reusable service and process orchestration. Once the patterns are locked into the team, then the rest of SOA Governance - generally policies and procedures - is a lot easier to accomplish and far better accepted. If everything goes well, the business processes implemented by the team to date serve as examples of the instantiated policies for future developers on the team.

Another component of SOA Governance is design review. Review provides the opportunity for others to verify the design and confirm reuse or point out existing services for reuse instead of adding new services. If everyone does their thing independent of others, then the Knot is inevitable.

Defining reusable services is a challenge but the best test is when a service is actually reused in subsequent business processes. Again, careful design of the first few business processes can help the team understand exactly what reusable is. Reuse also generally comes with many revisions early on as the developers go through the learning process - which is a good thing that benefits subsequent development efforts with examples of what is meant by true reusability.

 Building a reusable service I find is best handled by having each service owned by a developer who then must respond to the requirements of multiple business processes using that service. 

I also find useful that a reusable service has to have the same characteristics as a good EJB.  There is also a potential parallel with a good use case, but that would be stretching it a bit here.

SOA always seems to me to be a form of integration freedom. SOA Governance could be construed to be the straightjacket on that freedom. The reality is that the implementation parts of SOA Governance applied early and adjusted based on experience can help an early SOA effort be successful.


Happy Holidays, everyone.



Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.