CHI 97 Electronic Publications: Tutorials
CHI 97 Prev CHI 97 Electronic Publications: Tutorials Next

Developing Collaborative Applications Using the World Wide Web "Shell"

Alison Lee
NYNEX Science and Technology
500 Westchester Avenue
White Plains, NY 10604, USA
+1 914 644 2322
alee@nynexst.com

Andreas Girgensohn
FX Palo Alto Laboratory
3400 Hillview Avenue
Palo Alto, CA 94304, USA
+1 415 813 7244
andreasg@pal.xerox.com

ABSTRACT

The World Wide Web is often viewed as the latest and most user friendly way of providing information over the Internet (i.e., server of documents). It is not customarily viewed as a platform for developing and deploying applications. In this tutorial, we introduce and demonstrate how Web technologies can be used in combination with Web browsers to design, create, distribute and execute collaborative applications. We discuss how HTML in combination with CGI scripts, JavaScript, and Java can be used to develop interactive and collaborative applications. We discuss recent extensions and additions that support sophisticated application development as well as the constraints with the WWW 'Shell' approach. The term World Wide Web 'Shell' is used in a manner analogous to the use of the term Expert System Shell. Specifically, the components of the WWW provide basic functionality and services for developing application in much the same way as an expert system shell provides components for developing expert system applications.

Keywords

Collaborative applications, interactive applications, forms, HTML, MIME, CGI, HTTP, URL, Java, JavaScript, web server, web browsers, software development.

© 1997 Copyright on this material is held by the authors.



INTRODUCTION

In the last year, the HCI community has seen phenomenal interest and growth of the World Wide Web (WWW) as a user-friendly means for accessing and disseminating information. Of late, even corporations are realizing that the Web is a cost-effective and efficient means for delivering timely, consistent, and accurate information to their employees world-wide through "intranets" (Internet technologies used on corporate networks).

However, the Web is not as widely seen as a platform for developing interactive information systems and groupware applications [2, 4]. Drawing on our experiences with developing several collaborative applications at NYNEX to support distributed work groups (see [1, 2]), we introduce the tools and technologies of the World Wide Web (WWW) that are used to develop interactive and collaborative applications. Then, using a concrete example of a groupware application, we demonstrate how to use the components of the WWW (e.g., HTML 2.0/3.2, Tables, CGI scripts, JavaScript, Java) to develop the functionality of the application.

The term 'Shell' in World Wide Web 'Shell' was chosen because the components of the WWW provide basic functionality and services for developing collaborative applications in much the same way as an expert system shell provides components for developing expert system applications. Just as an expert system is built by adding information and knowledge specifications to an expert system shell, collaborative applications can be built by adding application data and a specification of application behavior (e.g., via HTML, CGI scripts, Java) to the WWW Shell.

The goal of the tutorial is to provide insights into how to use the WWW Shell to develop interactive and collaborative applications. At the end of the tutorial, participants will have enough of a basic understanding to begin developing collaborative applications using this platform.

WWW "SHELL" AS A DEVELOPMENT PLATFORM

There are three benefits with using the WWW Shell for developing collaborative applications.

First, a collaborative application is most effective as a tool if the individuals in a group are able to use it and the work group as a whole observes benefits in using it. This means the issue of ubiquitous access and critical mass usage are important and necessary design criteria. The availability of standard browsers that work on many hardware platforms enables users to run a collaborative application on any platform from any network location. Furthermore, by using these browsers, developers can attract a large user community, can improve the rate of user acceptance, and can leverage on users' familiarity of the user interface of the browsers.

Second, the development of collaborative applications is a difficult endeavor in terms of understanding work-group interactions and acquiring the requisite knowledge and skills needed to design and build complex, multi-user, distributed, shared applications (e.g., the need to operate over a network in a shared context). The WWW Shell provides many components and features that developers can use to implement user interface functionality, to access and transport information over networks, to link up to commercial databases, specialized search engines, etc., and to view foreign document formats. Also, developers can use resources such as helper applications on the client side or auxiliary programs and tools on the server side to reuse existing functionality into their application rather than to reinvent the functionality.

Finally, once a collaborative application is developed, users only need the Universal Resource Locator (URL) (e.g., http://www/application) to access the application. There is no notion of software distribution and there is no notion of different versions of the application in use. As a result, the WWW Shell reduces the turnaround time for software development with its support for development, testing and debugging, maintenance, and distribution of the resulting collaborative application.

CONTENT

The tutorial introduces what we mean by the WWW Shell and the particular kinds of collaborative applications that are the focus of the tutorial. We also motivate why the WWW Shell is an appropriate development environment for collaborative applications.

This is followed by lectures and examples on particular tools and technologies available from the WWW Shell (e.g., tables, frames, CGI, http) and how to use them to build collaborative applications (e.g., CGI scripts to generate HTML applications). The presentation includes:

At the conclusion of this section, attendees will break off into small groups to work on the first exercise -- identify and design an interactive and collaborative application.

In the afternoon, we illustrate how to develop pieces of an example collaborative application (i.e., meeting scheduler and meeting support tool) using the components of the WWW Shell. The application pieces include tools to:

At the conclusion of the this section, the attendees will again break off into their morning work groups to work on the second exercise -- identify how they would develop all or part of the application from the first exercise.

The tutorial concludes with a discussion of the limitations of the WWW Shell approach and a presentation of the enhancements to the WWW Shell (e.g., NCSA Habanero).

OBJECTIVES

At the end of the tutorial, participants will have gained a basic understanding of:

AUDIENCE

This tutorial is targeted at an intermediate-level audience. It is intended for researchers, designers, and developers working on CSCW applications or creating WWW content with an interactive and collaborative component. Attendees should be familiar with the World Wide Web and have some experience in using a Web browser. Attendees should be comfortable with scripting and programming languages. Familiarity with designing and developing collaborative applications, C/C++, Perl, Java are helpful but not required.

REFERENCES

  1. M.E. Atwood, B. Burns, D. Gairing, A. Girgensohn, A. Lee, T. Turner, S. Alteras-Webb, and B. Zimmermann. Facilitating Communication in Software Development. In Symposium on Designing Interactive Systems. 1995. New York: ACM. pp. 65-73.
  2. A. Girgensohn, A. Lee, and K. Schlueter. Experiences in Developing Collaborative Applications Using the World Wide Web "Shell". In Hypertext'96 Conference Proceedings. 1996. New York: ACM. pp. 246-255.
  3. A. Girgensohn, D. Redmiles, and F. Shipman. Agent-Based Support for Communication between Developers and Users in Software Design. In Proceedings of the 9th Knowledge-Based Software Engineering (KBSE-94) Conference. 1994. Monterey, CA: IEEE Computer Society Press. pp. 22-29.
  4. J. Rice, A. Farquhar, P. Piernot, and T. Gruber. Using the Web Instead of a Window System. In CHI 96 Conference Proceedings

CHI 97 Prev CHI 97 Electronic Publications: Tutorials Next

CHI 97 Electronic Publications: Tutorials