home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _e42ea00d580895766e116693e05b3ec0 < prev    next >
Text File  |  2000-03-15  |  7KB  |  216 lines

  1. package SOAP;
  2.  
  3. $VERSION = '0.23';
  4. sub Version { $VERSION; }
  5.  
  6. require 5.004;
  7. require SOAP::EnvelopeMaker;  # everything you need to build SOAP packets
  8. require SOAP::Parser;         # everything you need to parse SOAP packets
  9. require SOAP::Transport;      # everything you need to send and receive SOAP packets
  10.  
  11. 1;
  12.  
  13. __END__
  14.  
  15. =head1 NAME
  16.  
  17. SOAP - Library for SOAP clients and servers in Perl
  18.  
  19. =head1 SYNOPSIS
  20.  
  21.   use SOAP;
  22.   print "This is SOAP/Perl-$SOAP::VERSION\n";
  23.  
  24.  
  25. =head1 DESCRIPTION
  26.  
  27. SOAP/Perl is a collection of Perl modules which provides a simple
  28. and consistent application programming interface (API) to the 
  29. Simple Object Access Protocl (SOAP).
  30.  
  31. To learn more about SOAP, visit the FAQ at:
  32. <URL:http://www.develop.com/soap/soapfaq.htm>
  33.  
  34. This library provides tools for you to build SOAP clients and servers.
  35.  
  36. The library contains modules for high-level use of SOAP, but also modules
  37. for lower-level use in case you need something a bit more customized.
  38. The library is factored so that you can 
  39.  
  40. SOAP/Perl uses Perl's object oriented features exclusively. There are
  41. no subroutines exported directly by these modules.
  42.  
  43. This version of SOAP/Perl supports the SOAP 1.0 specification,
  44. which is an IETF internet draft. See <URL:http://www.ietf.org>
  45. for details.
  46.  
  47. The main features of the library are:
  48.  
  49. =over 3
  50.  
  51. =item *
  52.  
  53. Contains various reusable components (modules) that can be
  54. used separately or together.
  55.  
  56. =item *
  57.  
  58. Provides an object oriented model for serializing/deserializing and
  59. sending/receiving SOAP packets (lovingly referred to in some circles
  60. as SOAP bars). Within this framework we currently support access to SOAP
  61. over HTTP, but we're looking to expand to support SOAP over SMTP and
  62. other transports in the future.
  63.  
  64. =item *
  65.  
  66. Provides a fully object oriented interface.
  67.  
  68. =item *
  69.  
  70. Supports SOAP 1.0 spec. The current version does not yet handle arrays.
  71.  
  72. =item *
  73.  
  74. Supports serializing/deserializing of sophisticated object graphs
  75. which may have cycles (a circular queue would serialize just fine,
  76. for instance).
  77.  
  78. =item *
  79.  
  80. Provides full namespace support for SOAP 1.0, which is strongly recommended
  81. by the spec.
  82.  
  83. =item *
  84.  
  85. Implements full support for SOAP 1.0 packages, including correctly dealing
  86. with shared references between header and body elements.
  87.  
  88. =item *
  89.  
  90. Experimental support for extensibility of the serialization/deserialization
  91. architecture has been included; see SOAP::TypeMapper for details.
  92.  
  93. =item *
  94.  
  95. Supports servers using CGI or Apache+mod_perl. Tested with Apache on Linux
  96. as well as IIS on Windows 2000.
  97.  
  98. =back
  99.  
  100.  
  101. =head2 The EnvelopeMaker Object
  102.  
  103. SOAP::EnvelopeMaker takes as input an array of header objects and a single
  104. body object (currently these "objects" are simply Perl hashes, eventually
  105. we'll add support for blessed object references as well), and produces as
  106. output an XML stream.
  107.  
  108. =head2 The Parser Object
  109.  
  110. SOAP::Parser takes as input a string (or a file/file handle) and parses
  111. the content as a SOAP envelope. This results in an array of header objects
  112. and a single body element.
  113.  
  114. To avoid coupling the SOAP serialization/deserialization code to HTTP,
  115. a set of loadable transports is also provided. See the following modules
  116. for documentation of the transport architecture:
  117.  
  118.  SOAP::Transport::HTTP::Client
  119.  SOAP::Transport::HTTP::Server
  120.  SOAP::Transport::HTTP::Apache
  121.  SOAP::Transport::HTTP::CGI
  122.  
  123. =head2 Where to Find Examples
  124.  
  125. See SOAP::EnvelopeMaker for a client-side example that shows the
  126. serialization of a SOAP request, sending it over HTTP and receiving
  127. a response, and the deserialization of the response.
  128.  
  129. See SOAP::Transport::HTTP::Apache for a server-side example that shows
  130. how to map incoming HTTP requests to method calls on your own Perl
  131. classes.
  132.  
  133. =head1 OVERVIEW OF CLASSES AND PACKAGES
  134.  
  135. This table should give you a quick overview of the classes provided by the
  136. library.
  137.  
  138. -- High-level classes you should begin with --
  139.  
  140.  SOAP::EnvelopeMaker   -- Serializes objects into SOAP bars
  141.  SOAP::Parser          -- Deserializes SOAP bars into objects
  142.  SOAP::Transport       -- Description of transport architecture
  143.  SOAP::Transport::HTTP -- Description of HTTP transport
  144.  SOAP::Transport::HTTP::Client -- Client side support for HTTP,
  145.                                   using libwww-perl
  146.  SOAP::Transport::HTTP::Server -- Server side support for HTTP,
  147.                                   decoupled from web server APIs
  148.  SOAP::Transport::HTTP::Apache -- Apache/mod_perl support
  149.  SOAP::Transport::HTTP::CGI    -- Vanilla CGI support
  150.  
  151. -- Serialization architecture --
  152.  
  153.  SOAP::Envelope      -- Low level access to SOAP serialization
  154.  SOAP::OutputStream  -- used in conjunction with SOAP::Envelope for
  155.                         Low level access to SOAP serialization
  156.  SOAP::Packager      -- Helps to implement SOAP 1.0 packages,
  157.                         used by SOAP::Envelope and SOAP::OutputStream
  158.  SOAP::GenericHashSerializer   -- Generic serializer for Perl hash references
  159.  SOAP::GenericScalarSerializer -- Generic serializer for Perl scalars
  160.  
  161. -- Deserialization architecture --
  162.  
  163.  SOAP::GenericInputStream.pm   -- Look here if you are interested in
  164.                                   extending the deserialization framework
  165.                                   to be able to deserialize your own objects
  166. -- Miscellaneous --
  167.  
  168.  SOAP::TypeMapper    -- An experimental extensibility point for the
  169.                         serialization architecture
  170.  SOAP::Defs          -- Constants used by the other modules
  171.  
  172.  
  173. =head1 MORE DOCUMENTATION
  174.  
  175. All modules contain detailed information on the interfaces they
  176. provide.
  177.  
  178.  
  179. =head1 BUGS AND LIMITATIONS
  180.  
  181. The serialization framework does not yet handle arrays,
  182. and the HTTP transport does not handle M-POST.
  183.  
  184.  
  185. =head1 ACKNOWLEDGEMENTS
  186.  
  187. Keith Brown is the original and current author of this work, but
  188. he worked very closely with Don Box in developing a common design
  189. and implementation architecture (Don was building a Java implementation
  190. side-by-side, and Keith and Don worked together in a kind of XP style
  191. of programming - it was fun). GopalK at Microsoft was tremendously
  192. helpful in ferreting out issues in the SOAP spec. Mike Abercrombie
  193. at DevelopMentor (where Keith and Don work) was very supportive
  194. of the effort as well. Thanks Mike!
  195.  
  196. =head1 COPYRIGHT
  197.  
  198.   Copyright 1999-2000, DevelopMentor. All rights reserved.
  199.  
  200. This library is free software; you can redistribute it and/or
  201. modify it under the same terms as Perl itself.
  202.  
  203. =head1 AVAILABILITY
  204.  
  205. The latest version of this library is normally available from CPAN
  206. as well as:
  207.  
  208.  http://www.develop.com/soap
  209.  
  210. The best place to discuss this code is on the SOAP
  211. mailing list at:
  212.  
  213.  http://discuss.develop.com/soap.html
  214.  
  215. =cut
  216.