Tuesday, June 23, 2009

My experiments with truth.. oops.. no.. BIRT and Jasper

BIRT vs Jasper

Over the past couple of weeks I was trying to explore the features supported in BIRT and Jasper. To a beginner, both the tools seem to be difficult. I mean, to get a working sample on them, it takes some time. I went through numerous blogs, tutorials and my firefox bookmarks started becoming unmanageable. So I thought of publishing my experiences so that it will help someone.

The basic principle behind both reporting tools is the same.

1. Design a report using a report designer (Save it in a xml file)

2. Use the report engine to parse the xml file and fill the data in the report

3. Render the report in a format of your choice (pdf, html, csv, etc..)

Performance metrics

BIRT seems to be 10-25% slower than Jasper for as long as the caching mechanism is used. Once the caching (virtualizer) is used, BIRT gives better performance (around 50% more) when compared to Jasper.

BIRT Gotchas

· Always sorts the records once a group is created. BIRT 2.3 talks about a field for turning off the sort, there is no difference on the turn-around time.

· Using BIRT in a web application requires you to add 30MB of libraries to your deployable (ear or war).

· The pdf rendering mechanism generated huge (really hhhhhuuuuggggeeee) pdf documents.

· Integration with java does not seem to be straightforward. For instance, passing a collection of objects to a BIRT report requires you to browse through numerous blogs and tutorials on birt-exchange and then apply your brain.

· Report rendering in xml format does not yield a good quality xml.

Jasper Gotchas

· iReport. The report designer does not seem to be intuitive.

· Localization of database resources does not seem to be possible

· Csv export gives extra blank columns (extra commas) in the output file

· Excel output does not include the graphic images (logos etc..)

· Does not provide a good facility for component based model, object libraries.

· Lacks concept of theme in the report elements except charts.

· Does not have a default style per element (one style for table, another one for textfield etc..). It has a default style for the report.

· Once virtualizer is used to overcome outofmemory error, the performance degrades drastically

1 comment:

  1. Brilliant work !!!!!!
    Keep posting like dis.!!!!! i am really seraching for such posts...Birt reporting have made a hell out of me ..:)