Back when SOA first started getting traction, the goal was simply to make application functionality available as a shared service. Companies made up their architectures as they went along -- and of course, they're still doing that. The difference today is that, in the last couple of years, the business side has a better sense of the strategic value of IT, while IT has learned more about the competitive pressures business must endure. As a result, SOA now offers the possibility of greater alignment between IT and business than ever before.
What business needs is an array of services that can be recombined, resulting in new business processes that support new products or services. Publishing those services and providing a coherent framework within which they can be governed and orchestrated into applications is what SOA is all about. Although many SOA initiatives remain an early phase, the promise of increased business responsiveness is real. And we're seeing an increasing number of enterprises that are pushing toward advanced deployments. The case studies here are prime examples.
Comcast builds its SOA on domain expertise
It's tempting to start buying ESB, registries, and other tools when you decide to adopt the SOA approach. But that misses the key value of SOA, which is to have a way to align the applications you create and deploy to the business processes they execute, says Tom Adler, senior manager of application architecture and IT governance at Comcast. And starting with the architecture can help ensure you have the right framework to do that -- both now and as needs change over time, he says.
"When we started this effort 18 months ago, we resisted the temptation of bringing in vendors. We brought in subject matter experts instead and figured out what we needed first," Adler says. "All the vendors just wanted to sell us an ESB." The architecture effort does more than set the framework, he notes: It also begins identifying where you already have redundancies, both in business processes and in applications. That's key to getting business buy-in, Adler says, because it shows in very real terms where there are opportunities for savings that will help justify the eventual SOA infrastructure and tool investment, as well as show where the use of common services should help reduce maintenance and integration complexities, allowing more responsive development efforts in the future. "It's the target that lets us eliminate redundant services," he says.
After developing the architecture -- what Adler calls the common domain model -- Comcast's next step was to develop the governance framework for the service development and deployment. "Services need to go through the governance gate," he says, "otherwise no one will know that the services exist or follow the right policies and procedures." Only services that pass the governance gate are added to the service registry and thus made available for others to reuse.
One governance challenge that came up quickly was deciding who owned the services. Comcast is fairly decentralized, so the culture naturally supported having the service originators own the services in their domains, Adler says. Common services, such as single sign on, reside with IT -- their natural domain, he adds.
One step that Adler now realizes Comcast missed was developing a common data service model after defining the architecture. By not having standard data services to access corporate information and manage interactions across systems, developers have ended up designing their services to get the job done in different ways, leading to inconsistencies that break the SOA promise of allowing an easy mix and match of service components. "We underestimated the value up front," Adler says, and the price has been reworking some services to impose that model after that fact.
The architectural focus of Comcast's SOA effort has helped the concept be applied more widely than if viewed merely as a technology issue, Adler believes. For example, because Comcast didn't start with the view that SOA means the use of Web services, the company has applied the SOA concept to all its efforts, not just those that are obviously Web-enabled. "A Web service is just one way to expose a service -- it's just an implementation detail," he says. One result is that much of the initial internal SOA efforts were in fact directed at the legacy applications, reducing the integration points both within and outside the company (such as with billing vendors), a major pain point for the business.
Developers use a variety of tools and programming languages, for example, as best fit their knowledge and the application they are creating. By standardizing processes and policies instead of specific tools and technical methods, Adler says developers can better adhere to the architecture's intent rather than trying to shoehorn each effort into the limitations or assumptions of a specific tool or technology. There's also a practical reason to allow technological heterogeneity under the common architecture, he notes: In a 9,000-person company, it would be unrealistic to get everyone on the same methodology."
A company of that scale must also adjust to changing business needs and technology opportunities, Adler says. It's important to revisit the reference architecture periodically so it doesn't become a straitjacket or a document that everyone ignores; either way, you would lose the benefits of SOA. Adler revisits the architecture each month, though it is changed less often than that.
Leapfrog keeps its SOA options open with open source
It's the classic problem faced by IT developers everywhere: Applications developed during the year by different groups just don't work well together when brought into a common system such as a Web portal. The dilemma hit home for Leapfrog Enterprises in early 2007 when the toy company wanted to deliver its various applications in a consistent way to suppliers and customers alike, wanting to take better advantage of Internet-based commerce and transactions. In March, it decided it needed a new way to develop applications, so it began an SOA effort whose first efforts are now bearing fruit, says Eugene Ciurana, the director of systems infrastructure. "We wanted to lay the foundation for Web infrastructure and systems, so we stated with a clean slate," he says.
Leapfrog had many of the same goals that typify a typical SOA initiative: greater reuse of code, faster development time, and easier integration. But the company did not want to approach SOA as simply a changing of the guard for development tools and integration platforms. Instead it wanted to free its developers from conforming to a platform's idea of best practices so they could focus on the applications' functionality and use a wide range of development technologies as best for each job. (Leapfrog's developers use a mA©lange of Java 5 and 6, Microsoft's C#, and Web services with various third-party libraries.)