SOAPpy and callback
Paul McGuire
ptmcg at austin.rr._bogus_.com
Sat Oct 14 05:27:36 EDT 2006
"Diez B. Roggisch" <deets at nospam.web.de> wrote in message
news:4parepFho4q7U1 at uni-berlin.de...
> Maybe we have a misunderstanding here. I'm not a native speaker, so bear
> with me.
>
That's okay, I'll type very, very slowly. :)
> In CORBA or RMI, there is a notion of an object/interface reference passed
> around, which allows for callbacks in a natural way. Which is AFAIK not
> the case in SOAP. Hell, they don't even know objects and stateful
> connections...
>
Are you confusing SOAP with REST? The standard I refer to defines a set of
WSDL files that can be crunched to build implementation bindings for C#,
Boo, Java, etc. (Unfortunately, not Python - there is some issue with SOAPpy
that will not handle the input WSDL.) These bindings do model the remote
interface bindings as objects, and stateful connections and sessions are
very much part of the standard. If you like, you can download the WSDL
files at http://dom.semi.org/web/wstandards.nsf/supmaterials.
It is true, the implementation of the callback in SOAP is quite crude, as it
exposes the callback as an endpoint wrapped around a URL string. Not very
object-y at all - but then think back to CORBA again, and many systems did
something similar by passing around names bound to objects in a nameserver,
or just cut to the chase and shipped IOR's around directly.
> That you obviously can define a system that needs several SOAP servers to
> interact with each other - well, you could also perform inter process
> communication using printed documents, some horses and either OCR or data
> typists. But this isn't exactly inter process communication in my book,
> albeit there certainly _are_ processes, _and_ communication :)
>
About 10 years ago, the standards body for semiconductor process integration
*was* using IDL to define process interfaces, and defining CORBA
implementation bindings. Unfortunately, the CORBA learning curve was too
much, and the implementations were too expensive (at the time; today ACE and
omniOrb are reasonable platforms). The group today went with SOAP, defining
a set of WSDL files to serve as the standard interface definition, in place
of the CORBA IDL of yore.
And what you describe might still be a step up from the RS-232-based system
in place today (instituted in the 70's, upgraded to ethernet in the late
80's, but still limited to encoded ASCII and point-to-point connections).
I would definitely agree that working with callbacks in SOAP sometimes feels
like an unnatural act. But it is clearly an interprocess communication, and
it does have an object model to its language bindings. Any Rube Goldberg
aspects to SOAP are neatly buried in the code generated from the WSDL.
-- Paul
More information about the Python-list
mailing list