Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesWeb Conferencing


June 1996 / Web Project / Web Conferencing

First-generation Web-conferencing applications confront four barriers common to all Web-server-based applications

Jon Udell

Last month we explored conferencing software based on NNTP. This time we'll look at some purely Web-based conferencing systems. There are a lot of them-- http://freenet.msp.mn.us/people/drwool/webconf.html enumerates more than 50. All that I've tried offer the same benefits and suffer from the same drawbacks (see the sidebar "Web-Conferencing Benefits and Drawbacks"). None of those that I made publicly available on The BYTE Site--net.Genesis' net.Thread, Allaire's Cold Fusion Forums, and Lundeen and Associates' Web Crossing--captured as much message traffic as did the NNTP-based conference that I ran in parallel.

Why the low participation? Site visitors (and BYTE staffers) found the Web conferencing applications slow and awkward compared to the NNTP applications, such as Free Agent and the Netscape 2.0 newsreader. So for now, I'm inclined to meet BYTE's own private and public conferencing requirements with NNTP technology. But don't write off Web conferencin g. Today's first-generation systems are already useful. Once they break through the four barriers common to all Web applications, conferencing systems will be off and running.

Barrier 1: Installation

Conferencing springs into action with a mouse-click. Any Web browser can run these applications: Users don't have to acquire and install other client software. Administrators, of course, do have to acquire and install the server softwa re. Web technology doesn't make this job any easier than it ever was. In fact, it's more complicated. You have to deal with the usual paths and permissions, plus a whole new set of paths and permissions arising from your Web server's Common Gateway Interface (CGI) environment.

I put net.Thread on our BSD/OS machine running the NCSA Web server, net.Thread and Web Crossing on an SGI Indy running the Netscape Commerce Server, and Cold Fusion Forums on a Pentium-based NT server running Microsoft's Internet Information Server. None of the installations went like clockwork. But none required more than a little fiddling, either. It wasn't a lot of effort to create a conference that's instantly open to every Web browser on the planet.

Once installed, Web conferencing systems offer spectacularly easy administration. You do everything through a Web browser. Of course, browser interfaces are becoming the de facto standard for all sorts of network administration nowadays. Printers, mail servers, Web applica tions--anything that lives on a network can benefit from the ubiquity of a browser-based management interface. The Netscape News Server, I'm told, wraps such an interface around the standard INN engine we're running on The BYTE Site. So the administrative convenience of Web-based conferencing isn't a unique advantage.

Barrier 2: Missing HTML Widgets

Management interfaces work well on the Web because they're simple and forms-based. But applications with more demanding user-interface requirements tend to suffer. HTML lacks the advanced widgetry that enlivens modern GUI applications. In particular, it lacks a tree control. Smalltalk pioneered this widget 15 years ago, and now it's everywhere: Notes 4, the Windows 95 Explorer, the Netscape 2.0 mail and news clients.

Because conferencing often involves some kind of forum/topic/message hierarchy, tree controls that enable users to dynamically expand and collapse levels of this structure play an important role. However, Web developers must attempt to emulate these effects with a series of pages that creates the illusion of accordion structure. This method works--but not too well.

One solution might be Netscape frames. A frame set can express an information hierarchy as a group of linked panels--see "Web Design," March BYTE, for a prototype of a frame-enabled BYTE Site. But frames aren't a panacea. They work only in Netscape Navigator 2.0, and they are tricky to use effectively. Even Netscape's own newly frame-enabled site isn't as easy to understand or navigate as you would like it to be. And because a frame set can include another frame set--even itself--an inadvertently recursive uniform resource locator (URL) creates a disconcerting hall-of-mirrors effect. Perhaps for these reasons, I've yet to run across a frame-based Web-conferencing system, although I'm certain they're coming.

Another solution to the problem would be to add a tree control to the browser's arsenal of widgets. Such a control will surely be one of the first killer Java applets. Expect an ActiveX OLE implementation of the same idea to emerge from the Microsoft camp. Wielding these components, Web developers will be able to break through the Hypertext Markup Language (HTML) barrier. The user-interface advantage that fixed-function conferencing clients now enjoy will erode. Extensible Web browsers will suffice for conferencing and for many other kinds of applications.

Barrier 3: Stateless HTTP

You'd soon lose patience with a conferencing system that forced you to log in not just once per session but once per message. Yet that's just how a naive implementation of Web conferencing would have to work. HTTP owes much of its huge success to its connectionless (i.e., stateless) mode of operation. That's what enables Web traffic to flow reasonably well despite the high latency and lousy fidelity of a large portion of the Internet. However, HTTP's statelessness greatly complicates applications--such as conferencing--that require persis tent user identity.

The classic solution to this problem retransmits user credentials on each CGI invocation. Both net.Thread and Web Crossing work this way. Because these systems dynamically generate all the HTML pages that users see, they can insert credentials into the action= attribute of each page's <form> tag. Hidden fields are another way to achieve the same result. (See "Perl Magic," December 1995 BYTE, for an explanation of how hidden fields maintain state in the Virtual Press Room application.)

A consequence of this on-the-fly generation of pages is that conference messages don't live in normal Web space where indexers can find them. That's a moot point if the system keeps messages in a database anyway, as do all three systems discussed here. But even if messages were stored as plain HTML files, this architecture would hide those files from standard Web indexing and search tools.

