User:Kevin Reid/Thoughts on protocol queries

From Erights

< User:Kevin Reid
Revision as of 03:22, 20 April 2011 by 24.123.189.2 (Talk)
Jump to: navigation, search
This text has not been updated other than wikification and some quick notes since September 5, 2005. I make no guarantee that it reflects my current opinion on E's direction. —Kevin Reid 09:12, 6 May 2010 (CDT)

XXX Turn this into a design issue page.

Contents

Thoughts on extending protocols

Scenario

Two CapTP peers talking. Let's handwave that the Miranda-method protocol is well-known and adequate. a sends b <- __getAllegedType().

b has Interesting Features that it wishes to express in its type object. How does b (or b's implementation language) extend the TypeDesc protocol in a way that will not potentially create confusion due to accidental overlap of method names with other extensions?


ihefDN Hey, that's the geartest! So with ll this brain power AWHFY?

Potential formats of protocol names

DNS names org.erights.e.elib.slot.Slot

Relies on the DNS system's stability - global namespaceish.

URIs http://www.erights.org/elib#slot.Slot

Easier to create URIs than DNS names. Still relies on DNS.

Later note: The tag: URI scheme allows dating a DNS usage. Thus it relies only on agreement on a calendar. —Kevin Reid 09:12, 6 May 2010 (CDT)

One of the above combined with a GUID/SwissNumber

               org.erights.elib.slot.Slot!09l64YiaLKTgV7Drnu_8QeQpYm9T

The advantage of this over the above is that the random component makes it unlikely to collide with other protocol names, even if, e.g., DNS names change hands. For normal use, the first part of the name should be adequate to provide human-readable identification, and in the event of a first-part-collision it is highly likely that the random characters will be different at the left end.

Later note: This style of naming corresponds to a concept I'm calling “Token” these days — an PassByCopy object which has a static random component and a human-readable component, and prints only as the human-readable component — they would be used for all 'enumeration type' purposes. —Kevin Reid 09:12, 6 May 2010 (CDT)

Of course, no matter what the name scheme, it is trivial to deliberately create a "collision", but this does not matter as it is always an alleged type and the object can misbehave any way it likes no matter what protocols it claims to support.


Not addressed

Means of finding authoritative documentation of a protocol.

Personal tools
more tools