[Zope3-dev] More name game suggestions
Shane Hathaway
shane@zope.com
Sun, 9 Dec 2001 10:28:03 -0500 (EST)
On Sun, 9 Dec 2001, Phillip J. Eby wrote:
> Wow, this all sounds pretty confusing to me. Is a database connection a
> service or a utility? If you'd asked me before this e-mail, I'd have been
> certain it was a service. Now I haven't a clue.
IMHO a database connection is neither. There would be a database
connection service where you can register database connection components.
> Honestly, from what you've described, it sounds to me like the names are
> backwards, because to me a Service would be something you'd want to have a
> lot of, with relatively few Utilities (based on the names alone). Also, if
> the purpose of a Service is to register components, then why isn't it
> called a Component Registry? I'd think that a service was any component
> that could be looked up "placefully" by name or interface, and a Component
> Registry would be a specific kind of service dedicated to registering other
> components.
A Linux box has lots and lots of "utilities". A utility in the component
architecture is a lot like a self-contained executable such as "ls" or
"vi".
A Linux box has relatively few "services". (And each kind of service is
listed in /etc/services.) Services usually require configuration.
> Personally, I think having such a narrow definition of "service" is going
> to be a bad idea, from a marketing perspective if nothing else. What about
> "web services"? You're basically saying "we want relatively few services",
> which sounds really bad in a marketing context. :) Now, if you say, "we
> want relatively few component registries to avoid confusion of where to
> look things up, but you can have all the other kinds of services you want,"
> that sounds much better. :) Utility, meanwhile, just doesn't sound like
> it belongs at all.
There's certainly an overlap in terminology. "Web service" is bound to
overlap anything we might call "service" because in Zope any object can be
used as a web service! Do you think "service" should be renamed?
Note that there are no absolute rules--a service is not necessarily a
component registry. For example, we're looking at creating an
IAuthenticationService. It doesn't necessarily use any other components
to get its work done.
> Take it from the author of the infamous ZPatterns... awkward terminology
> can really hinder the adoption of a technology. :)
Well, we really are reusing existing terminology. Over a year ago I wrote
a little utility in Python that reads GEDCOM files, producing XML events.
To use this in the component architecture, I simply specify interfaces and
register it as a utility. What used to be a utility is now... a utility.
;-)
Shane