Now that you know why Business Objects created the Java Reporting Component and how it differs from some of the server solutions, you will move on to learning more about the components. The Java Reporting Component has three main pieces to it, as shown here:
The report engine is the component that processes the reports. Its job is to load the report template (.rpt file), run the query to the data source, process the reports pages, and communicate with the report viewer controls to provide the information they need to render the reports. The main report viewer is an HTML viewer control that is used to display the reports output in JSP pages or servlets. The other viewer control is used to view the reports in other formats such as Rich Text Format (RTF) or PDF. Finally, there are helper tag libraries that make the process of using the report viewers easier by wrapping up their logic into a simple tag that can be inserted into JSP pages. Also of note is that the Java Reporting Component has integration with both Borland JBuilder and BEA WebLogic; more will be discussed on what this integration provides later in this chapter.
From an architecture point of view, all these components reside on the Java application server. The officially supported application servers are
If the exact application server or version of application server you are targeting is not listed here, it does not necessarily mean that the Java Reporting Component will not work there. It just means that it was not one of the configurations explicitly tested by Business Objects, and although not "officially supported," chances are you will be able to use it. If you are unsure, contact Business Objects to see if they are aware of any issues with that particular application server. There are customers using other application servers such as JBoss in production today.
Although the Java Reporting Component comes with some JSP and servlet samples, the actual API is simply raw Java classes. These classes can be used inside of JSPs, servlets, EJBs, or other Web-based technologies. The advantage here is that there is no dependency on any particular version of the J2EE specifications such as servlets or struts. You might have noticed that desktop applications have not been mentioned thus far. This is because there is not currently a desktop viewer control (that is, based on the AWT or Swing frameworks). Because the viewer controls that exist are dependent on a Web framework being in placethey require servlet-based objects in order to workthere is currently no way to view reports in desktop applications. At the time of this writing, Business Objects has expressed interest in producing a desktop report viewer for the Java world at some point in the future. Check back with the company if you e interested. In the meantime, a good solution for delivering reports inside desktop applications is to host a Web browser applet inside of a Java form.