Aplicação Desktop - Cliente x Servidor

5 respostas
G

Boa noite à todos.

Não sei se estou postando no lugar certo, mas lá vai. Sou novo em java e estou envolvido em um projeto no qual preciso desenvolver uma aplicação desktop. Estou a todo vapor, mas estão surgindo algumas dúvidas:

Como implementar uma estrutura cliente x servidor com java? Não sei ao certo se isto é necessário, mas eu gostaria, de por exemplo impedir que duas pessoas tentassem atualizar o mesmo registro (não sei se isto seria certo, mas tipo, travar determinada ação no sistema, quando alguém a estiver executando).

Gostaria de deixar a aplicação em um servidor para fazer todo esse controle.

Enfim, gostaria de sugestões para essas questões.

Desde já agradeço a todos.

Gláuber

5 Respostas

J

Comece aprendendo JNLP que vai te ajudar.

Depois leia a apostila FJ11.

rael_gc

glaubersilverio:
Boa noite à todos.

Não sei se estou postando no lugar certo, mas lá vai. Sou novo em java e estou envolvido em um projeto no qual preciso desenvolver uma aplicação desktop. Estou a todo vapor, mas estão surgindo algumas dúvidas:

Como implementar uma estrutura cliente x servidor com java? Não sei ao certo se isto é necessário, mas eu gostaria, de por exemplo impedir que duas pessoas tentassem atualizar o mesmo registro (não sei se isto seria certo, mas tipo, travar determinada ação no sistema, quando alguém a estiver executando).

Gostaria de deixar a aplicação em um servidor para fazer todo esse controle.

Enfim, gostaria de sugestões para essas questões.

Desde já agradeço a todos.

Gláuber

Sobre o problema de ter mais de uma pessoa editando um mesmo registro, procure na web sobre “lock otimista”. Não faça lock em tabelas do banco (lock pessimista). Isso vai te dar uma dor de cabeça monstro.

G

Obrigado pelas recomendações. Estou pesquisando sobre JNLP. Não conhecia e parece ser a solução para o meu problema de deixar a aplicação em um servidor e distribuí-la.

Com relação ao lock, achei bastante coisa, porém, para uso com hibernate e não estou utilizando nenhum framework de persistência e já tenho bastante coisa pronta!!! Alguém teria um exemplo de lock otimista sem utilizar hibernate? Será que valeria a pena eu passar um tempo aprendendo Hibernate e migrar tudo que eu tenho pronto? O que acham sobre isso? Também li sobre lock no banco de dados, é recomendável?

Att.

Gláuber

rael_gc

Não tem muito segredo, e dá pra fazer sem usar frameworks ORM. Vc cria na table uma coluna numérica pra salvar o número da versão daquele registro. Quando for dar update naquela row com os dados que o usuário editou, faz “UPDATE table SET xxx WHERE versao = N”, e aí o update só vai acontecer se a versão for a versão que o usuário tá visualizando.

Supondo que dois usuários estejam editando o registro naquele momento, o primeiro usuário que editar aquela row vai ter os dados salvos. Se vc ver que o UPDATE não afetou row alguma, vc exibe uma mensagem pro usuário que alguém já editou o registro, e confirma se ele quer ver os dados atualizados ou sobreescrever.

Sobre dar lock no banco: é pura dor de cabeça.

Sobre usar ou não o hibernate, se vc usar os assistentes do Netbeans (se vc está usando outro editor, pode usar ele de qualquer forma só pra gerar seus Entities), vc cria em 5 minutos todas as classes que precisa. Aí claro, vai faltar o resto do código, e seu conhecimento sobre JPA/Hibernate.

glaubersilverio:
Obrigado pelas recomendações. Estou pesquisando sobre JNLP. Não conhecia e parece ser a solução para o meu problema de deixar a aplicação em um servidor e distribuí-la.

Com relação ao lock, achei bastante coisa, porém, para uso com hibernate e não estou utilizando nenhum framework de persistência e já tenho bastante coisa pronta!!! Alguém teria um exemplo de lock otimista sem utilizar hibernate? Será que valeria a pena eu passar um tempo aprendendo Hibernate e migrar tudo que eu tenho pronto? O que acham sobre isso? Também li sobre lock no banco de dados, é recomendável?

Att.

Gláuber

G

Muito obrigado Rael.

Eu estou realmente utlizando o Netbeans e como não tenho bons conhecimentos sobre JPA/Hibernate, vou seguir o conselho de sua implementação e fazer os testes sem um framework. Vou deixar este estudo do Hibernate um pouco mais pra frente.

Criado 5 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 5
Participantes 3