HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Rooms by ichat is the premier comprehensive solution for creating Web sites that allow multiple users to interact. It provides several key features that make it suitable for Web sites of any size and has cross-platform support that makes it accessible to users on almost any imaginable platform.

History of Chat Rooms
Chat rooms have always been an important part of the online experience. They provide users with an interactive environment which gives them a sense of community while logged onto a particular site. The earliest chat rooms were available on local BBS systems that provided modem users with the ability to talk with others on the same system. Of course, this was limited by the number of telephone lines connected to any one BBS and so most chats were small, local and short. The first company to bring chat rooms national access and commercial success was America OnLine (AOL).

AOL's national service could bring together dozens, even hundreds, of users in a single chat room and these rooms are still very popular. Other commercial services also have implemented highly successful chat areas to supplement their main content. The advantages of all these services are:

  • Established User Base - Each of these commercial services has a large base of users that they can draw upon.
  • Ease of Use - Commercial service providers excel in making their services easy to use, allowing people without much computer experience to make use of them.
  • Integrated Software - The software required to chat on these services is integrated into the normal content browser, so no extra downloads, installations or configurations are required.
These advantages have attracted the attention of many commercial interests who have seen the potential for advertising and customer-interaction that these services provide. Many companies use these chat rooms to provide "special guest" chats and some media companies (such as MTV) actually allow chat rooms to interact live on the air. Unfortunately, these commercial services have several drawbacks:
  • Cost - Users have to pay, often by the hour or minute, for use of these services. This greatly reduces the number of people who are able to access any given chat room.
  • Proprietary Software - Each service provider has its own software used to access the chat rooms and this software is available only on a limited number of platforms.
  • Centrally Controlled - Each chat room is controlled almost exclusively by the commercial service provider. It is very difficult for individuals to have much say in the workings or content of any given chat room. Further, companies who want to set up their own chat rooms cannot make use of their existing networking hardware or software.

Internet Chat Rooms
For a number of years, Internet users have enjoyed free chat rooms compliments of the Internet Relay Chat (IRC) protocol. This is a very simple command line-driven standard for writing chat clients and servers. However, because this was developed as a free-form Internet standard, it has proved hard to present structured content over IRC. A direct result of this unstructured nature is that commercial interest in IRC has remained low. IRC remains an informal gathering place for all kinds of different people, but not much of a commercial success.

The obvious solution to many of the problems of commercial service chat rooms and IRC is to move these facilities onto the World Wide Web. Until now, that has occurred in a haphazard and difficult manner. To address the cross-platform issue, many developers have written various Java chat room client/server applications, but all of these use custom protocols and designs. The end result is that most people wind up having to write their own client/server applications for simple chat rooms. For the most part, these attempts lack the features and user base of existing methods.

ichat Rooms
Rooms by ichat tries to leverage existing technologies and user bases in order to provide cross-platform, robust and feature-rich chatting on the WWW. Rooms is truly a cross-platform solution; in addition to a Java client, ROOMS provides telnet, IRC, HTML, ActiveX and Netscape plug-in access to all of its chat areas. Of course, some information (such as graphics) is not viewable on all platforms, but, since the chat itself is text-based, Rooms can handle users on terminal systems as well as high-end workstations. Rooms is also a feature-rich application, serving very dynamic and complex content in addition to chatting. Let's take a look at some of its more prominent features.

Cross-Platform Support
This is one of Rooms' most important features. Its server application runs on a whole host of UNIX operating systems, as well Windows NT. On my Linux machine, it installed and ran without a hitch, as it did with NT as well. A list of supported architectures is shown in Table 1.

Table 1

Even more important than its cross-platform server is Rooms' support for multiple client software. Although most people (especially Java developers) tend to think of Java as a truly cross-platform solution, the truth is that many popular architectures do not yet support Java. Even among those who do, Java implementations can often leave much to be desired in terms of complex user interface and performance considerations. Rooms tries to circumvent this problem by supporting a variety of client mechanisms. These are summarized in Table 2.

Table 2

