WireX Exploratory Whitepaper for
Web Applications RNA Extensions (RNAx)

Howard Abrams
20 June 2001

Abstract: This whitepaper discusses the research and development of a "toolkit" and a series of extensions to the RNA to support integration with separate web-based server applications, i.e. Mail readers, web statistics and reporting tools, database query clients, etc.


The RNA has extensions to allow developers to extend it to support new "wizard-based administration" features. However, not all applications lend itself to a wizard-based format. For instance, a web-based email reader would display a number of email messages, and expect the user to simply click on the email message to read.

There are many existing web-based server applications (called webapps) that perform many client-oriented applications. These usually have the user enter a URL to reference the application, and then requires the user to login with an account name and password.

The RNAx project attempts to make it seem like the web app is running within the RNA. This includes the following feature requirements:

All of these features would make the server appear more like an "appliance" and be easier for end user.


RNAx is both a "toolkit" for building modules that do the webapp integration and a collection of pre-built modules that integrate a list of popular webapps. In order to do this, however, some extensions to the RNA will need to be in place. This document describes these features.

RNA Extension

Most of the extensions necessary for RNAx modules are already in place within the RNA. These extensions are currently used to allow the primary RNA engine to communicate with the separate "Help" module.

We would add to this infrastructure the ability for RNAx modules to retrieve the user's account name and password and possibly other information from the primary RNA engine.

Security Concerns: RNAx modules can not be installed by end-users. They must be developed and installed by either WireX or by WireX's partners. The username and password is also tied directly to the user's "browser session" and there is no "bleeding" between the modules. This would insure that the passwords are not "found out" by other users.

RNAx Modules

An RNAx Module will act as a filter between the client's browser and the webapp. It's job is to make the webapp appears as if it is coming from the RNA directly instead of from a separate source. Granted, it will not "run" the webapp, that will be the responsbility of the web server. This will allow the webapp to be accessed directly or through the RNA. Keep in mind that these modules are tightly coupled with the RNA, and as such, will not work (without significant modification) with some other interface.

RNAx Modules will come in two flavors. These modules will be written in Java using servlet technologies, but they will behave in one of two ways:

A "Single WebApp Module" will be written first to integrate the Courier "webmail" system. This would allow user's with an email account on the server appliance to read their mail stored using the Courier mail system.

Example Web Applications

Though certainly not complete (not even extensive), the following lists some of the potential web applications that could be integrated into the RNA using individual RNAx modules built for each application.

Note: We will not supported web apps that duplicate RNA functionality, i.e. Webmin, PhpMyAdmin, etc. The reason is that there exists some potential for system conflicts due to using similar products.


The RNAx modules will be written using Java Servlet Technologies as this is the simplest form of integration with the RNA. These modules will act as a "filter" between the client's browser and the webapp. The "filtering" will be done to help the webapp appear as if it is fully integrated into the RNA.

Each module will written with two distinct states. The first state begins when the RNA refers the user to the module. This is done via a URL hyperlink reference located within the RNA menu system.

When the user first begins using the RNAx module, the module will initiate a login sequence with the webapp:

  1. Connects to the webapp, receiving the login page from the webapp.

  2. Queries the RNA through the session interface to retrieve the username and password.

  3. Connects to the webapp again, but this time with the next screen. It will supply, through the standard CGI parameter list, the username, password and any other fields required on the initial login screen.

  4. Retrieves the "connected" page from the webapp, displays this page (with possible filtering) back to the user in response to the browser's initial request.

  5. The filter now enters its second state.

Once the user is logged in to the webapp through the RNAx module (State 2), all requests that come to it are passed directly (without modification) to the webapp. The HTML data response from the webapp is passed back to the user's browser.

Note: The type of filtering that will probably be done on the output from the webapp will vary from webapp to webapp. Some typical changes are:


While the RNAx will allow arbitrary webapps to be integrated into the RNA (meaning that they will appear to be part of the RNA application), specific RNAx modules will need to be written for each webapp.

The RNAx will supply a "toolkit" that can be used to make this easier for developers. It will contain a Java class that will be extended that will interface to the RNA and supply a number of methods for connecting to webapps and filtering the data content. WireX will also supply an "example" module for developers as part of the "toolkit."

WireX will also develop a "generic" module that will interface to simple webapps that do not require any filtering. This module will read a configuration file for specifics on connecting to the webapp (location, username tag name, etc.). It is, however, unclear if any webapp will be simple enough to not require any filtering of its output.

The benefits to the RNAx technology are clear: To allow advanced web applications to look and act as if they were part of the RNA. This will allow the WireX product to have more features with less development.

Background Documents