| No Data
Ultimate Flexibility and Performance
The Simplest Image Generation Example
AJAX-Based User Interaction
Dynamic Data Supply
Customizing JSP Servlet or ASP.NET Handler
Image URL with the Servlet Source Code
Full Source Code of the Servlet with User Interaction and Drill-Down Dialogs
The GLG Graphics Server is deployed on the server with either JSP or ASP.NET. The client side uses
With the help of the GLG Graphics Builder, not just simple dashboards with graphs and meters, but complex visualizations and custom HMI screens may be created interactively, presented on the application's web pages and updated with real-time data. A vast collection of graphs, meters and dials, avionics gauges and process control widgets are provided in addition to the custom graphics.
The custom visualizations are created interactively using the GLG Graphics Builder and saved as a GLG drawing. The drawing contains definitions of all graphical objects as well as their dynamic properties and resources. The Graphics Server loads the drawing and uses it to generate dynamic images, updating the drawing with real-time data before processing each image request. Once the drawing is loaded, it is used to generate web images over and over without the overhead of recreating the graphics on every request, resulting in a superior server performance.
The graphics displayed on the web page may be changed by editing the drawing using the Graphics Builder and reloading the drawing into the Graphics Server, with no programming required.
The GLG Graphics Server utilizes the power of the GLG Toolkit for ultimate performance. When the data changes, the highly optimized GLG Object Engine ensures that only the graphical elements that are affected by the new data get updated, lowering the server load.
The Servlet or Handler generates an image by loading a GLG drawing and invoking the drawing's CreateImage() method. The drawing is created using the GLG Graphics Builder, which allows a developer to draw graphical objects, attach dynamic actions, define selection events and tooltips, as well as define object resources to animate the drawing with data. With the help of the Builder, dynamic drawing may be created and modified interactively without tedious graphics programming.
GLG drawings are screen-resolution independent. When a drawing is loaded into the Servlet or Handler, it may be scaled to generate images of arbitrary sizes. Before generating an image, the Servlet or Handler updates the drawing with real-time data by setting the drawing's resources using SetResource methods of the GLG API.
The drawing is loaded only once and reused between all
or Handler instances and threads. This increases performance and also
ensures that all generated images display the same state of the
Click here to view the output image directly as a URL.
Reload the page to see new data or change the width/height parameters of the URL to change image size. A "&show_pipes=1" parameter may be appended to the URL to activate pipes display.
Such a dynamic URL may be inserted as an image in any web page, and a timer can be used to periodically reload the image to show new data.
Click on the links to see the source code of the simplest JSP Servlet or ASP.NET Handler that
generates a dynamic image of a GLG drawing.
When the user moves the mouse over an object in the image, a tooltip is displayed. When the user clicks on an object in the image, the name of the selected object is displayed in the web page above the image. If the selected object has any data associated with it, a dialog showing the object's data is also displayed. The two buttons at the lower left corner of the demo are used to toggle display of 3D pipes and flow lines.
The tooltips and object selection are processed by the GLG Graphics Server's engine on the server side, with no image maps or vector objects created in the browser on the client side. This technique handles large number of vector objects in the drawing without the HTML performance limitations.
Alternatively, the user interaction may be handled by the Servlet or Handler on the server side. For example, when the Toggle3DPipes button is selected, the Servlet or Handler may toggle the 3D Pipes display in the drawing instead of returning the button name back to the client and letting the client handle it, as shown in the demo.
Click on the links to see the full source code of the JSP Servlet or ASP.NET Handler for generating images and handling user interaction requests.
The Servlet or Handler updates the drawing with new data by setting the drawing's resources using SetResource methods of the GLG API. The resources for animating the drawing with data are defined in the Graphics Builder when the drawing is created.
For example, in the demo's drawing, an object named "Heater" has a resource named "HeaterLevel" that controls the fill level of the heater's tank. The Servlet or Handler updates the displayed fill level by using the "Heater/HeaterLevel" resource name:
drawing.SetDResource( "Heater/HeaterLevel", heater_level_var );
The use of resources helps to separate graphics from the programming logic. The application simply sets a logical resource named "Heater/HeaterLevel", and the GLG's graphics engine takes care of all low-level details of rendering the objects' graphics.
The Servlet or Handler functionality can be customized according to the application requirements. The source code for the JSP Servlet or ASP.NET Handler is provided and may be customized to perform various application-specific tasks. The Servlet or Handler uses the GLG Graphics Server library that provides developers with both the GLG Standard and Extended API methods described in the GLG documentation.
All graphical features of the GLG applications are also available in the Servlet or Handler, including the programmatic creation of objects in the drawing and on-the-fly creation of dynamic icons using the GLG Extended API.