There are, broadly speaking, two types of methods for storing material on websites. One is to store files in traditional file system, where the paths in the URL’s represent the physical location of the file on the web server. The other method is to use a Content Management System (CMS) where content, rather than actual files, is stored in a database. This allows the content to be reused across the website in different contents dependent on various attributes that the content may possess.
The use of a CMS can confer a high degree of flexibility over how web content is returned to the end user. Documents and other forms of content can be categorised and ordered, often in multiple ways across the web site and the presentation centrally controlled. For instance, this article could appear in separate lists, one about CMS and another about File Systems.
The major categorisation mechanisms of traditional file systems are the directory and the file extension. Listings and orderings must generally be manually generated. The advantage of using a traditional file system method is that so many tools used in everyday computing are able to interact with the file system. Often, the only way to add or edit a document in a CMS is to edit it through a web form or custom built client. With a file system a user can use FTP to upload or download a document, copy it across through a file manager or simple save it to a specific directory. They can download files, then use a tool such as Macromedia Dreamweaver to edit documents offline and easily upload the changes, including any associated graphics or scripts, back to the server.
There are various methods that could be used to combine the advantages of a traditional file system with those of a CMS. Custom client applications are not the ideal solution for many situations as they lock the user out of software they might be more comfortable using. Many CMS products allow the user to upload a file or group of files. This can be a time consuming process and is not well integrated with existing client software. The CMS may also include a module that appears as an FTP or WebDAV server to a client program. The CMS Zope uses this solution and many clients support FTP and WebDAV. The server can then process the file as it is uploaded.
An alternative to the above methods which may offer even greater flexibility is combining a database with the file system. Microsoft’s WinFS and Gnome Storage are two implementations, but are still under development. Oracle has its Internet File System (iFS) which has existed since 8.1.7 of their database system. The iFS is accessible through the SMB, FTP, HTTP and various mail protocols and content can be automatically indexed. The iFS appears tightly integrated with other Oracle products and uses Java on top of the Oracle database, so it’s not a lightweight solution.
At this stage it would appear as if an integrated database file system solution for web sites is either in the realm of future development or an expensive and complicated Oracle installation. If the latter is not an option for a website, then the best solution for the moment may be to implement an FTP or HTTP interface to a Content Management System. It may also be possible to use the extended attributes of certain file systems (ReiserFS, BFS, etc) to provide greater control over file ordering and categorisation. The web stands to benefit from going beyond the standard file system.