Who is BIRT? Solving Your Data Visualization Needs with Open Source Reporting Abhisek Sinha Product Manager, Actuate 1 Actuate Corporation © 2009 Today’s Agenda and Goals • • • • • • • • • Background The Emergence of the BIRT Project Getting to Know BIRT: Demo Architecture and Extensibility Market Adoption Deployment Options BIRT Technology Family Case Study Summary 2 Actuate Corporation © 2009 Business Intelligence and Reporting Purchase Orders Budget Reports Account Transaction Histories Supplier Status Reports Daily Work Order Task Lists Online and Printed Statements Shipping Manifests Invoices Network Outage Frequency Deviation from Service Level Objectives Sales Commissions 3 Actuate Corporation © 2009 Sales Reports Defect Tracking Assets Under Management Utility Bills 360° Customer Views Website Traffic Analysis Most applications have some type of data visualization need… And the simple problems are easy, but… Real-world data visualization is challenging… • Gather the data • Perform calculations, sort, group, aggregate, total… • Present information professionally …and meeting user demand is crucial to the success of an application Traditional Approaches to the Problem Crystal Reports ReportNet StyleReports JReports Buy Build Closed-Source Commercial Products Custom-Developed Solution Java XSLT 4 Actuate Corporation © 2009 JSP XML JFaces HTML JavaScript Open Source Creates New Choices Buy Closed-Source Commercial Products Build using Open Source Code Open-Source-Based Products Open Source Products Leverage Open Source in a Custom Solution Build 5 Actuate Corporation © 2009 Custom-Developed Solution Actuate Launches the BIRT Project Actuate proposed and started BIRT Business Intelligence and Reporting Tools Project … a top-level Eclipse project Actuate Joins Eclipse Foundation as Strategic Developer and Board Member Adds BI and Reporting as Open Source Project Professional open source Primary development resources funded by Actuate Contributions from many sources IBM, Innovent Solutions and community 6 Actuate Corporation © 2009 AUGUST 2004 Business Intelligence and Reporting Tools A New Generation of Reporting and Data Visualization Technology • Makes all report development easy • Modern, web-page design metaphor • Open and standards-based • Flexible with rich programmatic control • Full support for libraries and reuse • Foundation for a range of solutions Simplicity that makes simple reports easy 7 Actuate Corporation © 2009 Power BIRT to create very complex layouts BIRT Release History Six Major Releases since Project Launch September 2004 BIRT Project proposal accepted, and project launched June 2005 1.0 Eclipse Report Designer, Report Engine, Chart Engine December 2005 2.0 Support for a wide variety of common report types June 2006 2.1 Advanced parameters, ability to join data sets, … June 2007 2.2 Dynamic crosstab support, web services data source, … June 2008 2.3 JavaScript Debugger, BiDi Support, Charts in Crosstabs, … June 2009 2.5 Page aggregates, Multiple drill-downs in Charts, …….. • Ground-up initiative: Innovative approach to layout and design • Enterprise-class, designed to handle real-world problems • Developed in the open with community feedback at all stages 8 Actuate Corporation © 2009 Getting to Know BIRT DEMO 9 Actuate Corporation © 2009 BIRT Example Key Capabilities Very Simple to Very Complex Layouts • Listings, cross-tab, dashboard, pixelperfect, charts … • Grouping, advanced aggregations, subtotals, calculations • Multi-section and sub-reports • Conditional sections and logic • Full programmatic control/scripting • Embedded images… Comprehensive Data Access • SQL databases, Web Services, Flat Files, XML, scripted data sources … • Multiple data sources in one design… Re-use and Developer Productivity • Library support for publishing and sharing components • Leverages common standards (SQL, HTML, JavaScript, Java, XML) • Cascading Style Sheets • Built-in debugger… Interactivity and Linking • Data driven hyperlinks • Drill-through charts and graphics… Multiple Usage and Productivity Aids • Graphical layout and design Output Formats • Query & metadata editors • HTML, PDF, Excel, Word, PowerPoint… • Formatting Builder • Internationalization of labels and text • Grouping Builder • Bi-Directional language display • Customizable cheat sheets and templates… 10 Actuate Corporation © 2009 BIRT Design Gallery Charts and Tables Listing with Groups and Sub-Totals 11 Actuate Corporation © 2009 BIRT Design Gallery Crosstab and Charts Crosstabs 12 Actuate Corporation © 2009 BIRT Design Gallery Forms Calendar / Schedule 13 Actuate Corporation © 2009 BIRT Design Gallery Multi-Language and Bi-Directional Dashboards 14 Actuate Corporation © 2009 BIRT Chart Gallery 15 Actuate Corporation © 2009 BIRT Chart Gallery 16 Actuate Corporation © 2009 BIRT Chart Gallery 17 Actuate Corporation © 2009 High-Level BIRT Architecture BIRT Report Designer Eclipse Report Designer Eclipse DTP, WTP,… Chart Designer Report Design Engine XML Report Design BIRT Report Engine Data Data 18 Actuate Corporation © 2009 Generation Services Charting Engine Data Services Presentation Services Report Document HTML PDF Excel Word PowerPoint PostScript … APIs and Extension Points Extensibility is a key principle of the BIRT Project Data source extensibility • Application specific design-time query builders • Custom design-time and run-time data access Custom business logic extensibility • Incorporate complex business logic scripting • Access existing and new Java code Visualization extensibility • Build new visual data presentation ‘widgets’ • Extend charting with new chart types; new output formats Rendering content for output • Target output for specific devices and formats 19 Actuate Corporation © 2009 High Level BIRT Architecture: APIs Design Engine API BIRT Report Designer Eclipse Eclipse Custom Report Report DTP, Designer UI Designer WTP,… Chart Designer Chart UI API Report Design Engine XML Report Design Report Engine API Report Document BIRT Report Engine Generation Services Scripting API Data Data Services Open Data Access Data 20 Actuate Corporation © 2009 Charting Engine Chart Engine API Presentation Services Emitter API HTML PDF Excel Word PowerPoint PostScript … BIRT APIs • Design Engine API (DE API) Create and modify the XML report design • Report Engine API (RE API) Create the report output based on XML report design file Used by the Report Designer Preview and the Web Viewer • Chart Engine API (CE API) Can be used as standalone package to create and render charts Embedded in DE API and RE API 21 Actuate Corporation © 2009 BIRT Momentum Downloads BIRT Downloads “BIRT is one of the top 10 most downloaded commercially supported open source applications and has a tremendous growth curve over the last two years.” Thousands of downloads 4,500 4,000 More than 6.5 million downloads through December 2008 3,500 3,000 2,500 2,000 Andrew Aitken, Managing Partner, Olliance Group 1,500 1,000 500 0 2005 2006 2007 2008 BIRT technology is tried and tested in many applications 22 Actuate Corporation © 2009 BIRT Momentum Sample BIRT Adopters 23 Actuate Corporation © 2009 BIRT Momentum Publications 24 Actuate Corporation © 2009 BIRT: A Field Guide to Reporting 2nd Edition Integrating and Extending BIRT 2nd Edition Practical Data Analysis and Reporting with BIRT Eclipse BIRT: Business Intelligence und Reporting Tool BIRT Project Users Report developers Easy AUDIENCE FEATURES Drag-and-drop authoring, charting Advanced report developers Scripting, script API Runtime integration developers BIRT Viewer and engine APIs Extension developers Core development 25 Actuate Corporation © 2009 Complex Report design integration Design engine API BIRT extension points Eclipse development, open source How is BIRT Being Used? BIRT Report Designer on Desktops Use BIRT Report Designer as a desktop reporting solution BIRT Report Designer Usage Scenario • Desktop personal productivity tool Users • Report developers • Advanced business users 26 Actuate Corporation © 2009 How is BIRT Being Used? Integrated Data Visualization Integrate Open Source BIRT Report Engine into application Application Integration Code BIRT Engine Usage Scenario • Add reporting and data visualization to applications Users • ISV and Enterprise Application Developers • Java Developers, PHP Developers, … • Report Developers 27 Actuate Corporation © 2009 How is BIRT Being Used? Business Intelligence Leverage commercial deployment solution for BIRT Reports Report Server BIRT Engine Usage Scenario • Automated report generation, distribution, … • Interactivity, security, … Users • Report developers • Business users 28 Actuate Corporation © 2009 BIRT Deployment Options • Web Applications Web Viewer Sample Web application that encapsulates BIRT APIs Provides pagination, Table of Contents, PDF output etc. Available within the Report Engine download Custom Servlet Write custom code for functionality provided by BIRT Viewer Example available on BIRT Exchange Access BIRT Report Engine API • RCP Applications Web Viewer Plugin Add BIRT Viewer plugin to list of required plugins Access BIRT Report Engine API Add Report Engine plugin to list of required plugins • Standalone Java Applications Access BIRT Report Engine API 29 Actuate Corporation © 2009 Deployment Scenarios - Web Viewer Sample implementation of the BIRT report engine in a web application Ajax-based Viewer – contains page navigation, TOC, parameter entry, export and print controls in the toolbar Servlet mappings /frameset – to create page navigation, TOC, parameter entry, export, and print controls to the toolbar /run – to generate single-page HTML output, PDF documents, toolbar is not needed 30 Actuate Corporation © 2009 Deployment Scenarios - Web Viewer • Deployment Steps Download Report Engine from http://download.eclipse.org/birt/downloads/ Extract zip file to local folder Deploy the birt.war file / Copy birt.war to the webapps directory (for Tomcat) • Examples Access report bundled in birt.war - http://localhost:8080/birt/frameset?__report=test.rptdesign Viewer with toolbar, TOC - http://localhost:8080/birt/frameset?__report=Customer_Dashboard.rptdesign Viewer without toolbar, TOC - http://localhost:8080/birt/run?__report=Customer_Dashboard.rptdesign Generate PDF - http://localhost:8080/birt/run?__report=Revenue History by Product Line.rptdesign&__format=pdf Pass Parameters http://localhost:8080/birt/frameset?__report=Customer+Order+History.rptdesign&Customer=The+Sharp+Gifts+W arehouse Display only chart/table as a reportlet http://localhost:8080/birt/run?__report=Customer_Dashboard.rptdesign&__bookmark=RevenueByProductLine&_ 31 _isreportlet=true Actuate Corporation © 2009 Deployment Scenarios – Custom Servlet YourServletExample logs The default location for BIRT logs. report Default location of Report Designs images Default location for report images WEB-INF lib Location for BIRT required jars. Copy from Runtime. platform plugins configuration 32 Actuate Corporation © 2009 BIRT required runtime plug-ins. Copy from runtime. Location for OSGi configuration files. Copy from runtime. Deployment Scenarios – Custom Servlet WebReport.java: The servlet that handles report generation on a GET command. public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //get report name and launch the engine resp.setContentType("text/html"); String reportName = req.getParameter("ReportName"); ServletContext sc = req.getSession().getServletContext(); this.birtReportEngine = BirtEngine.getBirtEngine(sc); IReportRunnable design; try{ //Open report design design = birtReportEngine.openReportDesign( c.getRealPath("/Reports")+"/"+reportName); //create task to run and render report IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask( design ); task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, WebReport.class.getClassLoader()); //set output options HTMLRenderOption options = new HTMLRenderOption(); options.setImageHandler(new HTMLServerImageHandler()); options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML); options.setOutputStream(resp.getOutputStream()); options.setBaseImageURL(req.getContextPath()+"/images"); options.setImageDirectory(sc.getRealPath("/images")); task.setRenderOption(options); //run report task.run(); task.close(); }catch (Exception e){ e.printStackTrace(); 33 throw new ServletException( e ); Actuate Corporation © 2009 }} Actuate BIRT Technology Family Complementing and Extending Eclipse BIRT BIRT Interactive Viewer Deployment Kits iServer Express Actuate BIRT Viewer Actuate BIRT Report Studio Actuate BIRT Report Designers User Interactivity Deployment Tools Engage users with rich, interactive content Manage, schedule, secure, run and distribute Development Tools Skill-specific tools for developers and users 34 Actuate Corporation © 2009 iServer Enterprise High-Scale Distribution Eclipse BIRT Meet core reporting requirements Load-balanced, high availability for 100,000s of users Actuate BIRT Goes Beyond Eclipse BIRT Visualizations • FlashChart report item • FlashGadget report item • FlashObject report item • 266 Flash visualizations • HTML button report item Data Sources • BIRT Report documents • Data connectors for SQL databases • Information Objects Integration • JavaScript API Packaging • Installer for BIRT Report Designer • Addison-Wesley books 35 Actuate Corporation © 2009 Deployment • BIRT Reports for iServer • BIRT Interactive Viewer • BIRT Report Studio Enterprise • Scale • Page Level Security • iServer Navigator • Built-in Information Object Designer Actuate BIRT Report Studio Easy to use… end-users do not know SQL… iterative development Toolbar • Cut/Copy/Paste • Delete • Undo/Redo • Chart • Table • Insert • Group • Filter • Prompt • Format • Run • Print • Export User-selected Information Object Dragand-drop palette Data styles Template objects 36 Actuate Corporation © 2009 Grouping and sorting Format text and currencies Calculated column Actuate BIRT Interactive Viewer Simple and advanced filters Modify labels Toolbar • Table of contents • Page navigation • Printing • Export data • Save Hide/show elements 37 Actuate Corporation © 2009 Grouping Sorting Custom calculations Show/hide columns Formatting text and currencies Conditional formatting BIRT Applications From Open Source and Embedded to Enterprise BIRT + iServer Enterprise Publish rich apps outside the firewall BIRT + iServer Express BIRT + Flash Widgets + … BIRT Open Source Engage users and let them drive rich apps Free Open Source Tools Embedded Applications Implement security & management Secure and support millions of users Publish rich PM apps that satisfy users Scale, performance, security, reliability Department Applications Enterprise Applications Traditional BI Vendors Actuate 38 Actuate Corporation © 2009 Case Study – IBM Tivoli Maximo Maximo is an enterprise software product within the Tivoli division of IBM (NYSE: IBM) IBM Maximo Asset Management unifies comprehensive asset life cycle and maintenance management on a single platform. Maximo provides insight for all of enterprise assets, Service Level Agreements, maintenance conditions and work processes, for better planning and control. 39 Actuate Corporation © 2009 Case Study – IBM Tivoli Maximo • BIRT is embedded in the Maximo web application • Approximately 150 BIRT designs included in Maximo: • Work Order Details • Service Level Agreements • Asset Availability • Asset Failure Analysis • Software Usage •… • BIRT security integrated tightly with Maximo Administration Application • BIRT is a key component of many Tivoli products 40 Actuate Corporation © 2009 BIRT: What is Next? Eclipse BIRT 2.5.1 Release • Part of Eclipse Galileo simultaneous release • Development is underway now • See project plan for details www.eclipse.org/birt Actuate 11 • More interactivity, deployment features, business user tools 41 Actuate Corporation © 2009 Resources BIRT Exchange Community Site Centralized knowledge hub for BIRT developers • Access demos, tutorials, tips and techniques, documentation… • Easy for users to contribute content, share knowledge • Enables developers to be more productive and build applications faster Explore • Search/sort • Rate, comment • Forums Download • Documentation • Software • Examples www.birt-exchange.org 42 Actuate Corporation © 2009 Contribute • Report designs • Code samples • Technical tips BIRT Exchange DevShare • Data Integration BIRT Scripted Data Source Example BIRT Connection Pooling Web Services Data • Application Integration Java Event Handler Placing Java Classes Run BIRT Reports at Command Line • Report Engine API Using the BIRT Report Engine API Calling the BIRT RE API Execute BIRT Reports from Java class API – Examples 43 Actuate Corporation © 2009 BIRT Exchange DevShare • Web Viewer Exploring BIRT Deployment Options Using the Report Viewer Deploying BIRT WebViewerExample in Tomcat Birt Viewer 2.3 User Reference BIRT URL Security Custom Parameter page • Additional Integration Examples Integrating BIRT with Hibernate and Struts Using BIRT with Stripes Using BIRT with JBoss Seam Integrating BIRT with Spring Deploying BIRT RCP App through Java Web Start JBoss BIRT Portlet Deploy BIRT on GlassFish 44 Actuate Corporation © 2009 Summary A New Generation of Reporting and Data Visualization Technology • Top-level open source Eclipse project • Free with commercial friendly license • Powerful, extensible data visualization technology • Easy-to-use, web-centric design metaphor • Very active community with more than 6.5 million downloads • Actuate extends and complements BIRT with value-added technology 45 Actuate Corporation © 2009 Who is BIRT? Solving Your Data Visualization Needs with Open Source Reporting Q&A 46 Actuate Corporation © 2009