In
this paper, we propose HTTP-ICE: an HTTP-Based Distributed Application
Framework For Interactive Collaborative Environments. HTTP-ICE is an
alternative framework for the exchange of information between collaboration
applications that does not conflict with imposed firewall constraints.
Therefore, HTTP-ICE enables users located behind firewalls to utilize such
useful technology.
Web-based collaboration,
Firewalls, HTTP streaming, Synchronous collaboration applications, Interactive
applications
Over
the past few years the Internet has grown in popularity and in capabilities.
Currently, the Internet is used not only for storing and exchanging of
information, but also for several forms of collaboration between heterogeneous
users. There are currently several collaboration tools available on the
Internet to support collaboration such as chat tools, audio and video tools,
voting tools, etc. Several tools are also combined in one application framework
to form a collaboration application. These applications have facilitated
numerous real life tasks such as distance learning, collaborative medical
diagnosis, distributed authoring, and so on. However, the malicious intrusions
have also grown with the growth of the Internet. This caused the emergence of
firewalls as an essential need that safeguards both personal computers and
corporate networks from hostile intrusions. Unfortunately, firewalls and
collaboration applications have conflicting goals since existing collaborative
environment frameworks are based on a heavy use of TCP and UDP ports for
exchanging information [1,2]. These ports are likely to be blocked by firewall
administrators since they are considered potential threats that carry viruses
or possible attacks [3]. This has limited the use of collaboration applications
and deprived the Internet users from utilizing such useful technology. This
problem is not trivial since there are several administrative domains at each
user's side; which results in more complicated constraints that vary from user
to user. With the exception of a few chat tool implementations, another key
issue that limits the spread of collaboration applications is the lack of a
standard for the exchange of information between different implementations.
This restricts the collaboration to only instances of the same application. We
introduce the HTTP-ICE framework. The proposed framework consists of a
communication model and a collaboration protocol. The communication model
utilizes the HTTP protocol in order to solve the conflict between collaborative
environments and firewalls. The proposed collaboration protocol is a novel
protocol for the exchange of information between users in a collaborative
environment. This protocol is not tied to a specific implementation of
collaboration tools. Therefore, unlike existing frameworks, our framework would
enable several collaboration tools of the same type to communicate with each
other independently of their implementation details. We discuss the
communication model, the collaboration protocol, and the overall architecture
of HTTP-ICE in Sections 2, 3, 4, respectively. Section 5 gives an overview of
our prototype implementation. Finally, Section 6 concludes this paper.
Our
proposed communication model utilizes the reliable
HTTP streaming technology where the MIME message formats are used for sending
several blocks of data to the client in response to a single HTTP request. It
is based on the client-server model. The central server is an HTTP/HTTPS server
and all communication between the clients and the server is performed via HTTP.
The data blocks routed in the environment are encoded as messages. There are
two types of messages used in the communication between the client application
instances and the central server: control
messages and event messages. The
central server uses “HTTP streaming” to push
any new message to every client in the environment while the clients
communicate with the server using “individual HTTP Post requests”. Each
individual request corresponds to one message, and the content-type header
field of the request corresponds to the type of the message. Experimental MIME
content types are used to define a content-type for each type of the messages.
The content-type information is used by the client application and the central
server to interpret the messages. Standard structures for the data encapsulated
in any message is also defined based on the content-type of the message. These
standards enable several client implementations, not necessarily equivalent, to
exchange information about collaboration tools independently of their
implementation details.
We
define an event-driven collaboration protocol. The protocol is based on
exchanging the minimum amount of information about any update in the
collaborative environment, between the clients, in the form of messages. Each
client extracts the information included in these messages and interprets it in
order to perform the necessary updates. There are two types of messages used in
the communication between the client application instances and the central
server: control messages and event messages. Control messages are used for
controlling the environment, e.g., a join-session message. Client-to-server
control messages are processed by the central server, while server-to-client
messages are processed by the client application instance. Event messages do
not play any role in controlling the environment. They are used for distributing
updates in the collaborative environment to all participating users, e.g., a
chat message. They contain two kinds of information: the content of the message
and the content-type of the message. The content of the message is the
description of the tool update. The content-type of the message determines
which tool should perform that update. Event messages are initiated by the
client applications and not by the central server. The central server does not
perform any processing of the content of event messages. It is only responsible
for routing these messages, using the same content and content-type of the
message, between the participating users. This collaboration protocol can
accommodate any synchronous collaboration tool such as a chat tool, a web presentation
tool, a whiteboard tool, a file transfer tool, audio and video tools, voting
tool, etc. Many types of collaborative environments can be completely
constructed using only some of these tools; for example, a distance learning
environment, a chat environment, an auction room, and so on.
The
proposed framework consists of two major elements: the central server and the
client application. The central server is responsible for: (1) storing all the
information about the collaborative environment in a database, (2) routing
event messages between the clients, and (3) logging all the activities. The
framework can be fairly easily extended to the case of multiple distributed
servers. The client application can be further divided into two elements: the
core element and the local collaboration tools. The core element is responsible
for managing the two way communication between the collaboration tools and the
central server. The core element itself consists of the Sender, which is responsible
for sending the messages in the form of HTTP requests to the central server,
and the Receiver, which is responsible for listening to all incoming messages
from the central server via the HTTP stream, and for processing them
appropriately based on their type. The local tools are responsible for: (1)
parsing messages delivered by the core element to extract the update
information and performing the appropriate action accordingly, (2)
encapsulating any update in the tool, performed by the user, in an event
message, and then delivering the message to the core element, in order to be
sent to the central server. Figure 1 illustrates the elements of the framework.
The dashed line represents the communication between the client and the server
using individual HTTP requests. The solid line represents an HTTP stream, used
by the server to communicate with the client.
Figure1: HTTP-ICE Framework Elements
We
have built an implementation of our proposed framework entirely in the Java
programming language. In particular, the client and the server sides were
developed using Java 2 Software Development Kit JDK1.3.1. Java Web Server JSDK
2.1 offered by Sun Microsystems as a stand-alone servlet engine was used for
running the server prototype. Our prototype supports the following tools: a
chat tool, a web browser, an audio and video tools, and a file transfer tool.
Each client implementation also displays a list of the current participating
users. Figure 2 demonstrates the use of our prototype in a typical distance
learning environment.
Figure 2: Distance Learning Session
We
presented an HTTP-based framework for collaboration applications and discussed
its advantages over existing frameworks. We discussed the communication model
and the collaboration protocol of the proposed framework. We also presented the
framework architecture. Finally, we gave an overview of the prototype
implementation and demonstrated it using a distance learning application.
* This work was done while Eiman was at
the Department of Computer Science at the University of Maryland, College Park.
This work was partly done while William Cheng and Leana Golubchik were with the
Department of Computer Science and UMIACS at the University of Maryland,
College Park.