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

From: Wendy Roome <[email-masked]>
Date: Thu, 18 Jul 2013 16:07:51 -0400

Thanks for asking!

Personally, I prefer to think of "an ALTO Server" as *one* network map and
all the cost map resources associated with that network map. If an
organization offers several network maps, fine! They just offer several
ALTO Servers.

Note that "ALTO Servers" are orthogonal to "boxes" or "hostnames". One
"ALTO Server" can span many physical hosts. Or several "ALTO Servers" can
use the same box. That's up to the provider. The IRD gives the provider a
lot of flexibility. Our examples not withstanding, nothing says that all
services advertised in one IRD have to be on the same host.

Here's why I prefer that over the current scheme of multiple network maps
within one server:

* If there are multiple network maps, the client must be configured with
the id of the desired network map, as well as the uri of the IRD. If
there's one network map per server, the client just needs the uri of the
IRD. Thus the "one network map" interpretation pushes the 'id' of the
network map into the uri of the IRD. Isn't one of the tenants of "REST"
that resources should be identified by uris?

* If an ALTO server has multiple network maps, the cost-map services are
partitioned by network map. There are no interactions between them, and no
advantage to folding them together. The client picks the network map it
wants, and ignores the cost services associated with other maps.

* Draft 17 adds a lot of baggage to partition the set of services by
network map. If a server has one network map, none of that is necessary.

Okay, Sebastian, I was going to keep my big mouth shut. But you had to ask!

	- Wendy Roome

On 07/18/2013 15:43, "[email-masked]" <[email-masked]> wrote:

>Message: 2
>Date: Thu, 18 Jul 2013 21:18:16 +0200
>From: Sebastian Kiesel <[email-masked]>
>To: alto <[email-masked]>
>Subject: [alto] What is an ALTO server?
>Message-ID: <[email-masked]>
>Content-Type: text/plain; charset=us-ascii
>
>Dear all,
>
>at a first glance the the question may seem strange, but reading the
>recent discussions on Costmap IDs / IRD structures,  I'm wondering how
>we define "an ALTO server"?
>
>- A physical box?  (hopefully not!)
>
>- The software process that listens on <IPaddress>:80/tcp and/or 443/tcp ?
>
>- All the information resources that are listed in an IRD with
>  a given URI?
>
>What do you think?
>
>Thanks
>Sebastian
>
>

---

From: Sebastian Kiesel <[email-masked]>
Date: Thu, 18 Jul 2013 22:30:55 +0200

Wendy,

Thanks for answering!  I know that this might be the starting point for
a longer discussion thread but I feel it has to be done ...

My approach for finishing the costmap discussion would be based on two
steps:

1. Agree on a definition what "an ALTO server" is

2. Optionally add furhter constraints/rules/requirements for "an ALTO
   server" as defined in step 1.

-----

For step 1, my feeling is that the definition should be related to
the IRD, as this is also the result of the discovery procedure.

My proposal
> "An ALTO Server is an IRD with a given URI, plus all the information
> resources listed therein"
would allow it to distribute an ALTO server over multiple boxes,
processes, etc.

For step 2, we *could* then add the constraint that an IRD may only
list one network map.  I can understand your arguments below, but
I still need to think about it for a short while.

Does this make sense to you?

Thanks
Sebastian

On Thu, Jul 18, 2013 at 04:07:51PM -0400, Wendy Roome wrote:
> _______________________________________________
> alto mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/alto

---

From: Richard Alimi <[email-masked]>
Date: Fri, 19 Jul 2013 00:42:40 -0700

As one of the editors who needs to ensure this draft gets done ASAP, we
need to close on this issue of dependencies in which we discussed having
multiple network maps per server.  We opened a thread on June 20th asking
for input on a proposal and received positive feedback. Based on the
responses, we implemented what we believed satisfied the discussion there.

I recognize that there are different opinions here, but we need to have a
single conclusion that can go into the draft.  Can the chairs help us to
come to a consensus here?

Thanks,
Rich

---

From: Sebastian Kiesel <[email-masked]>
Date: Fri, 19 Jul 2013 09:55:58 +0200

Richard,

sure. we should get it done ASAP. but i am wondering whether we can ever
reach consensus if we have different understandings what a server is.

if you believe this is an academic discussion and the issue can be
resolved without a definition, forget my question ...

Sebastian

---

From: Richard Alimi <[email-masked]>
Date: Fri, 19 Jul 2013 01:12:34 -0700

> resolved without a definition, forget my question ...

If it helps, here's how I would interpret it and why:

RFC 5693 defines the following:

   ALTO Service:  Several resource providers may be able to provide the
      same resource.  The ALTO service gives guidance to a resource
      consumer and/or resource directory about which resource
      provider(s) to select in order to optimize the client's
      performance or quality of experience, while improving resource
      consumption in the underlying network infrastructure.

   ALTO Server:  A logical entity that provides interfaces to the
      queries to the ALTO service.

The protocol draft states the following:

   In this architecture, an ALTO Server prepares ALTO Information; an
   ALTO Client uses ALTO Service Discovery to identify an appropriate
   ALTO Server; and the ALTO Client requests available ALTO Information
   from the ALTO Server using the ALTO Protocol.

