Service Oriented Architecture (SOA)

SOA has garnered widespread attention and adoption due to its promise to deliver agility and cost savings to IT. SOA “should be” seen as an architecture discipline designed to handle the heterogeneity of enterprise IT. SOA facilitates the interoperability of diverse applications and computing platforms by packaging or wrapping functionality as interoperable SOA Services.

So let’s review a formal definition of SOA

Service-Oriented Architecture (SOA) is a strategy for constructing business-focused, software systems from loosely coupled, interoperable building blocks (called SOA Services) that can be combined and reused quickly, within and between enterprises, to meet business needs.

Notice that I used the word strategy and not technology in defining SOA. That is because achieving the benefits of SOA requires more than just the definition of a sound reference architecture. There are many other areas that must be addressed to successfully change the solution delivery process into a service-oriented approach including changes to software engineering, organizational structure, roles and responsibilities, governance, etc.

As with other architecture approaches, SOA provides high-level architectural principles, but it does not prescribe specific products or technologies. There are multiple products and technologies, frequently with overlapping capabilities, that could be included in an SOA. Therefore, architects must “fill in the details” by creating a reference architecture before any SOA initiative has a chance to succeed within an organization.

Thus, SOA requires both architecture and a broader strategy to be successfully implemented. The distinction between these two aspects is generally not clearly delineated in writings about SOA and frequently leads to confusion and ambiguity about what is SOA and what is not.

Although widespread, the adoption of SOA is far from universal. For some companies there is no justification to embark on an SOA initiative, for example, a small homogeneous IT environment gains little from SOA

Products Labeled “SOA”

The term “SOA” has become a marketing term and a wide variety of products have the term SOA included in their marketing verbiage.

Some of these products are rightfully described as SOA infrastructure products (e.g. ESB, Registry, Web Service Management). Other products that are labeled with SOA have only a very ancillary association with SOA. Today any product that can either consume or expose a Web Service has been labeled as “100% SOA”, “SOA ready”, or something similar.

This widespread use of the term SOA demonstrates that service orientation has become one of the primary architectural approach for the IT industry. Unfortunately, the overuse of the term SOA has diluted the true meaning and has led to confusion and is, in some cases, creating a backlash. Nonetheless, the concept of using SOA Services as the modus for interoperability is well established, and it is this concept that I embrace.

Additional Information

For additional information read the following blog posts:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.