==============================================
SOAPpy - Simple to use SOAP library for Python 
==============================================

Current Maintainers: 	

	Gregory R. Warnes <gregory_r_warnes@groton.pfizer.com>
	Christopher Blunck <blunck2@gst.com>

Original Authors: 

	Cayce Ullman <c_ullman@yahoo.com>
        Brian Matthews <blm@blmatthews.com>

Contributions by:

	Brad Knotwell <b.knotwell@f5.com>
	Mark Bucciarelli <mark@hubcapconsulting.com> (ported WSDL
             client from ZSI)
	Ivan R. Judson 	<judson@mcs.anl.gov> (Globus support)
	Kirk Strauser <kirk@daycos.com>
	Antonio Beamud Montero <antonio.beamud@linkend.com> (patches
  	     for integrating SOAPpy into Zope)

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

Introduction
------------

The goal of the SOAPpy team is to provide a full-featured SOAP library
for Python that is very simple to use and that fully supports dynamic
interaction between clients and servers.

INCLUDED:
- General SOAP Parser based on sax.xml
- General SOAP Builder
- SOAP Proxy for RPC client code
- SOAP Server framework for RPC server code

FEATURES:
- Handles all SOAP 1.0 types
- Handles faults 
- Allows namespace specification
- Allows SOAPAction specification
- Homogeneous typed arrays
- Supports multiple schemas
- Header support (mustUnderstand and actor)
- XML attribute support
- Multi-referencing support (Parser/Builder)
- Understands SOAP-ENC:root attribute
- Good interop, passes all client tests for Frontier, SOAP::LITE, SOAPRMI
- Encodings
- SSL clients (with Python compiled with OpenSSL support)
- SSL servers (with Python compiled with OpenSSL support and M2Crypto
  installed)
- Encodes XML tags per SOAP 1.2 name mangling specification (Gregory Warnes)
- Automatic stateful SOAP server support (Apache v2.x) (blunck2)
- WSDL client support
- Early WSDL server support

TODO: (See RELEASE_INFO and CHANGELOG for recent changes)
- Timeout on method calls
- Advanced arrays (sparse, multidimensional and partial)
- Attachments
- mod_python example
- medusa example
- Improved documentation

MANIFEST:

    Files
    -----

    README	        This file
    RELEASE_NOTES       General information about each release
    CHANGELOG           Detailed list of changes
    TODO		List of tasks that need to be done

    setup.py            Python installation control files
    MANIFEST
    MANIFEST.in
    
    SOAPpy.spec*        RPM package control file

    Directories
    -----------

    SOAPpy/*            Source code for the package
    SOAPpy/wstools/*    Source code for WSDL tools
    tests/*             unit tests and examples
    validate/*          interop client and servers
    bid/*		N+I interop client and server
    doc/*		Documentation
    contrib/		Contributed examples (also see test/)
    docs/		Documentation
    tools/              Misc tools useful for the SOAPpy developers
    zope/               Patches to Zope allowing it to provide SOAP services


INSTALLATION 

Required Packages
-----------------

These packages should be installed before SOAPpy.

- fpconst 0.6.0 or later,
  <http://research.warnes.net/Zope/projects/fpconst>

- pyXML 0.8.3 or later, <http://pyxml.sourceforge.net>

Optional
--------

These packages provide support for optional SOAPpy features.

- pyGlobus, optional support for Globus,
  <http://www-itg.lbl.gov/gtg/projects/pyGlobus/>

- M2Crypto.SSL, optional support for server-side SSL
  <http://sandbox.rulemaker.net/ngps/m2/>

- If Python is compiled with SSL support (Python 2.3 does so by
  default), client-side use of SSL is supported

Installation
------------

As of version 0.9.8 SOAPpy can be installed using the standard python
package installation tools.  

To install:

  1) Unpack the distribution package:

     On Windows, use your favorite zip file uncompression tool.

     On Unix: 

     $ tar -xvzf SOAPpy-$VERSION$.tar.gz

     if you have gnu tar, otherwise

     $ gzcat SOAPpy-$VERSION$.tar.gz | tar -xvf -

  2) Change into the source directory

     $ cd SOAPpy-$VERSION$

  3) Compile the package 

     $ python setup.py build

  4) Install the package as root

     $ su 
     Password: XXXXXX
     $ python setup.py install


QUICK START

A simple "Hello World" http SOAP server:

      import SOAPpy
      def hello():
	  return "Hello World"

      server = SOAP.SOAPServer(("localhost", 8080))
      server.registerFunction(hello)
      server.serve_forever()

And the corresponding client:

      import SOAPpy
      server = SOAPpy.SOAPProxy("http://localhost:8080/")
      print server.hello()
      
For further information see the files in the doc/ directory.


$Id: README,v 1.13 2004/09/11 03:03:32 warnes Exp $