Submission Type: Short
Paper for ED-TELECOM-97
Submission Title: A
WWW Client/Server Framework for Educational Software
Software Topic Areas:
Connectivity
and Implementation Strategies
Design
of Distance Learning Systems
Distributed
Learning Environments
Presenter: R.
Morelli
Department
of Computer Science
Trinity
College, Hartford, CT 06106
ralph.morelli@mail.trincoll.edu
860-297-2220
Contact: R.
Morelli
A WWW Client/Server Framework for
Educational Software
1. Introduction
As the World Wide Web gains in popularity and influence more
and more educators are looking to it as a important medium for the delivery of
educational software. There are
already a considerable number of educational applications and demonstrations
available on the Web with more appearing every day. The development of the Java Programming Language [Gosling,
Joy and Steele, 1996], with it promise of executable content, opens up the
possibility of new and innovative architectures for educational software.
Moreover, the Web's potential for genuine platform independence provides a huge
incentive for educational software developers to explore Web based connectivity
and implementation strategies to support distance learning systems and
distributed learning environments.
This paper describes a simple and secure client/server
framework suitable for supporting intelligent tutoring systems (ITSs) and other
types of interactive help or expert systems. The framework proposed here is
particularly well suited for porting existing applications to the WWW, since it
divides the application into a Java-based client front end and a non-Java
server that could, in principle, run on any platform that supports sockets and
HTTP service. For example, an ITS or an expert help system, running on an HTTP
server, can interact with one or more distributed clients. The server can be
written in any language and runs as a process on the server host computer. The client is a Java applet which is
executable on the WWW using any Java compatible browser. The clients can utilize JavaÕs excellent
GUI libraries to provide an interactive multimedia learning environment. A prototype system, PROOFER, which is implemented on a Unix
host, illustrates the frameworkÕs potential for supporting educational
software. PROOFER is accessible on the Web at
http://troy.trincoll.edu/~soar/proofer.
The proposed paper and conference presentation will provide
a description of PROOFER and discuss some of its potential strengths and
limitations of its client/server framework for supporting educational
applications on the WWW.
2.0 The PROOFER Service.
The PROOFER service constructs deductive logic proofs. In
its present form, it is limited to propositional arguments -- i.e., arguments
without quantifiers -- and to a restricted class of argument forms -- viz.,
those involving implication and conjunction. PROOFER uses a natural deduction
proof technique of the sort used in many introductory logic texts [Copi, 1973].
An example of the type of problem it can solve is the following:
Given
the argument: A -> (B & C)
A
C
-> D /
=> D
Logic-server
supplies the following proof:
1.
A -> (B & C)
2.
A
3.
C -> D
4.
B & C
// Follows from 1,2 by modus
ponens 5.
C //
Follows from 4 by simplification
6.
D //
Follows from 3,5 by modus ponens
The proof involves deriving lines 4-6 by applying a valid
inference rule (modus ponens or simplification) at each step. The text to the
right of each line provides the justification for that step.
PROOFER-CLIENT is the client process that interfaces with
PROOFER-SERVER. It is implemented as a Java applet and can be included in any
HTML document. In its present form, it provides a very simple interface. An
input-area accepts an argument from the user. A send button causes the input to
be parsed into a canonical form and transmitted to PROOFER-SERVER. A text area
displays the proof returned by
PROOFER-SERVER. The client is event driven and multi-threaded, so that the user
can be typing input while the client is receiving a response from the server.
PROOFER-SERVER is a Soar[1] program that uses pattern matching
techniques to identify those inference rules that apply to each step of the
argument. It collects each proof step together with its justification and sends
the entire proof back to PROOFER-CLIENT, where it is parsed and displayed.
Since our emphasis has been on creating a dependable
client/server framework for this system, PROOFERÕs expertise and interface are
very limited at this point. However, its knowledge base and functionality can
be extended incrementally without having to worry about distributing new
versions of the software. This is one of the main benefits of the Web-based
client/server framework.
3.0 The Client/Server Model
The client/server model is well understood and programming
constructs that support it are available in a number of high level languages,
including C, C++ and Java. In a distributed environment, the client and server
processes run on different processors that may be located anywhere on the
Internet. The socket utility supports dependable two-communication between the
interacting processes. Examples of
well established client/server applications include the Unix sendmail program
for sending and receiving electronic mail, the ftp program for handling file
transfers, the telnet application for supporting terminal sessions, and the
popular chat applications that support interactive chat on the Internet.
Communication between client and server in PROOFER takes
place over a socket, which is simply a communication endpoint [Peterson and
Davie, 1996]. In order to protect the clientÕs computer against malicious
actions, applets downloaded over the network are subject to stringent security
restrictions. In particular, the applet can only create a socket connection to
the computer from which it was itself loaded [Flanagan, 1996]. Therefore, in
order for PROOFER-CLIENT to connect by socket to PROOFER-SERVER, both must
reside on the same host computer.
PROOFER-SERVER runs on a Unix platform and requests for its
service are handled by the Unix inetd
daemon, a superserver process that listens for service requests and
distributes them to the appropriate servers (e.g., ftp, telnet, sendmail). Since inetd can handle multiple
requests for the same service, several students can use PROOFER at the same
time. The maximum number of clients that can be served simultaneously can be
specified as a parameter.
As noted above both PROOFER-SERVER and PROOFER-CLIENT must
reside on the same Web server. A Web server is a host computer that runs the
HTTPd, the HTTP daemon. All the software and instructions needed for setting up
a web server are available on NCSA's HTTPd home page, whose URL is
http://hoohoo.ncsa.uiuc.edu. It
takes about an hour to download and install the HTTPd software and versions are
available for a wide variety of hardware platforms.
4. Points to be Discussed at the Conference
¥ The client/server model provides a secure and dependable
communication framework for Internet based educational programs. It is
particularly well suitable for applications that require substantial processing
power. It also provides a feasible alternative for porting existing
applications onto the Web. Rather than rewriting the entire application in Java
and downloading it in its entirety, one can implement its interface in Java and
leave other portions of it on the server.
This is particularly useful for ITS and other AI applications which frequently
have a clear separation between interface
and expertise. For example, a WWW-based expert system could port its
interface to the client side of the model and leave its knowledge base and
inference engine on the server. This allows the application developer to have
the best of both worlds: a powerful system for developing the interface (Java)
and a specialized environment to support its knowledge-based component.
¥ Using Java and HTML as an environment for the interface
provides a number of distinct advantages. First, Java is platform independent
-- one version of the software is available to anyone who has a Java compatible
browser. Second, Java is a powerful multimedia language, ideal for creating
attractive interactive environments. Third, applications written in Java can be
distributed through the Web and updates to the application can be made
immediately available to all its users at minimal cost. This is an especially
useful feature when developing incremental systems. Finally, the browsers that support Java provide
excellent security features. This will help reduce concerns that distributing
oneÕs educational application in this way will cause problems on the host
computer.
¥ PROOFERÕs Web page
(http://troy.trincoll.edu/~soar/proofer) provides source code and documentation
for implementing a similar client/server framework. Implementation details,
including some of the tradeoffs to expect, will be addressed at the conference.
5.0 References.
Copi, I. (1973). Symbolic Logic, Fourth Edition.
MacMillan Publishing Company.
Flanagan, D. (1996). Java in a Nutshell.
OÕReilly and Associates, Inc.
Gosling, J., Joy, B. and Steele, G. (1996). The Java
Language Specification. Addison-Wesley.
Newell, A. (1990). Unified
Theories of Cognition. Cambridge, MA: Harvard University
Press.
Peterson, L.L. and
Davie, B.S. (1996). Computer Networks: A Systems Approach.
Morgan Kaufman.
Rosenbloom, P.,
Laird, J. and Newell, A. (Eds.) (1993). The Soar Papers: Research on
integrated intelligence. MIT Press, Cambridge, MA.
[1] Soar is a cognitive architecture that integrates problem-solving and machine learning[Newell, 1990]. It has been used to build a number of AI cognitive models and AI applications [Rosenbloom, Laird and Newell, 1993].