FAQs - Diagram of typical JReport embedded environment
JReport easily embeds into any Web application to deliver actionable information to users enterprise-wide.
Following is a typical 3-Tier environment in which JReport may be embedded.
The first tier – the client end – encompasses the user interface and includes the desktop applications, report designers, web browsers, and printers needed to design, view, and publish reports. In a typical JReport embedded environment, the user interface could be a Java applet, HTML/DHTML page, EJB, or a desktop Java application. This interface uses the Java Server Pages and Java Servlets within the web application server that makes up the second tier of the environment.
The Web Application Server in the second tier provides the necessary support for the enterprise server environment: data source connectors, directory service, container for Servlets and EJBs, and other standard services. Within this tier, JReport is embedded within the Web Application Server either as a servlet or as an EJB. Alternately, JReport provides its own servlet container (or a public container like Tomcat) and works as a stand-alone server independent of another application server. In either case, because Servlets and EJBs are platform-independent, JReport can be easily integrated into a web application server with minimal configuration effort.
An EJB component model is particularly advantageous to a third party developer who wishes to integrate JReport into a web-based enterprise application. This embedded model allows the enterprise application to call J2EE components provided by JReport, and allows JReport to call J2EE components provided by the enterprise application in order to customize specific functions.
Regardless how it resides within the J2EE server tier, JReport utilizes native Java connectivity to access various data sources. The third tier of the architecture contains these data sources and the adapters needed to allow the Web Application Server to retrieve data on demand. JReport connects to various data sources from commonly used relational database systems (using JDBC API), XML databases, and various legacy data.