Best Practices for Implementing SOA

Manufacturing and IT managers will be relieved to learn that adopting services-oriented architectures will not demand an immediate overhaul of an enterprise's IT system. Instead, phased change is a central theme of SOA. Though, SOA does demand certain specific practices.


Posted on Nov 03, 2006

Forrester Research advocates that an enterprise start with a service-oriented approach within the business layer of its application and integration projects. An enterprise should use SOA-based Web services to connect its business services to multiple interaction channels. If necessary, the developers can use message queuing or other application-to-application protocols, notes Forrester analyst Randy Heffner. Then, the enterprise can add additional services to provide increased flexibility and quality of service. Forrester urges developers to always keep in mind the three sources of value for SOA: 1) Connections to services 2) Change: i.e., the ability to adjust to changing business conditions 3) Control: to ensure usability As for specific practices, analysts at Gartner Inc. point out that adopting SOA means that enterprises will have to make significant investments in metadata depositories. The simple existence of SOA will not ensure the re-use of application elements. Instead, enterprises will have to establish and enforce detailed policies concerning the definition of application elements. For instance, the analysts point out that a single element for a single task, such as shipment status, will not serve every subsequent application. But that same data element could be placed in a metadata depository where its permutations could be identified, defined and displayed. Subsequently, appropriate investments must be made in the metadata depositories or their contents will be neglected. Developers must be paid to both fill and exploit the depositories. Rather than encourage developers to write perfect code, they should be rewarded for documenting interfaces and logging re-use, suggests Gartner analyst Whit Andrews. Documentation, the Achilles heel of most IT departments, is absolutely critical for successful SOA. Enterprises will only be able to exploit the work done for them by systems integrators through post-development in-house integration if suitable documentation is created and maintained. Poorly documented services will prove nearly useless. So Andrews recommends that an enterprise have an escrow-style relationship with a developer, where payment is contingent on approval of interface documentation. When dealing with outsourcing vendors, the ownership of services and their interfaces will become major issues with SOA. Furthermore, outsourced SOA will trigger the issue of where the services are hosted and maintained. Gartner analysts predict that enterprises will derive the greatest value from outsourcers who allow enterprises to host and maintain the services. An application service provider must not be allowed to claim complete control of an interface that may become a critical component in an enterprise's on-going operations. Forrester Research also has some specific tips for implementing SOA: 1) Align the SOA services with actual business practices, recognizable to the users 2) Ensure this alignment by having short focus-group sessions with the users 3) To avoid launching random services, start with major vertical services (such as order entry) and the horizontal services that support them (such as document faxing) It is not necessary to start with Web services if internal access is all that is required, note Forrester analysts Randy Heffner and Carey E. Schwaber. If SOA development is being outsourced, make sure that you have complete architectural control over the design effort, possibly by using joint design teams. If a solution involves packaged applications, find a way to wrap them into your service interfaces. Additionally, when implementing a service, keep in mind that other services may end up using that service. But when that service is upgraded, you don't want to have to retest all the other services that use it. So you want to have an architecture that lets multiple versions of a service run in production at the same time, so that an incoming request is routed to the version of the service that it expects to see. That way migration can be slow and controlled, and development cycles of interacting services do not have to coincide. Finally, instead of tying each incoming request to a specific service, it may be best to create a middleware layer, called a service delivery bus, to handle routing. For more information about the Gartner report, "SOA Has Impact on Application Development Outsourcing," April 14, 2004, contact the firm at www.gartner.com For more information about the Forrester reports -- "Nine Tips for SOA Implementation," April 1, 2004, and "The Big Strategic Impact of Organic Business and Service-Oriented Architecture," June 17, 2004, contact the company at 617-613-6000 or www.forrester.com

Top Enterprise Software Planning (ERP) Comparison