A busca do cliente

Agora partirei da idéia que o cliente já encontrou um lookup service e necessita agora encontrar um serviço.

Imagine que o cliente já possua um objeto ServiceRegistrar que recebeu do lookup service. Ele irá utilizar esse objeto para realizar a sua busca, através do método

 lookup()


public Class ServiceRegistrar {
public java.lang.Object lookup(ServiceTemplate tmpl)throw java.rmi.RemoteException;
public ServiceMatches lookup(ServiceTemplate tmpl,int maxMatches)throws java.rmi.RemoteException;
}

Esses métodos usam a casse ServiceTemplate para especificar o serviço que ela está procurando, como abaixo:

package net.jini.core.lookup;
public Class ServiceTemplate {
	public ServiceID serviceID;
	public java.lang.Class[] serviceTypes;
	public Entry[] attributeSetTemplates;
	ServiceTemplate(ServiceID serviceID,
		java.lang.Class[] serviceTypes,
		Entry[] attrSetTemplates);
}

Se não conhecido o ID do seerviço, deve ser setado como nulo.

O atributo attributeSetTemplates é um conjunto de entradas usado para chocar os atributos.

O atributo de lookup() é um template e isso é um pouco complexo de entender, vamos por partes.

A classe que oriunda o serviço, como por exemplo Imprimir, Lavar, Secar, todas as que você possa imaginar, descrevem o que o serviço deve ter. Quem implementar essa classe, como por exemplo ImpressoraColorida, ImpressoraLaser, entre outrar, é que dizem como se faz a impressão. para que o cliente encontre a qual ele deseja, é necessário criar uma classe:


Class[] impressoraClasses = new Class[1];
impressoraClasses = Imprimir.class;

ServiceTemplate template = new ServiceTemplate(null, impressoraClasses, null);

Esse atributo sera utilizado para a criação de um template e passado para o lookup:


Imprimir imp = null;
imp = (Imprimir) registrar.lookup(template) ;

O objeto que imp receber será o objeto do serviço ao qual ele procura.

Existem ainda mais alguns detalhes de como o cliente escolhe o serviço, mas por hora isso já é suficiente.

Deixar um comentário

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Modificar )

Imagem do Twitter

You are commenting using your Twitter account. Log Out / Modificar )

Facebook photo

You are commenting using your Facebook account. Log Out / Modificar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.