Avalados por :

Como garantir a integridade dos dados em aplicações empresariais com múltiplos usuários - Padrão de Bloqueio e Demarcação de Transação

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Loading...

Introdução:-

A maioria das aplicações empresariais é acessada por muitos clientes simultaneamente e o desenvolvedor deve fornecer funcionalidade e desempenho aos usuários. Com isso em mente, como garantimos que a consideração pelo desempenho não comprometa a integridade dos dados? Ou seja, é necessário um mecanismo para lidar com múltiplos usuários acessando os dados de forma concorrente.

As aplicações empresariais frequentemente tentam equilibrar a escalabilidade da aplicação com considerações de concorrência. A escalabilidade pode ser alcançada utilizando diferentes técnicas, incluindo a minimização do tráfego de rede.

Este artigo descreve o padrão de Bloqueio em duas partes. A Parte 1 do artigo explica uma visão geral transacional, demarcações de transação e depois descreve em detalhes a Demarcação de Transação Gerenciada por Contêiner.

A Parte 2 do artigo explica as metodologias de bloqueio, como são implementadas no Motor SAP J2EE de WAS e como resolvem os problemas de concorrência.

Visão geral transacional:-

As transações representam uma unidade fundamental de trabalho para gerenciar a complexidade empresarial. Em sua forma mais básica, uma transação é uma série de operações que parecem ser executadas como uma única operação atômica grande. Uma aplicação empresarial típica tem muitas transações associadas. Uma vez que a transação começa, ela termina com um commit ou um aborto.

As transações garantem a integridade das regras comerciais de uma aplicação, um processo que resulta em aplicações de processamento de transações (TP) que executam múltiplas transações simultaneamente. As transações permitem que múltiplos usuários compartilhem os mesmos dados e garantem que qualquer conjunto de dados que eles atualizem seja atualizado completamente sem que outros clientes interfiram para modificá-lo.

Como exemplo de aplicação, considere um sistema de reserva de bilhetes de trem. Em nosso exemplo, quando um passageiro quer reservar um assento, as seguintes ações devem ser realizadas em sequência: • Deve existir um assento disponível • Um bilhete deve ser emitido • O passageiro deve ser faturado através de um cartão de crédito usando a Troca Eletrônica de Dados (EDI) • Esse assento deve ser removido da lista de assentos disponíveis. Este sistema rapidamente levanta preocupações de concorrência, escalabilidade e consistência quando múltiplos usuários tentam fazer reservas em um sistema distribuído.

Para simplificar a complexidade potencial, considere todo o processo de reserva de trem como uma unidade de trabalho: uma transação. Uma transação compreende quatro propriedades críticas: • Atômica • Consistente • Isolada • Durável

Juntas, as quatro propriedades críticas produzem o acrônimo ACID.

No contexto de nosso exemplo, considere uma transação atômica se ela for executada completamente ou não. Por exemplo, se não houver um assento, a transação completa é abortada ou revertida para o início da transação. Quando uma transação é revertida, o banco de dados volta ao estado que tinha antes do início da transação. A atomicidade garante que muitas operações estejam vinculadas e apareçam como uma unidade de trabalho contígua.

Passando para o isolamento, considere uma transação isolada se a transação for executada de forma serial. Em outras palavras, deve parecer como se a transação estivesse sendo executada sozinha sem que outra transação ocorra simultaneamente. Isso garante a integridade dos dados. Durante as transações, bloqueios são automaticamente atribuídos aos dados conforme necessário. Se uma transação mantém um bloqueio nos dados, então o bloqueio impede que outra transação manipule os dados de forma concorrente até que o bloqueio seja liberado.

Uma transação também deve ser durável; um registro permanente da transação deve persistir. Deve garantir que as atualizações em recursos como o banco de dados sobrevivam a falhas no sistema. Para fins de otimização, registros transacionais são frequentemente mantidos na memória. No entanto, a transação não pode ser considerada ACID até que os dados sejam gravados em armazenamento permanente.

Embora seja o segundo na lista, o último termo de uma transação ACID a ser considerado é consistente. Uma transação garante a consistência se for atômica, isolada e durável. Se um trem tem 100 assentos e cada assento é vendido por $100, então no final de 10 transações bem-sucedidas, a conta da ferrovia deve ter $10000 a mais do que no início. Se esse for o caso, o banco de dados está em um estado consistente. Outro exemplo pode ser que uma conta bancária não tenha saldo negativo, embora durante o processamento da transação um bean possa temporariamente torná-lo negativo durante o saque, mas ao concluir a transação, o bean nunca o deixa negativo.

Demarcações de transação:-



A demarcação de transação descreve quem inicia as transações, quem emite um commit ou um rollback, e quando cada um desses passos ocorre.

Você pode demarcar transações EJB de três maneiras: 1. Pelo cliente 2. Por um EJB 3. Por um cont

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?