Programming Languages

G22.2110 Spring 1998


Project - Part II

Due Date: 04/06/98



Project definition


The first part of the project focused on implementing of a simple course-registration client/server application using the ANSI C programming language binding supported by ILU. This first effort illustrated the use of a conventional imperative programming language while allowing a deeper understanding of language design features by exposing some of the intricacies associated with the mapping of such features to CORBA-compliant distributed computing platforms.


The second part of the project leverages off of the server module implemented during the first part of the project and focuses on the implementation of client modules using the C++ and Java hybrid object-oriented imperative programming languages.


The assignment for the second part of the project is detailed as follows:


  1. Assuming the same ILU environment as the one you used for the first part of the project, and using your (possibly modified) IDL representation of the course registration object model, generate C++ and Java client stubs using the c-stubber utility supplied by ILU (see $ILUHOME/examples/test1/README) which illustrates the construction of a simple client/server application using ILU). Please create your own copies of the example(s) you use, as you will not be able to operate directly on the installation directory which is write protected.

  3. Create C++ and Java main programs for two different applications, which will implement the C++ and Java clients, described in the following. These main programs should be equivalent to the one provided in ANSI C for the first part of the project (i.e., client.c).

  5. Using inheritance, design a C++ class that supports a new kind of student-faculty hybrid object corresponding to a student that can also be a "short-term" faculty member (such as a TA), and therefore can both teach and register for classes. Student-faculty positions being assigned on a semester basis, you should provide a "semester" field in your corresponding C++ class. Note that you are not asked to modify the IDL specification to add the suggested class.

  7. Alter your C++ application's main program to allow the creation, update and deletion of student-faculty objects bearing in mind any sensible constraints you may think of. Create a list or set iterator to help manipulate student-faculty instances, and add the capability for users to request a list of TAs.

  9. Provide an alternative Java implementation for 3. and 4. above. Comment on the ease of implementation using either binding.