As service-oriented architecture (SOA) becomes increasingly beneficial for IT strategy, vendors like Microsoft are busily selling their vision for this new delivery model. But CIOs are understandably wary of yet another cure-all for IT complexity. As the former CIO of a midsized insurance company, I can attest to the benefits of a SOA to connect customer data to the Web. I believe practical use of this architectural approach delivers real value, particularly through software reuse. But the operative word is "practical."
Start with a practical goal and a clear definition of SOA. When I ran IT at a medium-sized insurer, we concluded that using a services model would clarify current and future software requirements. The approach was first to consolidate all read-only customer data into a warehouse that would provide the single service for obtaining that data.
Service-oriented architecture is a set of loosely coupled services that applies to many applications. Services are accessed via standard interfaces over a secure Web connection and are location independent.
Implementing SOA need not be a burden. Leading vendors now bake SOA support into their development environments. (We used a product that provides the services code.) Some staff training is necessary, but best practices are similar to those you already use in IT.
SOA Implementations Require Small Steps
In implementing a SOA, the best approach is to identify your pain points and couple them with an analysis of data connections. Our pain points were redundant data feeds and obsolete middleware code.
Then lay out a high-level diagram of business units, workflows and processes, searching for commonalities. This approach gains business buy-in while also revealing opportunities for reuse. A simple example is to create a service to return customer data. Many applications can be simplified by creating this single service. When you need to update an application, use the opportunity to replace redundant code with a service. We developed a middleware service that can be reused whenever a Web transaction is required.
You can gain substantial benefits by creating a canonical description for the major data sets and flows within your company as well as a repository for the data. The repository can be accessed via defined services. These services allow you to eliminate coding bottlenecks, costs and data errors. Look for XML-based standards in your industry, such as the ACORD standard, a guideline for the insurance industry.
Governance Matters for SOA Projects
Any practical approach requires formal IT governance. But governance need not create yet another bureaucracy; it can be based on the well-understood design and development principles in your organization. We found that the best way is to incorporate the use of the warehouse and evolving services into the software development methodology.
Further, assemble a small governance committee that includes the CIO and heads of development, QA, and project management. The committee must ensure compliance only occasionally. Don't let developers use quick-and-dirty solutions that undermine your good work to implement a SOA.
A practical, well-planned approach can simplify your application and data infrastructure, which in turn lowers IT costs, improves delivery and allows IT to be a more effective business partner.
Ed McHugh is president of Lexington IT Solutions in Lexington, Mass., and the former CIO of a midsized life insurance company.