Opa, iai Baroni! Não sei se vc foi ao JustJava e assistiu às palestras ou falou com o pessoal do Prevayler no estande, mas, colocando de forma bem curta-e-grossa, o Prevayler, como banco de dados ou mecanismo de persistência, é uma farsa.
Mas, por que o Prevayler é uma farsa? :shock:
:!: Não tem linguagem de queries
:!: Não faz persistência de objetos
:!: Não tem índices
:!: Não tem mais um monte de coisa
“Então, como um projeto desses pode se atrever a querer acabar com os bancos de dados?”, voce pergunta. Uma questão bem válida, depois de descobrir que o Prevayler é uma farsa. Mas, então, como o Prevayler funciona? :?
-
Linguagem de Queries: qualquer linguagem plugavel numa app Java que suporte navegacao num grafo de objetos (XPath, OQL, SODA, Jython, e por aí vai)
-
Persistência de Objetos: qualquer mecanismo de serialização compatível em API com a serialização do Java
-
Índices: HashMap, TreeMap ou qualquer outra collection é um índice 8)
Mas, então, o que o Prevayler faz? Ele permite que as mudanças a seus objetos de negócio sejam persistidas transparentemente, e recuperadas ao reiniciar a aplicação, serializando as mudanças em sequência, e reaplicando estas em ordem, ao reiniciar. Opcionalmente, para evitar que o log de transações fique muito grande, você pode tirar ‘snapshots’ do sistema periodicamente (à noite, por exemplo).
“Só? :o”
Yeap. Só. Mas esse “só” Teve um tom meio curioso, não teve? Pois bem: “só” isso já é mais do que suficiente pra te permitir criar sistemas com persistência transparente, com liberdade total para brincar à vontade com as APIs de querying que você gostar mais (ficando livre do SQL, inicialmente, até que alguém implemente SQL para objetos Java, ou OQL, ou o que for). Você também fica livre de usar uma conexão de rede, muitas vezes lenta, com seu banco de dados, o que te dá uma performance absurda (alguns testes indicaram que queries num sistema usando Prevayler foram 9000 vezes mais rapido que o Oracle EM RAM :shock:).
O único “problema” do Prevayler é que ele só funciona legal quando todos os seus objetos cabem na RAM, mas, se vc parar pra pensar bem, na grande maioria das aplicações, eles cabem (já parou pra pensar quanta informação tem em 256mb? E que nem 5% dos sistemas usa tanta informação assim?). Se as suas aplicações fazem parte dessa minoria, então o Prevayler ainda não é pra você - vai ser necessário esperar algum tempinho até que a RAM se torne ainda mais barata, e vai ser pouco tempo, acredito.
Aqui vão alguns links caso vc queira saber mais sobre o Prevayler:
:arrow: Homepage: http://www.prevayler.org
:arrow: SourceForge: http://prevayler.sf.net
:arrow: Meu artigo na dW: http://www-106.ibm.com/developerworks/web/library/wa-objprev/index.html