Service-oriented architecture (SOA) is not just for humans any more.
During the past 12 months, VetSource Inc. developed an SOA e-commerce application providing home delivery of veterinary prescriptions. With the new service veterinary hospitals can set up their own website where pet owners can order medications directly once they have a prescription from their veterinarian, explains Craig Sutter, the technical director at VetSource. His company hosts all the e-commerce applications, but allows the vet hospital to customize it to list office hours and services such as boarding.
The RESTful e-commerce applications written in Java employ the open source enterprise service bus (ESB) technology from MuleSource Inc. to provide services and information from a MySQL database to different groups of end-users, Sutter explained. The SOA implementation also uses the Apache Web Server.
Besides the veterinary hospitals and the pet owners, different Ajax user interfaces serve company representatives at two call centers VetSource maintains for people who prefer to phone in orders for their pets' medications. Within VetSource itself, there is also an Ajax-based dashboard providing sales figures and other real-time business data for management.
Sutter credits careful architectural planning with making it possible to go from what was a proof of concept at this time last year to a working SOA e-commerce application today.
"We focused on the ESB and really getting that architected right and understanding the best way to implement our environment, and make sure we can monitor it, maintain it and update it frequently," he explained.
The implementation is architected so a single source can provide multiple views of the data based on the end user's needs.
"The call centers are using the same Mule services on the backend, but they get a different look and feel so they can see all customers, all clients, all hospitals," Sutter explained. "The enterprise dashboard monitoring shows sales information, customer sign-ups using the same Mule services and MySQL database. It has a different look and feel to it for different users in our company."
The Web interfaces and much of the Ajax client applications were built using the Apache Wicket Web application programming framework, Sutter said. Some interface development was also done using a proprietary internal Web framework that he describes as "very Struts-like."
The Ajax applications focus not only on interactive user features, but also provide real-time data.
REST inside, SOAP outside
The VetSource SOA is based on RESTful services, but can interact with SOAP-based Web services from partners linked into the system.
"All the services we're deploying in Mule are RESTful services," Sutter explained. "We use SOAP externally. Some of our partners provide their services over SOAP."
With an e-commerce system that needs 24/7 reliability, Mule HQ monitoring and management technology is deployed to watch over the SOA implementation, which is running on Dell Rack Servers, he explained.
From the beginning, the VetSource SOA implementation was designed to support business growth, which the company is already seeing, including increasing volume in its call centers, Sutter said.
"We've been very happy with the model we arrived at here which is stateless, RESTful services in a distributed environment," he said. "We've been in heavy start-up mode focused on reliable service, accurate data and scalability. We're built to scale on all those things. Anything we do we've designed up front to handle large volumes, and make it fast and easy."