Cold Fusion Forums implements an alternative way to create persist ent user identity. This technique exploits the Netscape cookie, a name-value pair that a server script can create, store on the client, and retrieve on subsequent interactions with the client. The cookie works in Netscape Navigator (which accounts for 75 percent of BYTE Site visits) and Microsoft Internet Explorer (9 percent), but not in Mosaic (8 percent) or WebExplorer (3 percent). Because the cookie remains on the client until it expires, Cold Fusion Forums can remember a user not only during a conference session, but also across sessions.

Systems that use cookie-based authentication typically generate pages on the fly, as do systems that transmit credentials on the CGI command line (or in hidden form variables). The program that writes the HTML pages governs access to them using cookie data that it extracts from the CGI environment.

Can you use cookie-based authentication in an application that's based on a static archive? Yes. Some Web servers, including Quarterdeck/StarNine's WebStar and M icrosoft's Internet Information Server, can insert filters into the processing of client requests. These filters can inspect and act on CGI environment variables. So you can extract cookie data without having to wrap an entire CGI application around every page of an archive. Of course, the mechanisms are server-dependent.

Barrier 4: The CGI Bottleneck

The 16-MB 486/50 Dell on which INN 1.4 runs happily couldn't handle net.Thread. It was unusably slow. (On an SGI Indy, however, it ran quite well.) Why the molasses-like performance on the Dell? Every user action in net.Thread requires the server to suck in and interpret a big chunk of Perl code. The only way to scale up, given this architecture, is to throw more hardware at the problem.

Net.Genesis says version 2 will rely less on Perl, more on compiled C code. Does that mean an interpreted language like Perl can't break through the CGI bottleneck? Not necessarily. Consider building an application engine in Perl that runs as a da emon, along with a lightweight CGI stub that transmits user requests to the engine and receives data from it. This architecture will improve any CGI application, compiled or not.

Two compiled applications that take this approach are Web Crossing, whose engine ran as a Unix process on the Indy, and Cold Fusion Forums, whose engine ran as an NT service on a Pentium-based Dell. Web browsers talk to both applications' engines by way of compiled CGI stubs. With the engine always running, the bottleneck becomes the Web server's ability to execute the stubs. Conventional CGI technology requires the server to spawn a process for each stub invocation. That's expensive, particularly on NT. High-performance alternatives are emerging in the form of APIs that enable Web-server-based applications to run as extensions of Web servers.

Cold Fusion Forums supports three of these: the Netscape server API (NSAPI), the WebSite API (WSAPI), and the Process Software/Microsoft Internet Server API (ISAPI). I downloaded the ISAPI version of Forums ( see the screen ). It replaces the regular stub (dbml.exe) with an alternative one (dbml.dll) that runs in-process as an extension of the MS Internet Information Server. (In theory, it also works with Process Software's Purveyor, although I didn't try that.) Was it faster? Not noticeably; however, our conference didn't generate enough traffic for a real stress test.

Web vs. News

Scanning the sidebar "Web-Conferencing Benefits and Drawbacks" , it's easy to see what requirement disqualifies either an HTTP- or NNTP-based conferencing system. Need to cross firewalls? NNTP loses. Need replication? HTTP loses.

It's harder to judge the benefits of each approach because both are evolving at warp speed. Based on the reactions of visitors to The BYTE Site, NNTP wins. But the boundaries are already blurry. Newsreaders are rapidly becoming more browserlike and vice versa. What matters is not how you deploy conferencing, but that you deploy this vital and underutilized communications tool.


TOOLWATCH


cgi-lib.pl
     
http://www.bio.cam.ac.uk/cgi-lib/

                 
http://www.mispress.com/introcgi/cgi-lib/


Steven Brenner points out that the version of cgi-lib.pl that I referred to in earlier columns is outdated. This new version includes support for the multipart/multiform data encoding that's required for uploading files by way of HTML forms.


BOOKNOTE

Introduction to CGI/Perl by Steven E. Brenner and Edwin Aoki

M&T Books/MIS:Press
Internet:  
http://www.mispress.com/

Price: $19.95

If you're new to both CGI and Perl, here's the tutorial you'll want by your side when you take the plunge.


Introduction to CGI/Perl

photo_link (31 Kbytes)


Conferencing on the Web

screen_link (30 Kbytes)

1. Using HTML, you can customize the look of your conference.

2. To combat HTTP's statelessness, Web-conferencing applications continually retransmit user identity, preferences, and other session-specific information.

3. Information hierarchy can be encoded in HTML but only statically. To expand a thread requires a complete display refresh--a new HTML page that represents the expanded view.

4. There's a very active net.Thread installation at http://www.nytimes.com . See http://www.netgen.com for more info about net.Thread and other products from net.Genesis.

5. User-interface controls appear as clickable buttons. Their actions are defined by code that's auto-generated with this page. When you click on a button, the system generates a new page with a new set of (possibly user-customized) buttons.


ISAPI Forums

screen_link (98 Kbytes)

1. dbml.dll is the ISAPI version, more efficient than dbml.exe (the CGI version) because it shares the Web server's address space.

2. Running on top of Cold Fusion, a Web -to-ODBC (Open Database Connectivity) integration layer, version 1 of Forums handles basic text search. Version 2, Allaire says, will work with ODBC-compliant text indexers. See http://www.allaire.com for more information about Allaire products.

3. Forums uses local references from message titles (above) to message bodies (below). This technique minimizes the number of pages users must request from the server--a single HTML page contains a whole thread. However, when the thread hierarchy is visible, messages aren't, and vice versa. It's a real challenge to build a rich and responsive user interface in vanilla HTML.


Jon Udell is BYTE's executive editor for new media. You can contact him by sending e-mail to judell@bix.com .

Up to the Web Project section contentsGo to next article: Web-Conferencing Benefits and DrawbacksSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network