"The biggest challenge we've faced in creating an SOA has been identifying exactly what a service is," says Christopher Crowhurst, vice president and chief architect at Thomson Learning. "Understanding what the business is doing, converting that to a set of services, and working out how to expose those services in a granular, extensible way so that you're not constantly breaking consumers' interfaces -- we learned that many people just can't do it."
Thomson Prometric, a division of Thomson Learning, is a leading provider of technology-based testing and assessment services, including GRE, TOEFL, GMAT, and Cisco certifications. In total, it administers approximately 4,000 tests to 8 million people in 120 countries worldwide.
The company grew via acquisitions of many smaller testing companies, each of which came with its own test centers and test scheduling and registration systems. Radical change was needed.
"I was sitting in a meeting with a number of project managers talking about how to enable cross selling and reduce the number of contact center applications, when suddenly there was a eureka moment in which we realized we could create an abstraction between all the different applications using XML. This triggered a whole process to complete the design and was the genesis for thinking about a whole SOA environment," Crowhurst says.
At first, Crowhurst presented the idea to Thomson Prometric CEO Michael Brannick as a way to save money, but Brannick had different goals. "He understood the power of what we were doing and kept challenging us to do more," Crowhurst says. "He said, 'I don't want you to save me money. I want you to make me money.' It was very challenging, but a great time to be involved."
As the SOA project got under way, Crowhurst's team spent many painful months analyzing core business processes and attempting to identify the services necessary to support them. Eventually, Crowhurst and his staff came up with five services, which he calls Who, What, Where, When, and How.
"Who is the customer; What exams will they take; Where and When will they take them; and How will we collect the fee -- all our registration systems performed those functions in one way or another," Crowhurst says.
The next step was to define an XSD (XML Schema Definition) that described those processes and to build a set of SOAP interfaces. But, according to Crowhurst, it was also tough to get everyone's hands around REST (Representational State Transfer).
"It requires a very different skill set than what programmers are used to," Crowhurst says. "People kept coming up with fine-grained RPC-style interfaces that were no more extensible than what they were doing back in the CORBA, COM+, object-oriented world. We had to do a lot of retraining and evangelism about SOA principles."
The orchestration tier was built in Microsoft BizTalk Server 2004, using its BPEL (Business Process Execution Language) tools. Tools from Actional provide SOA management, while security is handled by XML gateway appliances from Reactivity.
"At that time, all the WS-* standards were young, so we decided to abstract security, management, and orchestration to the three platforms [Reactivity, Actional, and Biztalk] and let the vendors keep up with the latest standards. Now if someone says, 'I want to use a new security standard,' or 'I want to use surname instead of last name as a descriptor in this field,' we can just make a configuration change instead of doing a lot of recoding," Crowhurst says.
The next step will be further consolidation. "We can view the business as one, but there are still multiple systems behind us," Crowhurst says. "We need to collapse all those systems, migrate all those legacy dependences into new services, and end-of-life the old registration systems. We've done that successfully with one, and we have three more to go."
For shops that are just getting started with SOA, however, Crowhurst stresses the importance of acquiring, training, and developing the right people to get the job done.
"Get a core group of architects and senior developers to understand, embrace, and buy into the strategy," he says. "And train. SOA requires a complete change in process and thinking."