News Stay informed about the latest enterprise technology news and product updates.

SOA for pets uses REST and SOAP

SOA e-commerce application provides pet owners Ajax-based online ordering service for home delivery of veterinary medicines.

Service-oriented architecture (SOA) is not just for humans any more.

We've been very happy with the model we arrived at here which is stateless, RESTful services in a distributed environment.
Craig Sutter
Technical DirectorVetSource Inc.

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.

"Our call center and enterprise dashboard are real-time," Sutter said. "We use some Java scripting tools that expose our Mule services, our Java objects to JavaScript, which makes it very easy to plug into Wicket and get a real nice look and feel with pop-ups and dialogs that are very reactive, very responsive, very fast."

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."

For more information
Mule architect looks to bring REST to SOA

Open source vendors focus on SOA coders

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."

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.