databases: storing pages in / web front ends to

   From: "Steve A. Olson" <solson@cst.com>
   Date: Thu, 18 Jan 1996 13:33:49 -0500 (EST)

   The db approach also gives you the ability to "author" 
   the pages using any client-server database package (even remotely)
   to update the content without messing around with any files at all.  

I currently know of two products that let you do remote authoring.
One is Navisoft's Naviserver, which is a particular HTTP server that
is built using a database system.  The other is Vermeer's FrontPage,
which works with several existing popular HTTP servers (including
those from Netscape), and doesn't use a database system.  With
Vermeer, when you say "write this page", I presume it just overwrites
the file with the new contents.

(There isn't any way to say "write this page" in HTTP.  Or, more
precisely, there is a perfectly good way to say it (the PUT command),
but virtually no HTTP servers implement it.  So Vermeer does a POST
command to a special CGI program, which actually does the writing of
the page.  The CGI program has to know how to do URL mapping just like
the server, which is a pain in the neck, but that's Vermeer's problem;
the user doesn't have to worry about it.)

(Navisoft is owned by America Online, and Vermeer is about to be owned
by Microsoft.)

So, anyway, you don't actually need to use a DBMS to do remote
authoring, it would appear.

What if two people write "at once"?  With Navisoft's DBMS, presumably
it serializes the accesses, and so one of the writes happens and the
the other one overwrites it.  With Vermeer, they might have to worry
about what happens if two concurrent threads/processes within the HTTP
server both write the same thing at once.  The way this works depends
on the underlying operating system.  I don't know whether the Vermeer
software takes the trouble to worry about this case.  If it does,
though, it's probably not to hard to do some appropriate set of system
calls to serialize two file writes.  Most operating systems have some
way of doing this (e.g. a "lock" feature in the file system, or atomic
renames, or something).

If anyone knows of any other examples of remote authoring, I'd be
interested to know about them.

-- Dan