On 9/01/2013 3:48 AM, Gregg Wonderly wrote:
I'm not convinced it's that "old". It's been around for eternity, but from a
practical perspective, there's something to be said for consistency.
But "jini" is registered with IANA, it's also registered as a dns-srv.
This is from Wikipedia:
URI schemes are frequently and incorrectly referred to as
"protocols", or specifically as *URI protocols* or *URL
<http://en.wikipedia.org/wiki/URL> protocols*, since most were
originally designed to be used with a particular protocol
<http://en.wikipedia.org/wiki/Protocol_%28computing%29>, and often
have the same name. The |http| scheme, for instance, is generally
used for interacting with Web resources
<http://en.wikipedia.org/wiki/Resource_%28Web%29> using HyperText
Transfer Protocol
<http://en.wikipedia.org/wiki/HyperText_Transfer_Protocol>. Today,
URIs with that scheme are also used for other purposes, such as RDF
<http://en.wikipedia.org/wiki/Resource_Description_Framework>
resource identifiers and XML namespaces
<http://en.wikipedia.org/wiki/XML_namespaces>, that are not related
to the protocol. Furthermore, some URI schemes are not associated
with any specific protocol (e.g. "|file
<http://en.wikipedia.org/wiki/File_URI_scheme>|") and many others do
not use the name of a protocol as their prefix (e.g. "|news
<http://en.wikipedia.org/wiki/Usenet_newsgroup>|").
URI schemes should be registered with IANA
<http://en.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority>,
although non-registered schemes are used in practice. RFC 4395
<http://tools.ietf.org/html/rfc4395> describes the procedures for
registering new URI schemes
The jini scheme already has existing methods for selecting different
protocols, but it's not included in the url, perhaps that's a shortcoming.
A guide for creating new uri / url sheme's:
http://www.ietf.org/rfc/rfc2718.txt
A size limit of 512 bytes is recommended.
This is multicast, and I'm not worrying about multicast, it already works, what
we want to do, is something completely different which has different network
characteristics such as firewall traversal, interaction with new Java
modularization, different forms of security etc.
Some deployments still use multicast, which depend on unicast, we need
to support that a little longer. Sounds like we might be getting our
wires crossed, I'm discussing modifying multicast packets (which must
use unicast) to include some additional information to assist unicast on
the client to determine the most suitable socket for the Endpoint to use
for unicast discovery.
You might recall Sim added a SocketFactory to LookupLocator.
LookupLocator is a value object, it didn't fit, I'd like to provide the
same functionality via alternate means.
This is where we need to "reconsider" what is going on. Endpoints are a fine
abstraction, but we want to make it possible for the protocol handler to end up with the
appropriate EndPoint abstraction that supports the protocol requirements.
Unicast lookup discovery currently uses Endpoints. All existing
Endpoints accept a SocketFactory, however discovery doesn't use it,
instead a standard socket is used, this isn't configurable.
The Endpoint used for unicast discovery can be configured.
ConstrainableLookupLocator can ensure that the right kind of Endpoint is
used.
Are you looking for a more direct way, to use your preferred Endpoint
for unicast discovery? You want your url string to specify which
endpoint to use?
Perhaps we could do that with a query string:
jini://host:port?endpoint=JERI-SSL
jini://host:port?endpoint=JRMP
jini://host:port?endpoint=RMI-IIOP
And perhaps extending it just that little bit further:
jini://host:port?endpoint=JERI-SSL,socket=MEKONG
Cheers,
Peter.