O que vc faz com o Prevayler?

23 respostas
rigolin

O colega Ironlynx disse em um post que está fazendo seu projeto final com o Prevayler…

Eu estou desenvolvendo um siteminha que executa um modelo matemático para simulações hidrológicas… com o Prevayler o sistema é 500 vezes mais rápido se comparado ao mesmo modelo implementado em um SIG (Sistema de Informação Geográfica), e vou escrever minha monografia sobre isso… o que vc tá fazendo Ironlynx?

23 Respostas

Ironlynx

Td blz,rigolin?
Bom,vamos lah… eu tô fazendo(oficialmente só apartir de jan/2004) um TIA(Terminal De Informações Acadêmicas)em Java(Será JSP)com o Prevayler substituindo o uso de BD.Bom,antes de mais nada,são 100.000 alunos,q,na grande maioria das vezes,só fazem consultas.(Notas,Horários,Ofertas De Emprego) Ao final de cada período,os alunos fazem pré-matrícula,escolhendo as matérias q irão cursar,além de durante o período letivo,poderem usar a sala de aula virtual(lugar no Tia aonde os professores deixam materiais de estudo)p/ tirar dúvidas junto aos professores.Os professores por sua vez,enviam as notas(pr1,pr2,2ªchamada e final) tb via Tia.Ainda estou no planejamento(o sistema tem q funcionar em dezemb/2004),eh bem capaz de submeter os rascunhos de modelagem ao Cv,ao invés de primariamente ao professor,haja vista o comprometimento do Cv com o Prevayler.Tõ na fase da Neura,tipo:“O servidor caiu,o q devo fazer para não perder os dados” ou “Surgiu um grupo de dados duplicados no Serv,o q fazer"ou ainda"Tem 50.000 fazendo a matricula no mesmo momento”-isso é impossível,claro :wink: … bom,mas acho q isso eh normal…tenho q pensar em situações catastróficas,para já possuir uma alternativa p/cada uma delas.

Ironlynx

O mais interessante será tb modelar a aplicação(seguindo MVC) só em Java…nada de BD…alguns já me disseram fascinante!Agora vou ver o quanto se aplica isso na prática! :wink:

B

Desculpem eu me meter…

Mas e persistência com XML? Alguém já estudou isso? Viu a fundo o XIndice???

Gustavo Guilherme BacK

rigolin

Tudo blz Ironlynx…

muito interessante seu projeto… o meu é bem mais simples… só brinco com uns 22.000 objetos que são na realidade trechos da Bacia em estudo… os objetos são clonados para criação de cenários…

Comecei escrever minha monografia (mas estou no 6 semestre ainda) quero tratar os conceitos da prevalência de dados, além das facilidades de implementação, melhor performace se comparada ao uso de SGB’s, uso de OO pura… vou pedir orientação dos gujeiros experts em prevalencia… quando eu tiver algo concreto vou mandar uma cópia para vc e pro cv darem umas dicas… hehe não vou perder a oportunidade de ter minha mono orientada pelos feras…

cara não conheço não… o que eu já vi é serializar um objeto em um arquivo XML… daí vc pode passar um objeto como parametro para um web service por exemplo…

Daniel_Quirino_Olive

“back”:
Desculpem eu me meter…

Mas e persistência com XML? Alguém já estudou isso? Viu a fundo o XIndice???

Gustavo Guilherme BacK

O Exolab Castor (http://www.castor.org/) é uma implementação da spec JDO e que permite persistência em XML. Resultado: um lixo!!!

B

Lixo na velociadade, na forma de persistência??? Não teria vantagens uma persistência por XML como por exemplo ser passível de pesquisa por outras linguagens?

Gustavo Guilherme BacK

Daniel_Quirino_Olive

Lixo na velociadade, na forma de persistência??? Não teria vantagens uma persistência por XML como por exemplo ser passível de pesquisa por outras linguagens?

Gustavo Guilherme BacK

Sim, lixo na velocidade, por causa dos processos de marsheling/demarsheling que são feitos nos objetos para transformá-los em XML.
Sobre fazer “query” em XML de maneira “cross-language”, dê uma olhadinha em XPath, que é exatamente o que você quer.

B

O que eu estava pensando seria ter uma interface entre o dados persistidos em XML e a aplicação, utilizando o XPath para realizar as consultas. Assim os dados poderiam ser persistidos de uma forma física, poderiam ser resgatados em caso da necessidade de outras linguagens e ainda se teria uma persistencia OO.

Gustavo Guilherme BacK

Daniel_Quirino_Olive

O que eu estava pensando seria ter uma interface entre o dados persistidos em XML e a aplicação, utilizando o XPath para realizar as consultas. Assim os dados poderiam ser persistidos de uma forma física, poderiam ser resgatados em caso da necessidade de outras linguagens e ainda se teria uma persistencia OO.

Gustavo Guilherme BacK

Algo como isso: http://www.prevayler.org/wiki.jsp?topic=Poquer ?

[editado]
Esquece isso aí. Agora eu acho que entendi o que você quis dizer!! O que você quer seria algo como um “JDBC” para XML, certo?!
[/editado]

B

Sim… mas retornando objetos java ao invés de dados tabulados.

Tipo… eu tenho os dados OO em XML. Tenho uma API que pesquisa esse arquivo e me retorna Objetos JAVA…

Existe algo assim?

Minha dúvida seria o desempenho de pesquisas em XML, por isso vivo perguntando sobre o XIndice… isso já estava matutando na minha cabeça há um mês ou mais…

Gustavo Guilherme BacK

Daniel_Quirino_Olive

“back”:
Sim… mas retornando objetos java ao invés de dados tabulados.

Tipo… eu tenho os dados OO em XML. Tenho uma API que pesquisa esse arquivo e me retorna Objetos JAVA…

Existe algo assim?

Minha dúvida seria o desempenho de pesquisas em XML, por isso vivo perguntando sobre o XIndice… isso já estava matutando na minha cabeça há um mês ou mais…

Gustavo Guilherme BacK

Não conheço… Mas com JXPath e um pouco de CGLib aqui e ali, acho que é possível fazer isso.

Sobre a questão de desempenho, não espere uma velocidade muito boa, muito menos mais rápida do que a de um banco de dados relacional.

B

“Daniel Quirino Oliveira”:
Não conheço… Mas com JXPath e um pouco de CGLib aqui e ali, acho que é possível fazer isso.

Sobre a questão de desempenho, não espere uma velocidade muito boa, muito menos mais rápida do que a de um banco de dados relacional.

Como você é cruel!! Destruiu a minha Utópica Forma de Persistência… :evil: :evil: :evil: :evil:

Não tem problemas… minha mente caótica vai pensar em outra coisa… ou melhorar essa… :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

Tenho de pensar em algo bom pra botar um projetinho de pesquisa na facul ano que vem…

Gustavo Guilherme BacK

Daniel_Quirino_Olive

“back”:
“Daniel Quirino Oliveira”:
Não conheço… Mas com JXPath e um pouco de CGLib aqui e ali, acho que é possível fazer isso.

Sobre a questão de desempenho, não espere uma velocidade muito boa, muito menos mais rápida do que a de um banco de dados relacional.

Como você é cruel!! Destruiu a minha Utópica Forma de Persistência… :evil: :evil: :evil: :evil:
Gustavo Guilherme BacK

Cruel? Mas é a pura verdade. Pensa só em como os bancos de dados trabalham. O tamanho de registro deles é fixo, ou seja, uma linha de uma tabela definida assim

create table Tabela(
   id int not null,
   nome varchar(50) not null,
   email varchar(100) not null,
//constraints e outras chatices...
);

tem sempre 154 bytes (considerando int de 32 bits e 1 caracter = 1 byte). Logo para se fazer uma consulta do tipo

select nome from Tabela
em um banco de dados relacional é ultra rápido, pois:

:arrow: seus registros provavelmente não estarão gravados em um arquivo texto;

:arrow: para buscar todos os nomes na Tabela, é preciso apenas somar 154 bytes a cada iteração que você chegará ao próximo registro (algo que pode ser feito em apenas 1 único ciclo de clock);

Fora as otimizações mágicas que os gerenciadores de banco de dados fazem para ficarem menos lerdos.
Agora, diga-me: como fazer isso em arquivos XML? :roll:

Mas, já que eu “destrui” sua utopia, vou lhe dar outra. Ali em cima eu passei um link para um tópico interno do Prevayler. O Cv e eu especificamos uma linguagem de query para que se manipule seus na objetos em memória de maneira que seja totalmente neutra com relação à tecnologia usada na implementação do mecanismo de prevalência, ou seja, não importa se seu sistema está usando o Prevayler (Java) ou o Bamboo (.NET), a forma de se fazer a query nos seus objetos é a mesma. Se você se interessar em montar um engine para o Poquer, estamos aí.

louds

Você pode tentar usar um dos vários bancos de dados XML que existem por ai.
Como o BDB, Xindice e tantos outros.
Eles não guardam os dados em formato texto e sim em uma estrutura mais eficiente.

B

“louds”:
Você pode tentar usar um dos vários bancos de dados XML que existem por ai.
Como o BDB, Xindice e tantos outros.
Eles não guardam os dados em formato texto e sim em uma estrutura mais eficiente.

Exatamente o que eu tinha em mente… Aproveitar o trabalho da galera do Apache… mas isso é uma coisa pra ser estudada…
Contudo, vou manter minha idéia… se ano que vem eu começar a trabalhar nisso posto algo aqui no GUJ porque com certeza vai ser open-source…

Gustavo Guilherme BacK

louds

Curiosamente a estrutura do XML mapeia quase 100% com a estrutura de um diretorio ldap v3.

B

Santa Ignorância, mas … o que é

ldap v3
???

Gustavo Guilherme BacK

louds

Lightweight Diretory Access Protocol versão 3

São algumas especificações para serviços de diretorio.
www.openldap.org Implementação open source muito boa.
Você também pode usar o Sun One Directory Server para aprender, se quiser.

Daniel_Quirino_Olive

Legal!! Criaram uma ponte JDBC-LDAP para o Openldap. Ou seja, teoricamente dá para fazer um OpenLDAPDialect para o Hibernate. :smiley:

louds

Não exatamente isso Daniel.
O bridge permite utilizar JDBC como backend para o openldap. E como os próprios autores falam, ele serve apenas para você importar os dados para um backend que presta e mais nada.

Daniel_Quirino_Olive

“louds”:
Não exatamente isso Daniel.
O bridge permite utilizar JDBC como backend para o openldap. E como os próprios autores falam, ele serve apenas para você importar os dados para um backend que presta e mais nada.

Ahhhhh :cry:

louds

Desculpa ai Daniel. Ato falho.
A Novell efetivamente contribuiu para o openldap a bridge JDBC-LDAP dela, vc pode ter seu OpenLDAPDialect no Hibernate sim.
Eu tava confundindo com o SQL backend.

As pesquisar vão ser lerdas pacas, mas vou dar uma olhada pra ver oque rola.

Daniel_Quirino_Olive

“louds”:
Desculpa ai Daniel. Ato falho.
A Novell efetivamente contribuiu para o openldap a bridge JDBC-LDAP dela, vc pode ter seu OpenLDAPDialect no Hibernate sim.
Eu tava confundindo com o SQL backend.

As pesquisar vão ser lerdas pacas, mas vou dar uma olhada pra ver oque rola.


EEEEEEE!!! :multi:

Criado 21 de novembro de 2003
Ultima resposta 24 de nov. de 2003
Respostas 23
Participantes 5