473,323 Members | 1,560 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,323 software developers and data experts.

SOAPpy and callback

Hello,

I'm trying to find how to use a callback in a SOAP client using SOAPpy.
Does SOAPpy have to manage it, or does Python include some API to do
it?

Thanks a lot.
Fabien

Oct 12 '06 #1
9 1768
fa***********@gmail.com schrieb:
Hello,

I'm trying to find how to use a callback in a SOAP client using SOAPpy.
Does SOAPpy have to manage it, or does Python include some API to do
it?
I've never seen any callback mentioned in SOAP. Are you sure this is
possible with any SOAP implementation, at least standard-wise?

Diez
Oct 13 '06 #2
SOAP standard doesn't provide any callback, and it looks like SOAPpy
doesn't too.
I remember using callbacks with Javascript and SOAP in Web pages. I was
just wondering if there could be the same with Python.

Thanks for your answer.

Oct 13 '06 #3
fa***********@gmail.com schrieb:
SOAP standard doesn't provide any callback, and it looks like SOAPpy
doesn't too.
I remember using callbacks with Javascript and SOAP in Web pages. I was
just wondering if there could be the same with Python.
How that? I seriously doubt that, it would mean that the server would be
able to issue an request on its own to the browser - a technical
impossibility in current browser implementations.

Just because you used a callback inside a js-soap-implementation that
works with deferreds or something similar doesn't mean that the soap
itself knew callbacks.

Diez
Oct 13 '06 #4
"Diez B. Roggisch" <de***@nospam.web.dewrote in message
news:4p************@uni-berlin.de...
fa***********@gmail.com schrieb:
>Hello,

I'm trying to find how to use a callback in a SOAP client using SOAPpy.
Does SOAPpy have to manage it, or does Python include some API to do
it?

I've never seen any callback mentioned in SOAP. Are you sure this is
possible with any SOAP implementation, at least standard-wise?

Diez
This is most definitely possible, in fact it is the basis for a new
asynchronous data collection standard for semiconductor equipment, Interface
A (replacing the ancient SECS/GEM interface, originally designed to work
over RS-232). However, it is a major pain to implement.

As you suggest, you cannot do this from a simple browser or pure SOAP
client. To support SOAP callbacks, the client must also itself be a SOAP
server. The client sends its own callback server's URL to the primary
server, and when callbacks are needed, they are sent to that callback URL.
This really does get quite tricky, though. For one thing, the vagaries of
network identification make it unsure whether the URL composed by the client
for its callback is meaningful/accessible to the server.

In addition, if you are considering implementing this over the untrusted
internet, you should use SSL authentication both ways (although this further
complicates your client).

-- Paul
Oct 13 '06 #5
Paul McGuire schrieb:
"Diez B. Roggisch" <de***@nospam.web.dewrote in message
news:4p************@uni-berlin.de...
>fa***********@gmail.com schrieb:
>>Hello,

I'm trying to find how to use a callback in a SOAP client using SOAPpy.
Does SOAPpy have to manage it, or does Python include some API to do
it?
I've never seen any callback mentioned in SOAP. Are you sure this is
possible with any SOAP implementation, at least standard-wise?
This is most definitely possible, in fact it is the basis for a new
asynchronous data collection standard for semiconductor equipment, Interface
A (replacing the ancient SECS/GEM interface, originally designed to work
over RS-232). However, it is a major pain to implement.

I don't call 'you can do that on your own' as standard-wise.

Certainly you can run two servers, make sure they are mutually
reachable, and client and server share the same process space.

But that is not a callback - it is, as you say, a PITA. And a massive
lack in the SOAP standard.

Regards,

Diez
Oct 13 '06 #6
"Diez B. Roggisch" <de***@nospam.web.dewrote in message
news:4p************@uni-berlin.de...
Paul McGuire schrieb:
>"Diez B. Roggisch" <de***@nospam.web.dewrote in message
news:4p************@uni-berlin.de...
>>fa***********@gmail.com schrieb:
Hello,

I'm trying to find how to use a callback in a SOAP client using SOAPpy.
Does SOAPpy have to manage it, or does Python include some API to do
it?
I've never seen any callback mentioned in SOAP. Are you sure this is
possible with any SOAP implementation, at least standard-wise?
This is most definitely possible, in fact it is the basis for a new
asynchronous data collection standard for semiconductor equipment,
Interface A (replacing the ancient SECS/GEM interface, originally
designed to work over RS-232). However, it is a major pain to implement.


I don't call 'you can do that on your own' as standard-wise.

Certainly you can run two servers, make sure they are mutually reachable,
and client and server share the same process space.

But that is not a callback - it is, as you say, a PITA. And a massive lack
in the SOAP standard.

Regards,

Diez
I like your term "standard-wise". Although there is nothing in the SOAP
"standard" that prevents this architecture, it is probably open for
discussion whether it is "wise."

As it happens, the client and server *don't* share the same process space -
they don't even share the same computer.

And it *does* work, I'm running the software on a couple of systems in my
office right now.

-- Paul
Oct 13 '06 #7
I like your term "standard-wise". Although there is nothing in the SOAP
"standard" that prevents this architecture, it is probably open for
discussion whether it is "wise."
Might stem from "standardweise", the german word for something that is
part of a standard, or e.g. something always having this or that feature.
As it happens, the client and server *don't* share the same process space -
they don't even share the same computer.

And it *does* work, I'm running the software on a couple of systems in my
office right now.
Maybe we have a misunderstanding here. I'm not a native speaker, so bear
with me.

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

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

Diez
Oct 14 '06 #8
"Diez B. Roggisch" <de***@nospam.web.dewrote in message
news:4p************@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


Oct 14 '06 #9
Ok guys, thanks for the lesson! I'm probably not going to try to
implement this solution. However, I've learned a lot!

Oct 15 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Vivek | last post by:
Hi, Can anyone provide me with sample code that will allow me to use SOAPpy with a WSDL file using HTTP basic authentication? The only thing I've been able to find on the net is...
0
by: Harry George | last post by:
I'm trying to setup a SOAPpy service under xinetd. Has someone done this sort of thing? Didn't find it from google searches or documentation. This is probably a sockets-level issue, but I was...
0
by: elsarfhem | last post by:
I have a problem with soappy when i try to send a python dictionary... i send something like this {'1':2,'3':4} and it returns something like this {'1':, '3':4} function on the server is simply an...
0
by: Bartas | last post by:
Hi, I'am writting a simple SOAP client in python (2.4) using SOAPpy lib. I've met with this problem: when I want to send a list of complex type using some method from WebService(java,WAS), ...
0
by: Sameer Deshpande | last post by:
Hi, I am using python SOAPpy module to call a web service. Call to web service gets executed successfully. I am facing a problem if the call to WS results into redirect. I get "HTTPError:...
0
by: benboals | last post by:
Note: this is in reply to a message from August 2 which i found searching for help on my own problem. I couldn't seem to reply to it, but a friend suggested that simply using the same subject...
0
by: linuxprog | last post by:
hi all i'm building a webservice client with soappy when i send some informations it's returns an error here is the informations that generates the error var = SOAPpy.structType()...
0
by: pion | last post by:
Hello I'm trying to make a web service client in python, and so to start out, I found this simple example that are supposed to parse an wsdl file using SOAPPy. I'm using Windows and got SOAPPy...
1
by: Christof Winter | last post by:
I am trying to use a webservice with SOAPpy: import SOAPpy intact_wsdl = "http://www.ebi.ac.uk/intact/binary-search-ws/binarysearch?wsdl" intact_serv = SOAPpy.WSDL.Proxy(intact_wsdl) The...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.