    Simple Grid Protocol 1.2 - Copyright (c) Brendan Kosowski 2004, 2005, 2015, 2019

(updated 30-Aug-2019)

XML GRID INTERFACE INTRODUCTION
-------------------------------
The xml interface allows any xml capable programming language on
any computer on the grid network to send a single line of lisp code
to the grid for execution.

The interface comprises 2 lisp programs that are placed in the
apache httpd cgi-bin:

    1.) xml_show_track.lisp : a simplified version of the tracking
        server that lists all cycle sharing nodes (best node first)
        and flags nodes that are XML capable.

    2.) xml_cpurs.lisp : a modified version of the cpu resource
        server.

Both of these programs accept HTTP POST inputs, and output results
in XML.


SETUP
-----

First get the lisp grid running as in "GRID_HOW_TO.txt".


TO SETUP THE TRACKING SERVER (aka CONTROL NODE)

1.) Setup apache httpd to run as user "grid". This is done in the
file "httpd.conf". You will also need to find out which group "grid"
belongs to ("id grid") and run apache as that group also.

2.) Copy the file "xml_show_track.lisp" to the apache httpd cgi-bin
and change it's permission to "r-xr-xr-x" using the command
"chmod 555 xml_show_track.lisp".


TO SETUP THE CPU RESOURCE SERVERS (aka CYCLE SHARING NODES)

1.) Setup apache httpd to run as user "nobody". This is done in the
file "httpd.conf". You will also need to find out which group "nobody"
belongs to ("id nobody") and run apache as that group also.

2.) Edit the file flags.dat and replace "(:xml nil)" with "(:xml t)".
This tells the grid that your computer shares cycles via xml.

3.) Copy the file "xml_cpurs.lisp" to the apache httpd cgi-bin and
change it's permission to "r-xr-xr-x" using the command
"chmod 555 xml_cpurs.lisp".


START WRITING GRID FRIENDLY SOFTWARE

1.) The program "xml_example.php" is a PHP Script that does the
following:

    a.) Finds the cycle sharing node that has the most available
        CPU resources and is XML capable.

    b.) Send a single line of lisp code to the grid for execution
        and receives the result.

This requires PHP with CURL and Simple-XML libraries installed.


*** Have Fun! ***
