Computerworld

Open-source reporting goes corporate

JasperServer Professional and Pentaho Reporting build on famous Java open source libraries for generating reports, but they’re no longer for developers only; rapidly gaining on traditional heavyweights, both score with user-friendly query tools and sophisticated front ends

Just a few years ago, the world of open source packages for generating database reports was a quiet secret shared by programmers on a deadline. Anyone could spend a few minutes linking in a library to start generating relatively clean tables filled with data pulled from an SQL database. I've personally made a few clients happy by adding JasperReports to some projects with just a bit of XML and a JAR file.

That world is rapidly changing. The old, programmers-only club revolving around a CVS tree and mailing list hosted on SourceForge.net is disappearing or, more correctly, being eclipsed by a couple of solid, aggressive companies staffed by full-time professionals. The old core of the open source projects is still there, but there are new, fancy, and sophisticated applications wrapped around them. These new efforts now are commercial competitors to the bigger, old-line report fountains such as Cognos and Crystal Reports.

The programmers can still grab the code for these cores and use them, subject to the same license terms they've always used. The main JARs that define JasperReports and JFreeReport are still governed by an open source license. But now there's another option: paying for a server application that runs reports and even lets nonprogrammers generate ad hoc reports. These new stacks of code are solid competitors to traditional commercial offerings that may deliver big wins for companies that adopt them.

Up from free

For this review I looked at JasperServer from JasperSoft, the company that's been built around the old Jasper code base, and Pentaho Reporting from Pentaho, another company built around a successful open source reporting code base, JFreeReport. Both companies offer full Web applications that let you and your staff manage a collection of reports. The users can log into the system and request reports to be generated immediately or following some chronological pattern, such as every Tuesday. Both also provide relatively simple ad hoc report tools that let nonprogrammers produce a halfway decent report.

The systems are also getting more complicated. You can get either JasperServer, a product that schedules and delivers reports, or you can add in JasperAnalysis, a module that lets you "slice and dice" the table of numbers by aggregating or splitting apart various columns in the data. This interactive tool is bound to be a hit for micromanaging executives, and it's similar to efforts from the likes of Cognos and Business Objects. There are also numerous customized packages, such as Jasper4Salesforce, Jasper for MySQL, and Jasper4Sugar, products with names that speak for themselves. If you have data integration challenges, JasperETL is integrated with Talend's toolset for extracting, transforming, and loading different data sets.

Pentaho has different combinations. Pentaho also offers a server that delivers a catalog of reports at specific times and ad hoc reports while you wait, but there are no bundled packages for specific domains such as Salesforce, though there are preconfigured installations for Hypersonic and MySQL. And instead of the interactive OLAP in JasperServer, Pentaho has a flashy dashboard tool that lets people drill through charts.

Page Break

Reporting two ways

I experimented with JasperSoft's tools by installing the JasperServer and JasperAnalysis packages and building some basic reports. The results are impressive and a far cry from what you got for free just a few years ago. The interface is crisp, clean, and well-designed. The ad hoc toolkit makes it relatively simple to whip up a report, and the analysis tool is completely integrated.

There are some nice touches that might attract a Java programmer. You can add queries in either SQL or HQL (Hibernate Query Language) because the system is built on top of Hibernate. If you need more complicated data sources, you can add an arbitrary call to a JavaBean method.

Still, there were some glitches, although no more than are, alas, common in enterprise software of this complexity. When I started to build a cross-tab report with the ad hoc builder, it locked itself in some limbo that kept me from either saving or running the report. I could only give up. Several more reports failed to run because of permissions problems with the Acegi security layer.

There has been, incidentally, an increase in the number of gradual improvements in the core open source tools. The graphical report designer, iReport, and the core JasperReports are now on version 2.0.2 after adding several new features, including style templates. This suggests that the core will continue to be tended, if only because the more commercial clients will ask for new features.

I worked with Pentaho by installing the Pentaho Reporting server and the extra tools, including the Report Designer. Pentaho's systems are also built on many of the same common Java foundations such as Spring and Hibernate. The core, JFreeReport, is very similar to JasperReports, so the basic reports are close to the same.

But the differences come in the extras. The Pentaho Ad Hoc report generator has more templates and cosmetic extras than its JasperServer counterpart, but fewer complex report types. There's a mechanism that lets Pentaho users "subscribe" to reports that appear at certain times, while JasperServer has no equivalent.

In general, I found that the Pentaho system was more layered and seemingly more complex, something that may or may not be a virtue. JasperServer's screens seem to have more complex options, while Pentaho Reporting seems to require drilling through several simpler screens. The options are much the same, but the complexity at each layer often reflects a different philosophy. I suspect that Pentaho Reporting will be more accessible to the nonprogrammer, while JasperServer will be more natural for a programmer, but that's just a casual guess about a very subjective topic.

There are other odd corners. The standard Pentaho download comes with JBoss' portal. If you click a few times on the wrong button, you'll find yourself in the middle of the portal, surrounded by JBoss logos but not much in the way of reporting options. If that's what you need, that's great. But if not, you'll have to clean out that kitchen sink before deploying.

I also encountered a similar amount of glitches with Pentaho. In one case, the system tried to take me to the URL "/pentaho/home" instead of "/pentaho/Home," and I ended up with a 404/"not found" error. A different sequence of clicks delivered me correctly. The Pentaho Ad Hoc report generator also locked up several times, leaving me unable to do anything except cancel a report without saving or running.

These glitches seem to indicate that both JasperSoft and Pentaho have decided that it's better to get bigger faster and fix the little inconsistencies later. Nothing I encountered prevented either system from working, but they were annoying. They may also indicate a potential cultural difference born of the open source roots. The programmers used to be able to count on users being programmers with access to the code. Little inconsistencies such as these are the ones that open source users are great at spotting and fixing. But now that these companies are pushing a commercial product, they need to realize they can't rely upon the fabled many eyeballs to be the QA department.

Page Break

Open source advantage

Both companies say that they'll continue to be true to their open source roots. They say that you can use all of these new applications under either a commercial or an open source license, effectively following the same path as MySQL. This has a number of advantages for programmers and IT users because anyone can start experimenting with the tools and even start deploying the servers before they need to consider paying for a commercial license.

The terms of the licenses from both Pentaho and JasperSoft are designed to trade support and documentation for cash. The first time I started using JasperReports, I ended up buying the documentation, and I think many businesses and even low-budget hobbyists will do the same. JasperSoft, for instance, now offers a US$295 annual subscription to its documentation.

One fascinating question is whether the open source core will atrophy by accident or by design. No one knows what these corporations will do over the years, but I see the open source core as a real advantage for these companies. Programmers can use the core tools to embed reports where they're needed, then turn around and use the same XML definition for the reports on the server products. The design of reports may even flow in the other direction if novices use the ad hoc tool to create the reports, then send the XML directly to the programmer. The open source core could produce some nice cross-fertilization.

The main competitors will be the reporting tools from Business Objects and Cognos, the big, sophisticated engines that have been the chief innovators over the last few years. The new efforts are largely gaining ground, and many of the features added to JasperServer and Pentaho are borrowed from these giants. The open source upstarts haven't caught up completely, but I think that many small and medium-size organizations would be quite happy with JasperSoft's and Pentaho's servers. The biggest organizations may still find that the major enterprise features for locking up data or confining it to particular groups is a bit easier with the leading applications, but the differences are slowly disappearing.

There are less obvious competitors. OpenReports, for instance, is a professional report manager that supports the JasperReports and JFreeReport cores. It will schedule reports and e-mail them at specific times. There's not much of an ad hoc report creator and the menu structure can be a bit clunky at times, but the professional price is a mere $495, and there's an open source version with most of the same capabilities. The low end is brutal competition from application software developers.

There are also free, nonopen competitors. LogiXML, for instance, offers a low-end version of its system with many of the same report scheduling features. It doesn't come with the source code, but you can run the entry-level version at no cost.

Still, the work that's gone into the JasperServer and Pentaho Reporting packages is phenomenal. These open source hybrid solutions are fast catching up with the major players and offering a level of sophistication that was never available in the open source reporting world. As they continue to implement most of the features available from the biggest commercial rivals, their new offerings will give corporate IT managers a good reason to check them out.