Deployment Plan of LIIPDF Project

$Id: deployment.html,v 1.2 2002/04/24 02:42:20 kk277 Exp $
Editor: Kohsuke Kawaguchi

Abstract

This document describes the plan to deploy the LIIPDF project to the production web site.

First Deployment

This section describes how we initially deploy the system to start testing LIIPDF in an environment that resembles the actual production environment. The following things shall be deployed in this stage:

another instance of PDG shopping cart to lula
We don't want to use the production system for testing for various reasons, therefore we'd like to deploy another instance of PDG shopping cart. This is a short-term solution to test LIIPDF system independently from the production system. Therefore, this can just be run just under an evaluation licence.
We also need to decide the location where we deploy this second instance of the shopping cart. One candidate would be /var/www/cgi-bin/pdf/pdg.
mailing list
We need an internal mailing list to which PDG shopping cart will send e-mail. For this stage, this mailing list will only contain the e-mail address of the current administrator, and the PDG shopping cart in the production web site should be re-configured to send verification e-mail to this list. We will not use this mailing list for the this stage, but this can be done in this stage (to average the workload.)
mail box for LIIPDF system
We need a mail box somewhere in LII for use by the order fulfillment engine of the system. This mailbox will be used for testing LIIPDF.
location of PDF files
We need to decide the location of the directory where we store PDF files. It can be anywhere as long as it can be accessed from lula (because, according to the system design document, we will deploy GetPDF cgi into lula). We will start using this location for testing LIIPDF. One candidate would be /usr/local/uscode/pdf/pdf.
location of the CGI program to deliver PDFs.
This location needs to be decided as well. One candidate would be /var/www/cgi-bin/pdf, which will be visible from the world as http://lula.law.cornell.edu/cgi-bin/pdf/.
location of LIIPDF program files.
One candidate would be /usr/local/uscode/pdf/bin.

This deployment also allows other interested people to play with the system and give us feedbacks.

Second Deployment

After the first phase is deployed, we will gradually perform the following tasks to get the test system close to the production system.

Adding OFE mailbox to the mailing list
The mail box for the order fulfillment engine shall be added to the mailing list, which was created during the first deployment. With this, we will make sure that OFE works well with the real environment.
Set up a cron task for OFE
OFE shall be scheduled to launch every 15 minutes or so to process new orders.

Third Deployment

In this phase of the deployment, we will start deploying LIIPDF into the actual production system. The following things need to be done:

Incorporate PDF generation capability into the batch process
I guess we need to modify the transformRange.pl file at /usr/local/uscode/scripts dir of lula to invoke xmlSplitter and xml2pdf. Right now, this script is directly using Xalan for converting XML into HTML. See the appendix for the relevant part of the script.
This script will be modified to invoke xml2html as well, but only to generateHTML for our test web site. We still use the existing LDMS/ldms.xsl for generating HTML for the production website, so PDFs are still invisible from the outside world.
We also need to develop a mechanism to deliver PDG catalog files to www.law.cornell.edu and update the system with those files.
Modify the test web site to use the real PDG shopping cart
We modify the test LIIPDF web site to use the real PDG shopping cart, to see if the PDG shopping cart on www is properly handling PDFs.

Final Deployment

We will change transformRange.pl to use our xml2html for the production website as well. This is the moment when the new system goes "live". Now the whole world will see the new web site!

Schedule

The whole thing needs to be done probably within two weeks, which is a bit of hurry.

Appendix

transformRange.pl

print "Starting ldms.xsl\n";
system("java","-mx1024M","org.apache.xalan.xslt.Process",
   "-DIAG","-PARAM","dir","$dirName","-IN","$file","-XSL",
   "LDMS/ldms.xsl");
print "Done building html files\n";