The ALTO Protocol is a RESTful protocol which is built upon links
between resources.  As such, I interpret ALTO Server in the way that
Richard Yang mentioned earlier  (analogous to "website").

> > On Thu, Jul 18, 2013 at 1:30 PM, Sebastian Kiesel <[email-masked]
> >wrote:
> >
> > > Wendy,
> > >
> > > > Personally, I prefer to think of "an ALTO Server" as *one* network
> map
> > > and
> > > > partitioned by network map. There are no interactions between them,
> and
> > > no
> > > > Okay, Sebastian, I was going to keep my big mouth shut. But you had
> to
> > > ask!
> > > >
> > > >       - Wendy Roome
> > > >
> > > >

---

From: Sebastian Kiesel <[email-masked]>
Date: Fri, 19 Jul 2013 10:30:54 +0200

Hi Richard,

>    from the ALTO Server using the ALTO Protocol.

Sure. I know these paragraphs. But these would be compatible with all
of the three definition approaches in my original mail (see below).
So I am wondering whether we need a more precise definition. What is
the unique thing that defines an individual ALTO server? The single IRD,
the single network map, ...?

> Richard Yang mentioned earlier  (analogous to "website").

I fully agree.

Thanks
Sebastian

---

From: Enrico Marocco <[email-masked]>
Date: Fri, 19 Jul 2013 10:50:47 +0200

> the single network map, ...?

I may be missing something, but I actually don't get what we'd gain in
redefining concepts that are very common to most protocols, and in
particular to HTTP that ALTO builds on.

To turn the question around, what's the server when you open a web URL
in your browser? The L2 load balancer in front of the datacenter that
you'll hit first? The chain of reverse proxies you're likely going to
hit? The worker process putting together the biggest amount of bytes
that will go in the HTTP response you'll get in return? The virtual
machine on which such process runs? The physical box?

Again, I may be missing something, but this looks like a slippery slope
I'd rather not go to..

Enrico

---

From: Sebastian Kiesel <[email-masked]>
Date: Fri, 19 Jul 2013 11:44:29 +0200

Enrico, all,

> Again, I may be missing something, but this looks like a slippery slope

The point behind my question is, when I read the thread on costmap
dependencies there are several statements what an ALTO server should
(not) do or have, e.g. more than one network map.  As an example, let me
quote a mail from Wendy:

> (1) I certainly agree that there is value in allowing a provider to offer
> multiple network maps. I merely suggested that when provider does that, we
> regard each network map, and the associated cost services, as a different
> ALTO Server. So if a provider has several network maps, they offer one ALTO
> *Service* with several separate ALTO *Servers*.
[Message-ID: <[email-masked]>]

So I was wondering what exatly is the ALTO server.

Asking about physical boxes or TCP sockets was just to challenge 
you - of course this discussion is about restrictions we should or
should not impose on sets of information resources.  

So maybe it would indeed be wise not trying to define exactly what an
ALTO server is, and instead avoid the term in the Costmap dependency
discussion thread  (e.g., say that an IRD should not list more than one
network map, if you think this is desirable).

Thanks
Sebastian

---

From: Enrico Marocco <[email-masked]>
Date: Fri, 19 Jul 2013 12:34:52 +0200

> network map, if you think this is desirable).

I agree.

Enrico

---

From: Richard Alimi <[email-masked]>
Date: Fri, 19 Jul 2013 20:33:39 -0700

On Fri, Jul 19, 2013 at 1:30 AM, Sebastian Kiesel <[email-masked]>wrote:

> > On Fri, Jul 19, 2013 at 12:55 AM, Sebastian Kiesel <[email-masked]
> >wrote:
> >
> > > Richard,
> > >

I don't think we should be defining a "server" as being parameterized by
certain resources in the ALTO protocol.  A server is the logical entity
with whom the client is interacting when it executes the steps documented
in the protocol.  (And I tend to think the definitions we have already
convey that.)  Extending the protocol in the future would be hampered if we
started defining "server" by some set of resources that were defined in the
base protocol.

> > > > > > Note that "ALTO Servers" are orthogonal to "boxes" or
> "hostnames".
> > > One
> > > > > > lot of flexibility. Our examples not withstanding, nothing says
> that
> > > all
> > > > > > Here's why I prefer that over the current scheme of multiple
> network
> > > maps
> > > > > > within one server:
> > > > > >
> > > > > > * If there are multiple network maps, the client must be
> configured
> > > with
> > > > > > there's one network map per server, the client just needs the
> uri of
> > > the
> > > > > > * If an ALTO server has multiple network maps, the cost-map
> services
> > > are
> > > > > > advantage to folding them together. The client picks the network
> map
> > > it
> > > > > > On 07/18/2013 15:43, "[email-masked]" <
> [email-masked]>
> > > > > wrote:
> > > > > >
> > > > > > >Message: 2
> > > > > > >recent discussions on Costmap IDs / IRD structures,  I'm
> wondering
> > > how