Hello: I did some work regarding SOAP support on ZOPE and published this document on zope.org. The link for this document is http://zope.org/Members/arunacgx/SOAP%20Support%20on%20Zope/file_view I would like to get feedback/suggestion regarding this document. With Regards, Aruna Kathiriya Sr.Consultant, CIGNEX Technologies, Inc T: 408.327.9900 x 314 F: 408.273.6785 C: 408.896.1330 E: aruna@cignex.com U: www.cignex.com "Implement IT Right"
Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org. The link for this document is http://zope.org/Members/arunacgx/SOAP%20Support%20on%20Zope/file_view
I would like to get feedback/suggestion regarding this document.
One preliminary suggestion: In the section entitled "3.2.4 Correcting HTTPRequest.py", I would suggest that instead of having users edit the file, you could instead distribute your product as a "Monkey Patch" Zope Product that overrides the HTTPRequest.processInputs method with your altered version. You can see an example of this in the XmlFix Product attached to the followign mailing-list item: http://mail.zope.org/pipermail/zope/2004-June/151497.html Basically you would do this: <code> ### Import the HTTPRequest object we want to alter from ZPublisher.HTTPRequest import HTTPRequest ### Save the *old* processInputs method def initialize(context): HTTPRequest._realProcessInputs = HTTPRequest.processInputs HTTPRequest.processInputs = processInputs ### Write a new processInputs method that does what we want def processInputs(self, *args, **kw): if myProductShouldHandleThisRequest: do_stuff() else: ### Hand over to the original processInputs return self._realProcessInputs(*args, **kw) </code> Since this is a Zope Product, the above code would run once every time you started Zope, and is much more "portable" between Zope installations than having the admin edit code. Hope that helps, John Ziniti
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core? I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :) Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it. Richard -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFBv2oRrGisBEHG6TARAgCuAJ0fVQoVsme1ShzPYT3rpw6mE6etXgCfb6Uf sp8baNmBJP1rV7yF/CfikMQ= =olB3 -----END PGP SIGNATURE-----
Richard Jones wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core?
I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :)
Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it.
I would like to have SOAP support in the Zope core (both z2 and z3). We are probably going to be forced to interface with Java based SOAP enabled software next year, and I for one would feel more comfortable being able to say that Zope supports SOAP out of the box... think "important selling point". /dario -- -- ------------------------------------------------------------------- Dario Lopez-Kästen, IT Systems & Services Chalmers University of Tech. "...and click? damn, I need to kill -9 Word again..." - b using macosx
Dario Lopez-Kästen wrote:
Richard Jones wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core?
I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :)
Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it.
I would like to have SOAP support in the Zope core (both z2 and z3). We are probably going to be forced to interface with Java based SOAP enabled software next year, and I for one would feel more comfortable being able to say that Zope supports SOAP out of the box... think "important selling point".
Ha! That's because you are located in Microsoftistan. Also known as "Sweden". :P But I agree, it would be nice with SOAP support out of the box. However, that means including several third-party libraries, which either is a bit complicated, or may be hard due to licensing. One possible way is to add a module (similar to the soapByCignex.py module) to the ZPublisher and use "try/except ImportError" to import it. The third party python modules could then be downloaded and installed and the server restarted, to add SOAP support. -- Lennart Regebro, Nuxeo http://www.nuxeo.com/ CPS Content Management http://www.cps-project.org/
Richard wrote:
On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core? I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :)
There is probably interest, but it needs motivated people like Aruna and you to push it.
Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it.
One problem is that Aruna's approach introduces dependencies to external modules: fpconst, and a patched SOAPy. If these can be resolved, why not. Florent -- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com fg@nuxeo.com
Florent Guillaume wrote:
Richard wrote:
On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core? I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :)
There is probably interest, but it needs motivated people like Aruna and you to push it.
Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it.
One problem is that Aruna's approach introduces dependencies to external modules: fpconst, and a patched SOAPy. If these can be resolved, why not.
Because of those dependencies, I think support "in the core" is not feasible. However, I believe that it should be possible to create a product which solves those issues. This product would either need to monkey-patch the publisher (as outlined by John Zinit earlier in the thread) or else register a new kind of server, which could be configured (like the WebDAV source server) to listen on its own port. For an example of such a Product, see "ZServerSSL", http://sandbox.rulemaker.net/ngps/zope/zssl/ Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com
Hi all - having had to implement a monkey patch product before to enable SOAP, I'd like to make a few observations and a suggestion: - It is a pain to do anything with SOAP because the publisher has a hard-coded idea that anything xml must be xml-rpc - There is currently no easy way around this w/o monkey patching, which then leaves you vulnerable to future changes to the publisher - Opinions on the state of SOAP support in the Python world are far from unanimous - I think it would be premature to put a particular implementation into Zope proper - That said, Zope should make it possible for Cignex and others to provide SOAP support as add-on products without unreasonable contortions So the suggestion: I think we'd be in a better place if we: - Fix the publisher to at least recognize a SOAP request vs. an xml-rpc request - Provide some kind of 'registration hook' so that a Product can register with the publisher to handle SOAP requests - Have the publisher hand off where appropriate to a registered SOAP handler if installed, else return an HTTP NotImplemented or similar if there is no SOAP handler - Apply the KISS rule: only one product can register to the be the SOAP handler, and resist turning this into any kind of grand-unified-pluggable-publisher architecture ;) This would be minimally disruptive to the Zope core, while enabling people interested in SOAP to evolve different solutions without everybody having to buy into a particular approach or implementation right now. Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com
-----Original Message----- From: zope-dev-bounces@zope.org [mailto:zope-dev-bounces@zope.org]On Behalf Of Tres Seaver Sent: Wednesday, December 15, 2004 1:22 PM To: zope-dev@zope.org Subject: [Zope-dev] Re: SOAP Support for ZOPE
Florent Guillaume wrote:
Richard wrote:
On Wed, 15 Dec 2004 06:54 am, Aruna Kathiria wrote:
I did some work regarding SOAP support on ZOPE and published this document on zope.org.
Is there really no interest in getting SOAP support into the Zope core? I've got a guy working on some Microsoft Word stuff at the moment, and he was dumbfounded when he discovered that Zope doesn't support SOAP. In his words, "everyone supports SOAP". Sigh :)
There is probably interest, but it needs motivated people like Aruna and you to push it.
Are there any objections to getting Aruna's patches into the 2.8 codebase? I'd be willing to do the work - but note I know practically nothing about SOAP - I just want to be able to use it.
One problem is that Aruna's approach introduces dependencies to external modules: fpconst, and a patched SOAPy. If these can be resolved, why not.
Because of those dependencies, I think support "in the core" is not feasible. However, I believe that it should be possible to create a product which solves those issues. This product would either need to monkey-patch the publisher (as outlined by John Zinit earlier in the thread) or else register a new kind of server, which could be configured (like the WebDAV source server) to listen on its own port.
For an example of such a Product, see "ZServerSSL", http://sandbox.rulemaker.net/ngps/zope/zssl/
Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Brian Lloyd wrote:
- It is a pain to do anything with SOAP because the publisher has a hard-coded idea that anything xml must be xml-rpc
This would be minimally disruptive to the Zope core, while enabling people interested in SOAP to evolve different solutions without everybody having to buy into a particular approach or implementation right now.
+1 I think these ideas are great, but wasn't it also you who said, "Unfortunately, though, this misfeature has been around for a long time and would break a lot of people if the default were changed." I think getting this changed might be met with some amount of resistance. If we're voting ;-) I vote for biting the bullet and making the change today. John Ziniti
+1
I think these ideas are great, but wasn't it also you who said, "Unfortunately, though, this misfeature has been around for a long time and would break a lot of people if the default were changed." I think getting this changed might be met with some amount of resistance. If we're voting ;-) I vote for biting the bullet and making the change today.
Except that I'm not arguing to change the "default" -- at least not in a backward-incompatible way. Right now, the publisher considers every POST that is xml to be an xml-rpc request. The change I'm proposing would be to first look for a recognizable sign of a SOAP request (SOAPAction header). If found (and *only* if found), we would defer to the SOAP handler. Otherwise, POSTed xml will continue to be treated as xml-rpc. Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com
Brian Lloyd wrote:
So the suggestion: I think we'd be in a better place if we:
- Fix the publisher to at least recognize a SOAP request vs. an xml-rpc request
- Provide some kind of 'registration hook' so that a Product can register with the publisher to handle SOAP requests
- Have the publisher hand off where appropriate to a registered SOAP handler if installed, else return an HTTP NotImplemented or similar if there is no SOAP handler
- Apply the KISS rule: only one product can register to the be the SOAP handler, and resist turning this into any kind of grand-unified-pluggable-publisher architecture ;)
This would be minimally disruptive to the Zope core, while enabling people interested in SOAP to evolve different solutions without everybody having to buy into a particular approach or implementation right now.
A little late, but +1 anyway. -- Lennart Regebro, Nuxeo http://www.nuxeo.com/ CPS Content Management http://www.cps-project.org/
participants (8)
-
Aruna Kathiria -
Brian Lloyd -
Dario Lopez-Kästen -
Florent Guillaume -
John Ziniti -
Lennart Regebro -
Richard Jones -
Tres Seaver