All of the graphic-based client software (Java, Plug-in, etc.) have the same look and feel and are quite easy to use. Text-based clients (telnet, IRC) are almost as feature-rich, but support a command-line interface instead of a GUI. They are all very intuitive and integrate nicely with the browser window. Figure 1 shows the plug-in client running in a Netscape Navigator window.

Figure 1
Figure 1:

Chat Room Content
Rooms takes a frame-based approach to providing content, which allows it to be easily integrated into existing Web-based content structures. This also allows for chat participants to conduct "Web tours" or to view another Web page while still chatting. Figure 2 shows the Java client running in Netscape Navigator viewing the TeamJava home page simultaneously.

Figure 2
Figure 2:

Because Rooms integrates with all kinds of existing Web content, it allows for other Internet standards, like VRML, to be employed in chat room construction. Users can navigate through this 3-D structure and find various other chat locations on the same server, or even on different servers.

Rooms also includes an API for creating Robots, program plug-ins that perform some sort of automated function. This can range from simple "tour" robots that guide users around your site and give them an introduction to complex 'bots that can actually interact with users in an intelligent fashion. Although the API is designed in C, it should be possible to create robots using Java's native code interface.

User Interaction
In addition to basic talking, Rooms provides a variety of actions to keep users interacting and having fun. This set of features is loosely based on the IRC standard, but provides much more functionality. Users can "follow" each other into various rooms and engage in private chats, tours and events. Users also can perform a variety of actions which are used to express emotion, etc. These features are accessible graphically in the GUI clients and are accessible by command line in text-based clients. Figure 3 shows a few of these features.

Figure 3
Figure 3:

Rooms also provides support for Avatars, which are small graphics used to represent each user in the chat environment. ROOMS comes with a variety of clip art, but also provides a mechanism for users to create and upload their own pictures, making the system more personal and enjoyable. Of course, the system administrator has complete control of how large and how many Avatars the system will accept.

Commercial Possibilities
One of Rooms' most important features to Webmasters is its ability to provide dynamic commercial content that is superior to other Web-based advertising techniques. Scrolling marquees and dynamic image banners can be displayed within the client software, or inserted into viewed HTML content. This is superior to normal HTML-based banners because users tend to spend much longer in a chat room than on any one HTML page. Since banners can be changed and cycled, your advertisers will get far more exposure from a Rooms-enhanced page than they will from some static HTML. In addition, Rooms provides support for moderated events in which intermediate users can act as moderators for the general population. This makes celebrity appearances and other structured chat environments easy to construct, thus drawing more and more users to your site.

Creating Chat Rooms
Both the blessing and the curse of ichat Rooms is that it frees you from the technical details of creating a chat server and allows you to be creative. This means that webmasters need to spend more time thinking about how to craft content to attract and hold the audience they are looking for. But beware, this is not quite so easy as creating static HTML content. There are tons of chat areas out there on the Web and most of them are very bad.

Despite what you might read in the popular press, this kind of behavior is actually the exception rather than the rule on the Internet, but it's important that developers keep these kinds of concerns in mind. To assist in this process, Rooms provides a whole host of administrative features, including a language filter that can be applied selectively or globally to prevent certain types of offensive language.

Growing Pains
If you are so fortunate as to have your Web server overloaded by requests, ichat provides a scalable architecture that can support on the order of 50,000 simultaneous connections. Through the use of a separate distributed software daemon, you can distribute this server load over as many computers as you like, even if they do not run the same operating system. This is extremely important for large-scale commercial ventures that seek to draw thousands of visitors.

Rooms by ichat is clearly the most advanced software package available for Web site administrators today. It is feature-rich, robust and platform-independent. I can easily allow any Web site to leverage its existing content and legacy applications to create new and exciting interactive chat rooms. Of course, if all you need is a simple chat room with no bells or whistles, this might be an overkill product. But if you don't want all the hassle of creating your own system, ROOMS is your unequivocal product of choice.

About the Author
Eric Ries is the Games and Graphics editor for JDJ. In his spare time, he develps Java applications and writes for books and magazines. He is a founding member of TeamJava, and is doing Intranet development with Pacific Communications Sciences Inc.


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.