O construtor do LookupDiscovery inicia threads para poder “escutar” as respostas da rede. Quando uma resposta chega o listener da thread irá chama o método discovered() da classe MulticastRegister.
Essa classe necessita ser compilada com 2 principais bibliotecas: jsk-plataform.jar e jsk-lib.jar.
Ela é função bem simples de ser entendida, vamos então ver a classe abstrata ServiceRegistrar
ServiceRegistrar
Essa classe é implementada por todos os LookupsServices e seu papel é agir como um proxy para os lookups services. Esse proxy roda na aplicação, seja ela cliente ou serviço.
Essa classe tem 2 principais métodos:
register(): utilizada por um serviço que deseja registrar
lookup(): utilizado por um cliente para procurar um serviço em particular.
Existem outros métodos que nos fornecem informações bem interessantes:
String[] getGroups(); LookupLocator getLocator(); ServiceID getServiceID(); registrar.getLocator().getHost();
Servidores e clientes necessitam encontrar lookup services! Descoberto o lookup service é hora de escolher um protocolo de conexão: Unicast ou Multicast. Unicast é sincrono e Multicast não, sendo que este ultimo necessita de um listener para responder. Quando um service locator é descoberto, isso envia um objeto ServiceRegistrar que pode tanto rodar no cliente ou no serviço. O maior uso do ServiceRegistrar é a função de registrar serviços e ajudar os clientes a encontrar esses serviços.