Forum OpenACS Q&A: The case for <i>pseudo-nsd</i>

Posted by Michael A. Cleverly on
The more I think about what John Sequeira wants to try, the more the idea intrugies me. The more I find myself thinking that it could very well be workable, and that it could be beneficial, and not in anyway detract or take away from OpenACS or AOLserver.

Let's first segment the universe into a couple of buckets:

  1. People who've seen the light & run OpenACS (means they run AOLserver already)
  2. People who run the worlds best webserver (AOLserver) but don't currently use OpenACS
  3. People who aren't running OpenACS, aren't running AOLserver, but are willing to switch to AOLserver to run OpenACS
  4. People who aren't running OpenACS, aren't running AOLserver, and for whatever reason (real or imagined) aren't (yet) willing to leave foo brand webserver
  5. People who aren't running OpenACS, aren't running AOLserver, and would never want to
Let's assume for a moment that someone manages to implement every single one of the Tcl API's that AOLserver offers, that OpenACS uses, using some other Tcl-enabled webserver. For sake of discussion, let's call this pseudo-nsd.

What does pseudo-nsd offer to each of our five groups? For groups 1, 2, 3, and 5, absolutely nothing. Group 5 could care less about anything. Group 3 is ready to move to the canonical webserver for OpenACS. Group 2 and Group 1 are already running the best of the best.

It's only the 4th group of people who might even care. Let's imagine they're interested enough to try OpenACS, get some experience under their belt, test drive it, kick the tires, see if it fits their needs/lifestyle. Pseudo-nsd would (if it plugged into their current server, and for some it wouldn't) give them a way to try things out. Play around. Get some experience.

Would it be as fast as AOLserver, as efficient in its use of memory & CPU cycles, as rock solid? No, it almost certainly wouldn't. In comparison AOLserver would be the luxury hotel. Pseudo-nsd would be the cheap motel.

If group 4 used pseudo-nsd, fell in love with OpenACS, then they might very well be persuaded to upgrade to the Real Deal(tm). Or, they might find that their existing hardware supports whatever volume it is they are getting adequately. Maybe they don't end up liking things at all. Is that a loss? No. By definition these were people who were curious enough about OpenACS only to try it, but not invested even enough to test-drive it under AOLserver. That they didn't find OpenACS to be a good fit for them is no great loss.

Writing pseudo-nsd should be as simple as re-implementing every single one of the AOLserver Tcl API's used by OpenACS. The same commands, taking the same parameters, and returning the same results given the same inputs. Not a single line of OpenACS code should need be modified to accomodate pseudo-nsd.

Would the above be simple? Obviously, it would take some work. There might be some hidden insurmountable barrier preventing it from happening. But, I don't think so. I think it's possible...

Let's assume for a moment it is possible. Is it something the OpenACS core team should work on? Absolutely not. Does it preclude others from resurrecting mod_aolserver or from Petru hacking AOLsrever itself into the FastCGI framework? Absolutely not. Does it preclude work on nsjava? Nope. Does it preclude people from renewing work on OpenNSD so that those who see A-O-L and dismiss us out of hand maybe at least give us a second look? No, not at all.

This, to me, sounds like the proverbial open source itch. John's obviously interested in giving it a shot. I'm inclined to help him. Do I run Apache? No, the only three webservers I've ever run are AOLserver, mathopd, & TclHTTPD. Do I have a need that pseudo-nsd would solve? I don't. Do I think it sounds like an interesting challenge where even if it ultimately didn't pan out I'd at least learn some new things? Yes, I do.