State-Aware, Bi-directional Client-Server Interaction With Perl and Client-Side JavaScript.

Ronan Oger

RO IT Systems GmbH
Marktgasse 21
8001 Zurich

Keywords: Serverside SVG Generation; Thin Client; Perl; Client-Server

Developing a scalable, multi-browser, real-time arcade-style video game as an example of a thin-client state-aware application using Perl,SVG, and JavaScript

The Internet provides near-instantaneous, content-rich communications between geographically distant agents. A key limiting factor on the usefulness of the Internet has until recently been the technological limitations on the type and direction of this data exchange. All transfers involving the HTTP protocol have been limited to half-duplex, unidirectional, stateless serial communications, or TCP-based communications between bandwidth-consuming plug-ins such as Applets, or security-prone, vendor-specific technologies such as ActiveX components.

By combining server-side SVG generation using object-oriented languages such as Perl with client-side XML manipulation with JavaScript, content generators are now able to implement lightweight, bilateral, secure, low-bandwidth communication between the browser and the server. This enables the generation of state-aware, refresh-free web content, and the simultaneous manipulation of web content on multiple browsers or servers from a single browser or server.

The integration of SVG into the Internet browser, along with the browser's support of the interaction between the SVG Document Object Model (DOM) and JavaScript, now provides the necessary foundation for rich, real-time, bi-directional client-server communication. The coming together of SVG, JavaScript, and Perl enable the browser to take its place on the computer desktop as a host for meaningful, graphically intense programs. By keeping the complex components of these programs on the server and limiting the processing complexity at the client to rendering, the SVG-Perl-JavaScript triangle has the potential for throwing into question the dominance of the Operating-System-resident application on the desktop, finally making it possible to build complete thin-client applications with a browser for the presentation layer and Perl on a server to for processing the business logic.

The construction of a thin-client application will be explored through the example of an N-browser, interactive game using the powerful Perl SVG module family and JavaScript client-side event handlers. The exceptional qualities of Perl for SVG and XML Webservice applications will be demonstrated with a scalable, self-contained, dedicated, platform-independent SVG Webservice application.