Simon Gilligan’s attempt to breathe new life into the neighbourhood video rental store, called applebox has become an unlikely showcase for Web 2.0 technologies.

By eschewing his traditional training in business application languages in favour of using the open source androMDA generator project, he has created a complex online video rental application with a very rich user interface and low-overheads.

Gilligan is opening the first physical applebox video rental store in the Melbourne suburb of Fairfield in August. The key to his business is an online rental application he has built that ties into the store’s library, allowing renters to browse and reserve their selection before getting to the store.

He describes the application itself as a distributed warehouse system that can be applied to catalogues across multiple stores, with variable pricing and full content management. Any store that joins applebox is free to manage and promote its own collection to its particular demographics through the front end Web store.

Gilligan says his experience with enterprise applications, particularly with the Progress 4GL environment, sparked his desire to create an online user interface that was rich in functionality but without high overheads in terms of data being loaded into the browser.

“When you create tab folders and look-ups and internal windows and grids online, the amount of JavaScript just balloons,” Gilligan says. “As then soon as you navigate off the page, all of that whole UI gets disassembled and thrown away. And when you navigate back, you have to recreate it again.”

What was needed was an Ajax-style approach. After playing around with various tools, Gilligan came across the open source model-driven generator androMDA, and his path became clear. androMDA takes a unified modelling language (UML) model and turns out a complete J2EE architecture, with all the persistence modelled, together with a Web service layer.

Gilligan says the androMDA toolkit gave him the ability to build everything in J2EE, which he says he was by no means an expert in. As everything is driven from the model, each step could be taken iteratively, and could be used to could create Web services also.

“From a development perspective it is a very, very cheap way of creating Web services,” Gilligan says. “For a J2EE newbie, it creates a really, really robust J2EE architecture that’s vendor independent, and platform neutral. But for me it creates a rigour and a robustness in the whole development process that is very easy to lose in smaller ad hoc developments.

“Part of the model driven approach is that it generates code, but you can also change how it generates code. So if you want to do things outside of the way that they [androMDA] do things, it’s all possible.”

The applebox online storefront client is comprised entirely of static HTML, which is fully cacheable in the browser, which then makes SOAP XML calls to a service based back end.

Rather than the navigation process making individual page requests to the server and the server deciding which page to send back, the applebox application makes the request to the application framework within the browser. The decision on what content to display is made in the browser using Javascript, with the page itself requesting the required data to be sent from the server. The Javascript within the page then transforms the returned data into HTML.

The user interface’s logic and navigation control is now housed within the browser, and the browser becomes a GUI client that can manage its own state and navigation history. This can significantly improve the user experience. Gilligan says that with the browser able to maintain the GUI state, its easier to create a mode cohesive application experience.

The benefit for applebox is that this simplifies server-side development, as the server is now only concerned with the data response required for the given input.

Overall, the project has taken close to two years to come to fruition, but Gilligan says much of this work was in learning and creating the application framework. The application itself is deployed to jboss and mySQL. DomAPI is used as the widget drawing toolkit for sliders, animations and other on-screen elements. The client software itself is entirely static HTML and JavaScript, with none of it being dynamically marked up. The front end maintains its own state and context, and makes entirely stateless SOAP calls to the backend.

“I likened this to Zimbra, where Zimbra’s HTML client is static HTML also — in most Web developments, this is unheard of,” Gilligan says. -The difference is subtle, but completely changes the way the software is developed.”