A prototype of IDEAL is implemented using Java so that the system can run on heterogeneous platforms. It consists of interface agents, personal agents, teaching agents, and course agents. The software agents communicate with each other in XML messages through a variety of communication channels, including peer-to-peer, multicasting, and broadcasting. Real-time communication among users has been implemented in the forms of chat room, white board, and streaming audio and video. The hardware environment consists of high-performance workstations and storage devices connected via high-bandwidth, low-latency networks. The agents run concurrently on the servers and workstations in the distributed environment with operating system level support for software agents. The courseware and student profile database are stored in RAIDs and accessed through the storage area network (SAN) consisting of RAIDs and servers connected via a Fibre Channel switch. The multimedia courseware is in the form of XML documents and organized as a flexible, extensible, and scalable digital library. The Web-based interface acts as a bridge between the student and IDEAL. This interface interacts with the HTTP Web server for adaptive delivery of electronic courses over the WWW, assignment submissions, and student learning assessment. The Web-based interface with a rigorous authentication process is implemented using new technologies, including Java Servlets and JSP (JavaServer Pages).
We have experimented with several distributed object-oriented environments in developing multi-agent systems [24,25,26], including Java Remote Method Invocation (RMI), JATLite , and JavaSpace . Among these Java technologies, Java RMI provides an intermediate network layer that allows Java objects residing at distributed sites to communicate using normal method calls. It is reliable, has good performance, and works on many computing platforms. JATLite allows users to quickly create software agents that communicate robustly over the Internet and supports mobile agents. It provides a variety of agent functionalities including registering with an Agent Message Router (AMR) using a name and password, connecting/disconnecting from the Internet, sending/receiving message asynchronously, and transferring files with FTP. A problem with the current implementation is that the software is not very stable and sometimes hangs completely. JavaSpace supports robust distributed communication and data interchange and provides a simple, expressive, and powerful tool that eases the traditional burden of building distributed applications. JavaSpace is very new, has not been fully developed, and is slow.
A prototype of the Web-based lecturelet management and delivery system together with a sample set of lecturelets on Web and agent technologies is also developed in the CECS department at MU. The implementation consists of the server side and the client side connected through the Internet. The server side consists of the intelligent agents, the student profiles, and the lecturelets that can be sent dynamically to the client and can be dynamically updated. The server agent is responsible for delivering these lecturelets to the client and handling all kinds of requests from the client. The lecturelet agent is responsible for teaching the lecturelets. Prototypes of the agents are implemented on top of distributed object-oriented software environments including Java RMI, JavaSpace, and JATLite.
The client side consists of a browser that has support for XML and Java applets. Applets are used for dynamic processing on the client side thus reducing the load on the server as well as on the network. The contents in XML are presented either using XSL (eXtended Stylesheet Language) or Java applets depending on the level of processing that needs to be done on the client side. As a simple example of client-side processing, we take a look at the quiz applet. The quiz applet allows the user to take the quiz at the client side. The "quiz.xml" file looks like:
<quiz> <query> <subject>Which of the following is a programming language? </subject> <choices> <item>English</item> <item>Emacs</item> <item choice="correct">Java</item> </choices> </query> <query> <subject>Who invented the Internet?</subject> <choices> <item>Al Gore</item> <item>George Bush</item> <item choice="correct">Hard to identify </item> </choices> </query> </quiz>The document consists of the content structured by a set of tags. The questions and the answer choices are the content, and the tags associated with this content are used to present this document. The attribute ``correct'' plays a vital role in dynamically validating the student's choices against the correct choice. The XML document is parsed to obtain an object model for presentation in an applet. The nodes in the object model are extracted using a number of methods of the DOM API. Once the student finishes the quiz, the student's choices are dynamically validated against the correct solution on the client side.
The presentation of the lecturelets is quite simple. The XML file and its corresponding XSL file are placed on the Web server. According to the student's request, the Web server responds appropriately. The response is generally a method invocation on the servlet object. This method of handling requests is far more efficient than CGI.
There are a number of aspects that are essential to build a reliable learning system. They include security on the client side to prevent the student from printing off the test/quiz and others, effective lecturelet search techniques, effective student modeling to model student performance, and a dynamic question set for each quiz/exam every time it is retaken by the student. In addition, we need to do more research to further increase the intelligence of the learning system.