SYNOPTIC DISPLAY—A CLIENT-SERVER SYSTEM FOR GRAPHICAL DATA REPRESENTATION
T.B. Bolshakov, Andrey Petrov, S. Lackey · 2003
Project Builder Synoptic Display is a JavaTM application for flexible online graphical representation of data received from a data acquisition system. It was designed as a part of Fermilab’s Accelerator Applications Migration Project [1]. Synoptic Display is considered to be the next generation of such applications as ACNET Lexigraphics and EPICS MEDM. Synoptic Display projects (equivalents of MEDM screens) are rendered on major web browsers (for monitoring purposes) or launched in a web-startable console Java application (for both monitoring and control). Small bandwidth (as low as 100– 1000 byte/sec) is required between client and server sides due to usage of Scalable Vector Graphics (SVG) [2] for data transfer. Synoptic Display components (data sources, processing pipes, visualization widgets) can be graphically arranged and logically interconnected in a web-startable Project Builder. Projects are stored in a server-side repository in XML format. A Runtime Project Engine (RPE) handles user requests, downloads projects from the repository, launches data acquisition jobs, and generates SVG pictures. Servlets and Java Server Pages (JSP) are used as RPE web tier. At present time, ACNET Java Data Acquisition Engine is a primary data source for the Synoptic Display, since this is the corporate Fermilab standard; there are no limitations to create new types of data sources. Projects home page is [3]. Project Builder is a client-side application dedicated to create and modify Synoptic Display projects. It is a special-purpose graphical editor that allows users to define logical flows of information from data sources to data consumers through data handlers and pipes. The second function of the builder is definition of static visual components, such as immutable lines, geometrical shapes, and texts. Project Builder works with Repository of Components in order to get a description of atomic common-purpose components. Projects are stored either in the Project Repository or in local files. Repositories of Components and Projects Repositories of Components and Projects are serverside program that keep and distribute Synoptic Display projects and atomic project components among multiple instances of the Project Builders and RPEs. Runtime Project Engine Runtime Project Engine is a central part of the system. It downloads project XML files from the repository, parses those files, creates a set of data acquisition jobs, and builds the result image. RPE may be started either locally, or on the server side. In the first case, the result is rendered on a canvas of this application; otherwise an additional client-side Project Viewer is required. Because of security precautions, the system allows device settings only if RPE is started locally inside a specific computer subnetwork. ARCHITECTURE Web Tier and Project Viewer If RPE resides on the server, the Web Tier, a set of servlets and Java Server Pages (JSP), is employed to convert result images to an appropriate graphic format and pass them to the client-side Project Viewers. The Project Viewer in most cases is an SVG plug-in for a web browser. Upon the first user request, Web Tier sends the full SVG image to the client. This original image is cached on both client and server. On all subsequent requests, Web Tier sends just a difference between current image and the previous one. Project viewer applies this difference to the cached image and renders it. That way requires a minimum bandwidth and eliminates visual blinking of the picture. Figure 1: Synoptic Display Architecture. The system consists of five parts: (1) project builder, (2) project viewer, (3) repository of components and projects, (4) runtime project engine, and (5) a web tier. The first two parts reside on the user’s PC. Repositories are on the server side. RPE may be started either on the client or on the server side. At this time, SVG plug-ins for prevalent browsers are provided free of charge by Adobe System, Inc. and Corel Corporation, but unfortunately the availability is limited for different platforms [4]. Proceedings of ICALEPCS2003, Gyeongju, Korea