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:
- Instant messaging systems, including instant broadcast.
- Real-time updates of stock quotes, price changes, ticket availability,
etc.
- Immediate notification of new task assignments, for real-time workflow.
- Pure Web-based alarm and warning systems.
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:
- the number of the TCP port on which your Gubcast server will be listening
for Gubcast client (applet) registrations, and
- a name identifying the nature of the client - for example, the URL of the
page in which the applet is embedded.
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.