Transações e Segurança em Sistemas Distribuídos

Classificado em Computação

Escrito em em português com um tamanho de 4,24 KB

O que é uma transação do ponto de vista de sistemas distribuídos?

Uma transação é o ciclo completo de uma requisição e resposta de um serviço entre cliente e servidor, no qual o commit ocorreu com sucesso e o serviço foi realizado.

Como uma transação é definida, por padrão, em um servidor EJB?

A forma mais simples de definir um atributo de transação em um EJB é através de anotações. Essa declaração pode ser feita em nível de classe, de método ou de ambos. Para a declaração, a anotação @javax.ejb.TransactionAttribute deve ser usada, e são aceitos os seguintes valores (do tipo javax.ejb.TransactionAttributeType):

  • TransactionAttributeType.REQUIRED
  • TransactionAttributeType.REQUIRES_NEW
  • TransactionAttributeType.NOT_SUPPORTED
  • TransactionAttributeType.SUPPORTS
  • TransactionAttributeType.MANDATORY
  • TransactionAttributeType.NEVER

Qual a quantidade limite de nós que podem estar envolvidos em uma transação? Explique.

Não há um limite de nós; porém, quanto maior o número de nós, maior será a demora na resposta ao cliente.

Explique cada uma das propriedades ACID de uma transação.

  • Atomicity (Atomicidade): Uma transação tem que ser executada por completo. Ou todas as etapas são bem-sucedidas, ou todas as etapas são desfeitas.
  • Consistency (Consistência): Uma transação leva o sistema de um estado consistente a outro estado consistente.
  • Isolation (Isolação): A execução simultânea de várias transações, de forma concorrente, deve proceder como se estas transações estivessem serializadas.
  • Durability (Durabilidade): O estado do sistema após a transação é permanente e resistente a incidentes de indisponibilidade. O estado só pode ser alterado por meio de outra transação.

O que são algoritmos de Two-Phase Commit (2PC) e Three-Phase Commit (3PC)? Qual a importância?

São dois protocolos utilizados para garantir a consistência e a integridade dos dados dentro de uma transação distribuída (oferecem suporte a falhas).

O 3PC é semelhante ao 2PC quando não ocorrem falhas. O 3PC é um algoritmo não bloqueante e permite que uma transação seja finalizada sem a necessidade de bloqueios permanentes, embora realize uma maior troca de mensagens durante sua execução.

Ambos os protocolos tentam chegar a uma convergência de transações consultando todos os participantes. Os votos devem ser atômicos e a maioria vence.

  • 2PC: Algoritmo bloqueante / síncrono.
  • 3PC: Algoritmo não bloqueante / assíncrono.

Explique as 6 propriedades de segurança de um sistema.

  • Confidencialidade: Garantia de resguardo e controle de acesso às informações apenas a quem é de direito, conforme as restrições definidas pelo dono da informação.
  • Privacidade: Limitação de acesso às informações relacionadas a uma entidade ou objeto.
  • Integridade: Garantia de que a custódia e/ou a manipulação das informações não provoque alterações não autorizadas ou não rastreáveis.
  • Disponibilidade: Garantia de que a informação esteja disponível para o usuário legítimo.
  • Autenticidade: Garantia de que a informação provém de uma fonte determinada e que não sofreu alterações ao longo de um processo de transmissão.
  • Não Repúdio (Irretratabilidade): Impossibilita que uma entidade negue a autoria sobre uma transação anteriormente realizada.

O que é consistência eventual?

É um modelo de consistência usado em computação distribuída para alcançar alta disponibilidade. Ele garante informalmente que, se não houver novas atualizações para um determinado dado, eventualmente todos os acessos retornarão o último valor atualizado.

Entradas relacionadas: