BIRT is a collection of open source reporting system that is part of the open-source Eclipse project, the leading development platform for Java application developers.
First released in 2004, BIRT is the newest open source reporting platform of the three we reviewed. Actuate, the company that touts itself as “The People Behind BIRT,” is the largest code contributor by several orders of magnitude* and largely decides BIRT’s overall direction, with input from the OSS community. In addition to its open-source work on BIRT, Actuate has built several non-free, proprietary products based on the BIRT technology. In this write-up, however, we are going to focus exclusively on the free, open source products that are available from Eclipse.
*Disclosure: Innovent Solutions is also a code contributor to BIRT and member of the Project Management Committee
Changes Since Our Last Review
Since our last look in 2010, BIRT has changed very little. The changes we notice include the following:
Open-source BIRT consists of two main components:
BIRT also includes three additional open-source components that can be used separate from the main components:
The BIRT Report Designer is a robust, powerful tool for creating reports where the output is primarily presented over the web. We found the BIRT Report Designer to be fairly easy to use (although occasionally overly complex), and able to create reports ranging from the simplistic to the very complex with minimal custom code. BIRT has excellent support for essential report features such as charts, crosstabs, using multiple data sources within the same report, reusing queries within reports, adding custom code, and more. However, as you can see from our Product Comparison Matrix, it is not that the other report designers lack these; it is just that we found these features easier to use in BIRT and perhaps more completely implemented.
Another major distinction when comparing BIRT to Pentaho and JasperReports is that BIRT lacks an open-source report server. For many applications, a report server provides functionality like user management, report management, security, notifications, and more. Using a report server often lets report developers concentrate on report creation and the ideal presentation of data, instead of having to code up these separate capabilities. If report server capabilities are important to your application, and you are determined to go the open source route, then you should consider either Pentaho or JasperReports.
The BIRT Runtime is a report engine that runs the reports created by the BIRT Report Designer. In theory, all you need to create and run reports is the BIRT Runtime – you don’t even need the BIRT Report Designer. That said, hand-coding report designs using XML is not recommended, rather the BIRT Designer API allows for the creation of custom report design features. The BIRT Runtime is deployed to a Java Application Server – most commonly Apache Tomcat.
The BIRT Report Designer is a WYSIWIG tool that lets you create report designs using a graphical user interface, as opposed to creating report designs by directly creating and manipulating XML. These report designs can then be run by the BIRT Runtime. The BIRT Report Designer is available as either:
The BIRT Report Designer differs from both the Jasper iReport and Pentaho Report Designer in a few major ways, which we explain in more detail in this section:
Web Layout Approach
BIRT uses a “web layout” approach to report design. This approach is similar to the way web pages are developed, and lets the resultant reports dynamically adapt to the size of the web browser in which they are viewed.
BIRT’s emphasis on dynamic web layouts, as opposed to emphasizing printed reports, make BIRT a good fit when reports are to be viewed primarily over the web. For reports that need to be printed [KM5]and have beautiful formatting with precise placement of each report element on the page, BIRT is likely not a good a choice; a report designer with a “pixel positioining” approach to report layout, such as Jaspersoft or Pentaho will likely be much better. The “pixel positioning” approach lets you precisely place each control on the page and the report size is geared toward printed sheets of paper.
Usability of the Designer
For usability, we give BIRT high marks because users are able to accomplish an awful lot through the designer’s UI without resorting to custom code. Also, with BIRT, once you get started on a task (such as adding parameters to a report, for example) you can usually figure out what to do without resorting to the manuals. Further, BIRT includes the best documentation, available for free as part of the product package. This is unlike both JasperReports and Pentaho, where you need to explicitly purchase the documentation.
Despite this, though, we do think that BIRT is an intimidating tool for novice users report developers and even experience report developers that are new-to-BIRT. The sheer breadth and depth of functionality the BIRT Report Designer provides can make it a bit overwhelming, and the process of creating even basic reports is more difficult than it needs to be. For example, we find BIRT’s mandatory use of “data bindings” (distinct objects that specify the data that is to populate each report element) to be a bit confusing and difficult for the novice. While data bindings allow queries and report elements to be better re-used within the same report design, the concept is perhaps overkill for very simple reports that don’t need re-use, making it difficult for novices users to figure out what to do. Also, BIRT does not provide simple report design wizards to help the novice user get started quickly (although it does provide a chart wizard). In contrast, Pentaho provides its Report Design Wizard, which provides a gentler on-ramp for novice users – giving them a starter report that they can then modify.
BIRT provides the best charting of the three report designers. To create a BIRT chart, report developers start the New Chart wizard (built into the BIRT Report Designer), which takes users through the process of creating a report step-by-step. As you select each option within the chart wizard, you can instantly see how it affects the chart via the preview at the top of the window. This “instant preview” capability is unique, and a major benefit to users who have dozens of options to play with in order to make their charts look right. Further, BIRT provide many advanced charting abilities not in the other tools without custom code. Examples include allowing the chart to further filter the data, use report parameters in the context of creating the chart, and specify all kinds of interactivity for chart elements like data points, data series, and axes.
Figure 1 - BIRT Chart Designer Step 1
Figure 2 - BIRT Chart Designer Step 2
Figure 3 - BIRT Report Designer Step 3
More detail on chart interactivity: for a chart element, when the end-user does a mouse click, changes focus, presses a key, and many other operations (see below screenshot), it can trigger an action. Actions can include going to a hyperlink, running a script, displaying a tooltip, highlighting the chart element, or toggling the chart elements’ visibility.
Figure 4 - Options for interactivity of chart elements
Crosstabs display data in a matrix similar to a spreadsheet, with totals (or some other type of aggregation) running down the right side of the page as well as the bottom. This type of report element is often very common, but is often not handled well by report design tools. Fortunately, BIRT has the best-in-class crosstab builder.
BIRT’s hierarchical crosstab builder, called the Cross Tab Cube Builder, steps you through the process of creating a “cube” from one of your already-defined queries: you specify the row fields and any hierarchies, then the column fields and any hierarchies, and finally the totals (or other aggregates) to appear in the body of the crosstab. Then, by editing the Crosstab’s properties, you can add subtotals and grand totals, specify sorting, format the individual elements of the crosstab, specify what to do with empty cells, specify multiple measures within the crosstab, and more.
Note that the query used by the crosstab does not have to already be in a multi-dimensional structure (something that many BI tools would require). BIRT automatically takes care of transforming flattened data into hierarchical, analysis-ready data via its Cross Tab Cube Builder. The cube can then be re-used by other crosstabs within the report. Note: the BIRT Cross Tab Cube Builder is not a heavy-weight cube builders found in most OLAP tools; instead it is geared to report developers with varying levels of OLAP expertise (see screenshot below).
Figure 5 - Cross Tab Creation – Cross Tab Cube Builder wizard
Figure 6 - Editing a Cross Tab: properties, etc. Note the many settings available: properties, binding, row area, column area, sorting, filters, map, etc.
Sub-Reports Are Optional
Like Pentaho and JasperReports, BIRT has full support for sub-reports.
Sub-reports are great if you have a portion of a report that you want to re-use in several other reports. However, sub-reports can be a bit difficult to work with. For example, you usually can’t view or edit the sub-report while viewing/editing the parent report in the report designer; this means you can’t preview how the final report will look until you actually run it. Also, to use sub-reports, report developers need to manually manage the dependencies between the master report and sub-report files, and ensure that the proper data and parameter values are passed between the two. Also, using too many sub-reports can result in very poor performance because each sub-report opens its own database connection, thread, and queries. So, for example, if you have a sub-report within a group section that expands into 70 different groups, then the sub-report will run 70 times, opening up a new database connection each time. And lastly, it can be difficult to debug reports that use sub-reports.
If a portion of a report is to be used across multiple reports, then a sub-report is often worth this extra hassle and complexity. However, if re-use is not needed, then a sub-report would not typically be a good choice. Unfortunately, both Pentaho and JasperReports force report authors into using sub-reports, even when they are not appropriate because code reuse is not an issue – just to support reports with multiple data sources, crosstabs, and side-by-side components.
For BIRT this is not an issue. BIRT does not require report authors to use sub-reports in order to support multiple data sources, crosstabs, or side-by-side components. In BIRT, sub-Reports are still available for their main purpose, where they are worth the additional complexity: reusing of a portion of a report across multiple other reports.
Report Design Format & Compilation
BIRT does not require that reports be compiled prior to running (unlike Jasper but like Pentaho). Also, BIRT reports are in XML format, and thus can be effectively put under revision control.
Strengths and Weaknesses
In summary, below are the strengths and weaknesses of the BIRT Report Designer, as compared to Pentaho’s and JasperReports’ report designers. Note that some of these strengths and weaknesses are really due to the behavior of the underlying BIRT Runtime, not the BIRT Report Designer itself. However, we include them here because the report developer is most likely to encounter them.
As detailed in the previous section, we believe the BIRT Report Designer has the following advantages over Pentaho’s and JasperReports designers:
Figure 7 - The types of data sources available out-of-the-box for open source BIRT. The “Hive Datasource” is the newest one.
In general, of the three report designers we analyzed, we find the BIRT Report Designer to be the most user-friendly and it provides the deepest access to reporting functionality. However, it is not suitable for deployments that require high fidelity printed output. For applications that require some functionality typically provided by report servers (security, user management, report repository management, etc), you should either look at JasperReports Server, Pentaho BI Server, or Actuate’s non-free, commercial BIRT products.
BIRT is a registered trademark of the Eclipse Foundation, Inc.