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