7 - Wenfeng Li and Jason Weathersby of the BIRT Project

Riyad Kalla: Welcome to episode seven of ten in the Eclipse Zone podcast series. I'm your host Riyad Kalla. In this series we're interviewing key members from each of the Eclipse projects that will be included in the Eclipse Callisto release. Today we will be interviewing Wenfeng Li and Jason Weathersby who are part of the BIRT Project. Thank you for joining us guys. Why don't we start with you just giving us a description of what BIRT Project is all about and what row it plays? Wenfeng, you want to take this one?
Wenfeng Li: Sure, Riyad, thank you for having us.
Riyad Kalla: Absolutely.
Wenfeng Li: BIRT Project is to create reporting tools and charting engine for Java developers. We see that almost all Java apps miss some sort of reporting and many of them having charting too. BIRT will help developer to make it much easier. The reports creator with BIRT is also much more appealing than hand coded submissions. I think BIRT is a great addition to the Eclipse ecosystem when Eclipse is evolving from a Java idea to a platform to build all types of Java applications. BIRT is an active participant in the Callisto release. We build on top of the Eclipse platform and many other Eclipse products such as Eclipse Model Framework GDF editor tools. Also, TBTB projects use BIRT in its reporting functionality.
Riyad Kalla: Now, when you say reporting some of the people listening may immediately think in their head J Free Chart or Jasper reports. Can you give a better comparison of how BIRT falls? It's obviously more than just J Free Chart. Where does it fit in there?
Jason Weathersby: Riyad, I'm going to take that if you don't mind. There's a lot of similarities between those tools. Obviously we consider our tool to be better and the reason we do is because we're building on top of Eclipse. Those tools are not necessarily done that way. So the idea is to create a more usable framework that is inside of Eclipse and the reason for this is so we can extend it. So you can add chart types, you can add reporting elements and it all fits within a standard Eclipse frame. So the whole idea is to be able to extend and develop all in one environment. So I think that's one key differentiator.
Riyad Kalla: I see. Well, why don't you guys tell me, Wenfeng, if you don't mind taking this one, why did the BIRT Project get started? You mentioned there was a need for reporting and maybe how did it get started?
Wenfeng Li: Yes, it was started as actually an internal research project. I think it was early 2004. We were thinking about creating a Java reporting tool. After about six months of prototyping we started to think about how to get this tool to developers. We thought about different marketing programs, etc. But at end we think due to the popularity of Eclipse and it prompted us to think that open source might be the way to go and at the same time we were fortunate that Eclipse was also looking to expand its tool set. So adding a reporting tool to the Eclipse platform was an easy choice for us as the creation of the BIRT Project. At that time we did think it was important to create a de facto reporting tool for Java developers. Adoption is really key to success for any of these title projects.
Riyad Kalla: And how did you get involved Wenfeng?
Wenfeng Li: Excuse me?
Riyad Kalla: How did you get involved in the project? You did the initial research?
Wenfeng Li: Yes, I was involved in the initial research. Later I worked on the creation and proposal with the Eclipse Foundation.
Riyad Kalla: I see. Jason, how did you get involved?
Jason Weathersby: You know with any open source project it's more than just code base. It's community and I was fortunate to step in and help out with community coordination and adoption. It was a needed position and I was fortunate enough to be able to fill that position.
Riyad Kalla: I see, now lets change gears here for a second. It seems that an important demographic for users of BIRT is management, in addition to the developers, and that's a pretty unique feature across most of the Eclipse projects which are developer centric tools. Do you think there is anything unique that your team does to focus on the usability for non-developers? Is that just a side effect of the way the project is?
Jason Weathersby: Yes and if you look at the a lot of reporting packages, I mean API is out there, if you look at a lot of the open source projects they tend to be bottom up where you develop an API and then a GUI on top of that. Early on in the development cycle we understood that we needed to work the other way. We had to develop a tool that was easy to use first and foremost, to help the adoption and underneath we obviously have a strong framework but first and foremost we have a dedicated team of UI developers who just do nothing but make sure the UI is usable and we get feedback from the news group and we use this. One of the other things on that question, on that topic too is if you look across Eclipse projects they are developer focused. Reporting tends to touch a great deal more people. So that's one of the reasons we looked at the usability piece first. We wanted to be able to use the Java developer sitting in his cube to the all the way to the CIO doing a quick dashboard. So we wanted to make sure we touched on all of those types of individuals.
Riyad Kalla: Now, do you think that's been a key to BIRT's success?
Jason Weathersby: Definitely. One of the things as part of our community we've set up a lot of feedback and we'll talk about that a little later in the interview I'm sure but one of the things we strive for is to get that feedback and that's how we make our modifications to the tool. But I believe that is definitely a key for the uptake on BIRT.
Riyad Kalla: Are you see the majority of your users ending in the community, the people giving you feedback, are they developers or is it a nice mix of developers and management people?
Jason Weathersby: Yeah. It runs a nice gambit. We get all the way from the guy who wants to know how to write an extension point for BIRT all the way up to the guy who wants who is using the dashboard or how do I create a drill through report, which is very nice and I think that does make us very unique within the Eclipse ecosystem.
Riyad Kalla: Well one thing, I got a question for you. You kind of touched on this earlier. BIRT does quite a bit of complex 2D graphic rendering, the charts, the graphs and so on, are you using any unique technologies that were developed internally to BIRT to do this or is this just GAF and other basic rendering draw 2D features? You know, I ask this because we were talking to the TPTP team before and they had mentioned that some of the rendering contributions they had sent over to BIRT because they had that challenge internally and it made more sense to send those items over to BIRT.
Wenfeng Li: Yes. On one hand we do use the public APIs from Draw 2D but we do have a lot of unique rending algorithms based on SWT. The chart engine also has very good stability in scripting and interactivity support. These are the unique design architectures for the BIRT charting engine compared with other charting, you mentioned J Free Chart. The TPTP team contributed SPG and PDF renderer. These formats are an addition to the screen SWP, PNG, JPEG, and BITMAP formats that chart engine already supports.
Riyad Kalla: Oh, wow.
Wenfeng Li: Yes, and we have a whole set of other formats. Due to the extensibility framework ,other developers can easily add new renderers to the BIRT engine. It will just be a new prompt that they can just drop into the chart engine.
Riyad Kalla: Does BIRT have to work closely with any of the platform teams to get the functionality you need for example in Draw 2D or SWT to make new charts or things along those lines?
Wenfeng Li: We did work together to coordinate on the release schedules like bug fixes but so far we have been basically using proper ATIs.
Riyad Kalla: I see.
Wenfeng Li: We didn't find we needed to any internal APIs or private APIs.
Riyad Kalla: I see. Okay, now, Jason, you guys have been talking a lot about the charting engines and people using Eclipse may hear that and think, Hey cool I don't have to keep embedding J Free Chart in my Eclipse applications because my app needs simple reporting. Is there any word to generalize the charting abilities in BIRT into either another top level project or maybe soon to be top level modeling project as a component in there? Basically pulling it out of BIRT?
Jason Weathersby: That's a good question and as part of my job I've maintained the website and one of the things we're trying to make an active effort to make more visible of this. The chart engine is already available as a separate download and it's available as a standalone charting engine that can be embedded in any Java application or web application. Eclipse based or non-Eclipse based which is fairly unique and even the chart builder the BIRT uses we go this three-step wizard that builds charts. You can launch that from Swing. You can launch that from your standalone Java application and that type of thing. That's one thing we really haven't done a good job on it as of yet is to make that more visible and there's a fifty page FAQ just on the charting engine itself. So we're working on a whole new section on the website just for charting and this will cover from usage in BIRT all the way to standalone chart usage in a web app or Java application.
Riyad Kalla: If you're using it standalone, what dependencies need to go along with it?
Jason Weathersby: Well, a lot of it depends on the chart types you use so obviously you pick up all the charting plug-in pieces. Obviously if you had any extension points those would be required as well and then I believe we have a dependency for rendering on a...I'm not sure if we use I-techs on that or not but....
Riyad Kalla: Interesting. I noticed a big portion of BIRT is the scriptability and you're using Java script in BIRT a lot and its based on the Mozilla Rhino engine. Is that the same bundle that is used in Eclipse Monkey and other projects that make use of it?
Wenfeng Li: Unfortunately it is not today. In BIRT 2.1 the Rhino engine has been separated out so that other Eclipse projects can use it, but I'm not aware of any other projects using it. You touched on a very good point, that we could do better in sharing components among other Eclipse projects. In the latest October release, about creating entries, the Eclipse console has recognized the issue and they are thinking about creating a new project called Orbit that will create a share repository of all these third party libraries so you can coordinate better. BIRT will definitely try to contribute into this share repository.
Riyad Kalla: Yeah, that's a good point. I look at a project like BIRT, something as sizable as that. You're adding new features all the time. Do you every time you go look to add a new feature do you audit all the other projects out there and see maybe who has similar functionality and collaborate or do just add it and way for someone to point out one of these hundred projects also has a Java editor or something along those lines. That's kind of a tricky coordination there isn't it?
Wenfeng Li: Right, and there are so many projects in Eclipse so we do some research with the major projects, the top level projects that have been narrowed down and try to research to see if they have similar needs and plug-in already available. And actually we did use an XML editor, a plug-in from the ATP project in BIRT, but there's so many other projects we are not able to research every time we add a new functionality. That is the purpose of the Orbit project so we have a central point that includes all these shared components. Every project that wants to do a search can just go to this Orbit project to find it there and if there's any duplication or similarities.
Riyad Kalla: I see. Has the BIRT Project need to collaborate with the Mozilla Rhino team at all on anything or was everything there easy to use?
Wenfeng Li: So far it's very easy to use. We just used the assistant puppet API.
Riyad Kalla: Okay, I see. Jason we read something on the website about design engine API and the report engine API. What are the differences between the two and who are the intended users of each just to kind of make heads and tails of those?
Jason Weathersby: Great question. Actually, if you don't mind I'll just take a moment to tell you basically the components of BIRT.
Riyad Kalla: Okay.
Jason Weathersby: Everybody basically thinks of BIRT as basically a report designer and it is that. It's an Eclipse perspective for designing reports and what is generated out of that is an XML report design. This XML report design is then run through a report engine to generate PDF, HTML, paginated HTML table of contents, those types of things. We have this BIRT designer component. We also have this web viewer. This web view is built as a plug-in and uses Tomcat inside of Eclipse to actually render these reports when you're previewing it. When you deploy it to a J2E app this web viewer is available to deploy is that way as well. So those are the two major components and underneath we have three public APIs. What we call the report engine API, RE API, the design engine API, which is the DE APIA, and then the chart engine API, CE API. Well the design engine API is what's use to generate XML format and our own tool uses this design engine, API, to generate that XML.
Riyad Kalla: I see.
Jason Weathersby: Then the reporters responsibility is for consuming that and generating these reports. Now where you want to use it is, the obvious answer for the report engine APIs, anytime you want to render outside the capabilities of what the viewer capabilities are, and you can see the report engine APIs are available as are available as a straight API, or they are available as a plug. You can easily include that as part of your RCP application, for example. Let's say I had someone who would want to report a design on a fly and pick out pieces and write out short report designs, and then have the engine consume that. That is where you would really see the DUPI. It is not the majority, the majority cases are probably going to be the report API. If you want to add hyper reporting capabilities that actually, physically create the report on the fly, or modify an existing one, then that is probably where you would want to use that.
Riyad Kalla: I see.
Jason Weathersby: Does that make sense?
Riyad Kalla: Yeah, yeah. That was a good overview of BIRT giving an idea of all the components involved, because it is kind of hard to give an idea of what you are getting into if you want to get started with a...
Jason Weathersby: Yeah, yeah. One other thing to is, one thing we do not talk a whole lot about, is the viewer, the preview engine. This viewer plug in is, also, can be deployed on RCP application, and we, obviously, have a J2E at that you can deploy the same. It is the same code base, in fact. This can actually be deployed as a plug in to any RCP application, which if you have a stand alone RCP application that you want to be able to include charting and not have to write any integration code, this is a real simple, one-line entry into your RCP application, and you have got reporting. Which is a nice feature, we thought.
Riyad Kalla: That is pretty slick. BIRT can handle pulling data from different types of data sources. What data sources does BIRT currently support?
Jason Weathersby: ok. That is a great question. It is a common one. BIRT currently supports JDBC, XML file and stream, flat file and something called Scripted data sources, but underneath we work on the data tools projects ODA ware, which stands for 'open data access framework'. The one thing I told you earlier in our conversation was that everything in BIRT is built to be expanded, and I do think that does make us unique. One of the things that we easily allow you to add in is a data source. This includes the GUI piece and also the Runtime piece. Well, on the bar, every driver that we supply with BIRT is built on top of this framework, so they can not only be used, but they can be used to create examples of your own. To give you an example, I have composed a hibernate example for an ODA. If the ODA does not have a driver that suits your needs, the scripted data source allows you to call any job or package out there and use that as a data source, as well. It is a fairly unique data source type that can meet most of the needs of people writing reports.
Riyad Kalla: What other supported data sources are most requested from people?
Jason Weathersby: Yeah and that is a great question. Up until our 2.1 release, I think that one of the main things that was asked for is actually connection pulling on our existing JDBC ODA, and that was one of the features we added based on community feedback. It is actually a modification on the existing ODA that we have for JDBC.
Riyad Kalla: I see.
Jason Weathersby: We do see hibernate come through a lot, as well.
Riyad Kalla: Now one thing Jason mentioned that you guys were working on the ODA layer from the DDP project, is that correct?
Wenfeng Li: Correct.
Riyad Kalla: Ok, and how much collaboration occurs between the BIRT team and the DDP project?
Wenfeng Li: Yeah, the open data access framework action was initially started with the BIRT Project, and later it was moved to the Data 2s project when the DPP project was created in 2005 and BIRT was created around 2004. We were actually one of the founding members in the DPs project, so there is a very close collaboration between BIRT and DDP.
Riyad Kalla: I see. Now you guys mentioned using the BIRT functionality in web applications, that RCP apps inside the Eclipse platform, a lot of different use cases. What would be the biggest hurdles to get these uses of BIRT working correctly? What have been the most challenging platforms to support?
Wenfeng Li: Yes, we had to write several interesting issues to support this diverse runtime environment beyond an Eclipse desktop. One of them is to support Eclipse in an OSGI framework in J2E app servers.
Riyad Kalla: Right.
Wenfeng Li: Because in an app server the resource prop and library loadings are a little bit different from a desktop app. Another issue is the localization and personalization. In a desktop typically the entire app is for one user, so the Eclipse platform was designed to help the locale, for simple locale, a user preference set up at application level. But an app server the same report engine that is required to serve requests from different users. We made some modifications on our deployment model to make sure the locale and user preference at user level. That actually gave us some difficulty and we needed to make several revisions to make it a more value post environment.
Riyad Kalla: Does it make sense to ask about BIRT support for embedded platforms, for like let us say a mobile device used to check inventory or something along those lines? Is that another platform that BIRT would need to deploy to or is that just a simple application of BIRT and Eclipse on an embedded platform?
Wenfeng Li: I think it definitely makes sense to have hand-held deployment mode of BIRT, since we layered our RCP frameworks. I know that there is a plan for RCP to make our RCP to be ported to a hand-held device. We have a place holder for supporting hand-held ops that we have not done anything because we try to leverage RCP's work.
Riyad Kalla: ok that is very interesting.
Wenfeng Li: As of right now, more practically before RCP's ported to a hand-held device, we could have the BIRT engine running, still running on a J2E app server, and deliver the content in a format that could be customized to a hand-held device. Since BIRT has been a flexible emitter of this extension framework that, I think a customer would better profit from that sort of hand-held device.
Riyad Kalla: Well, now, looking at BIRT 2.1 out here now, Jason, what is your favorite new feature of BIRT 2.1 that other people should know about?
Jason Weathersby: Yeah, that is a very great question. If you look at the total package of BIRT 2.1, we have over 3,000 bug enhancements and bug entries of BIRT added with BIRT 2.101. In general, it lets us make the product more stable and more usable release. But, saying that, some of the features that I like, that we have added is charting interactivity and rendering has been greatly improved, and it shows. It does not take much work with the short engine to know that it is a very cool and powerful product. In addition to that, I told you earlier that one of the most requested things was connection pulling in, and we have got that in, so that is another favorite. One of the most interesting features we have is what we called the joint data sets, or joined data sets. In general, actuate as a corporation and coming into this BIRT Project, we have a lot of experience with reporting, we know that one of the key banes for reporting in general is just how many data sources can you get and then how do we use those in a meaningful way. This joint data set feature allows me to pull in data from say my HR database and some data from my financial database and then pull those together in a joined using in our joints and create this internal data set. The nice thing is that it does not require ugly integration code or dam warehouse in order to do that. We think that is a pretty powerful feature, and it is one that we will see a lot of people use.
Riyad Kalla: Wow, very cool. How big is the team to get so much work down for the 2.1 release?
Wenfeng Li: We have quite a large developer team in the BIRT Project. Because of commiter we have about 40 to 50 computers. For each commiter there are also several developers working together.
Riyad Kalla: How does managing a large team, does the affect BIRT's progress, with what features need to be added and who is going to do it and so forth?

