CHI 97 Electronic Publications: Tutorials
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.
- Facilitate ubiquitous access and gain critical mass usage.
- Draw upon the building blocks needed to develop collaborative
applications from the WWW Shell.
- Support for development, distribution, deployment, and maintenance
of the collaborative application.
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:
- the set of standards (HTML, URL, HTTP, MIME, CGI) that enable the
development and delivery of applications,
- the Web building blocks for developing the user interface (e.g.,
HTML forms, tables, frames) and functionality (CGI scripts,
JavaScript, Java) of an application,
- the considerations in engineering the client-side and server-side
portions of an application (e.g., application delivery,
maintenance, cross-platform compatibility), and
- the mechanisms to integrate non-Web components into the Web
framework (e.g., plug-ins, helper applications).
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:
- Display a calendar view containing user and group activities using
tables, GIF library, and CGI script,
- Enter and modify several daily activities using HTML forms and
JavaScript,
- Enter, modify, annotate and comment on meeting notes using
Java-based Dynamic Forms and CGI scripts,
- Facilitate desktop video conferencing using helper applications
and CGI scripts, and
- Engage in synchronous chat using Java applets and CGI scripts.
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:
- the software concepts and architecture of the World Wide Web
- the tools and technologies underlying the WWW Shell
- the issues in designing and developing applications
- how to use the WWW Shell to begin developing collaborative
applications using this platform.
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
- 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.
- 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.
- 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.
- J. Rice, A. Farquhar, P. Piernot, and T. Gruber.
Using the Web
Instead of a Window System. In CHI 96 Conference Proceedings
CHI 97 Electronic Publications: Tutorials