Jigsaw: A Revolutionary Web Server for Linux

Mr. Haddad exposes the design philosophy and essential features of the Jigsaw web Server, an open-source project from W3C, and provides a brief guide for installing it on Linux.
1. Unpack the Distribution File

The distribution comes in the form of jigsaw-x.x.x.tar.gz. You need to choose a place to unpack it. I installed it under /usr/local/Jigsaw. However, you can install it in a directory of your choice. Since the selection of the installation directory will not be the same for all of us, we will call this directory INSTDIR. You have to change INSTDIR with the absolute path where you have unpacked the distribution.

To unpack the distribution, at the shell prompt you apply:

% tar -xzvf jigsaw-x.x.x.tar.gz

This will create a number of directories under the Jigsaw main directory:

Jigsaw/src jigsaw sourcesJigsaw/scripts sample scripts to start the Jigsaw server and the JigAdmin serverJigsaw/classes pre-compiled classesJigsaw/lib native code support for SolarisJigsaw/Jigsaw the root directory to run the server in

The Jigsaw/Jigsaw directory contains:

  • The configuration directory for the server

  • The configuration directory for the administration server

  • The directory for log files

  • The directory for caching when using Jigsaw as a caching proxy

  • The exported file space

2. Set up the Environment

Next, we specify to the Java interpreter the place where Jigsaw classes are stored. We do this by setting the CLASSPATH environment variable. For Jigsaw 2.1.0 and up, we set it as follows:

% CLASSPATH=INSTDIR/Jigsaw/classes/jigsaw.jar:INSTDIR/Jigsaw/classes/sax.jar:INSTDIR/Jigsaw/classes/xp.jar:.% export CLASSPATH
3. Build the Property Files

The last step is to build the property files. We do that by switching into the Jigsaw subdirectory:

% cd INSTDIR/Jigsaw/Jigsaw

and execute:

% java Install

Running Jigsaw

After completing the installation procedure, we are set to run Jigsaw. We switch into the installation directory and type in the following command:

% java org.w3c.jigsaw.Main -host host -root INSTDIR/Jigsaw/Jigsaw

where host is the full IP hostname of the machine, and INSTDIR is the absolute path of the location where we have unpacked the distribution file.

Alternatively, we could run the provided script that would start the Jigsaw sever for us:

% ./script/jigsaw.sh &

Jigsaw will run and produce a debug message such as the following:

[root@byblos ]# ./scripts/jigsaw.shloading properties from: /usr/local/Jigsaw/Jigsaw/config/server.props
*** salvaging resource manager state...
*** resource store state salvaged, using: 1
*** Warning : JigAdmin[2.1.1]: no logger specified, not logging.
JigAdmin[2.1.1]: serving at http://byblos.lmc.ericsson.se:8009/*** salvaging resource manager state...*** resource store state salvaged, using: 31
Jigsaw[2.1.1]: serving at http://byblos.lmc.ericsson.se:8001/

Testing the Installation

To verify that the Jigsaw server is up and running, start your favorite web browser and point it to your workstation address at port 8001, which is the default port for the Jigsaw server. Et voilà! We get the Jigsaw server home page (see Figure 1), similar to the Apache installation home page.

Figure 1. Jigsaw Server Home Page

Similarly, to check if the JigAdmin server started properly, we follow the same procedure except that we specify port 8009, which is the default port for the JigAdmin Server.

Setting Jigsaw to Run at System Startup

Now the Jigsaw server is up and running. However, if you reboot the machine, Jigsaw will not automatically start. To set up Jigsaw to start at boot time, you need to follow three steps:

1. Create a file called, for instance, jigsawstart with the following contents:

#!/bin/sh# Jigsaw Launcher Script
#
# Note:
# The paths JIGSAW_HOME and LD_JIGSAW_LIBRARY_PATH need
# to be adjusted to reflect your own installation
# Define Jigsaw Path
JIGSAW_HOME=/usr/local/Jigsaw/
export JIGSAW_HOME

# Define Jigsaw libraries Path
LD_JIGSAW_LIBRARY_PATH=${JIGSAW_HOME}/lib
export LD_JIGSAW_LIBRARY_PATH

CLASSPATH=${JIGSAW_HOME}/classes/jigsaw.jar:${JIGSAW_HOME}/classes/sax.j
ar:${JIGSAW_HOME}/classes/xp.jar:${JIGSAW_HOME}/classes/servlet.jar
export CLASSPATH
/usr/local/jdk1.2.2/bin/java -Xms16m -Xmx128m org.w3c.jigsaw.Main
-root
${JIGSAW_HOME}/Jigsaw $*

2. Save the file in /bin or /usr/bin and allow execution permission on it by typing % chmod +x jigsawstart

3. Edit /etc/rc.d/rc.local and add an entry to start up the jigsawstart script. All we need to do is add the following lines at the end of rc.local:

echo "Running Jigsaw ..."/usr/bin/jigsawstart &

This procedure guarantees Jigsaw start up at boot time.

______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState