Mark Six Analyst 2

Mark Six Analyst version 1 was released one year and a half ago. And the version 2 is released today. You can download it at the same website: http://sourceforge.net/projects/marksixanalyst/

Source: http://sourceforge.net/projects/marksixanalyst/files/src/marksixanalyst2-web.zip/download


The version 2 does not change too much on basic functions, i.e. Lottery Record Management and Analysis & Prediction. However, the whole architecture is changed at all.

First, the version 1 is a standalone application while the version 2 is a web-based application. I went to the totally different architecture design because of the efficiency of web-based application development. In term of User Interface, you can freely place UI components and define their behaviors in Swing but it is too free, although NetBeans may help you build a UI quickly, you still have to spend a lot of times to move and click your mouse. On the other hand, web-based applications are under web framework, that is HTML output. You can build a UI with well-defined components by plain texts and dynamically generate them by JSP/Servlet. In addition, thanking jQuery, you can build a dynamic web page such as well-defined tables, file import/export by simple scripts. Furthermore, users nowadays open a browser more than other applications. A web-based application can be opened anytime they want without moving the mouse cursors to somewhere far away.

Second, the version 2 is built under Spring Framework. A core of Spring Framework is Inversion of Control (IoC). With IoC, the dependencies of classes are reduced and each class is decoupled with each other. As a result, the classes can work independently to cooperate with others and the design becomes more flexible. For example, the UI A is responsible for showing Content A. If I would like to show the similar content Content B, I do not need to define another class but reuse the UI A by setting its content as Content B to build another UI object for the new task. Another important area applying IoC is Mark Six Analysis Algorithm. I have created an Interface of algorithm and some classes implementing the Interface. I can use spring's descriptor XML file to define each class' behavior and even combine some of them to become a new algorithm without writing any new code.

IoC is the most important improvement of version 2. Users can apply their own algorithms easily within Mark Six Analyst.

Third, the version 1 utilizes JPA and Hibernate to handle Object-Relational Mapping efficiently while the version 2 goes back direct JDBC coding. JPA is very convenient and it is very efficient in handling straightforward database access, e.g. simply list all records. On the other hand, in my case, the algorithm may involves complicated SELECt statements so that JPA may not be easily handled. The performance of JPA contains some overheads while that of direct JDBC coding can be tuned directly in coding. This area does not seem an improvement of new technology but is an improvement of performance.

I wish that the new version can provide a more flexible and easier method to customize Mark Six Analyst so that more people can involve in it to build a more powerful Mark Six Analyst algorithm.

Last but not least, I would like to sincerely thank the following parties which have helped me to develop this application:

Testing Environment -
  • OS: Mac OS X 10.5

  • Servlet Container: Apache Tomcat 6.0.30

  • Database: PostgreSQL 8.4

  • Browser: Firefox 4.0

Comments

PGHK said…
great job, why don't use mysql instead of pregsql.?

Popular posts from this blog

Event: Developer Productivity Engineering: What's in it for me?

Ethical Hacking 101

Mark Six Analyst