| By Ross Mason | Article Rating: |
|
| November 26, 2008 09:45 AM EST | Reads: |
3,724 |
In its search for a suitable solution, Scripps Networks had five primary integration requirements. First, it needed decoupled services for ease of reuse and flexibility. Second, it needed to accommodate frequent business process changes. Next, the solution had to integrate with legacy and third-party applications. It also required robust error handling for multiple exception types. Last, it needed a rich Web-based user interface for human workflow elements.
Scripps Networks decided on Mule - the open source Enterprise Service Bus (ESB) - as a core element in its service-oriented infrastructure for media asset management.
The Power of Decoupled Services
Using Mule as a core infrastructure component, Scripps Networks created a system comprising a number of decoupled services, so that any upgrades or changes to one of the services would have minimal impact on the other services or the overall application. Any given business process is executed by appropriately orchestrating the services using Mule, with JMS as the messaging transport.
For example, to register a new media asset in the system, a user enters it into the domain application interface, where detailed metadata for the asset is stored. The domain application calls the Mule-hosted asset registration service via a SOAP interface, which performs initial validation and then uses a JMS queue to register the asset in the system and update the asset repository. A final message is sent to a JMS topic, which sends the "add asset" event to the indexing application, scheduler, and any other applications that are interested in the event.

Because the infrastructure is service-oriented, with separate JMS queues for each component, any Mule-hosted service can be easily scaled simply by provisioning additional instances of Mule. The team can also easily make changes to any of the services, or even to the workflow, without negatively impacting the system or creating an undue maintenance burden.
Solving the Error Recovery Issue
Because not all of the services are transaction-oriented, implementing error recovery was a challenge for the Scripps team. The solution was to leverage and extend the out-of-the-box Mule exception strategies. If an error happens during any part of the workflow, Mule throws an exception and calls the exception strategy component. The component ascertains whether the exception is a "service exception" or a "processing exception." A service exception indicates that the service is not available - either the network is down, or that particular service is down. If that is the case, Mule will automatically put the message back into the queue for replay, without human intervention.
A processing exception, on the other hand, may be due to bad data or a bug in the system, so replaying the message is insufficient - human intervention is required. For this situation, Scripps created a Web-based user interface using a JavaScript-based framework, allowing the user to see the error logs and dynamically access, change, and replay the workflow as needed. As an added benefit, the rich Internet application (RIA) architecture harnesses the power of the client machine and relieves the server from computing HTML, making the application responsive and highly scalable.
In developing the RIA for Mule-based applications, Scripps settled on the open source Qooxdoo for its maturity and enhancements on top of standard JavaScript features. Implementing the application with Mule was straightforward, entailing the creation of a Mule component that parses a request and sends the JavaScript resource file to the browser, and another JavaScript Object Notation (JSON) service to supply the data. Finally, the application was compiled using Qooxdoo, and the JavaScript and resources were deployed as a single JAR to the Mule user library.
The benefits of using Mule are readily apparent at Scripps Networks. The lightweight Mule-based services scale easily by simply provisioning additional instances of Mule. Easy configuration allows for changes in the workflow, increasing business agility and minimizing maintenance costs. Mule's out-of-the-box exception strategies simplify error handling. Finally, its simplified programming model supports the easy creation of rich browser-based user interfaces.
Using Mule as the foundation for its new SOA infrastructure for media asset management, Scripps Networks can now better handle the increasing proliferation of content sources, channels, and media formats. Not only can Scripps deliver content to millions of viewers, but all of the accompanying metadata and digital assets (images, thumbnails, text) is brought together and delivered in a consistent and coordinated fashion.
Published November 26, 2008 Reads 3,724
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Ross Mason
Ross Mason is the founder of the Mule Project and co-founder and CTO of MuleSource, the leading provider of open source service-oriented architecture (SOA) infrastructure software.
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?




































