Forum OpenACS Q&A: Response to Windows, AOLServer, and OACS

Posted by Michael Feldstein on

This is enormously helpful. I realize that doing a Windows port would require some serious sponsorship of some sort. What I want to know is, assuming a sponsorship for the port, what would be the most efficient way to do it?

Let me try to sum up the options discussed so far.

First, the web server layer:

  1. Use native AOLServer 3.x on Windows. Pros: It works now (sort of). Cons: You're stuck with legacy, because AOLServer 4 has no Windows support. (Nobody has yet said whether OACS will require AOLServer 4 in the near to medium-term future or what functionality one gives up by sticking with 3.x.)
  2. Use AOLServer 4 on cygwin. Pros: The cygwin team does much of the hard work. Cons: Some stuff required for AOLServer has not been implemented on Cygwin, and getting the Oracle driver to work could be a really nasty job.
  3. Fork the AOLServer code to develop a Windows-compatible version. Nobody has seriously mentioned this option, so I'm guessing it's a huge amount of work, both initially and ongoing.
  4. Develop mod_AOLServer for Apache 2. Pros: You get all the cool stuff that comes with Apache. Cons: The initial port could be a lot of work (despite the existence of mod_AOLServer for Apache 1.3) and nobody really knows what the ultimate performance might look like.

Even assuming one of the above options is feasible, it sounds like there's the problem of the database. If I understand correctly, PostgreSQL only runs on Windows when compiled to cygwin, and there's some question as to how well it would work with a non-cygwin-based web server.

Porting to SQL Server might be an option. It would be a lot of work, and we don't fully know yet what would be hard. However, based on the work and knowledge of a few community members, it seems that SQL might support the necessary functions and that the maintenance effort could potentially be reduced to a manageable level through a certain amount of automated query translation.

Is this summary accurate? And if so, what would be the next logical steps for figuring out the best option?