Transformando aplicação desktop em aplicação web

11 respostas
M

Bom dia,

Eu gostaria de saber se alguém tem algum tutorial ou paciência para me explicar como transformo uma aplicação web.
Tenho uma aplicação Cliente/Servidor com a comunicação feita por RMI e agora não sei como passar isso pra web, vendo que eu nunca trabalhei com desenvolvimento web antes.
Me foram dadas duas opções: trabalhar com JSF ou com JSP, o que vocês me indicam?

Desde já, obrigado.

11 Respostas

A

olha, vc não vai achar nenhum tutorial aonde vc transforme uma aplicação desktop para web. O que vc vai ter que fazer é estudar é o JEE msm, existente varios framework para isso, o que eu indicaria seria JSF, vc poderia dar uma olhada numa impletação do JSF que é Primafaces.

espero que te ajude.

t+

D

Em primeiro lugar, você precisa definir o que vai precisar.
Uma aplicação web é, definitivamente, cliente/servidor.
Para tanto, precisará de uma interface com o usuário e uma estrutura com um servidor de aplicações e, muito provavelmente, um banco de dados.
Definindo o tipo de tecnologia a ser utilizado, você já pode pensar no servidor (basicamente todos suportam JSP/Servlets e JSF 1.x ou 2).
Sugiro que você teste e escolha de acordo com a facilidade que encontrar.

Lembrando que, tudo que você faz com qualquer framework, como JSF2, pode ser feito com jsp e servlet. O problema é o tempo de desenvolvimento, manutenção mais complicada e complexidade.

Sugiro que você avalie a possibildiade de utilizar algum framework para persistência (EclipseLink ou Hibernate, por exemplo).

Bom, uma vez definida a estrutura e a tecnologia, o próximo passo será colocar as telas em páginas.
Isso não deve ser problema, cada tela terá uma página (ou div/aba) e terá a mesma funcionalidade.

Dúvidas, o guj tá aí pra ajudar.

M

Alisson,
Eu li um pouco do sobre o primefaces e até desenvolvi um CRUD usando ele, gostei muito, mas nessa aplicação que to tentando agora, ainda não achei o jeito pra trabalhar o MVC que o JSF precisa.
É uma aplicação bem simples: No cliente, eu vou ter um diretórios com uma série de arquivos que vou ler e após esses arquivos forem lidos, vou renomea-los para que não sejam inseridos novamente. No servidor, eu vou buscar o que foi lido desses arquivos, inserir em um banco de dados e ter uma tabela mostrando esses dados.

Outra coisa que não entendi é o seguinte: onde vai o RMI na web?

Eu já sei que vou ter que usar o Tomcat como servidor de aplicações, só não entendo o papel dele muito bem. Pelo que eu entendi, vou rodar o código dentro dele, não é?
Um dos meus maiores problemas é o que fazer na interface com o cliente, por que pra mim o que importa mesmo é o servidor, onde vou ter que ter uma tabela para mostrar dados que vão ser captados do cliente.

Sobre o framework, eu estava pensando em usar o JSF2, mas ainda não sei como vou conseguir estruturar minha aplicação em MVC, porque ela é bem simples e ainda não consegui achar uma maneira pra isso. Sobre usar um framework, acho que por agora não compensa. O que eu to desenvolvendo agora é um protótipo de uma aplicação maior e só tem uma tabela de banco de dados.

A

Munique,

pelo que eu percebi, vc não tem muito conhecimento para desenvolvimento para Web (me corriga se tiver errado), o que te recomendo é dar uma estudada em JSP/Servlet com Tomcat msm, para depois vc passar para o JSF, pois com isso, vc vai entender o conceito de Java para Web.

Agora em relação ao seu projeto, é seguinte, numa aplicação Web, vc não consegue acessar arquivo da maquina do cliente diretamente (vc ate consegueria usando um outro conceito do java, que é o Applet), o que vc vai ter que fazer é o seguinte, vc vai ter uma pagina que possua um componente para upload de arquivo, aonde o cliente iria postar os arquivos que ele desejaria que fosse manipulado, um exemplo para vc se situar, seria como no gmail, se vc quisesse enviar um email com um arquivo em anexo.

espero ter te dado uma luz.
qualquer duvida poste novamente.

t+

M

Eu não tenho conhecimento mesmo não, ia começar estudar esse semestre, mas a universidade entrou em greve e atrasou meus planos.

Sobre a aplicação, eu pensei a mesma coisa que você sobre o upload, mas não vai funcionar. Essa aplicação vai rodar 24 horas, provavelmente tendo atualização de arquivos no diretório de 5 em 5 minutos, então tem que ser feito de forma automática. Não vai ficar ninguém no terminal onde o cliente roda, então não tem jeito de fazer isso. Com RMI eu criei um método que acessa a máquina do cliente, lê o conteúdo do arquivo e envia ao servidor para o armazenamento no BD.

Se puder, dá uma olhada no código.

F

Não existe tal tutorial, mas ja posso te dizer que sera uma conversão de paradigma sim…
Aplicações web são por natureza distribuídas, envolvendo muitas questões tecnológicas e de segurança não existentes no modelo cliente/server.
Eu vejo dois caminhos para vc conseguir chegar nesse objetivo com sucesso:

  1. Contratar uma consultoria
  2. Estudar e aprender o paradigma de aplicativos web e para depois fazer um planejamento de conversão.
A

Munique,

fiquei numa duvida, será somente um cliente comunicando com o servidor ou varios clientes comunicando com o servidor?

mas independente da resposta,
para aplicação servidor, acho o conceito de socket mais bacana, existe ate uns framework’s legal para vc trabalhar com esse conceito, como, Grizzly , Apache Mina.

para aplicação cliente, o que eu te indicaria para o agendamento seria o framework Quartz.

ai Caso vc queria exibir as informações dos arquivos na web, ai sim vc criaria um projeto web, para acessar o banco de dados e exibir as informações.

espero que ajude.

t+

M

Fernando, vou procurar aprender mesmo, não tenho condição de bancar uma consultoria.

Alisson,
Por enquanto, só um cliente. Pode ser que mais pra frente, em outras versões sejam mais, mas por enquanto é só esse.
E pois é, eu acho socket mais fácil de trabalhar, mas me foi pedido fazer em RMI. Eu vou ler mais sobre o Quartz, mas gostei da proposta, vou ver se consigo encaixar ele aqui.

Meu problema vai ser mesmo conseguir encaixar o RMI para Web, não achei nada sobre isso.

A

Munique,

vc ainda está confundido os conceitos, vc vai ter 3 aplicações,
1 - aplicação que vai rodar no seu servidor, ela vai ser responsavel por receber o conteudo do arquivo e gravar no banco de dados.
2 - aplicação que vai rodar no cliente, ela vai ser responsavel por enviar o conteudo do arquivo para a aplicação servidor, alterar o nome do arquivo e isso vai rodar de tempo em tempo.
3 - aplicação Web, ela vai ser responsavel por exibir as informações contida no seu banco de dados.

Então vc não vai ter nenhuma ligação entre RMI e Web não.

t+

M

Ahhh, finalmente entendi! Nossa, tava embaralhando tudo… Então só tenho que fazer um projeto para exibir o que for enviado…
Eu tava achando que iria ter que mesclar e fazer sei lá o quê… Sendo assim, agora vou pensar em como pegar esses dados e jogar eles em uma datatable ou algo assim.

Olha, muito, muito obrigado! Não fosse você me falar isso, ia passar o fim de semana inteiro batendo a cabeça!

A

bom que vc entendeu… :lol:

t+

Criado 30 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 11
Participantes 4