Wednesday, May 6, 2009

Major JAVA reporting toolkits review

Been really busy at the office lately (evaluating pentaho, Birt, Jasper and now Oracle XML Publisher Standalone).

All of these are great and I have a deep appreciation of the efforts made by open source. Just so you know :
  • Jasper : Best open source solution.
Advantages:
Of all these evaluations this was the BEST performing (render speed)
I do not have much need for analysis (since I prefer view / materialized views) and therefore this was ultimate.
Great formating error detection.
Scheduling / email works.
Great (best) Parameter / programmed parameter support.
Clean code ( in case you were wondering about what is under the hood )

My concerns :
No DEFINED table structure. You need to put fields into the details region to make a table. Alignment etc can become an issue.
Comes pre configured with a mysql instance. Moving to a different database is an involved process.

  • Pentaho: Really nice and has gathered the most momentum in open source for now.
Advantages:
Analysis. Like I mentioned I do not have much need for this.
Scheduling.

Disadvantages:
The report designers does not (as of version 2. It is planned soon though) have support to preview report with parameters. As far as I know, I see no use of a report without parameters. You need to upload the report to the server to preview such a report.
Update: They have a design studio where it is possible to preview the report in an integrated way (without opening the browser) as well as define action flows .... cool
Query designer kept giving errors (but that didn't bother me since I use SQL Developer anyways). The jasper query designer was much better. It uses netbeans data sources which are highly stable.

  • BIRT
Advantages:
By far the most comprehensive report designer. Simply the best!


Disadvantages:
Not the best programmed parameter support. Although much more powerful than jasper (due to its use of java script) but takes a bit of hacking. It does work though ;). Also you need to put parameters as ? in the SQL query and cannot name them till afterwords. (Jasper had a better concept $P ;))
No free scheduling support.
Speed was the major concern. I was close to writing my own scheduling framework when preliminary testing by users was not satisfactory.

  • XML Publisher
Since I have finally decided to move to it completely I will mention the disadvantages first:

Disadvantages:
Report design experience: Although they have the best idea (use word!) it keeps hanging from time to time.
Online query designer: I prefer an offline version where queries can be moved from place to place (you can do this by coping the xdo file from the server. But still)
No mouse over chart support like you get with BIRT. Like I said for small number of users with small number of reports. BIRT IS THE BEST.

Advantages:
BEST FORMATING OPTIONS (its word... enough said)
Awesome scheduling. You can send to printer/ fax/ ftp / email and more :). You can also check history etc. Nice admin interface. You can also install the scheduling repository from the web interface (unlike jasper where you need to manually run sql scripts)

Scheduling seems vital to the project. Along with oracle, easy cross platform, and easy template based support. XML Publisher it is :). Not to mention that once I have my oracle backup procedures in place I need to worry a lot less. :). Also the export to excel by XMLP was the best.

PS: I deployed the XMLP war to tomcat (blazeds). It works.