Re: [Zope] Zope,Python,Corba - which way to go
On Fri, 22 Oct 1999 14:45:33 +0200, Marco Stipek wrote:
I'm currently working on a project, which requires to have access to a Corba ORB (currently Fnorb is used). Does anyone played a little bit with Corba, Python and Zope?
I have played a little with Fnorb + Zope, creating a product called ZCorbaIF. Your provide an Naming Service URL when you create an instance of it, and it makes the methods of that CORBA object available to Zope. It is modeled after the ZSQL stuff, but is not usable in a general fashion yet. It's little more than a proto-toy right now.
My following Questions are not completely answered for me yet: a) How to handle the Corbaclient in a multi threaded environment.
Fnorb supports multi-threaded clients and servers, if you select the Threading model in it's configuration file (or cmdline option).
b) I think it's a bad Idea to use an Extension Method. Thus every Clientrequest leads to the same process of getting the ref and than getting an object handle throughout a factory. If I understand right ZClasses and Products are initialized at Zope server start time. Then I think is best to use them for doing the initial Job (getting references) and presenting them through a well defined Interface.
Perhaps this is what you are referring to, but you can copy the client interface .py files that Fnorb generates into the Zope Extension directory ($SOFTWARE_HOME/Extensions or $INSTANCE_HOME/Extensions) and invoke the CORBA methods that way. You would store the stringified object ref as persistent data in your Zope object, and then convert it to an object handle each time -- this is not that slow as it does not involve a network call -- the stringified form is just unpacked and turned into a (host, port, obj) instance. This works but is not my preferred way, long term.
c) How exactly is the life circle of: - Product Objects - External Method Objects - ZClasses
Maybe you have some hints or links for me, or could something tell about your own experiences.
The -true- solution to this is to write a proper Zope Connector. While Zope comes with an SQL one, it does support the creation of others. The sharing of a CORBA object reference across multiple threads is the kind of thing Zope Connectors are designed for, just as they share an SQL database session across Zope threads. However, (A) how to do so is not (yet) documented and (B) as I understand from Michel Pelletier, the connector architecture is undergoing major redesign with their client-paid work to *efficiently* multithread and support sub-transactions for the Sysbase SQL API. (A) doesn't stop me but because of (B) I've set my CORBA work aside for a couple of months, to let things develop in this area. Zope is still quite new and has plenty of gaps just waiting to be filled. That is the excitement of it. But considering that my core accounting system is CORBA and Bobo (old ZPublisher) based, CORBA support in Zope is very important to me so that I can migrate my financial apps into Zope, therefore a seamless CORBA (Z)Product will be forthcoming, probably in December. -Jeff Rush
participants (1)
-
Jeff Rush