You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@river.apache.org by Peter Firmstone <ji...@zeus.net.au> on 2010/02/04 03:29:57 UTC
DNS-SD Registrar and Lookup Service
I've been thinking about how to do a public or global DNS Service
Discovery based Registrar and Jini Lookup Service implementation.
Some thoughts on Lookup:
* Place more of the burden of lookup on the client for scalability.
* Use a ServiceItem caching service to hold the MarshalledInstance's
(proxy's smart proxy's etc) for DNS-SD, as these servers can't
hold these.
* The lookup smart proxy, will initially discover services utilising
DNS-SD by an interface class name or names, it has the option of
filtering by Domain, Group or ServiceID.
* The already filtered list returned by DNS-SD will be finally
filtered at the Client, by the client, to do this the DNS-SD smart
proxy will need to retrieve the MarshalledInstances from the
ServiceItem Caching Service.
* We can extend the ServiceRegistrar interface, call it
DNSServiceRegistrar and add a couple of methods, one that returns
an ObjectInputStream for filtering?
ObjectInputStream lookup(String[] Domain, String[] Group, String[]
clazz); // Return MarshalledWrapper or MarshalledInstance instances? Gregg?
Object[] lookup(ServiceID serviceID, String[] domainHints);
If a service is mobile, we don't know where it could turn up, search the
provided domains hints first. Just in case an ID isn't globally unique,
we return an array. Other means of identity should be used to determine
actual identity eg Xuid if the array is > 1.
Some thoughts on Lookup Discovery:
* The normal Jini discovery process should be performed first, if it
exists, a DNS-SD style Registrar can answer.
* If there is no Jini service available implementing
ServiceRegistrar, a local DNS-SD bootstrap implementation should
be available to attempt to find a DNS-SD Registrar via DNS-SD
Cheers,
Peter.