Features of BIRT
What does BIRT stand for? Certainly it's not everyone's favorite fuzzy uni-browed Muppet in the title slide. BIRT actually stands for Business Intelligence and Reporting Tools. Although not as cute, doesn't the definition just fill you with the same warm fuzzy feelings as a Muppet? It is an open source report development environment built on top of the Eclipse framework. I have emphasized the term "environment" as some of us already know that Actuate doesn't just build "products", they build full fledged platforms for report delivery, and BIRT is no exception to this.
BIRT is what the Actuate corporation sees as the future of its product line. While some may consider it in its "infancy", BIRT is actually a fairly mature product built on top of, and in conjunction with, the Eclipse Foundation and the Eclipse Platform. In the years since BIRT's introduction at the 2004 Actuate Users Conference, BIRT has grown and matured to a full fledged reporting platform, which is something that the open source community has been severely lacking. Their announcement in 2004 really peaked my interest as I was looking for a reporting platform to integrate into Sguil. Ever since my early introduction into the world of MIS and BI, I had to struggle with the lack of a decent open source reporting product, and BIRT delivered on that and more.
At a high level, BIRT can be broken up into two main categories. The one most often considered to be"BIRT" is the report development environment that is used to design and develop reports. The graphical designer runs inside Eclipse and leverages a highly customized workspace. It uses a familiar graphical development paradigm similar to what Macromedia's Dreamweaver would use for designing web pages or Visual Basic for designing programs. It contains a number of drag-and-drop visual and data components.
The second component of BIRT is the Java APIs. This is where BIRT gets so much flexibility from. This allows BIRT to be embedded into any number of Java or J2EE applications. For instance, these APIs provide the Java Servlet Report Viewer that allows for implementing a BIRT report engine into Apache Tomcat. I have provided examples of this, and how to use these APIs on my website.
Some of the features that the BIRT Designer provides out of the box as of the 2.5 release are as follows:
JDBC Database Reporting
Extensible data capabilities through the Eclipse ODA Data Connection and the ability to instantiate Java objects within reports
Joined datasets to allow for multiple data sources in a single report
Web deployment
Templates for rapid development of similar formatted reports
Libraries for sharing common report elements among reports
Scripting for adding business logic and manipulating report elements and runtime behavior
Instantiation of Java objects in reports via Mozilla Rhino
A full blown chart engine with line charts, bar charts, pie charts, and a number of other chart types
Crosstab reports using the new BIRT cube designer
BIRT provides connections to existing database platforms via JDBC. So, database back-ends such as Oracle, MySQL, and Postgres are all environments that you can connect to and start reporting. Even some of the lesser known platforms that provide JDBC drivers such as HyperSQL (the engine that Sun's Open Office uses) can be used.
For environments that don't provide JDBC, BIRT can leverage the Eclipse Foundations ODA for building custom data connections. For example, Hibernate objects can be reported on via ODA, which is an example that Jason Weathersby from the BIRT Project Management team has demonstrated. If necessary, Plain Old Java Objects (POJOs), can be used as data sources via ODA and through BIRT's scripted data source.
BIRT also allows for joined datasets. This feature allows a user to join two separate data sources, regardless of physical data location, into one logical dataset. So, say for instance you have an HR database with employee information and a training database with corporate training data, these two can be combined into a single logical dataset for use in BIRT reports.
BIRT reports can be distributed via the Web through Apache Tomcat or any J2EE platform such as IBM WebSphere, using the BIRT Report View applet. While the BIRT Web Viewer is an example application, it provides a full set of report viewing features such as page navigation, export to CSV, and PDF format exporting. Additionally, as it is open source, its features can be extended to include authorization. It offers users a set of URL parameters for customizing report calls, or you can simply include the Report Viewer classes in your existing J2EE applications. This is useful for implementing reporting into your own custom portal using technologies such as Ajax and Reportlets or to extend existing applications.
For the interface designers, things that we have come to expect from large projects such as libraries and templates are also features that BIRT has to offer. And of course, for the fan boys out there, including myself, it's open source. And those are just out of the box examples. BIRT is also extensible, with extension points available not just for ODA, but for output formats (Emitters), graphical components, aggregations, chart types, and scripting functions. For example, let's say you need your report output to go to a specialized XML format to be used in an XSLT transformation. You can create a customized Emitter plugin to output that XML.