Expertise

BIRT Designer

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:

  • New out-of-the-box support for Hadoop Hive data sources.
  • Exporting to PDF now uses SVG (Simple Vector Graphics) to embed charts in the document, instead of using images. This results in smaller PDF documents and crisper output.
  • Ability to export reports to OpenOffice formats.
  • BIRT deployment is significantly easier with a new POJO Runtime which isolates integrators from the OSGI platform that is the basis for BIRT.
  • Complete list of features available through the BIRT New and Notable.

 

Top

Components

Open-source BIRT consists of two main components:

  1. BIRT Report Designer - A best-in-class report designer. 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.
  2. 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.

BIRT also includes three additional open-source components that can be used separate from the main components:

  1. 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.
  2. 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.
  3. 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.

 

Top

General Impressions

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. 

 

Top

BIRT Runtime

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. 

 

Top

BIRT Designer

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:  

  1. A stand-alone, fat-client application, that is installed to the Windows desktop (the RCP Designer package), or
  2. A plug-in for the Eclipse IDE on Widows, Linux, and Mac OS X.

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:

  1. 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. 
  2. 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. 
  3. 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. 
  4. Unlike JasperReports and Pentaho, BIRT does not require you to use sub-reports for multiple data sources or cross-tabs. 
  5. 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’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.  

 

Charting

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.  

birt-image001

Figure 1 - BIRT Chart Designer Step 1 

 

birt-image002 

 

Figure 2 - BIRT Chart Designer Step 2 

 

birt-image003 

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.  

 

birt-image004 birt-image005

Figure 4 - Options for interactivity of chart elements

 

Crosstabs

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). 

birt-image006

Figure 5 - Cross Tab Creation – Cross Tab Cube Builder wizard 

 

birt-image007

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. 

 

Top

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. 

 

Strengths

As detailed in the previous section, we believe the BIRT Report Designer has the following advantages over Pentaho’s and JasperReports designers: 

  • The BIRT Report Designer 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.
  • 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.
  • Like JasperReports, BIRT has recently added support for Hadoop Hive as a data source.

 

Weaknesses

  • 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). To be fair, though, Jaspersoft’s report element for Google Maps is “experimental.”
  • BIRT’s open source designer has hardly changed in the past two years.  Both Pentaho and to a lesser extent JasperReports 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.
  • Report developers cannot precisely control the placement of each element in the report. This is a major drawback for reports that are to be printed; in fact, it can be quite frustrating 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 JasperReports (see screenshot).
  • birt-image008

    Figure 7 - The types of data sources available out-of-the-box for open source BIRT. The “Hive Datasource” is the newest one. 

 

Top

Conclusions

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.