In association with heise online

Developing

The exchange software itself is Java based, using Apache Tomcat for serving web pages and Spring as an application framework. Originally, the system was developed using the Apache Struts web framework, but over time, frustrations with Struts led them to move to SpringMVC which has made development a lot easier. "When we started experimenting with SpringMVC, it quickly made Struts feel like a first attempt at a web framework" says Jenkins "SpringMVC doesn't take away any control - it's still fairly low-level - but it has made development much simpler and faster". As an example, Jenkins pointed to SpringMVC's flexible data binding "which became vital when we went multi-language as it made it possible to be more intelligent about number formatting styles across multiple locales". The switch reduced the size of the code base significantly and the change "just made life much simpler". "Spring has one of the cleanest architectures I've ever encountered" adds Jenkins.

Kris Jenkins
Zoom Kris Jenkins, CTO of BullionVault
For mapping their Java classes to the database, they went with iBatis while for reporting, they use Eclipse BIRT for creating internal reports. "It's great that we can go from a working SQL query to a web report with standardised formatting very quickly" which has allowed them to produce intranet reports like "How much gold have we sold each day in the past week?". BIRT's PDF generation is also used to generate statements and contract notes as it is fairly easy to integrate into batch processes; "It's also good at not getting in our way. Easy stuff's easy, hard stuff's harder". Jenkins says they recently looked at Oracle's Apex but found it "made easy stuff trivial, tricky stuff impossible ... even the set up was tricky". BIRT is not without it's issues though. "The documentation is patchy and almost always out of date. Compiling the source code is a real headache".

From the start, the developers had performance in mind, with ehcache used to help speed response times for users. The developers contributions back to the open source community have typically been performance patches for libraries as a result of this work.

Development, of course, is not just about code but also about maintaining the code. Open source plays its part here with the company using Bugzilla to track issues with the software and ensuring quality by using JUnit and Spring mocking to create tests for the system. The switch to SpringMVC made creating unit tests much easier.

One element which isn't open source are the BullionVault bots. The company uses bots, software programmes which act as customers, to trade within the exchange on its behalf. Bots are used to create liquidity in the exchange by encouraging trade in gold to take place, using simple trading strategies. The bots are proprietary to BullionVault, but the company has an open API to allow third party bots and applications to trade such as Bullionbetting.com. The bots do have an impact on code quality though as they do exercise the system; often, the bots are the exchanges heaviest users. Jenkins recommends the use of automated bots as part of a quality strategy for online exchanges because of their ability to generate work for the system and report back on the systems' function. He adds that they have considered open sourcing the bots themselves, but it "hasn't happened yet".

Next: The back and front office

Print Version | Permalink: http://h-online.com/-746567
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit
 


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit