Something which I have been tossing around in my head and am about to jump into with both feet is a Zope like archetecture for distributing user interfaces anywhere. Zope like functionality would be a sub set of the project. Display could be within a browser or within X or under Windows even. I would be extending the concetp of the user interface to include just about any output/input. I am thinking of tying it in alot more closely with XML as opposed to dtml or some simmiler construct. This would allow for easy extention of the definition language ie if there were not already a dtml-unless you could make one. If anyone is interested let me know. I have a site registered at sourceforge but am still working on the project plan. The primary development language will be python, but I want it to be open so components can be written in any language and I am considering forth for speed ups. ( I wonder if you could write a python interpriter in forth, hmmm...)
- Bryan Patrick Coleman
-----Original Message----- From: Mike Fletcher [SMTP:mfletch@tpresence.com] Sent: Thursday, May 11, 2000 7:35 AM To: zope@zope.org Subject: RE: [Zope] This is completely bogus but..
There is little in the way of indirection or encapsulation within Zope. That is, most products reach directly into other products to find classes/functions. When you reload a product, to properly reload, you will need to reload every product which is dependent on that product. Furthermore, you'll need to track down every class and instance reference which uses the product's elements (which may be, for instance, stored in some global registry of available classes (which might be built by a given product), or might be in the object cache etc.) and rebuild/replace those items.
You could try clearing the object cache, scanning the global registries for potentially dependent instances or classes, then re-loading all products (in case some have global registries). I don't think this will be an enormous amount better (time-wise) than restarting. Nothing is particularly impossible, but the process is unlikely to be simple or straightforward given the current architecture.
You could try re-architecting Zope so that it uses more of a traditional plug-in API, that is, some set of methods are registered/watched on an object, all interaction between the object and the system goes through that API. Not sure about how you do stand-alone objects in that model, likely have to simply rebuild all objects when a product is rebuilt.
No simple solutions, but at least I'm not the one planning to work on it :) , Mike
-----Original Message----- From: news-list.zope@innominate.de [mailto:news-list.zope@innominate.de] Sent: Thursday, May 11, 2000 8:06 AM To: zope@zope.org Subject: Re: [Zope] This is completely bogus but..
Chris Withers wrote:
This could be a good thing if we want to hotpatch a server of some
sort.
-Morten
There was a thread on this a while back but I don't think there was any conclusive outcome.
I'd love so see Zope provide a facility for updating of products without restarting the server. It'd make python product development time a lot quicker and besides, restarting the server every time you rev a python product or two isn't really the sort of thing you want in a production system...
To be honest, I don't really see why you should need to restart the server anyway...
Comments?
agree 100%. -- heiko.stoermer@innominate.de innominate AG networkingpeople fon: +49.30.308806-0 fax: -77 web: http://innominate.de
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )