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].