Dependências
As entradas de provisionamento geradas podem apresentar dependências entre si. Para lidar com isso, o Blazon conta com um mecanismo específico para tratar essas dependências, garantindo que os eventos de provisionamento sejam processados na ordem correta e evitando inconsistências ou falhas de sincronismo com as aplicações alvo.
O que são as dependências de provisionamento?
Devido à dependência sequencial entre alguns eventos de provisionamento de objetos correlacionados e ao fato de que, isoladamente, não é possível garantir essa ordem de execução, um mecanismo de sincronização identifica a necessidade de sequenciamento com base na definição das dependências.
Esse mecanismo assegura esse comportamento de sequenciamento antes de encaminhar cada entrada para execução, ou descartá-la.
Nota
Na prática as dependências de provisionamento são uma forma de garantir o sequenciamento de alguns eventos de provisionamento do mesmo objeto ou entre objetos correlacionados.
Nota
As dependências são consideradas para todos os tipos de eventos de provisionamento, sejam eles manuais ou automáticos.
Como funcionam as dependências de provisionamento?
O mecanismo de sequenciamento considera apenas as entradas presentes na fila de processamento e que estão correlacionadas ao mesmo objeto em provisionamento do novo evento.
Sempre que um novo evento de provisionamento chega para processamento é verificado na fila de eventos em processamento se existe alguma dependência:
Caso exista dependência: novo evento é colocado na final de Aguardando dependência;
Caso não exista dependência: o novo evento é imediatamente despachado para execução.
As regras de dependência são pré-definidas em uma tabela (ou matriz), que estabelece quais eventos dependem de outros e define o comportamento esperado para o evento dependente após a finalização completa do evento do qual dependia.
Nota
Os eventos que caem na fila de Aguardando dependência ficam nessa fila até que o respectivo evento do qual é dependente seja processado com sucesso, falha ou descarte.
A matriz de dependências de provisionamento
A matriz de definição das dependências entre os eventos de provisionamento é construída de forma a expressar a relação de dependência de um novo evento em relação a cada evento que já está em processamento.
Essa análise também leva em consideração apenas eventos em processamento do mesmo objeto sendo provisionado ou de um objeto correlacionado.
A matriz contém entradas não preenchidas que indicam pares de eventos para os quais não há qualquer relação de dependência definida.
Assim, a existência de uma entrada para um par de eventos na matriz de dependência indica que há uma relação de dependência entre eles. Consequentemente, o novo evento deverá aguardar a conclusão do evento em execução para que possa ser executado ou descartado.
A matriz de dependências está representada abaixo, onde a primeira coluna contem os eventos novos e cada coluna subsequente representa cada um dos onze eventos possíveis que podem estar na fila de processamento.
Criação de conta
-
-
-
-
-
-
-
-
-
-
-
Atualização de conta
Se sucesso: descarta;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
-
-
-
-
-
Ativação de conta
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
-
-
-
-
-
Inativação de conta
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
-
-
-
-
-
Revogação de conta
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
-
-
-
-
-
Troca de senha
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
-
-
-
-
-
Concessão de direito
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
-
-
-
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Revogação de direito
-
Se sucesso: executa;
Se falha: executa;
-
-
Se sucesso: descarta;
Se falha: executa;
-
Se sucesso: executa;
Se falha: descarta;
Se sucesso: descarta;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Criação de direito
-
-
-
-
-
-
-
-
-
-
-
Atualização de direito
-
-
-
-
-
-
-
-
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Remoção de direito
-
-
-
-
-
-
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: executa;
Se sucesso: executa;
Se falha: descarta;
Se sucesso: executa;
Se falha: executa;
Se sucesso: descarta;
Se falha: executa;
Observações finais sobre a matriz de dependências:
Quando um evento em processamento é descartado e ele tem uma dependência, o evento dependente também será descartado.
Um evento novo nunca tem mais do que uma dependência e esta será a do evento mais recente na fila de processamento.
Nota
No nosso Guia você encontra cenários de uso desse modelo de dependências.
Atualizado
Isto foi útil?