[Zope3-dev] Local site configuration is too hard
Jim Fulton
jim at zope.com
Mon Feb 21 10:58:08 EST 2005
Roger Ineichen wrote:
> Hi Jim
>
>
>>-----Original Message-----
>>From: zope3-dev-bounces+dev=projekt01.ch at zope.org
>>[mailto:zope3-dev-bounces+dev=projekt01.ch at zope.org] On
>>Behalf Of Jim Fulton
>>Sent: Monday, February 21, 2005 4:18 PM
>>To: zope3-dev at zope.org
>>Subject: [Zope3-dev] Local site configuration is too hard
>>
>>It's too hard on many levels:
>>
>>- It's too hard for site managers to use
>>
>>- It's too hard for programmers
>>
>> - We make people implement a dead chicken: ILocalUtility. If they
>> don't make this meaningless offering, their objects won't be used
>> as utilities. Heck, they won't even be addable to site-management
>> folders.
>>
>> - The Python APIs for registering utilities are too hard to use.
>>
>>On the bright site, ZCML is user-friendly by comparison.
>>
>>We need to do better. I think we need to review how we got here and
>>brainstorm and try some different ideas.
>>
>>Here's a start. These are more or less random observations:
>>
>>First, a lot of complexity arose from the desire to support
>>through-the-database product development, distribution, installation
>>and update. This was driven by some issues with updating software in
>>ZEO clusters. We eventually figured out another approach for updating
>>ZEO clusters and have abandoned the goal of through-the-database
>>development. This allowed us to simplify the local-configuration
>>machinery quite a bit, as Stephan has recently and heroically done.
>>
>>The component architecture is very powerful and provides a clean
>>development model, however, it isn't helpful to force site managers to
>>use it as the basis of site management. A site manager knows that they
>>need to add some kind of component, however, they don't understand the
>>type of the component in terms of a dotted interface name. I think
>>that the concept of adding objects to a site to perform a function is
>>fine. After all, it worked well in Zope 2. I even think that the
>>concept of registration is OK, if we can cast it in the right light.
>>I think it's reasonable that we will need to tell the system whether
>>and how to use an object is reasonable, but we should make this as
>>easy as possible for end users.
>>
>>To make our job easier, we should concentrate on utilities for now.
>>Zope X3.1 should not include "modules", "page folders" or adapter
>>registrations. I would go so far as to rip this stuff out of the
>>trunk. We'll add it back later.
>>
>>We can't improve things any more before X3.1. Improving the
>>site-management experience for managing utilities has to wait for
>>X3.2.
>>
>>The pluggable authentication utility is only usable by experts today.
>>I think it provides a poignant, though perhaps extreme, example of the
>>challenges if local site management.
>>
>>I think the basic idea of tools, trying to raise the configuration
>>abstraction above utility interfaces was sound, however, I think
>>the execution has not turned out well. Part of the problem
>>is that the
>>original assumption was that there would be certain types of utilities
>>for which there would be many instances, differentiated by name. For
>>example, there might be multiple database adapters, or multiple
>>caches. In practice, there usually aren't multiple utilities of the
>>same time. Even when there are, there aren't many. Treating tool
>>types as virtual folders is way to heavy in most cases.
>>
>>Another problem with the existing tool mechanism is that it creates
>>virtual folders that hide site-management folders. I don't think this
>>is really helpful. It makes things more mysterious.
>>
>>Content managers add objects to folders to build a site. What's
>>wrong with site managers adding objects to folders? Nothing, IMO.
>>I think it's helpful to review how we got to where we are. We used to
>>have lots of registries: Services, Utilities, Database Adapters,
>>Caches, etc... People had 2 places to manage components, the
>>individual registries and the site-management folders. We decided to
>>try emphasizing the registries and deemphasizing the folders. OK, we
>>tried and, I think, we failed. The current UI is mysterious.
>>
>>I suggest going back your our Zope roots. Managing a site should
>>happen by adding objects to and managing objects in site-management
>>folders. When we add an object to a site-management folder, we offer
>>to register it. We offer two registration interfaces. The default
>>interface checks to see if the object provides any tool types. If it
>>does, it offers to register it as one of the tool types, showing the
>>tool descriptions (rather than dotted interface names). There can be
>>an advanced interface that shows the actual interface names as we do
>>now. Perhaps there could be a button for toggling between the advanced
>>and basic interfaces. In general, however, we need to bother to
>>provide a registration UI that sucks a lot less than what we have
>>now. In particular, we need to provide some helpful text that explains
>>what all of the inputs mean.
>>
>>OK, enough for now. Thoughts? Comments? Anybody else have any ideas?
>
>
> Why not use a registration tasks/wizards.
Yes, that could be helpful.
> I think the site management is not that bad,
I think you know too much to be objective now. :)
> but configuration is more like a task then container and item.
Yup
> It would be nice to have a directive where I can register
> a task for adding or configure a utility.
Yes, perhaps
I agree that we need ways for the developer of a utility to
improve the registration experience. Wither by providing an
explicit registration UI (task) or by providing hints (e.g. tool
type) that can allow the default UI to do a better job.
> There whould be two kind of task, add utility in a defined way
> and configure utility which can be used for allready added utilities.
>
> A developer could develope tasks in python and register them
> as possible task which can be fired on a site manager folder
> by a user.
>
> I think we don't have problems with the site management folder
> implementation now. Stefan did some great work which simplifies
> the hirarchie.
I think you are right. I think the architecture is OK.
(Well, I;d like to get rid of the requirement that local
utilities provide ILocalUtility, but that's another topic.)
> The next step I think is just to provide task oriented
> adding processes and not sugesst peopels its just a folder
> an you can add items which will work.
>
> Possible task can offer just a 'Add' button or for complexer
> tasks it should be possible to provide different pages like
> add wizards or edit wizards.
>
> I agree with, that we can't give this UI to the users right now.
> But perhaps it's ok to add a new level at top of this existing
> site management implementation instead reinvent the wheel.
>
> I can't imagine that we get an easier way if we reimplement it.
I'm not suggesting that we reimplement the underlying architecture.
> I think we have to implement more logic and userfriendly UI on
> top of this concept.
I agree.
Jim
--
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the Zope3-dev
mailing list