r1 - 23 Nov 2006 - 01:45:38 - GleidsonEcheliYou are here: TWiki >  Doo Web  > ExemploDeUsoDoPrevayler > AlgumasExplicacoes

1. Introdução

Existem muitos sistemas que necessitam persistir informações para funcionarem corretamente.

Hoje isso é feito com o uso de bancos de dados, mas além dos custos elevados, instalar e configurar um banco de dados pode não ser uma tarefa simples.

Eles também são contrários aos conceitos de orientação a objetos, principalmente no momento da modelagem em UML.

Graças ao atual custo baixo da RAM, a prevalência pode ser utilizada para manter as informações na memória, na forma de objetos.

Como os objetos ficam na RAM, eles são acessados com velocidade muitas vezes superior a dos bancos de dados que tem um custo de operação para interpretar e executar os comandos do SQL.

Esse conceito ficou conhecido como prevalência e foi idealizada por Klaus Wuestefeld e colegas da empresa Objective Solutions. Sua primeira implementação, feita em 2001, ficou conhecida como Prevayler.

Experimentos comprovam que a prevalência pode ser até nove mil vezes mais rápida para a realização de consultas a bases de dados do que os sistemas de banco de dados atuais (MS-SQL, Oracle, MYSQL), pois não necessita de pré ou pós processamento de comandos de SQL.

Em um teste recente o Prevayler mostrou-se até mil e duzentas vezes mais rápido do que o MS-SQL, além de que foi comprovada sua eficácia em persistir informações, mesmo em situações adversas como uma queda de energia.

Conceitualmente simples, ela pode ser implementada por qualquer linguagem de programação orientada a objetos capaz de serializar objetos.

Vale lembrar que o Prevayler não é a única implementação de prevalência existente. Há por exemplo, um porte do Java para o C#, chamado de Bamboo.

2. Serialização

Quando temos um objeto na memória, ele provavelmente não está armazenado de forma seqüencial.

Para resolver isso nós o serializamos, que nada mais é do que colocar os valores que o objeto está utilizando juntamente com suas propriedades de uma forma que fique seqüencialmente armazenado na memória.

Isso permite que ele seja gravado em disco ou enviado pela rede bit a bit.

Em Java, para se serializar um objeto, basta implementar a interface Serializable na classe que o define.

3. O Prevayler

O Prevayler é um conjunto de classes que implementam a prevalência em Java, conta com pouco mais de 350 linhas de código, e tem na simplicidade seu principal aliado.

Fácil de entender e de usar, e o melhor, sem custo algum, substitui perfeitamente os sistemas de bancos de dados para aplicações de pequeno e médio porte.

Para evitar a perda de informações no caso de um imprevisto, antes de uma mudança ser aplicada a um objeto, o comando é serializado e escrito em um arquivo de log no disco.

É possível realizar um snapshot, que é uma cópia exata dos objetos persistidos, e os armazena em um arquivo maior, que pode poupar algum tempo de recarga e espaço na memória, principalmente para o lado do cliente.

Caso o sistema tenha que ser reiniciado ele lê o último arquivo de snapshot (se existir um) e os arquivos de log posteriores.

O Prevayler também possui a capacidade de Replicação, ou seja, acessar a base de dados presente em outra máquina. Entretanto, diferente dos bancos de dados comuns, ele mantém as informações em todos os computadores que as acessam, mas deixa uma máquina como a fonte principal (servidor) que recebe instantaneamente todas as mudanças que serão persistidas.

próximo


Fonte do Ctrl+C Ctrl+V

Essa parte do artigo eu copiei na cara dura do seguinte endereço: http://thespoke.net/blogs/major505/default.aspx


-- GleidsonEcheli - 23 Nov 2006
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback