An Overview of Gubcast

Gubcast is a simple, powerful protocol that enables an application to "push" any content it wishes onto any Web browser window, at any moment, with the prior consent of the user but without any triggering action on the user's part.

The content that is pushed out to the user at different times might be static pages of HTML, dynamically generated HTML pages, or even the results of executing CGI scripts or running servlets -- or any combination of these. Anything that can be expressed as a URL.

A wide variety of applications can be built on this simple platform. Here's a very partial list:

Gubcast is built on the "client/server" model, but the user doesn't need any proprietary software running on the desktop to use the system: the "clients" are just Web pages with embedded Gubcast applets, so the user downloads Gubcast capability simply by browsing the Web. The only requirement is that the user must have the Java 1.3 plug-in installed (in the same way that you have to have the Adobe Acrobat Reader plug-in installed when you view a Web page in PDF format), and plug-ins must be permitted to load and run in the user's browser.

Everything else is up to the Gubcast server, which is specific to your application. The Gubcast system includes a class library that makes developing a Gubcast application easy, and complete source code for a basic server is included.

How It Works

As the application developer, you embed the Gubcast applet in a page of HTML code. In the HTML you supply a few key parameters such as: When a user visits your Gubcast-enabled page, the applet starts running on the user's browser in the dynamically loaded Java 1.3 plug-in. At this point it registers with your server - which must be running on the same machine as the HTTP server that delivered the page - and announces its own name and the number of the TCP port on which it (the applet) will be listening for messages from the server. Then it starts a background thread that listens on that port.

Whenever your server needs to push content out to the user, it connects to the applet's announced port and sends the applet a message. The message contains a standard URL (a text string) specifying the content the server wants to push to the user, together with the name of the page frame in which the content should appear. The applet's background thread accepts the connection, reads the message, and simply accesses that URL to load the specified content in the specified frame.

Because the applet runs inside the Java plug-in "sandbox", it doesn't constitute a security risk to the user: it can talk to the server and the browser, but it can't access the user's file system. And users can control Gubcast activity on their browsers by simply not allowing plug-ins to load automatically.

When the user leaves your Gubcast-enabled page, the applet unregisters with your server and stops. This lets your server maintain a complete, up-to-date list of all users who are listening for messages.

Interested?

If you'd like to know more, please take a look at the Gubcast User's Guide.

Gubcast is freeware. To try it out, download it and unZip it, and install it as described in the User's Guide. Please also review the license agreement under which Steps On Cats offers this system.