Subject: On attribute-based queries

From: Stuart Cheshire <[email-masked]>
Date: Tue, 30 Jul 2002 21:59:44 -0700

>Or "who has the network storage with the engineering groups
>files?" Or "who has a link to the internet that will cost less
>than 1c/megabyte?" Note: I'm not looking for _a_ way to do this,
>I'm looking for _the_ way to do this, that will work in general.

>Or is there a way of phrasing a service discovery query "find me
>the file with zcip in the name"?

I hear these contrived examples of attribute-based queries all the time,
and I believe they are so popular because they are so cool-sounding.
The more contrived the example, the cooler it sounds.

I believe the mistake is to assume that a cool-sounding example on a 
PowerPoint slide and a useful deployable protocol are the same thing.
A useful deployable protocol is frequently dull and boring. The hard
thing is having the courage to work on something dull and boring.

In reality, who wants to have to type in some query language to find 
something? In reality, 99% of the time people want to work the way the 
old AppleTalk Chooser worked: You open the Chooser, you click on the file 
sharing icon, and a short list of choices appears. You click on "Brad 
Hards's Linux Laptop", and the remote network file system mounts so you 
can access the files.

The motivation for having a UI where the user can enter some 
attribute-based query language is based on the assumption that when you 
open our future "Chooser", there will be so many thousands of available 
file servers that no human could possibly find the one they want, so they 
will have to interface with the network through this query language to 
narrow the list of choices. This is, to me, the boil-the-ocean solution. 
(How do you make a cup of tea? 1. Put a tea bag in a cup. 2. Boil the 
ocean. 3. Pour one cup of boiling ocean water over the tea bag. This is 
(a) a lot of work, and (b) the resulting tea doesn't taste very good.)

I'm not arguing that there aren't long lists in the world, just that they 
are sufficiently varied that a one-size fits all protocol can't work for 
all of them. A network with a thousand printers is a large network, and 
large networks are managed by administrators, and once you have 
administrators, lots of options are available to you. My recommendation 
to a company with a thousand printers would be to set up a nice Web site 
with a nice user-interface. Perhaps it could have a pop up menu listing 
the company's buildings, and checkboxes for attributes like "Double 
Sided" or "Automatic Stapler", and it could display nice graphical maps 
of the company buildings showing exactly where the selected printer is 
located. A generic SLP client can't know the list of the company's 
buildings in order to present the nice popup menu. Doing this with a Web 
page means that the company can present a nice customized UI that meets 
their company needs (if they have no printers with automatic staplers, 
then they wouldn't need that checkbox) without having to develop and 
distribute client software to implement this UI on every single platform.

The proof-by-example of how this works is on-line shopping Web sites: 
There are millions of books, but Amazon didn't invent some "Book Location 
Protocol" (BLP) to let you choose the book you want. Amazon implemented a 
Web site that lets anyone with a Web browser find the book they want by 
searching for author, title, subject, publisher, etc.

I believe the world already has the necessary big-network solutions for 
the big-network problems. What we are woefully lacking is the 
small-network solution for the user at home, or the school classroom, 
where there are only one or two printers, and no one to set them up.

Stuart Cheshire <[email-masked]>
 * Wizard Without Portfolio, Apple Computer
 * Chairman, IETF ZEROCONF
 * www.stuartcheshire.org

---

From: "Philip Nye" <[email-masked]>
Date: Wed, 31 Jul 2002 09:47:27 +0100

> From: "Stuart Cheshire"

> I hear these contrived examples of attribute-based queries...

> ...In reality, who wants to have to type in some query language to find
> something?

I am surprised that Apple of all people might suggest that because a query
appears on the wire in an arcane form, that the user should see this.

Of course the chooser software has to filter
"service:printer:http://169.254.17.202;(name=Epson Stylus 900n)" to present
the user with something more friendly - like showing "Epson Stylus 900n" in
its printer selection (assuming that the user hasn't even changed the
manufacturers default name to something more useful).

> administrators, lots of options are available to you.

This idea might be true now but it is very rapidly becoming false - IP devices
of the "internet toaster" variety are rapidly getting smaller and much more
widespread. I work in a field (entertainment technology) where networks with
several thousand devices came over the horizon a while ago and are now
knocking on the door. These networks are actually small in their scope and
certainly don't have expert system administrators behind them - there are even
companies wanting to manage them from Apple computers.

> where there are only one or two printers, and no one to set them up.

The persistence of the idea that a network with a lot of small devices will be
a large network with plenty of resources or is necessarily complex, is a
barrier to progress.

This is _not_a big network problem. The school doesn't have a network in the
classroom. It has a network in the whole school. This network will soon have
not only lots of printers and file shares but also coffee machines, learning
resources of all sorts, cooking equipment, environmental controls, lighting
controls, musical instruments and so on - and still no one to set them up. The
hard pressed teachers want to teach kids - not become sys-admins.

SLP presents a glimmer of hope in this jungle. I cannot see that DNS-SD does.

Philip Nye

---

From: Brad Hards <[email-masked]>
Date: Wed, 31 Jul 2002 19:19:14 +1000

> The more contrived the example, the cooler it sounds.
It is a contrived example, but it certainly isn't intended to be cool.

I want to understand the logic - I've never been to a IETF meeting,
and am unlikely to. But I still want to make use of this technology,
and I need to really understand it to make the most use of this,
and to help others use it too.

So the questions are phrased in terms of a user goal. I know that
the implementation is going to be hard (and possibly boring). But
I am going to completely stuff the implementation if I don't 
understand the fundamentals.

<snip>
> Hards's Linux Laptop", and the remote network file system mounts so you
<snip>
This answers the question (I think). The way to do a search by name is:
* we map all the available drives.
* we search the drives using standard tools (eg, find -name '*zcip*' -print)

I have no problem with this approach (or any approach). I just want to
understand it.

Brad

-- 
http://conf.linux.org.au. 22-25Jan2003. Perth, Australia. Birds in Black.

---

From: "John C. Welch" <[email-masked]>
Date: Wed, 31 Jul 2002 11:33:15 -0400

> * we search the drives using standard tools (eg, find -name '*zcip*' -print)

The first one is done by people who run servers, and as to the
second...well, lets just say that if you spring that on the average user, or
group of users, you don't want to have any pitchforks or torches about.

I may be harping on the user side of things, but that's who is going to be
stuck with this. That's why people still love the way the Chooser works.
Geeks and engineers will use three hundred alternate ways to do something.
Ma and Pa Kettle want something that *is* point and drool...and if they
could make it require even less thought, they'd want that even more.

john

-- 
John C. Welch
IT Manager
MIT Police
(617) 253 - 3093 work
(508) 579 - 7380 cell
(617) 253 - 8822 fax

---

From: Tim Jansen <[email-masked]>
Date: Wed, 31 Jul 2002 20:18:36 +0200

On Wednesday 31 July 2002 06:59, Stuart Cheshire wrote:
> [...]

Service discovery is not limited to servers or printers. KDE 3.1 will have a 
feature called "Desktop Sharing" that is quite similar to Apple's Remote 
Desktop or WinXP's Remote Assistance. It allows an administrator to connect 
to a user's computer, watch the users desktop and, possibly, control his 
mouse and enter keystrokes. Each desktop sharing service announces its 
availability using SLP, together with the user's full name and user id. 
This allows an administrator to search for the user by name or id. Sometimes 
the administrator may only know the first or last name, so he can query for 
all Johns or all Millers. Or when the admin does not know how to spell the 
name he can enter a part of the name.

bye...

---

From: "John C. Welch" <[email-masked]>
Date: Wed, 31 Jul 2002 14:18:10 -0400

> name he can enter a part of the name.

But that isn't unique to SLP, and in a secure environment, you're seriously
considering disabling every non-essential protocol anyway. DNS is essential,
SLP is not.

john

-- 
John C. Welch
IT Manager
MIT Police
(617) 253 - 3093 work
(508) 579 - 7380 cell
(617) 253 - 8822 fax