From: "Thomas Weholt" <thomas@bibsyst.no>
Hi,
I want to extend Zope to receive simple objects made by me, put them into a Berkley DB based database located at the server and process the data.
Example :
User scans a cd-rom locally, the created cd-rom-object is pickled, compressed using zlib and transferred to a zope-server, where a special part, the part I want to make, receives the object and creates indexes, reports etc.
Note that pickles are unsafe, a malicious user could send you a pickle of a dangerous object which would be unpickled by the server without a hitch. I could send a pickle of a ZServer Monitor wich accepts connections from the internet, and has a password known by me. I could then log into your Zope Process, using the monitor client. Once inside a python prompt inside you Zope server, I can manipulate your server as the user your Zope install runs at. Now I can try and find weaknesses from within your server. You will have to find another transport encoding for your objects. If your objects are of one class, or a limited number of them, I'd use XML-RPC. Develop a Zope Product that can be called with XML-RPC, and that will create the objetcs for you.
Later on the user can configure how the data shall be processed, indexes created etc. and search his or other peoples data thru zope, like searching yahoo.
The problem is transferring objects to the server. I`ve looked at DOPY and PYRO, but Zope has more features etc.
Any ideas or hints on what documents I should read in the Zope documentation, what source-files I should study to understand this etc. ????
There are lots of examples. Start with the general Zope docuentation and the How-To's on Zope.org. Look through Products on Zope.org, their source code could be of help. And have a look at XML.com, there are several articles on XML and Zope there, one of which is about XML-RPC. Martijn Pieters | Software Engineer mailto:mj@digicool.com | Digital Creations http://www.digicool.com/ | Creators of Zope http://www.zope.org/ | The Open Source Web Application Server ---------------------------------------------