
Globus Support
==============

Extensions have been added to the SOAPpy module to allow the use of the
Globus Toolkit v2 for secure transport of SOAP calls. These extensions are
possible by using the Globus Toolkit (http://www.globus.org) and the
pyGlobus software (http://www-itg.lbl.gov/gtg/projects/pyGlobus/), which
exposes the Globus Toolkit via a set of Python interfaces. This enables
bi-directional PKI authentication so that the server and client are both
guaranteed of the identity of the other. Using PKI this way also allows a
more robust authorization solution above the SOAP hosting layer, which
provides better application level authorization control. These tools are
used by the Access Grid Project (http://www.accessgrid.org) to build a
Grid-based, Web Services based, real-time collaboration environment.

In order to use the SOAPpy module with the Globus Toolkit, you must first
obtain and install the Globus Toolkit and pyGlobus software. Information on
how to do that is at the respective web sites listed below. In order to use
the Globus Toolkit it is necessary to have an x509 identity certificate.
Information on how to obtain one of those is available on the web as well. 

To use GSI with an authorization method, set the SOAPConfig.authMethod =
"methodname". You must have this method defined on any objects you register
with SOAPpy, and/or as a registered method. It should return 0 or 1 to
indicate if authorization is allowed or not.

Once the software is installed, you have obtained your certificate, and the
SOAPpy module is installed, the following code shows how to run a GSI
secured SOAP server (These snippets are directly from the echoServer.py and
echoClient.py in the test directory).

For a server:
==============

def _authorize(self, *args, **kw):
    return 1

Config.authMethod = "_authorize"

addr = ('localhost', 9900)
from SOAPpy.GSIServer import GSISOAPServer
server = GSISOAPServer(addr)

server.registerFunction(_authorize)
server.registerFunction(echo)

Then you use the server like the SSL server or the standard server.

For a client:
=============
import pyGlobus

# The httpg distinguishes this as a GSI TCP connection, so after 
# this you can use the SOAP proxy as you would any other SOAP Proxy.

server = SOAPProxy("httpg://localhost:9900/")
print server.echo("moo")

Globus Toolkit http://www.globus.org
------------------------------------
The Globus Toolkit is an open source software toolkit used for building
grids. It is being developed by the Globus Alliance and many others all over
the world. A growing number of projects and companies are using the Globus
Toolkit to unlock the potential of grids for their cause. 

PyGlobus http://www-itg.lbl.gov/gtg/projects/pyGlobus/
------------------------------------------------------
The goal of this project is to allow the use of the entire Globus toolkit
from Python, a high-level scripting language. SWIG is used to generate the
necessary interface code. Currently a substantial subset of the 2.2.4 and
2.4 versions of the Globus toolkit has been wrapped. 

The Access Grid http://www.accessgrid.org/
------------------------------------------
The Access GridT is an ensemble of resources including multimedia
large-format displays, presentation and interactive environments, and
interfaces to Grid middleware and to visualization environments. These
resources are used to support 
group-to-group interactions across the Grid. For example, the Access Grid
(AG) is used for large-scale distributed meetings, 
collaborative work sessions, seminars, lectures, tutorials, and training.
The Access Grid thus differs from desktop-to-desktop tools that focus on
individual communication.
 
- Submitted 2004-01-08 by Ivan R. Judson <mailto:judson@mcs.anl.gov>

Copyright (c) 2002-2003, Pfizer, Inc.
All rights reserved, see the file LICENSE for conditions of use.
