[glue-wg] New Endpoint and Service types
Paul Millar
paul.millar at desy.de
Mon Apr 7 06:51:54 EDT 2014
Hi Florido,
On 07/04/14 11:28, Florido Paganelli wrote:
> On 2014-04-04 19:01, Paul Millar wrote:
>> I hope you see how, given any RFC or any GFD, I know exactly how to
>> publish a capability; and, given the capabilities of any endpoint, I
>> know exactly which RFCs and GFDs it supports.
>>
>
> I can see how, indeed.
>
> These that you listed above make more sense for InterfaceName than for
> Capabilities.
Sure, this is my point: currently, capabilities are too high-level and
there is only one InterfaceName.
> As Stephen pointed out, there is no much additional
> information in the reversed domain name there.
I don't really care about the reversed-domain in the name (see below).
> [..]
> But since each Endpoint can only have one InterfaceName, then a service
> supporting multiple protocols should in principle have as many Endpoints
> as the supported protocols.
So we're back to the idea of publishing the same information many, many
times. Just to be clear: this, at best, an ugly work-around.
Here's an example to put the effect in context.
If a StorageService publish O(10) Endpoints (not unreasonable) and each
endpoint supports O(10) different RFCs (a tad high, but not
unreasonable), then publishing an Endpoint for each RFC means publishing
O(100) *additional* Endpoint objects, each mostly duplicating
information already published.
> We can overcome the above using capabilities, but then one must me more
> specific on what one can *do* with that protocol:
>
> Capabilities, the way I read them as they're described in GFD.147, are
> ways to discover functionalities, thus the namespace is not about the
> organization but tells about the functionality.
Two points to consider:
By itself, each RFC document says *very precisely* what functionality is
supported. The problem here is that the functionality described by an
RFC could cover multiple items in the capability namespace and, when
not, then the choice of capability isn't automatic.
There's nothing to prevent publishing the higher-level functionality in
addition to the very specific RFC-based capability.
> Hence if one has an Endpoint whose interface supports more than one
> protocol, one could publish:
>
> data.transfer.rfc-2660
> security.authentication.rfc-2660
> data.transfer.gfd-47
> and so on.
>
> What do you think? what do the others think?
First off, having two representations for RFC-2660 (as
"data.transfer.rfc-2660" and "security.authentication.rfc-2660") is bad.
Against which capability should a client query to find an endpoint that
supports RFC-2660 (data.transfer, security.authentication, or both) ?
What does it mean if a storage element publishes
"data.transfer.rfc-2660" and not "security.authentication.rfc-2660"?
IMHO, there should be a single, canonical way of representing that an
endpoint supports RFC-2660 and this should be somehow a single attribute
that is published.
Adding "data.transfer" or "security.authentication" as a prefix is
problematic as:
1. protocols often cover multiple high-level functionalities
(GFD-47 isn't only about data-transfer)
2. the mapping (RFC-2660 --> "security.authentication") isn't
automatic, so we're back to maintaining an enumeration.
My view is still that:
o An RFC or GFD describes (completely) a set of functionality.
o A client's desired interaction is very often predicated on
an endpoint supporting the functionality described in one
or more RFC or GFD documents.
o That a GLUE2 Endpoint supports multiple RFCs/GFDs
concurrently is both natural and likely.
o There is considerable advantage to publishing the RFCs/GFDs
that a GLUE2 Endpoint supports, such that:
* A single Endpoint may publish support for
multiple RFCs/GFDs.
* Each RFC and each GFD has a single, canonical
string value that, when published as part of
Endpoint, represents support for that RFC or
GFD.
* The canonical value for any RFC or GFD is
knowable without consulting any enumeration
(i.e., it is purely algorithmic).
* Given a canonical value, the corresponding RFC
or GFD is knowable without consulting an
enumeration.
I don't care so much whether the canonical value is published as
Capabilities, InterfaceExtensions, SupportedProfiles or Semantics ---
provided precisely one is chosen as the correct way of publishing this
information.
Likewise, I don't care so much whether the canonical value for RFC2660
is 'rfc2660', 'RFC-2660', 'org.ietf.rfc-2660',
'Standards.From-IETF.RFC-2660' or 'http://tools.ietf.org/rfc/rfc2660',
provided one purely algorithmic translation is chosen.
> It would be nice if this is discussed among storage
> services developers.
There is a meeting coming up, but I'm not sure how much convergence
there'll be.
I think it is this groups responsibility to either accept or reject my
view, as expressed above.
Cheers,
Paul.
More information about the glue-wg
mailing list