Below is a list of projects that might be suitable for Masters projects or thesis. This is a rough preliminary list. Many of the projects are poorly defined, but they give an indication of an area that might be ripe for study. All of these projects were proposed by employees of IBM.

  1. Create a scheduling program that gets data from the University's Student Information System (SIS+) using HOD and/or Host Publisher. SIS+ is a traditional legacy system with a VT100 interface. The scheduling program envisioned would assist a student in determining their course schedule based on information extracted from the online SIS.
  2. Write a program to display and check the CLASSPATH. When writing and running Java applications and applets, these systems have to be able to find the necessary classes. The current system of manually typing filenames and directories into the CLASSPATH string is exceedingly error prone. There is no error checking at all. I propose a program that would index all JAR, CAB and ZIP files on your system. It would allow you to select which ones were to be included in your CLASSPATH. The program would alert you to conflicts and duplications. If a user found that they needed a class not currently found, the program would allow them to quickly determine if the class was available on their system. If available, they could then direct the program to include this class in the CLASSPATH.
  3. Find a better way to distribute classes to client users. Dynamic binding, used by Java and by programs accessing DLL files under Windows, has many advantages. It also introduces many difficulties not experienced by earlier paradigms. With traditional system, an application and all of the referenced functions were bound into a self-contained object module. When the object module was executed, all necessary components are available. With dynamic binding, external references to classes or DLLs are resolved at execution time. The classes that were visible to the programmer when she compiled the application may not be present to the user when the program is executed. Updating the referenced classes can cause problems in previously functioning applications. This problem is legionary with Microsoft Windows. I propose an alternate system of resolving external references based on caching objects with a unique web address. Each object would be assigned a unique identifier. If an application referenced that object and it was not present on the system, it would automatically be downloaded. The objects would be cached locally to ensure good system performance in the future.
  4. Improve the performance of IBM Host Publisher. Applications that access a series of remote host screens can execute quite slowly. Much of the delay seems to come from waiting for the screen image to be sent from the host to the client. In many cases the client is not going to inspect this screen, but just submit another command when the screen is received. If you could send a series of commands to the remote host and avoid sending the intermediate screens, performance would probably be significantly improved.
  5. Create a search program to search and order books from the University Library System using HOD's Host Access Class Library, JavaBeans and ActiveX controls. The search program needs to be invoked from a modern end user software such as Lotus Notes, Lotus Smartsuite, Microsoft Office suite, or a Web browser. However, the user will have no idea that he or she is interacting with a legacy system. The University Library System can be replaced by any legacy applications running on a S/390 or AS/400 system. This project is to experiment an eBusiness "pull" scenario where solution providers can extend their Web or desktop based solutions to the enterprise level by pulling in legacy "transactions" under the cover without the costly implementation of a new backend infrastructure.
  6. Write a socket communication program to display a menu of choices for users to retrieve and update information from a server. The communication program needs to handle multiple user sockets connected to the server as well as normal and abnormal termination initiated by the server or individual users.
  7. Design an XML datastream to implement a data exchange model that reads in the XML datastream and displays it in several styles that a user can select. Use of XSL stylesheets for display is optional. The focus of the project is on the XML DTD language, the XML Parser and DOM interfaces.
  8. Design a mid-tier caching system that pulls information from several data sources to support the business logic of a small to median business, such as a franchise store, a dealership, or a discount broker. The caching system keeps essential information in a local database or file system for the business logic to drive its day to day activities and is synchronized with its data source on predefined intervals or transactions. The data sources could be a legacy system, a database server, existing web sites, or others. An example of the day to day activities could be generating an e-mail automatically to notify a shipment order.
  9. Compare Active Server Pages to Java Server Pages.
  10. Write a tool to convert Active Server Pages to Java Server Pages.
  11. Write a Java interface to SMTP email systems.
  12. Write a program to email grades to students.
  13. Compare PKIX and Kerberos
  14. Write a web advertising filter.
  15. XML and anything.