The first point of note has to do with SOA governance. Since an SOA is ultimately a portfolio of business capabilities (some specific to your organization, some external to your organization), governance becomes more important than ever. Back in 2001, I wrote an article for PerfectXML.com that delved into the nascent domain of SOA management and governance. The idea is simple, the more assets you reuse and the more services you incorporate into your applications that are not under your direct control, the more important governance becomes. While the promise of increased reuse coupled with shortened “time to application” periods are very attractive propsects, there is a price to be paid in terms of application reliability and stability. When there is a problem, which service is as fault? Who is responsible for fixing the problem? Proper attention to infrastructure and portfolio governance is the only way to help ensure that your SOA is ready for prime time. Implementing an SOA without a well structured governance layer is a formula for disaster.
The second noteworthy point relates to the focus on service consumption as pointed out by Forrester’s Randy Heffner. His following comment are words architects should live by.
Your SOA only has value if it makes available services people need and presented in a consumable form (like a Ratchet-X plug-in – shameless plug). When I was a developer, we used to start our project discovery process by asking users what kind of reports they needed. The idea being that you first find out what information users need and what they plan to do with it before you worry about features and screens. Heffner’s comment is an SOA-updated version to that approach. Find out what people need and how they need it presented before you focus on service design."Focusing first on consumption puts you in the proper mind set for doing SOA because that should be the default approach," Heffner said. "It puts you in the mindset of first achieving reuse."
The last important part of the piece pertains to Dana Gardner’s comment regarding shortening the lifecycle period. Unlike traditional applications, SOAs are living, breathing and most importantly, dynamic organisms that are subject to frequent refresh by design and necessity. Dana’s following comment is important to keep in mind when managing your SOA.
"Your services are going to be dynamic, so you're going to want to have a fairly frequent refresh or replacement of specific services based on requirements," Gardner explained. "At a higher level of abstraction, you're going to have changing business processes that those services support because you're going to want to adjust and amend on a fairly rapid basis for efficiencies. You're going to want to give more people who are close to that business process some say in how that process can be amended and improved iteratively over time."