About a week ago, I encountered some serious problems with the Miloc Server I built in Java. The biggest issue was the fact that Java is just too slow. The secondary issue was that I would have to build a bunch of non-standard methods of saving the setup of the server and classrooms and such. Because I'm building on the NT platform, and really have no interest on building the server to work on other platforms, it seems silly not to use the NT Registry and other NT platform standard methods of saving setup data and such.
With this in mind, I downloaded the CYGWIN GCC development kit for Win32 platforms. This dev kit is free for all uses and allows one to take code directly from Unix GCC environment and compile it on Win32 platforms (Windows 95 and Windows NT). In addition, the CYGWIN implementation has the various hooks for accessing the Win32API which allows for saving Registry entries and such.
Also, I added a piece to my Miloc Server duties. In addition to providing the underlying system framework for the classroom applications, it will also act as an HTTP server to deliver classroom material. It's the linking of the applications with the material that is a key issue in the development of an online classroom.
With this in mind, I built a web-server over the weekend in the GCC environment in C using Berkeley-style socket coding.
I also bought a Win32 API reference book.
I also joined the CYGWIN developers mailing list. After reading through a couple of days worth of developers difficulties with various aspects of the CYGWIN development tools, I decided to investigate (quickly) moving to Visual C++--while still coding in C and using the Win32 API function set.
At this point I believe that I will be building a Miloc Server that:
Moving to the C language will make much of this go by much faster as I won't have to deal with the issues of learning a language while I'm attempting to finish my project.
- is an NT service with the ability to install itself as a service, remove itself as a service, and run as a service
- take in its setup information from a Windows INI file--which allows administrators to maintain the setup parameters of the server without me having to build a GUI front-end to the Registry
- act as both a Miloc Application server and a limited web-server via HTTP
- be multi-threaded so as to handle multiple states simultaneously
- keep track of classroom information (both applications and materials) in a well-defined manner