[Techtalk] Open source SOAP/REST servers
Kelly Jones
kelly.terry.jones at gmail.com
Mon May 11 13:42:59 UTC 2009
I probably should've said SOAP, since that's what I'm focusing on.
If I understand correctly, SOAP lets you make a function call across
the web. In other words, instead of saying:
f(x1,x2,x3,x4,x5,...)
where f is defined in some local library, you say:
http://some.path/foo.xml with POST variables that effectively call f
on the arguments x1,x2,x3,x4,x5,etc.
Of course, x1 may be an integer, x2 may be a list, x3 may be a hash,
x4 may be an object, and x5 may be another function. In other words,
f's arguments need not be "simple".
I want a SOAP server that does this for me:
% Listens for SOAP requests.
% When it gets one, demangles the XML to create a simple Perl (or
Ruby) function call.
% Takes the function's return value and wraps it in SOAP-like XML.
% Returns the wrapped value to the caller.
A client-side partial example of what I want (Ruby):
require 'soap/wsdlDriver'
wsdl_url = 'http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl'
proxy = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver
print proxy.NDFDgen(35.05,-106.65,"glance","2009-05-11T00:00:00","2009-05-11T12:00:00","temp")
This converts my function request into SOAP, though it displays the
return value in XML.
I want something that does the "reverse": converts a SOAP XML request
into a function.
--
We're just a Bunch Of Regular Guys, a collective group that's trying
to understand and assimilate technology. We feel that resistance to
new ideas and technology is unwise and ultimately futile.
On 5/10/09, Daniel Pittman <daniel at rimspace.net> wrote:
> Kelly Jones <kelly.terry.jones at gmail.com> writes:
>
>> I want to serve data by responding to SOAP/REST requests w/o the
>> overhead of running Apache.
>>
>> Are there any open source SOAP/REST servers?
>
> Are you looking for "either SOAP or REST" or "SOAP and REST" here?
>
>> IE, lightweight servers designed to handle SOAP/REST requests, not
>> HTTP requests in general?
>
> In any case your question is at the wrong level. For a start, REST is
> about mapping the HTTP protocol verbs to data manipulation actions, so
> it isn't actually possible to have a REST server that doesn't handle
> "HTTP requests in general".
>
> Also, using SOAP and using REST are ... fairly antithetical design
> goals. SOAP is a complex RPC mechanism that you can transport over
> HTTP, REST is a lightweight design strategy that tries to match HTTP
> verbs and data manipulation actions.[1]
>
>
> Anyway, once you get past that you can find a couple of REST oriented
> application server frameworks in Perl (on CPAN), and presumably also in
> Python, Ruby, Java and whatever other language you please.
>
> You can't have one of those without HTTP, though, and your server will
> have to handle enough HTTP to talk to the real world -- at least as much
> as saying no to it.
>
>
> You can also use the standard Perl SOAP modules to transport SOAP over
> random protocols; the system ships with TCP, UDP and SMTP transports as
> examples, and it can probably handle a bunch more.
>
> Again, if you want to transport SOAP over HTTP you will need to handle
> generic HTTP enough to reject the requests, at least.
>
> Anyway, maybe you can tell us what your actual problem is and we can try
> and help you with that? That might be more effective than guesswork. :)
>
> Regards,
> Daniel
>
> Footnotes:
> [1] ...typically, a good implementation includes a work-around for the
> fact that the standard HTTP clients can only use three verbs, and
> only two in practice, being GET, POST, and PUT if you love pain.
More information about the Techtalk
mailing list