1.3. EspressChart Architecture

EspressChart has a number of different configurations in which it can run both at design-time and at run-time. At design-time the Chart Designer GUI interface, which includes data access tools, can be loaded as a Java Web Start Application in a client server architecture. The following diagram illustrates EspressChart running with the Chart Designer at design-time:

EspressChart Designer Architecture

When Chart Designer is running, the EspressManager component runs on the server-side. The EspressManager performs the data access and the file I/O which is prevented by the client JNLP(More about Applets in JNLP: Section 2.6 - Run Applets As JNLP)due to security restrictions. The EspressManager also provides connection and data buffering for database connections, as well as concurrency control for a multi-user development environment. The EspressManager must be run in conjunction with the Chart Designer.

At run-time, the EspressManager does not need to be running. EspressChart is designed to run embedded within other application environments, and can have a minimal deployment of the API classes, and chart template files. The following diagram illustrates EspressChart running in a servlet/JSP environment.

EspressChart in a Servlet Environment

When running in an application server, the Chart API can be used to generate charts within servlets and JSPs and stream the generated chart to the client browser as an image. Clients can also view charts by loading the Chart Viewer JNLP (More about Applets in JNLP: Section 2.6 - Run Applets As JNLP) in a web page.

In addition to running in a client-server environment, EspressChart can be run in a thick-client application. The Chart API can be used in conjunction with the Chart Viewer to show/generate charts in an application interface. In this configuration, EspressManager does not need to be running, as the whole process can be contained on the client. Note that the diagrams above do not represent all possible deployment configurations. For more detailed information about deploying EspressChart, please see Chapter 12 - Deployment