Qual seria a melhor arquitetura neste caso?!

Olá pessoal!

Tenho a seguinte situação, e gostaria que vocês dessem sugestões de como isso seria melhor resolvido:

Temos um sistema (legado) relativamente grande escrito em C++/Qt , rodando no Linux. Temos a intenção de migrá-lo para Java.
Os usuários acessam o sistema através de terminais burros rodando sessões no servidor de aplicações.
O sistema roda em cima de um banco PostgreSQL, sendo que muita coisa da programação do sistema está implementada dentro do banco.
Existem agências externas que DEVERIAM acessar este sistema remotamente, porém isso ainda não ocorre hoje. Nas agências existe um sistema simplificado que trabalha com tabelas dbf, sendo feita atualização diária das tabelas através de scripts e conexão com o PCAnywhere (pasmem!). Os dados que vêm das agências para atualizar nosso banco em PostgreSQL também são transmitidos da mesma forma.
A idéia de passar tudo para Java se deve a alguns fatores:

  1. Meu chefe alega que encontrar programadores C++ capacitados na nossa região é complicado e que Java seria mais fácil. Hoje em dia estou me virando bem para fazer as alterações necessárias no sistema, mas se eu deixar a empresa, podem surgir problemas a longo prazo.
  2. O sistema foi implementado usando o QtDesigner (IDE para desenvolvimento RAD do QT). O que acontece é que o QtDesigner não dá muita liberdade para desenvolvimento orientado a objetos, vc precisa ficar derivando as classes dele e o código no fim fica parecendo o velho C estruturado, com arquivos cheios de métodos isolados… Isso dificulta quando ampliações/alterações no programa são necessárias. Acredito que com Java isso torne-se bem mais fácil.
  3. Tive a idéia de, caso o sistema fosse migrado para Java, implementar tudo para WEB. Isso facilitaria a comunicação com as agências, que poderiam facilmente acessar o sistema principal.

===> Minhas dúvidas são as seguintes:

  1. Implementar isso via web seria a melhor opção? Não tenho muito conhecimento em desenvolvimento web, minha experiência é mais em aplicações desktop.
  2. Caso implementar com web seja viável (ou melhor, indicado) que ferramentas usar? Preciso disso para direcionar meus estudos e saber o que terei que aprender!
  3. Caso tenham outras sugestões para soluções, por favor me expliquem!

Obrigado!

Cássio Marques

Olá

Sei lá o que faz este treco mas se tiver que se comunicar com periféricos necessita de algo como Swing (ou SWT)

A infra-estrutura precisa ser web. Você pode fazer do modo mais simples que é usar URLConnection e enviar xml para o servidor. Este modo é simples porém requer que se programe todas as camadas comopor exemplo: rede protocolo, etc. Uma alternativa que parece boa é experimentar o genesis que já o libera de todas as preocupações com rede e modo de troca de mensagens. Quem já lidou com isto sabe a vantagem de um sistema que cuida de tudo isto para você.

Se não usar periféricos e for apenas para consulta então a camada de apresentação no browser pode ser mais rápida de fazer.

[]s
Luca

[quote=Luca]Olá

Sei lá o que faz este treco mas se tiver que se comunicar com periféricos necessita de algo como Swing (ou SWT)

A infra-estrutura precisa ser web. Você pode fazer do modo mais simples que é usar URLConnection e enviar xml para o servidor. Este modo é simples porém requer que se programe todas as camadas comopor exemplo: rede protocolo, etc. Uma alternativa que parece boa é experimentar o genesis que já o libera de todas as preocupações com rede e modo de troca de mensagens. Quem já lidou com isto sabe a vantagem de um sistema que cuida de tudo isto para você.

Se não usar periféricos e for apenas para consulta então a camada de apresentação no browser pode ser mais rápida de fazer.

[]s
Luca[/quote]

Olá Luca,

A aplicação usa impressoras e leitores de código de barra (que são como teclados, acho que quanto a isso não há problemas).
Seria possível (ou viável, pois sinceramente não sei se isso é seguro) não ter que implementar toda essa camada de comunicação e criar um sistema web acessado pelas agências usando a internet, com autenticação? Porque duvido MUITO que instalem qualquer outro esquema de comunicação (VPN ou coisas do tipo) iterligando as agências…
Para os clientes que ficam na nossa central, o acesso direto ao servidor web, acessando JSP’s seria possível?

Obrigado!

Olá

Não precisava de VPN sem bem que o preço de uma é apenas o preço de uma máquina obsoleta com pouco disco.

Quanto a segurança de uma aplicação web eu não vejo problema nenhum.

E o acesso de qualquer parte do mundo é tranqüilo.

[]s
Luca

[quote=Luca]Olá

Não precisava de VPN sem bem que o preço de uma é apenas o preço de uma máquina obsoleta com pouco disco.

Quanto a segurança de uma aplicação web eu não vejo problema nenhum.

E o acesso de qualquer parte do mundo é tranqüilo.

[]s
Luca[/quote]

O sistema realiza muitas pesquisas e cadastros… algumas funcionalidades para geraçào de relatórios, etc… Muita coisa é o banco quem faz. Alguma sugestões sobre Frameworks, coisas que devo estudar etc? Sei que é muita ignorância, mas nunca desenvolvi nada muito grande para web…

Obrigado!

Olá

O básico: Java, servlets, HTTP, desenvolvimento web com Java. E gastar uma semana avaliando Ruby e Rails só vai lhe fazer bem.

[]s
Luca

Muito obrigado Luca!