The SOA Manifesto And Your Data

Joe McKendrick

Lately, we’ve had a great deal of discussion here at the Perspectives community over the emerging role of data services within a service-oriented architecture (SOA) context.

At the end of October 2009, I had the honor of joining a group of thought leaders and industry experts at the SOA Symposium in Rotterdam to sit down and worked to clear the air, once and for all, as to what it means to service-orient a system, and arrive at a consensus as to what SOA should mean to organizations. The result was a document called the “SOA Manifesto“.

The work was done in rapid order, with an agreed-upon set of core values and guiding principles hammered out after just three days of intense debate. (You’ll never see that in a standards working group, which typically takes years to arrive at common ground!)

Even more remarkable was the diversity of the group, which consisted of independent analysts, writers, consultants and vendor representatives. One of the key proponents driving the language of the document was Burton Group’s Anne Thomas Manes, who made quite a few waves a year ago with her proclamation that “SOA is Dead.”

Not everyone in the working group agreed on every point, but the values and guiding principles are intended to capture the spirit of SOA, which is intended to cut the dependencies between business processes and underlying technologies. In addition, the group sought to distinguish between “service orientation” as an activity and “service-oriented architecture” as the result of that activity. After all, nobody “did” Roman Architecture back in the day, right? It was the result, not the activity.

While the Manifesto did not directly address the data challenges organizations face, the values and principles make it clear that services created to address these challenges are clearly driven by business requirements, that they are sharable across enterprise walls where possible, and that they continue to evolve as business demands change. The key message of the Manifesto is that SOA is not a technology product that you buy and plug in. Rather, it is a guiding philosophy that says services should be built and operated independently, while at the same time easily interfaced with any and all other services across and beyond the enterprise. Data services need to follow this philosophy if they are to fully serve the needs of the business.

Here is the text of the SOA Manifesto:

“Service orientation is a paradigm that frames what you do.  Service-oriented architecture (SOA) is a type of architecture that results from applying service orientation.

We have been applying service orientation to help organizations consistently deliver sustainable business value, with increased agility and cost effectiveness, in line with changing business needs.

Through our work we have come to prioritize:

Business value over technical strategy

Strategic goals over project-specific benefits

Intrinsic interoperability over custom integration

Shared services over specific-purpose implementations

Flexibility over optimization

Evolutionary refinement over pursuit of initial perfection

That is, while we value the items on the right, we value the items on the left more.

Guiding Principles

We follow these principles:

Respect the social and power structure of the organization.

Recognize that SOA ultimately demands change on many levels.

The scope of SOA adoption can vary.

Keep efforts manageable and within meaningful boundaries.

Products and standards alone will neither give you SOA nor apply the service orientation paradigm for you.

SOA can be realized through a variety of technologies and standards.

Establish a uniform set of enterprise standards and policies based on industry, de facto, and community standards.

Pursue uniformity on the outside while allowing diversity on the inside.

Identify services through collaboration with business and technology stakeholders.

Maximize service usage by considering the current and future scope of utilization.

Verify that services satisfy business requirements and goals.

Evolve services and their organization in response to real use.

Separate the different aspects of a system that change at different rates.

Reduce implicit dependencies and publish all external dependencies to increase robustness and reduce the impact of change.

At every level of abstraction, organize each service around a cohesive and manageable unit of functionality.”

One Comment

  1. Nidhi
    Posted January 18, 2010 at 2:44 am | Permalink

    impressive work..can we get more details on these statements in Manifesto and guiding principles..?

Post a Comment

Your email is never shared. Required fields are marked *

*
*