Issue 2943: Naming FTF / RFC2396 Compliance Issue (naming_ftf) Source: DSTC (Mr. Ted McFadden, mcfadden@dstc.edu.au) Nature: Uncategorized Issue Severity: Summary: I have one issue with the naming FTF Sept 9th doc concerning RFC2396. I would like an issue number to be assigned to this. (This post has already appeared in a slightly different form on the naming_ftf list). I am extremeley reluctant to suggest further changes to the URL at this point but feel the issue has to be considered. Fortunately, the suggested changes to the URL forms are small. 1. RFC2396 Compliance: I received some email from some individuals that are a bit more URI "aware" than I, pointing out that in 2396: a. URI's that start out <scheme>:/ have to follow one set of rules (hier_part URIs), those that don't start with a leading "/" after the scheme are free to do what they'd like (opaque part URIs). The details are in the first paragraphs of chapter 3 of 2396. b. Our use of "//" as a familiar shorthand for iiop, will put corbaloc/corbaname in the restricted hier_part category, with a likely disapproval from IANA. (For any number of reasons, multiple <authority>'s, <authority>'s using different transports, non-hierarchial keys...) c. If we were to remove the shorthand "//" for iiop and allow "" as well as "iiop" for the iiop protocol id, we would be compliant and have URLs like: corbaloc::xyz.com/a/b/c corbaname::xyz.com,atm:2452r2f34f/aContext#a/b/c d. For discussion purposes, I have attached a BNF file describing corbaloc / corbaname in the same style as the BNF in Appendix A of 2396. In it, I have broken out "//" as a seperate token: iiop_id_reserved_2396. (BNF at bottom of email) e. Possible courses of action: We can: 1. leave "//" and hope IANA won't object or simply do not register the schemes. 2. remove "//" and use "" for iiop 3. support "", leave "//" with a footnote indicating that it may be deprecated, depending on IANA approval. Resolution: RFC2396 compliance is desirable. Agreed to change the iiop protocol shorthand from "//" to ":". Revised Text: Global replace of corbaloc/corbaname's containing "//" with ":". Actions taken: October 11, 1999: received issue May 4, 2000: closed issue Discussion: End of Annotations:===== X-Authentication-Warning: suntan.dstc.edu.au: mcfadden owned process doing -bs Date: Mon, 11 Oct 1999 22:00:48 +1000 (EST) From: Ted McFadden To: issues@omg.org Subject: Naming FTF / RFC2396 Compliance Issue Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: b>[!!Lha!!/),!!C(6e9 I have one issue with the naming FTF Sept 9th doc concerning RFC2396. I would like an issue number to be assigned to this. (This post has already appeared in a slightly different form on the naming_ftf list). I am extremeley reluctant to suggest further changes to the URL at this point but feel the issue has to be considered. Fortunately, the suggested changes to the URL forms are small. 1. RFC2396 Compliance: I received some email from some individuals that are a bit more URI "aware" than I, pointing out that in 2396: a. URI's that start out :/ have to follow one set of rules (hier_part URIs), those that don't start with a leading "/" after the scheme are free to do what they'd like (opaque part URIs). The details are in the first paragraphs of chapter 3 of 2396. b. Our use of "//" as a familiar shorthand for iiop, will put corbaloc/corbaname in the restricted hier_part category, with a likely disapproval from IANA. (For any number of reasons, multiple 's, 's using different transports, non-hierarchial keys...) c. If we were to remove the shorthand "//" for iiop and allow "" as well as "iiop" for the iiop protocol id, we would be compliant and have URLs like: corbaloc::xyz.com/a/b/c corbaname::xyz.com,atm:2452r2f34f/aContext#a/b/c d. For discussion purposes, I have attached a BNF file describing corbaloc / corbaname in the same style as the BNF in Appendix A of 2396. In it, I have broken out "//" as a seperate token: iiop_id_reserved_2396. (BNF at bottom of email) e. Possible courses of action: We can: 1. leave "//" and hope IANA won't object or simply do not register the schemes. 2. remove "//" and use "" for iiop 3. support "", leave "//" with a footnote indicating that it may be deprecated, depending on IANA approval. Regards, Ted. -------------------------------corbaloc / corbaname in 2396 style: corbaloc and corbaname URIs styled as in RFC2396 to check conformance. corbaloc URI: opaque,absolute URI where any fragment is ignored by the orb corbaname URI: opaque,absolute URI where fragment is interpreted as a stringified CosName. 1. The corbaname stringified name component is broken out for illustration and discussion purposes only. 2. iiop_id_reserved_2396 legality needs to be decided on. 3. For consideration: generic protcol version defined in prot_version. We have one for iiop. // CORBALOC URL ////////////////////////////////////// URI-ref_corbaloc = scheme_corbaloc ":" opaque_part_corbaurl scheme_corbaloc = "corbaloc" // CORBANAME URL ///////////////////////////////////// URI-ref_corbaname = scheme_corbaname ":" opaque_part_corbaurl [# cn_fragment] scheme_corbaname = "corbaname" // CORBANAME stringified name fragment //////////////// // for illustration only cn_fragment = *(cn_component "/") cn_component cn_component = cn_id | cn_id "." cn_kind | cn_empty cn_id = cn_identifier cn_kind = cn_identifier cn_empty = "." cn_identifier = 1*cn_char cn_char = cn_reserved | cn_unreserved | cn_escaped | escaped cn_reserved = ";" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," cn_unreserved = alphanum | cn_mark cn_mark = "-" | "_" | "!" | "~" | "*" | "'" | "(" | ")" cn_escaped = "%5c/" | "%5c." // SHARED CORBANAME / CORBALOC definitions //////////////////////////// opaque_part_corbaurl = obj_addr_list [ "/" key_string ] obj_addr_list = *[ obj_addr ","] obj_addr obj_addr = ( iiop_id_addr | prot_id_addr) key_string = *uric // CORBALOC/NAME URL GENERIC PROTOCOL FORM prot_id_addr = prot_id prot_ver_addr prot_id = prot_token ":" prot_token = *alphanum prot_ver_addr = [ prot_version ] prot_host prot_version = *(alphanum | "." | "-" ) "@" prot_host = *unreserved // CORBALOC/NAME IIOP SPECIFIC iiop_id_addr = iiop_id iiop_addr iiop_id = iiop_prot_token ":" | iiop_id_reserved_2396 iiop_prot_token = "" | "iiop" iiop_id_reserved_2396 = "//" iiop_addr = [ iiop_version ] hostport iiop_version = major "." minor "@" // CORBALOC/NAME IIOP Definitions compatible with RFC2396 Definitions major = 1*digit minor = 1*digit hostport = host [ ":" port ] host = hostname | IPv4address hostname = *(domainlabel ".") toplabel ["."] domainlabel = alphanum | alphanum * (alphanum | "-") alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit port = *digit // Generic URI 2396 Compatible Definitions uric = reserved | unreserved | escaped reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," unreserved = alphanum | mark mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" escaped = "%" hex hex hex = digit | "A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" "E" | "e" alphanum = alpha | digit lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z upalpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" digit= = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "0"