SOA Manifesto Published!
Last week, at the International SOA & Cloud Symposium I had the distinct pleasure of participating in a 3 day workshop to produce a SOA Manifesto. Participants were asked in advance to provide their input as prep work, and each of us presented our wisdom and guidance on what we thought should be in such a document. A team of 15 contributors including technologists, analysts, and practitioners came together and debated over a value system and a set of guiding principles. After 3 days of what was sometimes heated discussion, we published the SOA Manifesto.
If you like what you see, you are encouraged to become a signatory. Also, twitter search string is #soamanifesto
The text is included below, for your convenience, along with some of my commenary inline. Also, a video to the unveiling ceremony can be found here.
Preamble: 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:
NOTE: The following represents a set of core values we came up with to help guide you through the decision making process during your SOA journey. Both sides of the value statement are things that we think are important. This is not intended to be a set of mutually exclusive things, but simply a value system should a tradeoff over priorities need to be made.
Core Values:Business value over technical strategy
All too often architects get too caught up in building the perfect framework for their SOA implementations. This is indeed an important goal, but don't let it cause you to lose sight of the business value you are trying to provide. Make sure you are continually revisiting the business benefits of what you are trying to achieve, and make sure you are still in alignment with them.
Strategic goals over project-specific benefitsSubtly integrated into this simple statement is the idea that you need to scope your SOA projects to provide you with a series of success points that can be achieved in a reasonable amount of time, yet accompany your projects with a longer term strategy of where you want to get to. But don't let project-specific quick wins get you into short-cuts that keep you from you longer term strategic goals.
Intrinsic interoperability over custom integrationThis means services should be designed to integrate and interoperate as a core competency rather than an afterthought. Even if you are service enabling a legacy system this can be accomplished if it is given a priority upfront as part of the design. NOTE: Using an ESB or SOA infrastructure to achieve this is certainly allowable, whether its part of your design strategy up front or an afterthought.
Shared services over specific-purpose implementationsMost of the time services should be built with sharing and reuse in mind. This may not always be the case, but an organization should strive to create services that are shared and reused across departments and across projects.
Flexibility over optimizationThe primary benefit of using service oriented principals is to build flexibility and adaptability to change. This sometimes comes at a cost, so be aware of what the cost of flexibility is. BTW this does not imply that a flexible solution based on SOA can't scale or perform well.
Evolutionary refinement over pursuit of initial perfectionThe key word here is initial perfection. SOA is a journey. Service components and their means of interaction are very likely to change over time as the needs of the business change and as you identify holes in your initial implementations. Pursuit of initial perfection is great if you can get it the first time, but don't let it stand in the way of your strategic goals or your project goals.
That is, while we value the items on the right, we value the items on the left more.
I will be providing more insight into the following Guiding Principles over subsequent blog posts -
Guiding PrinciplesWe 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
Here is the full list of Authors:
Ali Arsanjani Grady Booch Toufic Boubez Paul C. Brown David Chappell John deVadoss Thomas Erl Nicolai Josuttis Dirk Krafzig Mark Little Brian Loesgen Anne Thomas Manes Joe McKendrick Steve Ross-Talbot Stefan Tilkov Clemens Utschig-Utschig Herbjörn Wilhelmsen© 2009, the above authors
this declaration may be freely copied in any form,
but only in its entirety through this notice.
BTW that copyright notice is really intended for anyone to freely requote, or redistribute the content as long as it is in its entirety.
Here is a partial list of blog links from other authors on the team (in no particular order) -
Anne Thomas Manes
Stefan Tilkov
Dave Chappell (moi)
Steve Ross-Talbot
Brian Loesgen
Paul Brown
Mark Little
John deVadoss
Clemens Utschig-Utschig
Joe McKendrick
Ali Arsanjani
Cheers,
Dave
