Subject: Re: [alto] What is an ALTO server?

From: Wendy Roome <[email-masked]>
Date: Wed, 24 Jul 2013 12:02:54 -0400

Folks,

I won't bother to quote all of the previous discussion; I'm sure you've
seen it.

To start, yes, -17 added some complexity: ids, uses, dependent IRDs, etc.
But I don't see that as a problem. Any decent programmer can handle it. In
particular, links to other IRDs are no big deal. When given the uri for an
URI, I'd expect any client would walk the tree and collect all the
resources. So when I refer to "an IRD", I really mean all services
reachable from that IRD.

The problem I see is that -17 allows multiple network maps in one IRD, but
does not give the client any way to decide which to one to use. Yes, the
maps have persistent IDs, but those names are server-specific.

So to function, an ALTO client now needs the network map id as well as the
URI of the IRD.

>From the discussions, it seems like y'all think there are two types of
clients. One is "manually configured". The client software requires a URI
and a network map name as configuration parameters. When deploying the
client, a human familiar with the needs of the application locates an
appropriate ALTO server, decides which network map is appropriate for this
app, and passes that URI and ID to the app.

That's fine, as long as you accept the manual configuration.

But I gather there's also an "automatic discovery" class of client. They
do not require an administrator to set them up; they just locate the ALTO
server automatically. But ALTO discovery returns only a URI, not a network
map id. So if the IRD has more than one map, the client cannot tell which
one to use. It's like being told you can get the time from the clock in
room 6, and discover that room 6 has three clocks labelled X Y and Z.

I think there are two ways to solve that:

   1. Require that an IRD returned by discovery has only one network map.
or
   2. Define a mechanism to mark one of the maps as "default".

---

From: Wendy Roome <[email-masked]>
Date: Wed, 24 Jul 2013 12:29:33 -0400

Here's one more take on that question.

I regard an "ALTO Server" as a collection of service resources. Each
resource has a unique ID. Dependent services are updated in a timely
fashion -- eg, if costmap X uses network map Y, when Y changes, X will
reflect those changes within minutes, rather than hours or days. IRDs are
directories of services. The server can have multiple IRDs, with different
groupings of services, and a service can be in more than one IRD.

In addition, we assume a given cost-metric is defined the same way for all
services, so numerical values can be compared. Eg, if two unrelated cost
maps give "routingcost", a value of "100" means roughly the same thing in
both.

Suppose a server offers three different network maps. It might offer one
master IRD with every service: all three network maps, plus their cost
maps. In addition, the server might offer three restricted IRDs, each with
only one network map and the cost maps associated with it. Note that these
IRDs would not link to each other. The server might also have an
endpoint-services IRD, with just the endpoint cost and property services
(no network map or related cost maps).

To use an analogy, I think of an ALTO server as a file system. The service
resources are files, the IRDs are directories, and the resource IDs are
inode numbers.

	- Wendy Roome