Package equip.discovery

A multicast-based peer-to-peer discovery module, based on the design of JINI discovery, but for discovering strings (such as dataspace URLs).

See:
          Description

Interface Summary
ANNOUNCEMENT_EXPIRE_COUNT default no. missed announcements to assume expiry.
ANNOUNCEMENT_INTERVAL_S default inter-announcement interval (JINI is 120s).
ANNOUNCEMENT_STARTUP_DELAY_S default delay range on service startup (JINI is 15s).
DISCOVERY_ATTEMPTS default request repeats (JINI is undefined).
DISCOVERY_GROUP default multicast address for discovery (JINI is 224.0.1.85).
DISCOVERY_GROUP_ANY group wildcard = empty string as in JINI
DISCOVERY_GROUP_DEFAULT default/open group
DISCOVERY_INTERVAL_S default inter-request interval (JINI is undefined).
DISCOVERY_PORT default port for multicast messages (JINI is 4160).
DISCOVERY_TTL default multicast TTL for discovery and announcement.
DISCOVERY_VERSION Discovery protocol version
 

Class Summary
DataspaceServer  
DiscoveryBrowser A Swing tree-based browser for the discovery service.
DiscoveryBrowser.UrlNodeInfo url and last refresh time
DiscoveryClientAgent Client support for discovery.
DiscoveryClientAgentImpl  
DiscoveryClientAgentImpl.HeardInfo heard info
DiscoveryEventListener callback interface for client discovery
DiscoveryEventListenerImpl  
DiscoveryRendezvous unicast reflector (with some filtering) for non-multicast discovery.
DiscoveryRequest Discovery request is this serialised into a multicast packet.
DiscoveryRequestImpl  
DiscoveryServerAgent Server support for discovery.
DiscoveryServerAgentImpl  
ExampleClient  
MulticastUtils some helpers for multicast stuff
ServerAnnouncement Announcement is this serialised into a UDP packet.
ServerAnnouncementImpl  
ServerDiscoveryInfo information on a single service.
ServerDiscoveryInfoImpl  
 

Exception Summary
DiscoveryUrlException  
 

Package equip.discovery Description

A multicast-based peer-to-peer discovery module, based on the design of JINI discovery, but for discovering strings (such as dataspace URLs).

In order to advertise something use DiscoveryServerAgent (see for example DataspaceServer).

In order to discover things use DiscoveryClientAgent (see for example ExampleClient).

Based in part on JINI multicast discovery request. Each advert has one or more service types, and one or more groups

. Service Type (which is something that is not present in JINI, since we are not just looking for lookup services) has the common form "<interface-class-name>:<version-identifier>".

As in JINI (and SNMP), groups are strings which must match exactly to identify common communities of action. E.g. to support concurrently deployment of different versions of the system.

Non-multicast support is provided by (a) running the DiscoveryRendezvous intelligent (i.e. selective) reflector, and using equip.eqconf to configure each client and server to use it (see the 'discoveryGroup' to the IP addresss or DNS name of the machine running the rendezvous server. Default port for the server is 4170. Other ports are random.