Building a Java based stock trading application, need pointers for technologies to use

Mponnada picture Mponnada · Jun 23, 2009 · Viewed 7.1k times · Source

I am building an application in Java (with a jQuery frontend) that needs to talk to a third party application. it needs to update the interface every two seconds at the most.

Would it be a good idea to use comets? If so, how do they fit into the picture?

What other means/technologies can I use to make the application better?

The application will poll stock prices from a third party app, write it to a database and then push it to the front end every second, for the polling, I have a timer that runs every second to call the third party app for data, I then have to display it to the front end using JSP or something,

well at this point im not sure if I should use a servlet to write this out to the front end, what would you recommend? how should I go about it?

is there any new technology that I can use instead of servlets?

I am also using Berkeley db to store the data, do you think its a good option? what would be the drawbacks, if any for using berkeley..

im absolutely clueless so any advice will be much appreciated.

Thanks!

edit : I am planning to do this so that a deskop app constantly polls from the thrid part and writes to the database and a web app only reads and displays from the database, this will reduce the load on the web app and all it has to do is read from db.

Answer

Jon picture Jon · Jun 23, 2009

Take a look at using a web application framework instead of Servlets - unless it's a really basic project with one screen. There are lots in the Java world unfortunately and it can be a bit of a minefield. Stick with maybe SpringMVC or Struts 2, the worst part is setting these up, but take a look at a sample application plus a tutorial or two and work from there.

http://www.springsource.org/about

http://struts.apache.org/2.x/index.html

Another option to look at is using a template framework such as Appfuse to get yourself up and running without having to integrate a lot of the framework together, see:

http://appfuse.org/display/APF/AppFuse+QuickStart

It provides you with a template to setup SpringMVC with MySQL as a database plus Spring as an POJO framework. It may be a quick way to get started and up and building a prototype.

Judging by your latency requirement of 2 seconds it would be wise to look at some sort of AJAX framework - JQuery or Prototype/Scriptaculous are both good places to start.

http://jquery.com/

http://www.prototypejs.org/

In terms of other technoloqies to make things better you will want to consider a build system, Ant/Maven are fine with Maven the slightly more complex of the two.

http://ant.apache.org/

http://maven.apache.org/download.html

Also, consider JUnit for testing the application. You might want to consider Selenium for functional testing of the front end.

http://www.junit.org

http://seleniumhq.org/