Pessoal,
Estou em uma empresa que está se preparando para migrar uma base de sistemas em Clipper, Clarion e Delphi inteiramente para Java.
Todos os sistemas serão inteiramente migrados.
Hoje a empresa possui vários mini-sistemas que, juntos, formam uma espécie de ERP.
Assim sendo, vamos iniciar o desenvolvimento com muita calma e organização, para que ao longo do processo, as bibliotecas criadas sejam portáveis para sistemas menores, novas versões, enfim…
Desde o início já estamos deixando bem definido o padrão MVC.
Ocorre o seguinte: qual tecnologia utilizar?
Sei que é virtualmente impossível uma resposta exata, mas queria opiniões.
A abordagem SWING + Hibernate não parece ser das melhores, até porque traz alguns problemas quando utilizada em grandes ambientes, como alguns de nossos clientes atuais (um exemplo: ao atualizar o sistema, toda a empresa tem q parar, atualizar máquina-a-máquina, e depois reiniciar o sistema…)
Mas a abordagem 100% web parece ligeiramente chata. Não difícil, mas a nossa experiência até o momento é APENAS com sistemas desktop, e montar interface WEB definitivamente não é nosso ponto forte…
Existe também algumas questões a serem abordadas:
- Segurança. Procurei aprender sobre Spring Security mas parece funcionar APENAS para WEB e não para aplicações do jeito que descrevi (locais + hibernate)
- Interface extremamente amigável. Nossos usuários estão acostumados a entrar em contato conosco até para descobrir como criar atalhos no desktop, e uma interface amigável é INDISPENSÁVEL para evitar MAIS chamadas de call-center…
- Log. Eu sei que com Log4J é ultra-simples, mas preciso de uma situação um pouco mais complicada: log local e log remoto (database). Parece que o Log4J faz isso.
- Autenticação Active Directory. Dentre os clientes atuais, um banco utiliza Windows Server 2003 (ele é OBRIGADO a ter este sistema) com controle de domínio, active directory, diferentes roles por usuários e tudo mais. Seria extremamente interessante para eles já usar a presente estrutura do AD. Sei que é possível via Spring Security, mas voltamos para o problema de um servidor WEB.
- Comunicação com outros sistemas. Preciso de comunicação. Integração. Preferencialmente via WebServices.
- Comunicação via WEB. Os dados (SGBD) tem que possuir a capacidade de ser um servidor remoto.
ME PARECE que a melhor solução para reunir tudo isto, de forma bem inteligente e bem “bacana” seria mesmo em um sistema totalmente WEB com Servlet + EJB como camada funcional e HTML + Ajax como camada de interface, junto de alguns JSP.
Como fica o JSF? Seria uma alternativa interessante?
Serei o responsável por coordenar esta migração e, TUDO indica que vamos usar NetBeans principalmente porque nossos atuais programadores são MUITO familiarizados com a facilidade do “clica e arrasta” para se montar telas. A vantagem do JSF é enorme neste ponto porque o NetBeans fornece um editor gráfico relativamente bom para isto, o que já ajuda muito no desenvolvimento inicial.
Mas também não quer dizer que só podemos usar NetBeans. A escolha inicial foi feita justamente pelo editor gráfico. No entanto, Eclipse possui vários outros pontos importantes a serem levados em consideração.
Estava pensando em:
- JSP + Servlet + EJB
- Spring MVC + Spring Security
- Hibernate
- JBoss
Mas fuçando a internet descobri muita coisa sobre
RPC
WebServices
e uma série de outras tecnologias.
RPC, como ficaria a performance via internet? Tenho medo de que seja muito eficiente local mas ao comunicar SWING + WEB via RPC a performance caia drasticamente…
Opiniões, por favor :?: