GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SOAP::WSDL::SERVER::MOD_PERL2 (3)

.ds Aq ’

NAME

SOAP::WSDL::Server::Mod_Perl2 - mod_perl based SOAP server using SOAP::WSDL

CONTENTS

DESCRIPTION

Perl module providing a mod_perl2-based SOAP server using SOAP::WSDL

CONFIGURATION

Configuration is managed through the use of PerlSetVar directives. The following variables are available:

    dispatch_to

Takes as a single argument the package name of the module which contains the methods which handle SOAP requests.



 PerlSetVar dispatch_to "WebPackage::SOAPMethods"



    soap_service

Takes as a single argument the package name of the Server module generated by SOAP::WSDL using



 wsdl2perl.pl --server file:///path/to/your/wsdl



By default, the name of the package is MyServer::$SERVICENAME::$PORTTYPE.

EXAMPLE: Given this sample WSDL which wsdl2perl.pl was run against to generate perl packages:



    <wsdl:portType name="WebServiceSoap">
        [...]
    </wsdl:portType>

    [...]

    <wsdl:service name="WebService">
        <wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap">
            <soap:address location="http://www.example.com/WebService"/>
        </wsdl:port>
    </wsdl:service>



The following directive would be correct:



    PerlSetVar soap_service "MyServer::WebService::WebServiceSoap"



    transport_class [OPTIONAL]

Takes as a single argument the package name of the perl module containing a handle() method used to assemble the HTTP request which will be passed to the methods in your dispatch_to module (see above). A default handle() method is supplied in this module which should handle most common cases.

handle() is called with the following parameters:



 $r - Apache::RequestRec object



EXAMPLES

The following snippet added to httpd.conf will enable a SOAP server at /WebService on your webserver:



    <Location /WebService>
        SetHandler perl-script
        PerlResponseHandler SOAP::WSDL::Server::Mod_Perl2
        PerlSetVar dispatch_to "WebPackage::SOAPMethods"
        PerlSetVar soap_service "MyServer::WebService::WebServiceSoap"
    </Location>



PERFORMANCE

On my machine, a simple SOAP server (the HelloWorld service from the examples) needs around 20s to process 300 requests to a CGI script implemented with SOAP::WSDL::Server::CGI, around 4.5s to the same CGI with mod_perl enabled, and around 3.2s with SOAP::WSDL::Server::Mod_Perl2. All these figures include the time for creating the request and parsing the response.

As general advice, using mod_perl is highly recommended in high-performance environments. Using SOAP::WSDL::Server::Mod_Perl2 yields an extra 20% speedup compared with mod_perl enabled CGI scripts - and it allows one to configure SOAP servers in the Apache config.

THREAD SAFETY

SOAP::WSDL uses Class::Std::Fast, which is not guaranteed to be threadsafe yet. Thread safety in Class::Std::Fast is dependent on whether



 my $foo = $bar++;



is an atomic operation. I haven’t found out yet.

A load test on a single CPU machine with 4 clients using the worker mpm did not reveal any threading issues - but that does not mean there are none.

CREDITS

Contributed (along with lots of other little improvements) by Noah Robin.

Thanks!

LICENSE AND COPYRIGHT

This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself

AUTHOR

Noah Robin <noah.robin gmail.com>

Based on SOAP::WSDL::Server::CGI, by Martin Kutter <martin.kutter fen-net.de>

REPOSITORY INFORMATION



 $Rev: 583 $
 $LastChangedBy: kutterma $
 $Id: $
 $HeadURL: $



Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SOAP::WSDL::SERVER::MOD_PERL2 (3) 2015-04-02

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.