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: Minutes of special XRI TC telecon on Proxy Resolution Interface



Following are minutes on yesterday's special call held about the proxy
resolution interface - the last major issue before we can publish Working
Draft 10.

Date:  Tuesday, 28 February 2006 USA (Wed morning Australia)
Time:  4:00PM - 5:00PM PT

PRESENT

Gabe
Drummond
Les
Wil
Steve

The relevant email threads that preceeded the discussion are appended below.
Early in the call we established consensus that the proxy resolution
interface (the "HTTP interface") should support the two "endpoints" of the
spectrum, i.e., that a proxy resolver should provide either the full XRDS
document resulting from proxy resolution or just a single URI as a 3xx
redirect.

Since the former is a "programmatic" output, we then discussed providing the
latter as a programmatic output by specifying it using the media type
"text/uri-list". There was consensus that this was a good approach for three
reasons:

1) It establishes that one way of specifying the proxy resolution interface
is via by media types supported, similar to any other web server.

2) This allows other media types to be developed that represent other
outputs of a proxy resolver (such as an RDDL document).

3) It also allows XRI authorities to advertise the capabilities of their
proxy resolvers via the MediaType element of their community root XRDS.

The balance of the discussion focused on whether there was any "midpoint"
between the two extremes of the full unfiltered XRDS on the one hand and a
URI list/3xx redirect on the other hand.

After examining the various tradeoffs, it was agreed that the best
compromise was to provide an output that let client applications take
advantage of a proxy resolver's ability to do service endpoint (SEP)
selection and URI construction but that did not arbitrarily pick any
particular element or set of elements for the output.

Thus the consensus was that the best "midpoint" option was to return just
the final XRD, represented by requesting the media type
"application/xrd+xml". Secondly, when SEP selection is requested, this XRD
would be "filtered" to include only the matching SEPs. In addition Wil made
the suggestion that the URI elements in these SEPs could be "fully expanded"
by the proxy resolver, i.e., the append attribute would be processed by the
proxy resolver to build the fully constructed URI and then the proxy
resolver would reset the append attribute to "none" so that the client
application can consume the URI attribute directly.

This results in a clean matrix of five options for proxy resolver output:

                  XRDS          XRD             URI
AUTH RES ONLY     Full XRDS     Final XRD       N/A
SEP SELECTION     Full XRDS*    Final XRD*      URI list**

* In both these cases, the final XRD is: a) filtered to include only
matching SEPs, and b) in those SEPs, all the URIs would be fully expanded.

** This is returned in text/uri-list form if that is requested, otherwise as
a 3xx redirect.

Another byproduct of the discussion was to establish consensus around the
use of the following terms in Working Draft 10. Drummond will send these in
a separate email so XRI list members can comment.

The final issue discussed was the use of the_xrd_r (Return) input parameter.
Drummond explained that having this as an explicit parameter solved the
problem that without this, the _xrd_m (MediaType) parameter was "overloaded"
to represent both the content type requested from the proxy resolver AND the
MediaType of the requested SEP. This created problems in the ED 06 spec.
However since MediaType can also be sent to a proxy resolver via the HTTP
Accept header, we now just need to decide which parameter (_xrd_m or _xrd_r)
is represented by this Accept header when it is included.

Gabe made a suggestion that Drummond believed would solve the problem.
Drummond will send a separate writeup to the list so everyone can look it
over, then put it in ED 07.

The last topic discussed was the Working Draft 10 schedule. Given that the
final technical issues are settled (we believe), Drummond will try to move
heaven and earth to post Editor's Draft 07 by end-of-day Wednesday. The
standard XRI TC call on Thursday 4PM PT (Friday morning Australia) will be
dedicated to reviewing ED 07. Then Working Draft 10 will be published as
soon after that as feasible.

=Drummond 


-----Original Message-----
From: Drummond Reed [mailto:drummond.reed@cordance.net] 
Sent: Tuesday, February 28, 2006 3:36 PM
To: XRI List
Subject: [xri] Ending proxy resolver nightmares

Victor has an interesting point in his "proxy resolver nightmares" thread.
The main additional requirement we have in XRI 2.0 CD02 is to define proxy
resolution so that it can return a 3xx redirect for an HXRI to a non-XRI
aware browser. That's why we had to define service endpoint selection. Of
course at the other end of the spectrum it is trivial for a proxy resolution
server to return an XRDS document.

So I believe we have complete consensus about the two "ends" of the proxy
resolution spectrum: returning either an entire XRDS document or a single
URI. Where we don't have consensus about is a "mid-point" of returning the
results of service endpoint selection in a richer form than a single URI.

So option #1 to consider on this afternoon's 4PM call devoted to this
subject is to simply punt on defining any midpoint in XRI 2.0.

Option #2 would be to pick a "clean" midpoint that we can all agree on,
i.e., one that, like the two other endpoints (XRDS/everything or URI/one
thing) is something that we've already defined and that we don't have to
create any special rules for.

If we apply this logic, it strikes me that there is one clean midpoint that
we might all be able to agree on: returning just the final XRD. In fact we
could follow a simple rule consistent with the rest of XRI resolution: if
you ask only for authority resolution and want the final XRD back, you get
just the final XRD, with no other processing. If you ask for SEP selection
and want the final the XRD back, you get just the final XRD with just the
SEP(s) that match the input criteria, with no other processing.

Put into a formal proposal, this would be:

