home *** CD-ROM | disk | FTP | other *** search
-
- <HTML>
- <HEAD>
- <TITLE>SOAP - Library for SOAP clients and servers in Perl</TITLE>
- <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
- <LINK REV="made" HREF="mailto:">
- </HEAD>
-
- <BODY>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> SOAP - Library for SOAP clients and servers in Perl</P></STRONG>
- </TD></TR>
- </TABLE>
-
- <A NAME="__index__"></A>
- <!-- INDEX BEGIN -->
-
- <UL>
-
- <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
-
- <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
- <LI><A HREF="#description">DESCRIPTION</A></LI>
- <UL>
-
- <LI><A HREF="#the envelopemaker object">The EnvelopeMaker Object</A></LI>
- <LI><A HREF="#the parser object">The Parser Object</A></LI>
- <LI><A HREF="#where to find examples">Where to Find Examples</A></LI>
- </UL>
-
- <LI><A HREF="#overview of classes and packages">OVERVIEW OF CLASSES AND PACKAGES</A></LI>
- <LI><A HREF="#more documentation">MORE DOCUMENTATION</A></LI>
- <LI><A HREF="#bugs and limitations">BUGS AND LIMITATIONS</A></LI>
- <LI><A HREF="#acknowledgements">ACKNOWLEDGEMENTS</A></LI>
- <LI><A HREF="#copyright">COPYRIGHT</A></LI>
- <LI><A HREF="#availability">AVAILABILITY</A></LI>
- </UL>
- <!-- INDEX END -->
-
- <HR>
- <P>
- <H1><A NAME="name">NAME</A></H1>
- <P>SOAP - Library for SOAP clients and servers in Perl</P>
- <P>
- <HR>
- <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
- <UL>
- <LI>Linux</LI>
- <LI>Solaris</LI>
- <LI>Windows</LI>
- </UL>
- <HR>
- <H1><A NAME="synopsis">SYNOPSIS</A></H1>
- <PRE>
- use SOAP;
- print "This is SOAP/Perl-$SOAP::VERSION\n";</PRE>
- <P>
- <HR>
- <H1><A NAME="description">DESCRIPTION</A></H1>
- <P>SOAP/Perl is a collection of Perl modules which provides a simple
- and consistent application programming interface (API) to the
- Simple Object Access Protocl (SOAP).</P>
- <P>To learn more about SOAP, visit the FAQ at:
- <URL:http://www.develop.com/soap/soapfaq.htm></P>
- <P>This library provides tools for you to build SOAP clients and servers.</P>
- <P>The library contains modules for high-level use of SOAP, but also modules
- for lower-level use in case you need something a bit more customized.
- The library is factored so that you can</P>
- <P>SOAP/Perl uses Perl's object oriented features exclusively. There are
- no subroutines exported directly by these modules.</P>
- <P>This version of SOAP/Perl supports the SOAP 1.0 specification,
- which is an IETF internet draft. See <URL:http://www.ietf.org>
- for details.</P>
- <P>The main features of the library are:</P>
- <UL>
- <LI>
- Contains various reusable components (modules) that can be
- used separately or together.
- <P></P>
- <LI>
- Provides an object oriented model for serializing/deserializing and
- sending/receiving SOAP packets (lovingly referred to in some circles
- as SOAP bars). Within this framework we currently support access to SOAP
- over HTTP, but we're looking to expand to support SOAP over SMTP and
- other transports in the future.
- <P></P>
- <LI>
- Provides a fully object oriented interface.
- <P></P>
- <LI>
- Supports SOAP 1.0 spec. The current version does not yet handle arrays.
- <P></P>
- <LI>
- Supports serializing/deserializing of sophisticated object graphs
- which may have cycles (a circular queue would serialize just fine,
- for instance).
- <P></P>
- <LI>
- Provides full namespace support for SOAP 1.0, which is strongly recommended
- by the spec.
- <P></P>
- <LI>
- Implements full support for SOAP 1.0 packages, including correctly dealing
- with shared references between header and body elements.
- <P></P>
- <LI>
- Experimental support for extensibility of the serialization/deserialization
- architecture has been included; see SOAP::TypeMapper for details.
- <P></P>
- <LI>
- Supports servers using CGI or Apache+mod_perl. Tested with Apache on Linux
- as well as IIS on Windows 2000.
- <P></P></UL>
- <P>
- <H2><A NAME="the envelopemaker object">The EnvelopeMaker Object</A></H2>
- <P>SOAP::EnvelopeMaker takes as input an array of header objects and a single
- body object (currently these ``objects'' are simply Perl hashes, eventually
- we'll add support for blessed object references as well), and produces as
- output an XML stream.</P>
- <P>
- <H2><A NAME="the parser object">The Parser Object</A></H2>
- <P>SOAP::Parser takes as input a string (or a file/file handle) and parses
- the content as a SOAP envelope. This results in an array of header objects
- and a single body element.</P>
- <P>To avoid coupling the SOAP serialization/deserialization code to HTTP,
- a set of loadable transports is also provided. See the following modules
- for documentation of the transport architecture:</P>
- <PRE>
- SOAP::Transport::HTTP::Client
- SOAP::Transport::HTTP::Server
- SOAP::Transport::HTTP::Apache
- SOAP::Transport::HTTP::CGI</PRE>
- <P>
- <H2><A NAME="where to find examples">Where to Find Examples</A></H2>
- <P>See SOAP::EnvelopeMaker for a client-side example that shows the
- serialization of a SOAP request, sending it over HTTP and receiving
- a response, and the deserialization of the response.</P>
- <P>See SOAP::Transport::HTTP::Apache for a server-side example that shows
- how to map incoming HTTP requests to method calls on your own Perl
- classes.</P>
- <P>
- <HR>
- <H1><A NAME="overview of classes and packages">OVERVIEW OF CLASSES AND PACKAGES</A></H1>
- <P>This table should give you a quick overview of the classes provided by the
- library.</P>
- <P>-- High-level classes you should begin with --</P>
- <PRE>
- SOAP::EnvelopeMaker -- Serializes objects into SOAP bars
- SOAP::Parser -- Deserializes SOAP bars into objects
- SOAP::Transport -- Description of transport architecture
- SOAP::Transport::HTTP -- Description of HTTP transport
- SOAP::Transport::HTTP::Client -- Client side support for HTTP,
- using libwww-perl
- SOAP::Transport::HTTP::Server -- Server side support for HTTP,
- decoupled from web server APIs
- SOAP::Transport::HTTP::Apache -- Apache/mod_perl support
- SOAP::Transport::HTTP::CGI -- Vanilla CGI support</PRE>
- <P>-- Serialization architecture --</P>
- <PRE>
- SOAP::Envelope -- Low level access to SOAP serialization
- SOAP::OutputStream -- used in conjunction with SOAP::Envelope for
- Low level access to SOAP serialization
- SOAP::Packager -- Helps to implement SOAP 1.0 packages,
- used by SOAP::Envelope and SOAP::OutputStream
- SOAP::GenericHashSerializer -- Generic serializer for Perl hash references
- SOAP::GenericScalarSerializer -- Generic serializer for Perl scalars</PRE>
- <P>-- Deserialization architecture --</P>
- <PRE>
- SOAP::GenericInputStream.pm -- Look here if you are interested in
- extending the deserialization framework
- to be able to deserialize your own objects
- -- Miscellaneous --</PRE>
- <PRE>
- SOAP::TypeMapper -- An experimental extensibility point for the
- serialization architecture
- SOAP::Defs -- Constants used by the other modules</PRE>
- <P>
- <HR>
- <H1><A NAME="more documentation">MORE DOCUMENTATION</A></H1>
- <P>All modules contain detailed information on the interfaces they
- provide.</P>
- <P>
- <HR>
- <H1><A NAME="bugs and limitations">BUGS AND LIMITATIONS</A></H1>
- <P>The serialization framework does not yet handle arrays,
- and the HTTP transport does not handle M-POST.</P>
- <P>
- <HR>
- <H1><A NAME="acknowledgements">ACKNOWLEDGEMENTS</A></H1>
- <P>Keith Brown is the original and current author of this work, but
- he worked very closely with Don Box in developing a common design
- and implementation architecture (Don was building a Java implementation
- side-by-side, and Keith and Don worked together in a kind of XP style
- of programming - it was fun). GopalK at Microsoft was tremendously
- helpful in ferreting out issues in the SOAP spec. Mike Abercrombie
- at DevelopMentor (where Keith and Don work) was very supportive
- of the effort as well. Thanks Mike!</P>
- <P>
- <HR>
- <H1><A NAME="copyright">COPYRIGHT</A></H1>
- <PRE>
- Copyright 1999-2000, DevelopMentor. All rights reserved.</PRE>
- <P>This library is free software; you can redistribute it and/or
- modify it under the same terms as Perl itself.</P>
- <P>
- <HR>
- <H1><A NAME="availability">AVAILABILITY</A></H1>
- <P>The latest version of this library is normally available from CPAN
- as well as:</P>
- <PRE>
- <A HREF="http://www.develop.com/soap">http://www.develop.com/soap</A></PRE>
- <P>The best place to discuss this code is on the SOAP
- mailing list at:</P>
- <PRE>
- <A HREF="http://discuss.develop.com/soap.html">http://discuss.develop.com/soap.html</A></PRE>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> SOAP - Library for SOAP clients and servers in Perl</P></STRONG>
- </TD></TR>
- </TABLE>
-
- </BODY>
-
- </HTML>
-