Hi Richard and all,
I have some thoughts about capabilities definition in property map.
Currently, the capabilities is defined like this:
object {
DomainName domain-types<1..*>;
PropertyName prop-types<1..*>;
} PropertyMapCapabilities
It looks all good for IRD example in 7.3 in [EPM] because “ipv4” and “ipv6”
are all belong to Internet Address Domain. But I think this capabilities
definition does not expose the relationship between domain types and
property types. Different domain types may have different set of property
types and a same property name in different domain type may have different
meanings (section 2.5 in [EPM]).
Let us consider the following example, a client receives a IRD information
from a ALTO server,
“my-property-map”: {
…
“capabilities”: {
“domain-types”: [ “ipv4”, “pid” ],
“prop-types” : [ “country”, “state”, “property-only-for-domain-
type-pid”]
}
…
}
and this client may construct its filter property map request like below
since it does not know property “property-only-for-pid” is only for domain
type pid.
{
“entities”: [ “ipv4:192.0.2.0/26”, “ipv4:192.0.2.0/28” ],
“properties”: [ “property-only-for-domain-type-pid”]
}
Responses of this request will be always empty, while this client never
knows that it construct a meaningless request.
One potential solution is that we can define capabilities as a map, domain
-> {properties}.
object {
DomainName domain-types<1..*>;
DomainPropertyTypes domain-prop-types<1..*>;
} PropertyMapCapabilities
object {
[JSONString domain-type];
PropertyName prop-types<1..*>;
} DomainPropertyTypes;
The IRD information in above example can be modified like this:
“my-property-map”: {
…
“capabilities”: {
“domain-types”: [ “ipv4”, “pid” ],
“prop-types” : [
[“country”, “state”], // ipv4->{properties}
[“country”, “state”, “pid-specified-property”]] //
pid->{properties}
}
…
}
With additional information of the relationship between domain types and
properties types, the client will not send meaningless request any more. :)
Bests,
Shawn Lin
[EPM] https://datatracker.ietf.org/doc/html/draft-roome-alto-
unified-props-new
On Wed, Mar 29, 2017 at 4:21 AM, Y. Richard Yang <[email protected]> wrote:
> Dear all,
>
> As multiple discussions, we feel that the unified properties draft (),
> although not a working group draft, can be an important piece to help
> finish several remaining working items.
>
> For those who are not tracking the document, the design might appear to be
> simple: it is after all just a simple key-value map. When conducting a real
> design, many issues, many quite general, however, appear. Hence the design
> can benefit from good feedback from the good talents of this group. The
> objective of this email is to make clear the salient points of the current
> design. We will go over and discuss them Friday during the WG session.
>
> D1. The goal is to provide properties to entities.
>
> D2. Each entity must have an entity name to be identified. An entity name
> is a typed (domained) string, in a format of <domain>:<name>, e.g.,
> "ipv4:192.1.1.1", "pid:myid1", "ane:myane111". The <domain> provides
> essentially the type of the name.
>
> D3. There are essentially three types of domains: global, per-resource,
> per-query (dynamic):
>
> D3.1 ipv4 and ipv6 are global, in that they are not dependent on
> particular resources;
>
> D3.2 pid depends on a particular network map resource;
>
> D3.3 ane (abstract network element) may depend on a particular query of an
> ALTO resource. So far we cannot handle such case well. There can be
> multiple design options, but each adds more complexity.
>
> D4. Aggregation of entities is allowed, to improve scalability. Hence, an
> entity name may be either an individual entity or a set. An example is an
> IP prefix.
>
> D4.1 An implication of 4. is that we need to handle property inheritance.
> Multi-inheritance is tricky, as OOP multi-inheritance demonstrated. So far
> longest prefix matching (LPM) avoids the problem. But we need to decide if
> we want to have a spec on future design of this aspect.
>
> D5. Property names are in a global namespace, to enforce global,
> consistent usage of property names.
>
> It is not a long list but contains many interesting design points.
>
> Looking forward to good discussions soon!
>
> Richard
>
>
>
> _______________________________________________
> alto mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/alto
>
>
_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto