tecgraf.openbus.assistant
Class Assistant

java.lang.Object
  extended by tecgraf.openbus.assistant.Assistant

public abstract class Assistant
extends Object

Assistente que auxilia a integração de uma aplicação a um barramento.

O assistente realiza tarefas de manutenção da integração da aplicação com o barramento. Tais tarefas incluem:

O assistente implementa a mesma interface do registro de ofertas, porém nunca lança exceções, pois todas as operações são realizadas de forma assíncrona. Eventuais falhas nessas operações assíncronas são notificadas através de callbacks.

Author:
Tecgraf

Constructor Summary
Assistant(String host, int port)
          Cria um assistente que efetua login no barramento utilizando autenticação definida pelo método onLoginAuthentication().
Assistant(String host, int port, AssistantParams params)
          Cria um assistente que efetua login no barramento utilizando autenticação definida pelo método onLoginAuthentication().
 
Method Summary
static Assistant createWithPassword(String host, int port, String entity, byte[] password)
          Cria um assistente que efetua login no barramento utilizando autenticação por senha.
static Assistant createWithPassword(String host, int port, String entity, byte[] password, AssistantParams params)
          Cria um assistente que efetua login no barramento utilizando autenticação por senha.
static Assistant createWithPrivateKey(String host, int port, String entity, PrivateKey key)
          Cria um assistente que efetua login no barramento utilizando autenticação por certificado.
static Assistant createWithPrivateKey(String host, int port, String entity, PrivateKey key, AssistantParams params)
          Cria um assistente que efetua login no barramento utilizando autenticação por certificado.
 ServiceOfferDesc[] findServices(ServiceProperty[] properties, int retries)
          Busca por ofertas que apresentem um conjunto de propriedades definido.
 ServiceOfferDesc[] getAllServices(int retries)
          Devolve uma lista de todas as ofertas de serviço registradas.
abstract  AuthArgs onLoginAuthentication()
          Método de obtenção de dados para autenticação de login.
 ORB orb()
          Consulta o ORB em utilizado pelo assistente.
 void registerService(scs.core.IComponent component, ServiceProperty[] properties)
          Solicita que o assitente registre um serviço no barramento.
 void shutdown()
          Encerra o funcionamento do assistente liberando todos os recursos alocados por ele.
 LoginProcess startSharedAuth(OctetSeqHolder secret, int retries)
          Inicia o processo de login por autenticação compartilhada.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Assistant

public Assistant(String host,
                 int port)
Cria um assistente que efetua login no barramento utilizando autenticação definida pelo método onLoginAuthentication().

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação definida pelo método onLoginAuthentication() que informa a forma de autenticação, assim como os dados para realizar essa autenticação.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.

Assistant

public Assistant(String host,
                 int port,
                 AssistantParams params)
Cria um assistente que efetua login no barramento utilizando autenticação definida pelo método onLoginAuthentication().

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação definida pelo método onLoginAuthentication() que informa a forma de autenticação, assim como os dados para realizar essa autenticação.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.
params - Parâmetros opicionais de configuração do assistente
Method Detail

createWithPassword

public static Assistant createWithPassword(String host,
                                           int port,
                                           String entity,
                                           byte[] password)
Cria um assistente que efetua login no barramento utilizando autenticação por senha.

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação da entidade indicada pelo parâmetro 'entity' e a senha fornecida pelo parâmetro 'password'.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.
entity - Identificador da entidade a ser autenticada.
password - Senha de autenticação no barramento da entidade.
Returns:
um novo assistente.

createWithPassword

public static Assistant createWithPassword(String host,
                                           int port,
                                           String entity,
                                           byte[] password,
                                           AssistantParams params)
Cria um assistente que efetua login no barramento utilizando autenticação por senha.

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação da entidade indicada pelo parâmetro 'entity' e a senha fornecida pelo parâmetro 'password'.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.
entity - Identificador da entidade a ser autenticada.
password - Senha de autenticação no barramento da entidade.
params - Parâmetros opicionais de configuração do assistente
Returns:
um novo assistente.

createWithPrivateKey

public static Assistant createWithPrivateKey(String host,
                                             int port,
                                             String entity,
                                             PrivateKey key)
Cria um assistente que efetua login no barramento utilizando autenticação por certificado.

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação da entidade indicada pelo parâmetro 'entity' e a chave privada fornecida pelo parâmetro 'key'.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.
entity - Identificador da entidade a ser autenticada.
key - Chave privada correspondente ao certificado registrado a ser utilizada na autenticação.
Returns:
um novo assistente.

createWithPrivateKey

public static Assistant createWithPrivateKey(String host,
                                             int port,
                                             String entity,
                                             PrivateKey key,
                                             AssistantParams params)
Cria um assistente que efetua login no barramento utilizando autenticação por certificado.

Assistentes criados com essa operação realizam o login no barramento sempre utilizando autenticação da entidade indicada pelo parâmetro 'entity' e a chave privada fornecida pelo parâmetro 'key'.

Parameters:
host - Endereço ou nome de rede onde os serviços núcleo do barramento estão executando.
port - Porta onde os serviços núcleo do barramento estão executando.
entity - Identificador da entidade a ser autenticada.
key - Chave privada correspondente ao certificado registrado a ser utilizada na autenticação.
params - Parâmetros opicionais de configuração do assistente
Returns:
um novo assistente.

orb

public ORB orb()
Consulta o ORB em utilizado pelo assistente.

