1. 09 Dec, 2014 2 commits
  2. 26 Nov, 2014 1 commit
  3. 22 Jan, 2014 1 commit
  4. 28 Jun, 2013 1 commit
    • Renato Figueiro Maia's avatar
      [OPENBUS-2304] (Lua) Permitir fazer chamadas dentro de cadeias (join)... · 76e326e5
      Renato Figueiro Maia authored
      [OPENBUS-2304] (Lua) Permitir fazer chamadas dentro de cadeias (join) recebidas com um login diferente, mas da mesma entidade
      - Campo 'CallChain.target' passa a conter o 'EntityName' ao invés do 'LoginId'.
      - A operação 'AccessControl:signChainFor(target)' passa a receber o 'EntityName'
        ao invés do 'LoginId', mas continua sem validar o valor do parâmetro 'target',
        simplesmente colocando o valor no campo 'CallChain.target' da cadeia gerada.
        Isso é necessário pra permitir assinar cadeias pra entidades deslogadas, que
        é importante pra permitir que um processo possa receber chamadas de entidades
        conhecidas (autenticadas previamente) mesmo sem ter acesso ao ACS. 
      - Campo 'CredentialReset.login' passar a conter o 'EntityName' ao invés do
        'LoginId'. Esse campo também é renomeado pra 'CredentialReset.target' pra
        melhor clareza.
        - As sessões de saída não podem mais ter indexadas pelo 'LoginId' do destino
          (target), exatamente porque tal informação não vem mais no
          'CredentialReset'. Também não é razoável indexá-las pelo 'EntityName' pois
          potencialmente há multiplas instâncias da biblioteca de acesso (OpenBusLib)
          mantendo diferentes sessões com o mesmo 'EntityName' (assumiamos que o mesmo
          não acontecia com 'LoginId'), portanto quando uma instância da biblioteca
          conversasse com duas outras instâncias que usem o mesmo 'EntityName' a
          sessão de uma sobreporia a da outra concorrentemente degradando o desempenho
          podendo inclusive levar a uma situação de starvation em casos extremos.
          - A solução adotada foi indexar as sessões diretamente pelo
            'IOR.profile_data' do objeto sendo acessado. Antes fazíamos essa indexação
            de forma indireta através de dois mapas: um que mapeava 'IOR.profile_data'
            pra 'LoginId' e outro de 'LoginId' pra sessão. O intuito disso era
            diminuir o número de sessões a serem mantidas no cache.
      - A forma de identificar se uma chamada está sendo feita a um objeto residente
        no núcleo do barramento (core) é feito comparando o 'CredentialReset.target'
        com o 'BusEntity' (nome da entidade que representa o núcleo do barramento).
      	- Com isso, não é mais necessário padronizar o 'BusLogin' (login ID utilizado
      		pelo núcleo do barramento). Inclusive o login ID utilizado pode ser o mesmo
          bus ID utilizado para diferenciar duas instâncias do barramento OpenBus.
      
      git-svn-id: https://subversion.tecgraf.puc-rio.br/engdist/openbus/sdk/lua/branches/02_00_00@142237 ae0415b3-e90b-0410-900d-d0be9363c56b
      76e326e5
  5. 25 Jun, 2013 1 commit