perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Drew Wilson <...@apple.com>
Subject Re: SOAP
Date Thu, 01 Mar 2007 17:12:24 GMT
FWIW - JSON and SOAP are separate choices.

SOAP is an RPC protocol, typically using http, whose messages are  
serialized in XML.

JSON is just a serialization format. However, it is often used w/  
http requests (i.e. REST) to implement RPC.

We use SOAP::Lite extensively in our build & information systems and  
I've been using it at various jobs for several years.

SOAP::Lite was great when it first emerged but has not gotten a lot  
of care over the past few years and is now showing its age. It  
doesn't support any of the new SOAP technologies (e.g. automatic WSDL  
generation like axis) or support for WS-Security.

But the primary problem I've had with SOAP::LIte is the slow  
serialization of large results into XML. (SOAP::Lite's XML  
deserializer and serializer are written in perl and inefficient.  
Aside from the perl XML parsing, SOAP::Lite also converts the entire  
result into an in-memory XML document which is then sent back to the  
client.

When I identified this serialization as a problem here at work and  
commented that JSON::Syck is a much faster serializer (its written in  
C), someone in our group came up with notion of serializing results  
in JSON and then sending that back in a SOAP response ("envelope").  
This workaround makes my skin crawl. Its a band-aid.

Someone needs to make write a mod_perl handler to handle SOAP  
efficiently. In particular, I'd like a solution that can stream  
results back for batch-oriented RPC calls. Before SOAP::Lite, I wrote  
a mod_perl handler that did this, but I tossed it for the convenience  
of SOAP::Lite. But I've been thinking of dusting it off recently once  
I get the time. If anybody else has any interest or questions, please  
let me know.

Drew

On Mar 1, 2007, at 6:53 AM, Jonathan Vanasco wrote:

>
> On Mar 1, 2007, at 6:02 AM, Martin Moss wrote:
>
>> Effectively I'll be simply posting strings of SOAP XML
>> to a webpage... But eventually we may use SOAP to pass
>> data around between Classes. Although I'm not sure if
>> this would be overkill.
>>
>> Any hints/advice would be much appreciated..
>
> Have you considered using JSON ?  It might be easier for your  
> needs.  JSON::Syck works great with modperl, many perl modules  
> support object init from YAML ( which is json compatible ), and a  
> lot of the js frameworks support object init from JSON too ( I like  
> MochiKit )
>
>
>
>
> // Jonathan Vanasco
>
> | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
> - - - - - - - - - - - - - - - - - - - -
> | SyndiClick.com
> | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
> - - - - - - - - - - - - - - - - - - - -
> |      FindMeOn.com - The cure for Multiple Web Personality Disorder
> |      Web Identity Management and 3D Social Networking
> | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
> - - - - - - - - - - - - - - - - - - - -
> |      RoadSound.com - Tools For Bands, Stuff For Fans
> |      Collaborative Online Management And Syndication Tools
> | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
> - - - - - - - - - - - - - - - - - - - -
>
>


Mime
View raw message