Returns:
ORB utilizado pelo assistante.

registerService

public void registerService(scs.core.IComponent component,
                            ServiceProperty[] properties)
Solicita que o assitente registre um serviço no barramento.

Esse método notifica o assistente de que o serviço fornecido deve se mantido como uma oferta de serviço válida no barramento. Para tanto, sempre que o assistente restabelecer o login esse serviço será novamente registrado no barramento.

Para que o registro de serviços seja bem sucedido é necessário que o ORB utilizado pelo assistente esteja processando chamadas, por exemplo, fazendo com que a aplicação chame o método 'ORB::run()'.

Caso ocorram erros, a callback de tratamento de erro apropriada será chamada.

Parameters:
component - Referência do serviço sendo ofertado.
properties - Propriedades do serviço sendo ofertado.

findServices

public ServiceOfferDesc[] findServices(ServiceProperty[] properties,
                                       int retries)
                                throws Throwable
Busca por ofertas que apresentem um conjunto de propriedades definido.

Serão selecionadas apenas as ofertas de serviço que apresentem todas as propriedades especificadas. As propriedades utilizadas nas buscas podem ser aquelas fornecidas no momento do registro da oferta de serviço, assim como as propriedades automaticamente geradas pelo barramento.

Caso ocorram erros, a callback de tratamento de erro apropriada será chamada. Se o número de tentativas se esgotar e não houver sucesso, uma sequência vazia será retornada.

Parameters:
properties - Propriedades que as ofertas de serviços encontradas devem apresentar.
retries - Parâmetro opcional indicando o número de novas tentativas de busca de ofertas em caso de falhas, como o barramento estar indisponível ou não for possível estabelecer um login até o momento. 'retries' com o valor 0 implica que a operação retorna imediatamente após uma única tentativa. Para tentar indefinidamente o valor de 'retries' deve ser -1. Entre cada tentativa é feita uma pausa dada pelo parâmetro 'interval' fornecido na criação do assistente (veja a interface 'AssistantFactory').
Returns:
Sequência de descrições de ofertas de serviço encontradas.
Throws:
Throwable

getAllServices

public ServiceOfferDesc[] getAllServices(int retries)
                                  throws Throwable
Devolve uma lista de todas as ofertas de serviço registradas.

Caso ocorram erros, a callback de tratamento de erro apropriada será chamada. Se o número de tentativas se esgotar e não houver sucesso, uma sequência vazia será retornada.

Parameters:
retries - Parâmetro opcional indicando o número de novas tentativas de busca de ofertas em caso de falhas, como o barramento estar indisponível ou não for possível estabelecer um login até o momento. 'retries' com o valor 0 implica que a operação retorna imediatamente após uma única tentativa. Para tentar indefinidamente o valor de 'retries' deve ser -1. Entre cada tentativa é feita uma pausa dada pelo parâmetro 'interval' fornecido na criação do assistente (veja a interface 'AssistantFactory').
Returns:
Sequência de descrições de ofertas de serviço registradas.
Throws:
Throwable

startSharedAuth

public LoginProcess startSharedAuth(OctetSeqHolder secret,
                                    int retries)
                             throws Throwable
Inicia o processo de login por autenticação compartilhada.

A autenticação compartilhada permite criar um novo login compartilhando a mesma autenticação do login atual da conexão. Portanto essa operação só pode ser chamada enquanto a conexão estiver autenticada, caso contrário a exceção de sistema CORBA::NO_PERMISSION{NoLogin} é lançada. As informações fornecidas por essa operação devem ser passadas para a operação 'loginBySharedAuth' para conclusão do processo de login por autenticação compartilhada. Isso deve ser feito dentro do tempo de lease definido pelo administrador do barramento. Caso contrário essas informações se tornam inválidas e não podem mais ser utilizadas para criar um login.

Parameters:
secret - Segredo a ser fornecido na conclusão do processo de login.
retries - Parâmetro opcional indicando o número de novas tentativas de busca de ofertas em caso de falhas, como o barramento estar indisponível ou não for possível estabelecer um login até o momento. 'retries' com o valor 0 implica que a operação retorna imediatamente após uma única tentativa. Para tentar indefinidamente o valor de 'retries' deve ser -1. Entre cada tentativa é feita uma pausa dada pelo parâmetro 'interval' fornecido na criação do assistente (veja a interface 'AssistantFactory').
Returns:
Objeto que representa o processo de login iniciado.
Throws:
Throwable

shutdown

public void shutdown()
Encerra o funcionamento do assistente liberando todos os recursos alocados por ele.

Essa operação deve ser chamada antes do assistente ser descartado, pois como o assistente tem um funcionamento ativo, ele continua funcionando e consumindo recursos mesmo que a aplicação não tenha mais referências a ele. Em particular, alguns dos recursos gerenciados pelo assistente são:

Em particular, o processamento de requisições do ORB (e.g. através da operação 'ORB::run()') não é gerido pelo assistente, portanto é responsabilidade da aplicação iniciar e parar esse processamento (e.g. através da operação 'ORB::shutdown()')


onLoginAuthentication

public abstract AuthArgs onLoginAuthentication()
Método de obtenção de dados para autenticação de login.

Método a ser implementado que será chamado quando o assistente precisar autenticar uma entidade para restabelecer um login com o barramento.

Returns:
Informações para autenticação para estabelecimento de login.


Copyright © 2014. All Rights Reserved.