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
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -