tecgraf.openbus
Interface OpenBusContext


public interface OpenBusContext

Permite controlar o contexto das chamadas de um ORB para acessar informações que identificam essas chamadas em barramentos OpenBus.

O contexto de uma chamada pode ser definido pela linha de execução atual do programa em que executa uma chamada, o que pode ser a thread em execução ou mais comumente o Current do padrão CORBA. As informações acessíveis através do OpenBusContext se referem basicamente à identificação da origem das chamadas, ou seja, nome das entidades que autenticaram os acessos ao barramento que originaram as chamadas.

A identifcação de chamadas no barramento é controlada através do OpenBusContext através da manipulação de duas abstrações representadas pelas seguintes interfaces:

Author:
Tecgraf

Method Summary
 Connection createConnection(String host, int port)
          Cria uma conexão para um barramento.
 Connection createConnection(String host, int port, Properties props)
          Cria uma conexão para um barramento.
 CallerChain decodeChain(byte[] encoded)
          Decodifica um stream de bytes de uma cadeia para o formato CallerChain.
 byte[] encodeChain(CallerChain chain)
          Codifica uma cadeia de chamadas (CallerChain) para um stream de bytes.
 void exitChain()
          Faz com que nenhuma cadeia de chamadas esteja associada ao contexto corrente.
 CallerChain getCallerChain()
          Devolve a cadeia de chamadas à qual a execução corrente pertence.
 Connection getCurrentConnection()
          Devolve a conexão associada ao contexto corrente.
 Connection getDefaultConnection()
          Devolve a conexão padrão.
 CallerChain getJoinedChain()
          Devolve a cadeia de chamadas associada ao contexto corrente.
 LoginRegistry getLoginRegistry()
          Referência ao serviço núcleo de registro de logins do barramento referenciado no contexto atual.
 OfferRegistry getOfferRegistry()
          Referência ao serviço núcleo de registro de ofertas do barramento referenciado no contexto atual.
 void joinChain()
          Associa a cadeia de chamadas obtida em getCallerChain() ao contexto corrente.
 void joinChain(CallerChain chain)
          Associa uma cadeia de chamadas ao contexto corrente.
 CallerChain makeChainFor(String loginId)
          Cria uma cadeia de chamadas para a entidade com o identificador de login especificado.
 CallDispatchCallback onCallDispatch()
          Recupera a callback a ser chamada sempre que a conexão receber uma do barramento.
 void onCallDispatch(CallDispatchCallback callback)
          Callback a ser chamada para determinar a conexão a ser utilizada para receber cada chamada.
 ORB orb()
          Recupera o ORB associado ao ConnectionManager.
 Connection setCurrentConnection(Connection conn)
          Define a conexão associada ao contexto corrente.
 Connection setDefaultConnection(Connection conn)
          Define a conexão padrão a ser usada nas chamadas.
 

Method Detail

orb

ORB orb()
Recupera o ORB associado ao ConnectionManager.

Returns:
o ORB

onCallDispatch

void onCallDispatch(CallDispatchCallback callback)
Callback a ser chamada para determinar a conexão a ser utilizada para receber cada chamada.

Esse atributo é utilizado para definir um objeto que implementa uma interface de callback a ser chamada sempre que a conexão receber uma do barramento. Essa callback deve devolver a conexão a ser utilizada para para receber a chamada. A conexão utilizada para receber a chamada será a única conexão através do qual novas chamadas aninhadas à chamada recebida poderão ser feitas (veja a operação joinChain(tecgraf.openbus.CallerChain)).

Se o objeto de callback for definido como null ou devolver null, a conexão padrão é utilizada para receber achamada, caso esta esteja definida.

Caso esse atributo seja null, nenhum objeto de callback é chamado na ocorrência desse evento e ???

Parameters:
callback - Objeto que implementa a interface de callback a ser chamada ou null caso nenhum objeto deva ser chamado na ocorrência desse evento.

onCallDispatch

CallDispatchCallback onCallDispatch()
Recupera a callback a ser chamada sempre que a conexão receber uma do barramento.

Returns:
a callback ou null caso ela não exista.

createConnection

Connection createConnection(String host,
                            int port)
Cria uma conexão para um barramento. O barramento é indicado por um nome ou endereço de rede e um número de porta, onde os serviços núcleo daquele barramento estão executando.

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.
Returns:
Conexão criada.

createConnection

Connection createConnection(String host,
                            int port,
                            Properties props)
                            throws InvalidPropertyValue
Cria uma conexão para um barramento. O barramento é indicado por um nome ou endereço de rede e um número de porta, onde os serviços núcleo daquele barramento estão executando.

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.
props - Lista opcional de propriedades que definem algumas configurações sobre a forma que as chamadas realizadas ou validadas com essa conexão são feitas. A seguir são listadas as propriedades válidas:
  • access.key: chave de acesso a ser utiliza internamente para a geração de credenciais que identificam as chamadas através do barramento. A chave deve ser uma chave privada RSA de 2048 bits (256 bytes). Quando essa propriedade não é fornecida, uma chave de acesso é gerada automaticamente.
  • legacy.disable: desabilita o suporte a chamadas usando protocolo OpenBus 1.5. Por padrão o suporte está habilitado. Valores esperados são true ou false.
  • legacy.delegate: indica como é preenchido o campo 'delegate' das credenciais enviadas em chamadas usando protocolo OpenBus 1.5. Há duas formas possíveis (o padrão é 'caller'):
    • caller: o campo 'delegate' é preenchido sempre com a entidade do campo 'caller' da cadeia de chamadas.
    • originator: o campo 'delegate' é preenchido sempre com a entidade que originou a cadeia de chamadas, que é o primeiro login do campo 'originators' ou o campo 'caller' quando este é vazio.
Returns:
Conexão criada.
Throws:
InvalidPropertyValue - O valor de uma propriedade não é válido.

setDefaultConnection

Connection setDefaultConnection(Connection conn)
Define a conexão padrão a ser usada nas chamadas.

Define uma conexão a ser utilizada em chamadas sempre que não houver uma conexão específica definida no contexto atual, como é feito através da operação setRequester. Quando conn é null nenhuma conexão fica definida como a conexão padrão.

Parameters:
conn - Conexão a ser definida como conexão padrão.
Returns:
Conexão definida como conexão padrão anteriormente, ou null se não havia conexão padrão definida anteriormente.

getDefaultConnection

Connection getDefaultConnection()
Devolve a conexão padrão.

Veja operação setDefaultConnection.

Returns:
Conexão definida como conexão padrão.

setCurrentConnection

Connection setCurrentConnection(Connection conn)
Define a conexão associada ao contexto corrente.

Define a conexão a ser utilizada em todas as chamadas feitas no contexto atual. Quando conn é null o contexto passa a ficar sem nenhuma conexão associada.

Parameters:
conn - Conexão a ser associada ao contexto corrente.
Returns:
Conexão definida como a conexão corrente anteriormente, ou null se não havia conexão definida ateriormente.

getCurrentConnection

Connection getCurrentConnection()
Devolve a conexão associada ao contexto corrente.

Devolve a conexão associada ao contexto corrente, que pode ter sido definida usando a operação setCurrentConnection(tecgraf.openbus.Connection) ou setDefaultConnection(tecgraf.openbus.Connection).

Returns:
Conexão associada ao contexto corrente, ou null caso não haja nenhuma conexão associada.

getCallerChain

CallerChain getCallerChain()
Devolve a cadeia de chamadas à qual a execução corrente pertence.

Caso a contexto corrente (e.g. definido pelo Current) seja o contexto de execução de uma chamada remota oriunda do barramento dessa conexão, essa operação devolve um objeto que representa a cadeia de chamadas do barramento que esta chamada faz parte. Caso contrário, devolve null.

Returns:
Cadeia da chamada em execução.

joinChain

void joinChain(CallerChain chain)
Associa uma cadeia de chamadas ao contexto corrente.

