DCWS Apache module V1.0
Introduction
DCWS stands for Distributed Cooperative Web Server. It is a scalable web server solution to meet the explosion of data traffic on World Wide Web. DCWS Apache module is implemented using the API and the module interface provided by Apache. Using DCWS Apache module, it is very simple to set up several Apache servers to work together and build a scalable distributed web server system.
In the version 1.0, it uses pool of process model and it is extensively tested for Apache Web Server 1.3.6 on Linux platform. In the future, a version using pool of threads model will be available with Apache 2.0.
Installation and compilation
The DCWS Apache module can be downloaded
here.Steps to install and compile:
./configure --activate-module=src/modules/dcws/libdcws.a \
--enable-module=dcws
DCWS module configuration
The DCWS module gets its configuration information from the Apache's configuration file. The DCWS module introduced three new directives: ExportPath, ImportPath, Backend and DiskQuota.
ExportPath is used to tell the DCWS module which directory will be exported among the co-op servers. The files in this directory will be replicated or migrated. The DCWS module will build the local document graph from all documents in this directory and its sub-directories.
ImportPath tells the server where to store the replicated documents. The co-op server need to store in this directory the replicated documents it gets from the home server.
Backend indicates the co-op server's address. This information is used for home server to contact co-op servers and to replicate document to them.
In order to limit the usage of co-op server's disk space, there is a directive "DiskQuota" whose value is the disk space limit in bytes that can be used to hold the imported files. The default value is 10M Bytes.
SetHandler is also needed to specify that the requests for the documents under the "ExportPath" directory should be processed by DCWS module. This directive is a standard Apache run-time directive. The name of DCWS module's handler is "DCWS-handler".
Example
A typical part of configuration file for DCWS module is shown as follows:
ServerName 150.135.68.218
DocumentRoot "/home/www/DCWS"
<IfModule mod_dcws.c>
SetHandler DCWS-handler
# The directory to store the replicated files
# If this parameter is not set, a default path will be used
ImportPath "/home/www/~migrate"
# The directory to be parsed and will be replicated
ExportPath "/home/www/DCWS/lod"
# Backend servers
Backend 150.135.68.219:8080
Backend 150.135.68.220:8080
</IfModule>
There are two backend servers working with the home server. For a co-op server that has no file to export, the configuration file looks like:
<IfModule mod_dcws.c>
SetHandler dcws-handler
ImportPath /scratch1/lqz/~migrate
# disk quota for imported file
DiskQuota 1200000
</IfModule>
Please do not hesitate to send any comment, remark to
lqz@cs.arizona.edu