OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

xri message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: RE: [xri] Decision on Ref "backtracking" issue

After looking at this again, I realize I misunderstood what Gabe meant
by backtracking.  I do not think that we should backtrack to the
previous XRD.  For authority resolution only the XRD for the current
sub-segment should be used to try to locate the next segment.  Likewise
in service selection only the final sub-segment XRD should be used for
service locating.  

I vote for option 2.  I think that we should try all Refs in the current
XRD and only error if they all fail.

I-Name:  =les.chasen 
-----Original Message-----
From: drummond.reed@cordance.net [mailto:drummond.reed@cordance.net] 
Sent: Sunday, January 22, 2006 3:41 AM
To: xri@lists.oasis-open.org
Cc: drummond.reed@cordance.net
Subject: [xri] Decision on Ref "backtracking" issue

First, for anyone unfamiliar with the Ref "backtracking" issue in XRI
resolution, the question is where we draw the line in terms of required
behavior for a resolver when it comes to following the XRIs contained in
Ref elements (which I'll just call "Refs" in this message).

Based on the discussion among the editors so far, it appears we have

1) Stop at the very first Ref in the current XRD and error if it fails.

2) Try all Refs in the current XRD and error only if all of them fail.

3) Try all Refs in the current XRD, and if they all fail, then
to any previous XRDs and try all of them, and only if they ALL fail
the resolver fail.

Gabe has proposed that we not require #3, since it is both the most
complex and can take the most time. I agree.

At the other end of the spectrum, Les' message below proposes that we
stop at #1, since there may be a good reason if the first Ref in an XRD
doesn't work that the resolver should try the others.

So the proposal on the table now is to take a middle course and require
only that if resolution of the first Ref in an XRD fails, the resolver
must (subject to its own timeout constraints) try the others in priority
order, but it is NOT required for a resolver to "backtrack" to previous
XRDs and try earlier "untried" Refs.

Anyone who disagrees with this proposal, please send email to the list
with an alternate (preferably by end of day Monday USA -- silence will
deemed consensus ;-)

For reference, here's what the actual wording might look something like:

"If a client resolver is not able to find the requested service endpoint
in the current XRD, or if the URI(s) for that service endpoint do not
produce a successful response, the client resolver MUST (subject to its
own timeout constraints) attempt resolution of the highest priority Ref
the current XRD. If that resolution is successful, the final XRD of the
resulting XRDS document becomes the current XRD and resolution
If that resolution is not successful, the client resolver MUST attempt
resolution of the next highest priority Ref of the current XRD, and so
If resolution of all Refs in the current XRD fails, the client resolver
MAY return an error 27, VALID_REF_NOT_FOUND, or the client resolver MAY
"backtrack" to previous XRDs in the resolution chain and attempt to
any untried Refs. Note that the latter behavior is not required and
not be expected."



Do we really want to stop resolution if one REF is unresponsive?  It
to me to be a good idea to have multiple authority services (either via
SEPs, URIs or REFs) in case one is having a problem.  It seems to me the
resolver should do what ever it can, within reason, to locate the answer
for a request.  In DNS a domain can have upto 13 nameservers.  If one is
not responding for what ever reason the resolver tries another.

I-Name:  =les.chasen


From: Drummond Reed
Sent: Friday, January 20, 2006 11:33 AM
To: gwachob@visa.com; steven.churchill@ootao.com; Chasen, Les; Tan,
Cc: drummond.reed@cordance.net
Subject: Gabe's feedback and reference "backtracking"

Gabe and Res Editor's:

Note that since I can only send from Gmail, I can't send this to the
One of you is welcome to forward this to the list.

I just went over Gabe's comments. Fantastic stuff. There's many that we
need to go over (I *really* wish I could be on the call Friday morning
I gotta go to bed now...). Anyway, the single biggest issue is the one
whether a resolver needs to do "backtracking" of references (as
indicated in ED 04) or whether, as Gabe recommends, the resolver should
just stop and report an error if it gets an error.

I tend to agree with Gabe on this with one exception: I think that
a single service endpoint* if the resolver gets a network error on one
and more then one URI is supplied, the resolver should try the next
highest priority URI, and so on. Same for the next highest priority
service if there is >1 Service of that type in the XRD.

But I agree with Gabe that if a resolver follows a reference and hits an
error, it should not need to "backtrack" but just stop and report the

If everyone agrees to that on today's call, please publish it in the
minutes and I'll update the flowcharts to match (and start working on ED
05 to make those changes.)

All of Gabe's other comments made sense to me. Please do record in the
minutes any others that the editors have consensus on and I'll start
getting those into ED 05. I'd then like to send it to Gabe (or ???) to
take the pen and make whatever other changes we feel are necessary
publishing it as WD 10.


To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  You may a link to this group and all your TCs in

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]