Postado por
Dave West
, traduzido por
Ricardo Almeida
em
16 Abr 2009
- Arquitetura e Design,
- Desenvolvimento
- Tópicos
-
Java
,
-
Linguagens
,
-
Programação
,
-
Design
,
-
Transações
O conceito de transações é essencial para garantir a integridade e consistiencia. Um entendimento completo de transações requere familiaridade com modelos básicos e estratégias. Mark Richards comenta " É um erro comum confundir modelos de transações com estratégias de transações." Esse artigo cobre " os três modelos de transações suportados pela plataforma Java e introduz quatro estratégias de transações que usam aqueles modelos. Usando exemplos do Framework Spring e a especificação Enterprise JavaBeans (EJB) 3.0, Mark explica como os modelos de transação trabalham e como eles podem formular o básico para desenvolver estratégias de transação variando do processamento de transação básico para o sistema de processamento de alta rapidez."
A plataforma Java suporta três modelos de transação:
- Modelo de Transação Local - transações são gerenciadas pelo recurso de Banco de Dados e não no container da aplicação ou framework. O desenvolvedor gerencia mais conexão do que transações.
- Modelos de Transação Programática - O programador obtém uma transação de um gerenciador de transações mais depois devem escrever seus próprios códigos para iniciar, comitar e dar uma exceção, fazer rollback de transações.
- Modelos de Transação Declarativos - o modelo mais comum, também conhecido como Container Gerenciador de Transações. Nesse modelo o container gerencia as transações ativamente, o desenvolvedor define (declara) o comportamento e parâmetros da transação.
Mas esse suporte é limitado para uma descrição de transações básicas e comportamentos esperados, descrição da implementação, e regras e sintaxe para uso. A estratégia de transação é necessária para responder questões como: 'Quando devo usar os atributos REQUIRED vs. MANDATORY, diretivas específicas, um modelo versus outro, ou como otimizar para uma situação particular?
Os benefícios e as falhas dos modelos de transações são discutidos por Mark no artigo.
Estratégias para usar modelos específicos e usar um dado modelo de uma maneira apropriada são introduzidos nesse artigo. As quatro estratégias apresentadas são:
- "A estratégia de orquestração Cliente de Transação é usada quando múltiplas chamadas baseadas no servidor ou chamadas baseadas no modelo da camada cliente compleando uma única unidade de trabalho.
- A estratégia de Camada API de transação é usada quando você tem métodos grosseiros que atuam como estratégia de entrada primária para funcionalidades back-end. (Chame de serviços, se preferir.)
- A estratégia de transações de Alta Concorrência, uma variação de estratégia de Camada de API, é usada para aplicações que não podem suportar transações longas da camada da API (geralmente por causa da necessidade de performance e escalabilidade).
- A estratégia de transação de Alta Rapidez de Processamento é talvez o mais extremo das estratégias de transação. Você usa quando necessita ter um tempo de processamento o mais rápido possível na aplicação e ainda mantém algum grau de atomicidade transacional em seu processamento.
Mark Richards é autor do mini-book Java Transaction Design Strategies da InfoQ que fornece informações adicionais para esse tópico importante.
Nenhum comentário
Acompanhar Discussão Responder