A Distance Learning Digital Logic Course using CORBA
Faculty: Dr. Letha Etzkorn and Dr. Rhonda Gaede
Students: Xiao Fang (May) Chen, Donna Fork, Rosi Kansakar, Wendy Sweatt
Computer Science Department, Electrical and Computer Engineering Department
The University of Alabama in Huntsville


1.0 Project Description

Distance learning can be defined as any formal approach to learning in which majority of the instruction occurs while educator and learner are at a distance from one another. Here at the University of Alabama in Huntsville, the addition of distance learning courses has long been an imperative. However, in the Computer Science department and the Computer Engineering program in the Electrical and Computer Engineering Department, only a very few courses have been offered as distance learning courses (three so far in Computer science, and 3 sections of two courses in Computer Engineering). Thus, the development of a course, particularly a required course, as a distance learning course is desirable in both departments.

Both the computer engineering and computer science programs offer courses in digital logic. The primary goal of our proposed CREW project, which involves students and faculty from both the computer science and computer engineering departments, was to develop an EE 202/CS309 digital logic course as a distance learning course.

2.0 Methods Employed/Tools Used

This distance learning course will be taught over the Internet, and will also serve as additional course material for traditional courses. Thus, it is desirable for the client application, located at a distance, to support several different platforms. Thus, it was clear that the software supporting this course would be a heterogeneous, distributed application. The interface technique (middleware) that seemed to meet all of our needs was the Common Object Request Broker Architecture (CORBA).

CORBA is an interface specification for distributed objects, which connects hetereogeneous distributed systems, on different platforms and programming languages. ORBs can be purchased from different software companies. Most ORBS have mappings to multiple programming languages, including C/C++ and Java, and to multiple operating systems. CORBA also has the advantage, for students, in that there are many jobs currently available for computer professionals who have CORBA experience.

Thus, we decided to implement the application providing the distance learning course in a combination of html and CORBA. The standard html web pages provided the course instruction. The CORBA provided a mechanism for a remote client (operated by a student) to answer quiz questions posed by the course (the quiz questions were handled by a CORBA server).

We originally intended to employ the omniORB CORBA ORB, in C++, as the CORBA server, with the ORBacus CORBA ORB, in Java, accessed via an applet embedded in html web pages, as the CORBA client. Unfortunately, at the time we began the CREW project, omniORB had not been upgraded to CORBA 2.2 while the production version of the ORBacus ORB was using CORBA 2.3. We decided that using CORBA 2.2 and above was a better choice for us. Thus, instead of omniORB, we used the TAO ORB, in C++, as our CORBA server.

Our original plan was to have the C++ CORBA server run under Solaris, and have two separate Java CORBA clients running as applets in html browsers, one on a Windows NT machine and another on a Linux machine. For various reasons (which will be described below) we were not totally successful in our cross-platform CORBA work. The final version of our software has both the CORBA C++ server, and the CORBA Java client running on Windows NT. We were successful earlier in implementing both CORBA C++ servers and CORBA Java clients on Linux; however, our final code

3.0 Account of the Process Used in Completing the Research, Student and Mentor Involvement

Dr. Letha Etzkorn spent fall term, 2000, teaching the CREW ladies about CORBA, and helping them install the TAO ORB on both Windows NT and Linux, and the ORBacus ORB on Windows NT. Then starting in late November, 2000, the CREW students began developing a digital logic course web page. One of their primary tasks was to develop quizzes, for each section of the course. (These quizzes were later implemented via CORBA). Beginning in January, 2001, Dr. Rhonda Gaede taught the two Computer Engineering students, Xiao Fang (May) Chen and Wendy Sweatt, a standard hardware description language that they later used in the digital logic web page development. During this time, Donna Fork assisted Dr. Etzkorn in troubleshooting various installation difficulties with the ORBacus ORB.

In March, 2001, all the CREW ladies began focusing on the final version of the CORBA quiz software. First, we finished final development of an ORBacus JAVA client to TAO C++ server quiz interface on Windows NT. Then we attempted to transfer both the ORBacus client and TAO server to Linux. (We already had simple CORBA echo servers and clients running under Linux, and connecting from Linux to Windows NT using each ORB separately). Our plan was to get the TAO server working on Linux, and connect to it first with an ORBacus client on Linux, then later via an internet browser from a Windows NT machine. We were successful in getting the final version of our ORBacus Java client and ORBacus Java server running on Linux. We were also successful in getting the final version of our TAO C++ server and TAO C++ client running on Linux. However, when we went to connect from ORBacus to TAO on Linux, we found that each ORB's CORBA Naming services on Linux did not seem to work with the other ORB. We were very surprised at this, since we had previously been successful in connecting from one ORB to the other ORB on Windows NT, using either ORB's CORBA Naming service interchangeably. After several days of working with this, we determined that this incompatibility is probably a fault, or incompatibility, in the Linux version of one or the other of the CORBA ORBs that we used. Since the Linux version of the CORBA ORBs is basically the same as the Solaris version of the CORBA ORBs, we decided not to pursue the Solaris route at this time.

Instead, one of the CREW ladies (Rosi Kansakar), installed Windows NT web server software on a PC, and Dr. Etzkorn installed the ORBacus and TAO ORBs on the same PC. (NOTE: these installations take several hours each...they are not trivial). Then we moved our working CORBA quiz code, both the ORBacus client applet and the TAO ORB server to this PC. Finally, we moved the digital logic web pages to this PC.

This PC is currently running, as a web server. Interested parties can see our web page by accessing this URL, using Microsoft Internet Explorer: http://146.229.2.188/webpub/index.html The required login name is crew, the password is g04crew. (the second letter of the password is a zero, not the letter O). The domain name can be left blank.

Note: due to the fact that Netscape's built in CORBA ORB is incompatible with the CORBA ORBs we used, the above URL cannot be accessed via Netscape. If Microsoft Internet Explorer is used, the applet will take a few minutes to load due to the necessity to completely download the CORBA ORB. We have not tried any other internet browsers than Microsoft Internet Explorer or Netscape: our belief is that they would work if they do not include a built-in CORBA ORB.

We were delayed in our report for a couple of weeks by an illness of Dr. Etzkorn (resulting in minor surgery). The first quiz (quiz1) on the web page should work correctly as of afternoon on Thu., May 31, 2001. All the other quizzes should currently work, but the correct answers are not yet available! We hope to have correct answers for all the quizzes by sometime Friday, June 1, 2001.

We are including the final code we wrote for this project as appendices to this document. Appendix A contains the TAO C++ Server, while appendix B contains the ORBacus Java Client. We also developed a TAO C++ client and an ORBacus Java server, which are not shown. Appendix C contains our quiz #1 html file, containing an example of the call to the ORBacus applet.

4.0 Conclusions and Results Achieved

We were successful in our primary technical objectives: developing a digital logic course with CORBA-based quizzes. Some of our secondary technical objectives (connecting two different CORBA ORBs on Linux) were not successful due to what we believe to be faults in the ORBs. The Computer Science department of the University of Alabama in Huntsville plans to use the digital logic course we developed as an addendum to CS309.

We believe we were also successful in our non-technical objectivesèproviding a small support group for some women students in our university, giving those women students some marketable skills, and having women professors serve as one-on-one mentors for some women students.

In our opinion our CREW project was a definite success! We appreciate the opportunity that the Computing Research Association gave us. Thank you!

( Note: Donna Fork's stipend was paid by matching funds from the Computer Science Department at the University of Alabama in Huntsville.