Associa uma cadeia de chamadas ao contexto corrente (e.g. definido pelo Current), de forma que todas as chamadas remotas seguintes neste mesmo contexto sejam feitas como parte dessa cadeia de chamadas.

Parameters:
chain - Cadeia de chamadas a ser associada ao contexto corrente.

joinChain

void joinChain()
Associa a cadeia de chamadas obtida em getCallerChain() ao contexto corrente.

Associa a cadeia de chamadas obtida em getCallerChain() ao contexto corrente (e.g. definido pelo Current), de forma que todas as chamadas remotas seguintes neste mesmo contexto sejam feitas como parte dessa cadeia de chamadas.


exitChain

void exitChain()
Faz com que nenhuma cadeia de chamadas esteja associada ao contexto corrente.

Remove a associação da cadeia de chamadas ao contexto corrente (e.g. definido pelo Current), fazendo com que todas as chamadas seguintes feitas neste mesmo contexto deixem de fazer parte da cadeia de chamadas associada previamente. Ou seja, todas as chamadas passam a iniciar novas cadeias de chamada.


getJoinedChain

CallerChain getJoinedChain()
Devolve a cadeia de chamadas associada ao contexto corrente.

Devolve um objeto que representa a cadeia de chamadas associada ao contexto corrente (e.g. definido pelo Current) nesta conexão. A cadeia de chamadas informada foi associada previamente pela operação joinChain. Caso o contexto corrente não tenha nenhuma cadeia associada, essa operação devolve null.

Returns:
Cadeia de chamadas associada ao contexto corrente ou null .

makeChainFor

CallerChain makeChainFor(String loginId)
                         throws InvalidLogins,
                                ServiceFailure
Cria uma cadeia de chamadas para a entidade com o identificador de login especificado.

Cria uma nova cadeia de chamadas para a entidade especificada, onde o dono da cadeia é a conexão corrente (getCurrentConnection()) e utiliza-se a cadeia atual (getJoinedChain()) como a cadeia que se deseja dar seguimento ao encadeamento. O identificador de login especificado deve ser um login atualmente válido para que a operação tenha sucesso.

Parameters:
loginId - identificador de login da entidade para a qual deseja-se enviar a cadeia.
Returns:
a cadeia gerada para ser utilizada pela entidade com o login especificado.
Throws:
InvalidLogins - Caso o login especificado seja inválido.
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento que impediu a criação da cadeia.

encodeChain

byte[] encodeChain(CallerChain chain)
Codifica uma cadeia de chamadas (CallerChain) para um stream de bytes.

Codifica uma cadeia de chamadas em um stream de bytes para permitir a persistência ou transferência da informação. A codificação é realizada em CDR e possui um identificador de versão concatenado com as informações da cadeia (CredentialContextId + ExportedCallChain). Sendo assim, a stream só será decodificada com sucesso por alguém que entenda esta mesma codificação.

Parameters:
chain - a cadeia a ser codificada.
Returns:
a cadeia codificada em um stream de bytes.

decodeChain

CallerChain decodeChain(byte[] encoded)
                        throws InvalidChainStream
Decodifica um stream de bytes de uma cadeia para o formato CallerChain.

Decodifica um stream de bytes de uma cadeia para o formato CallerChain. Espera-se que a stream de bytes esteja codificada em CDR e seja formada por um identificador de versão concatenado com as informações da cadeia (CredentialContextId + ExportedCallChain).

Parameters:
encoded - o stream de bytes que representam a cadeia
Returns:
a cadeia de chamadas no formato CallerChain.
Throws:
InvalidChainStream - Caso a stream de bytes não seja do formato esperado.

getLoginRegistry

LoginRegistry getLoginRegistry()
Referência ao serviço núcleo de registro de logins do barramento referenciado no contexto atual.

Returns:
o serviço de registro de logins.

getOfferRegistry

OfferRegistry getOfferRegistry()
Referência ao serviço núcleo de registro de ofertas do barramento referenciado no contexto atual.

Returns:
o serviço de registro de ofertas.


Copyright © 2014. All Rights Reserved.