Forum OpenACS Q&A: Re: portable.nsd updated

Collapse
6: Re: portable.nsd updated (response to 1)
Posted by Don Baccus on
AOLserver 4.0 will support Win32 natively, that's been the big hole.

If people really want an Apache solution to replace the AOLserver-based approach as "the OpenACS way" surely use of libnsd rather than a Tcl re-implementation would be the way to go?

That way folks smart enough to use AOLserver natively would be assured of compatibility with those using an Apache-based solution, because both would be using the same code base.

And some of the kludges suggested above - "cache nssets in the database" (dotLRN uses nssets in every portlet, that idea simply won't scale) - aren't necessary, right?  Code would just run ...

Collapse
7: libnsd (response to 6)
Posted by John Sequeira on
I like the idea of using libnsd to replace the bits of nstcl that overlap with it.  I've downloaded Jamie's binary and played with it at Andy P's suggestion.  It looks cool and wouldn't take long to embed in pnsd.  It's on my roadmap.

I know that libnsd/Apache integration has been attempted (a month or two ago) and it was not successful.  Whether the (threading?) issues get resolved when the AOLServer reaches release status,  or breaks on subsequent releases,  remains to be seen.  If it works,  I would love it.

Regardless, since libnsd omit's lots of AOLServer pieces related to the web server,  there's a decent amount of glue code that needs to be written to make it work with an arbitrary web environment.  It's not complicated code... mostly just parameter marshalling,  but someone needs to write it.

Also,  regarding caching,  let's just say that's in research mode.  Scalability is something I've decided to address once basic web serving is functional, and not before.  I have plenty of ideas  (rdbms-caching, tequila, edge-side-includes),  some of which might only be appropriate for low-traffic Intranets,  but others just might scale.  libnsd on it's own will not solve the problem - it will need to be told when, how and what to garbage collect, for instance.  And of course you have the problems of cache synchronization with multiprocess web servers, etc.

Anyway,  I had hoped to achieve 100% runtime compatibility with OpenACS,  and avoid any but I've realized there's no way I'll do that on my own (even with a huge nstcl headstart).  libnsd will go a long way towards helping to achieve this.