1) VALUES OF _XRD_R (RETURN) PARAMETER:

xrds		Return full XRDS
xrd		Return final XRD only
uri		Return highest priority URI of selected SEP only

Note: we might want these values to simply be content types just like the
_xrd_a and _xrd_m parameters. In that case the values would be:

application/xrds+xml
application/xrd+xml
text/uri-list	(see http://www.rfc-editor.org/rfc/rfc2483.txt, section 5)

2) RETURN FROM PROXY RESOLUTION WHEN _XRD_R PARAMETER IS SPECIFIED:

a) xrds/SUCCESS: the full XRDS document with content type
"application/xrds+xml" or "application/xrds-saml+xml" with Status of the
final XRD = SUCCESS. If SEP selection was requested, the final XRD will be
filtered to contain only matching SEPs. If SEP selection is not requested,
the final XRD will not be filtered. NOTE: SEP SELECTION MAY USE ANY CONTENT
TYPE (SEE BELOW).

b) xrds/FAILURE: the full XRDS document with content type
"application/xrds+xml" or "application/xrds-saml+xml" with the Status of the
final XRD = error message.

c) xrd/SUCCESS: ONLY the final XRD document with content type
"application/xrd+xml" or "application/xrd-saml+xml" with Status of the final
XRD = SUCCESS. If SEP selection was requested, XRD will be filtered to
contain ONLY matching SEPs. If SEP selection is not requested, XRD will not
be filtered. NOTE: SEP SELECTION MAY USE ANY CONTENT TYPE (SEE BELOW).

d) xrd/FAILURE: ONLY the final XRD document with content type
"application/xrd+xml" or "application/xrd-saml+xml" with the Status of the
final XRD = error message.

e) uri/SUCCESS: a string with content type "text/plain" containing the
highest priority URI of the highest priority SEP.

f) uri/FAILURE: a string with content type "text/plain" containing the error
code followed by a space followed by the error context string.

3) RETURN FROM PROXY RESOLUTION WHEN _XRD_R PARAMETER IS NOT SPECIFIED:

a) SUCCESS: 3xx redirect to highest priority URI of highest priority
matching SEP, with the content type of the redirect.

b) FAILURE: error message returned as plain text or HTML.


*** NOTE ABOUT CONTENT TYPE AND SEP SELECTION ***

This addition of _xrd_r parameter solves a longstanding issue in XRI proxy
resolution architecture: until now, we have overloaded the _xrd_m parameter
to specify two different things:

1) The content type being requested from the proxy resolution service.

2) The media type of a request service endpoint (SEP).

That means you can't both:

a) request an XRDS document returned from a proxy resolution server, and

b) request any type of SEP selection EXCEPT "application/xrds+xml" or
"application/xrds-saml+xml".

And in fact you can't even do the latter because it's ambiguous in proxy
resolution whether content type is supposed to represent the content type
that should be returned by the proxy resolution server or the ultimate
content type you are looking for at the target SEP.

This has been driving me nuts in the spec!

Breaking them apart FINALLY solves this problem and allows an XRI author to
explicitly state the media type they want returned from a proxy resolution
service separately from the media type of the SEP they want selected. 

This is another argument for making the value of _xrd_r a media type just
like _xrd_a and _xrd_m.

=Drummond 




-----Original Message-----
From: Victor Grey [mailto:victor@idcommons.org] 
Sent: Tuesday, February 28, 2006 9:58 AM
To: xri@lists.oasis-open.org
Subject: Re: [xri] Proxy resolver nightmares

Tan, William wrote:
<snip>
> I tend to agree with you on sticking to only clients and resolution
> servers in XRI resolution doc,

I was at a conference where there was a representative from Liberty, 
who ruefully admitted that while SAML 2.0 "really wasn't that 
difficult" there was little chance of adoption by independent 
developers, because the specs were so impenetrable.

I don't want to see us go down that road.

Gabe expressed some concern lately that WD10 had lost some of the 
clarity around describing the actual resolution process, and I've been 
worrying about the same thing. I just woke up to the fact that the 
reason for this is the munging together of resolution and proxy web 
service.

Besides clarity, there are other good reasons not to mix these two 
subjects together. XRI resolution needs to be nailed down so that the 
early adopters can start building XRI authority servers and clients. 
Once there are a few of these around, and we are able to test our 
clients against each other's servers, we will have a much better idea 
of what the actual requirements for a proxy resolver are.

We are, imho, over-determining the proxy resolver design right now, as 
well as spending way too much time on it. Once we have a few good 
resolver client libraries available (I plan to release one as a Ruby on 
Rails plugin), we make it possible for web service developers to start 
creating a whole ecosystem of proxy resolvers, and this is desirable, 
yes?

But we don't know what their needs are yet. We do know that they will 
need a proxy service API spec that they can read and comprehend, based 
on the premise that they have a client available that can resolve an 
XRI and return a complete XRDS. The web service developer's job then, 
will be to parse the XRDS and implement the proxy API, a type of 
process web service developers are familiar with (for instance with 
RSS). Let's let that API be evolvable and informed by some real world 
experience.

> but I'm afraid you're right that it's a
> little late (Les & I had already given up resisting.)
Better late than never. Start resisting again  ;-)


> BTW, Will you be joining the special TC call this afternoon 4pm PT?
I will try.

=vg


---------------------------------------------------------------------
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 OASIS
at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 




---------------------------------------------------------------------
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 OASIS
at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 





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