"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."
Click for larger view.
"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.