The Eclipse Business Intelligence and Reporting Tools Project* (BIRT) is an Eclipse top level project that is focused on tools and capabilities that extract data from data sources, process that data, and present the processed information to the end users. First released in 2004, BIRT is a mature open source reporting platform with millions of active users.
Actuate, by far the largest code contributor to the project was acquired by OpenText, Canada's largest software company, in January of 2015. At the time of this review, OpenText and Actuate have not indicated any changes to the BIRT Project. This article will be updated as more news comes available regarding OpenText's future plans for BIRT as an open source project.
Disclosure: Innovent Solutions has been active part of the BIRT project since 2004, as members, committers and on the Project Management Committee.
- Changes Since Our Last Review
- General Impressions
- BIRT Runtime
- BIRT Designer
- Strengths & Weaknesses
Changes Since Our Last Review
Since our last look in 2012, BIRT has changed very little. The changes we notice include the following:
- Donut Chart added
- Cassandra, MongoDB, Excel file, and POJO data sources added
- Microsoft Office Emitter improvements, particularly around the Excel output
- Cube/Crosstab improvements including derived measures and relative time period control
- Client Side Library inclusion (similar to the Jasper Visualization Controls)
- Improvements to data cache for re-use of data sets
- Maven support of BIRT ReportEngine
- Support for OSGi runtime brought back (continued support for POJO Runtime)
Over the last four months there has been a surge in activity for the Luna 4.4.2 release of the product due at the end of February 2015. The new activity reflects changes in the project setup (new committers) and a renewed focus on testing and bug fixes. As of this writing, there are no plans for significant new features in the upcoming Mars release of the product (June 2015).
Open source BIRT consists of two main components:
- BIRT Report Designer – A graphical report designer that is designed to be easy to use. It is a fat-client tool, installed to the developer’s desktop, either within the Eclipse IDE or as a standalone Windows application (the “RCP Designer” package). Report developers use its graphical user interface to create report layouts, hook up data sources, and produce XML-based report designs.
- BIRT Runtime – The “BIRT Runtime”, also known as the “BIRT Report Engine,” is a set of Java classes and APIs that takes the XML-based report designs (created by the BIRT Report Designer), “runs” the report designs by querying their data sources, merges the query data into the report layouts, and then produces report output in HTML, PDF, Excel, or other formats. You can embed the BIRT Runtime inside your Java applications. The BIRT Runtime can be deployed either as a set of OSGi jar files, or as a drop-in collection of jar files.
BIRT also includes four additional open-source components that can be used separately from the main components:
- BIRT Chart Engine – The BIRT Chart Engine is basically just a piece of the BIRT Runtime. With the Charting Engine API (CE API), you can incorporate charting into your Java application without the overhead of the entire BIRT Runtime.
- BIRT Chart Designer – OSGi based report designer that can be deployed and used within applications that support the OSGi framework that would like to design reports.
- BIRT Viewer – This is a sample “viewer” that is an Eclipse plug-in. It lets you preview reports, populated with the real query data, when you are working within Eclipse. It is also available as a standalone Java EE application. By deploying the BIRT Viewer to a Java application server, you can provide end users with a web-based user interface to view reports, navigate through paginated reports, and render reports into a variety of formats including HTML, PDF, and Microsoft Excel/PowerPoint/Word. The BIRT WebViewer also supports JSP Tag Library extensions for many common report interaction tasks.
- Eclipse Data Tools Project (DTP) – BIRT's access to data is designed to flow through the DTP, a stand-alone project. Initially co-sponsored by Actuate and Sybase. The development on DTP has slowed considerably.
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, re-using 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.
One significant 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 such as 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 Jasper.
A second significant area where BIRT does not match up to its open source competitors is its incompatibility with OLAP data as describe by either Mondrian or XML for Analysis (XMLA). While technically possible to work with either data source, BIRT does not have any out of box functionality to explore or work with either format. For organizations that have made a significant investment in either Mondrian or an XMLA capable server BIRT is probably not a good option.
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 – including JBoss, Tomcat, Glassfish or Jetty.
The BIRT Runtime supports can run using the OSGi framework or as drop in POJO jar files. This allows application developers that are using OSGi to take advantage of the OSGi classloader framework, while allowing developers in non OSGi applications to simply drop the required jar files into the application classpath. Resolving conflicts between jar files would of course have to be handled by hand when not using the OSGi framework.
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:
- A stand-alone, fat-client application, that is installed to the Windows desktop (the RCP Designer package), or
- A plug-in for the Eclipse IDE on Widows, Linux, and Mac OS X.
The BIRT Report Designer differs from both the Jaspersoft Studio and Pentaho Report Designer in a few major ways, which we explain in more detail in this section:
- BIRT uses a grid-oriented “web layout” approach to placing report elements on the page, eschewing the “pixel-perfect positioning” approach of Jaspersoft and Pentaho.
- For many common aspects of report creation, BIRT provides the most easy-to-use report designer and its functionality is often the most complete. However, the UI can overwhelm the novice.
- With BIRT, it is much easier to create charts and crosstabs. The report author has fine-grained control over the behavior and look of both crosstabs and charts without requiring custom code.
- Unlike JasperReports and Pentaho, BIRT does not require you to use sub-reports for multiple data sources or cross-tabs.
- Unlike JasperReports, but similar to Pentaho, BIRT report designs are based on XML and do not need to be compiled into a report executable.
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 reports provide the simplest approach to quickly display the results of a SQL query, simply dragging the DataSet (query) into the layout view results in the creation of a table showing the selected fields, complete with header labels.
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. Over time, BIRT has added features and controls that allow for better control of the report layout, allowing developers to achieve pixel perfect like detail. For reports that need to be printed with precise placement of each report element on the page, 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.
BIRT also provides one of the biggest windows in terms of flexibility of design within a consistent framework. Upon mastering a few basic BIRT concepts, e.g. DataSets, Table Binding, Expressions, most developers can build very complex reports. In addition, BIRT has a great deal of consistency between components making the learning curve for demanding tasks somewhat easier to understand.
Despite this, though, we do think that BIRT is an intimidating tool for novice 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 or more 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). Unfortunately, BIRT does not have any built in mechanism for digesting information that is in multi-dimensional format such as Mondrian or XMLA.
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 and Jaspersoft designers:
- The BIRT Report Designer, like Jaspersoft Studio, is part of the Eclipse IDE which makes it the obvious choice if you are a Java application developer who works primarily Eclipse. It integrates seamlessly with Eclipse’s project management features. Development teams that use Eclipse may want to consider either Jaspersoft Studio or BIRT over Pentaho for familiarity with the development environment.
- BIRT has the most useful documentation included in the free product.
- The BIRT Report Designer has the easiest wizards for creating charts, and there are many more options available for creating attractive, interactive charts than for the other tools. (see above)
- BIRT has the best support for crosstabs. (see above)
- While BIRT allows you to use sub-reports if you want, you aren’t forced to use them in order just to create crosstabs or use multiple data sources within your report.
- BIRT is the most usable for reports that are medium to high complexity. For each feature, it provides pretty complete functionality that can be accessed completely through the BIRT Report Designer’s UI without requiring custom code.
- BIRT’s entire way of doing things is geared toward reusing report components across multiple reports. You can create libraries of shared resources -- such as report items, scripts, queries data connections, images, styles, and templates – that can be dynamically used by multiple reports. This means that if you need to change a component that appears in multiple reports, you can do so just once as opposed to editing each report individually.
- The BIRT User Interface is perhaps too cluttered and overwhelming for novice report developers, or even for experienced report developers who are new to BIRT.
- BIRT is more focused on just reports, where Pentaho and Jaspersoft are more broadly focused on the gamut of Business Intelligence. As such, BIRT lacks an open-source report server that would let report developers deploy their reports to end-users, it has fewer open source tools to help with data integration, and does not have open source analysis tools. In contrast, both Jaspersoft and Pentaho provide open source BI servers to run reports, perform analysis, and provide data integration.
- BIRT lacks map integration, unlike Jaspersoft (but like Pentaho)
- BIRT’s open source designer has hardly changed in the past five years. Both Pentaho and to a lesser extent Jaspersoft have seen more incremental improvements in their reporting products.
- BIRT makes the process of getting started with the tool needlessly laborious. There’s no install process, and you have to hunt down and install the proper database drivers yourself. This is a marked contrast to both Jaspersoft, which includes a very nice installer and database drivers to most types of data sources, and Pentaho, which doesn’t have an installer but includes many common database drivers.
- Precise control of the placement of each element in the report is more difficult in BIRT compared to both Jaspersoft and Pentaho. This is a drawback for reports that are to be printed; in fact, it takes some work to get high quality printed output from BIRT. If printed output is more important to you than presenting the report within the web browser, we generally recommend against BIRT.
- BIRT does not have as many pre-configured data source types as either Pentaho or Jaspersoft (see screenshot).
Figure 7 - The types of data sources available out-of-the-box for open source BIRT. Cassandra, MongoDB, POJO, and Excel are all new data sources.
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 less 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.
The community aspect of BIRT is also primarily focused on reporting, with less focus on Business Intelligence. While both Jasper and Pentaho have web based community products that allow users to explore and dynamically interact with data, BIRT does not have this feature out of box.