Wenfeng Li; Yeah, definitely. Opens source is a new way for how to manage diverse developers all over the world. We found that the Bugzilla entries are very usable tool. A lot of these coordinations happen in Bugzilla. That seems to be making it sensible, going smoothly so far.
Riyad Kalla: Now, Wenfeng, what is some of the upcoming work some people can expect maybe for the Europa release for the next big release of BIRT that the teams really excited about, that you guys are looking forward to doing?
Wenfeng Li: Right, we have not decided on the feature release yet, but we have had several discussions in, at a high level of major functionalities. One of the discussions that was, That I am personally very excited about, is the adding the BI part of the BIRT Project, which is another BIRT Project representative. This entire time we have been using reporting tools, and so far we have been focusing on the reporting design. We get a lot of requests on the BI side, and one of the areas for this Europa release, the thing about it is the adding of Business Intelligence tools for developer. We have not really designed a detailed feature yet, but I think we will continue the approach that BIRT reporting tools have taken, which is making a lightweight easy to use, and focus on the creating and enabling to rather than to the entire act.
Riyad Kalla: What is an example of a business intelligence tool? Give me an example of what you mean.
Wenfeng Li: For example, All Act two allows user to slice and dice data for them to create a data cube. So you can find multi-dimensional analysis on the transaction data, for example.
Riyad Kalla: Jason, what about your favorite feature coming up?
Jason Weathersby: Well, for me, I would have to agree with Wenfeng on this one. I am really looking forward to seeing what evolves in the BI area. We feel like the reporting tools, if you look at the reporting tool it is robust. I make this analogy when one of our first presentations on BIRT, we go up and we present to a group of users, and we show them how quick it is to build a report and you get the jaw-drop effect. That is really what we were going for, really nice, easy to use tool, but now I want to see the same thing occurring in the BI arena.
Riyad Kalla: I see, and are there anymore outstanding big requests for reporting or did you guys pretty much nail that?
Jason Weathersby: Well, obviously, that will be an ongoing affair, kind of like Cross tabs, for example, that is a commonly asked feature and that is working its way into the product. The work is definitely never going to stop on the reporting tools side of it. Obviously, we have added the capability to do extension points, so right now I have a list of items I can drag and drop into my report. I want to add a new one? That is extensible. Hopefully, we are fostering a way in the community right now for people to share that type of work. In the same spec to BIRT the team is going to work on those as well.
Riyad Kalla: I see. ok guys. We are getting near the end of this podcast. Is there anything that you would like to add that people should know about BIRT?
Jason Weathersby: One of the things that I would like to add real quick if you do not mind-
Riyad Kalla: Absolutely.
Jason Weathersby: If you look at the features that are in BIRT, and this key for us, almost every feature that we have in BIRT, is a direct result of a Bugzilla entry or a newsgroup entry. If you want to know what is going to be in BIRT, we have a project plug inside that tells you what is going to be in it, but most of these are collected directly from either one of those two sources. We monitor that daily, and we average somewhere between 40 to 60 posts a day on the newsgroup. We monitor those and this is what we use for feedback on how we are succeeding and this is really the ultimate test of an open source project. How well is it the community is feeding back in and then are those entries being used. We want people to know, if you look at the feature set it is a direct result of that. What I want to do is encourage your listeners to go out to www.eclipse.org/birt. Tryout the tutorial, see what you think, download the different components, see what you think. Then get a Bugzilla account or get a newsgroup account. Both of those are available on that main site on our commute tab, and it will tell you on how to log in and get access to those two things and give us your feedback. It is really important for us that we make a tool that community wants. That is what I would like to leave with.
Riyad Kalla: Well, I know that on Eclipse Zone we have had some users try out BIRT. They need reporting to try, and the ramp up time on BIRT is like a day. I mean it is nothing. When you go into it thinking new framework, new tools, I am going to mucking around with files, and like you said, they read the tutorial, bing bang boom they have got reports going in a matter of a few hours and things like that. It is an impressive tool, and from what we have seen people have just been flocking to it in droves successfully. For the people listening, definitely give it a try.
Wenfeng Li: That is great, glad to hear it.
Riyad Kalla: Well, guys I want to thank you for joining us today. We were talking to Wenfeng Li and Jason Weathersby from the BIRT Project, and also about the role that BIRT is playing in the Callisto release. We appreciate everyone tuning in, and we hope you have enjoyed yourselves. This concludes episode seven of ten in the Eclipse Zone Callisto podcast series.

[music plays]



Transcription by CastingWords