Preciso desenvolver um aplicativo onde o mesmo deve ter um sistema que acesse o banco de dados e visualize as informações via web, bem como ter vários clientes Desktops.
Estou pensando em criar uma aplicação JavaEE usando o EJB onde terei os meus serviços. Com relação aos clientes Destkop nao quero que os usuarios a cada atualização que eu faça nos sistemas tenha que baixar fazer o upgrade. Quero que eles acessem via página Web do sistema especifco e entao via web start a aplicação seja baixada e desta forma seja a ultima versão, a pergunga é: está é a forma correta de fazer?
Cara, é muito melhor usar as especificações e desenvolver para web.
Ao invés de fazer uma aplicação desktop, desenvolva em web. Sempre terá a última versão.
A evolução do desenvolvimento de software trouxce esta maneira de desenvolver. Eu trabalho com isso e digo, é muito bom.
Com relação às outras camadas, fale mais sobre os requisitos de sua aplicação, assim podemos
selecionar o melhor conjunto de tecnologias para te ajudar!
Alguns aplicativos tem que ser desktop, isto porque o que é feito com eles, interação com equipamentos de rede para o desenvolvimento também é muito mas raṕido. Outro detalhe é que tenho que ter algums aplicativos que rodam através da cron e em máquinas separadas para nao prejudicar o processamento do servdor.
Por esses detalhes que estou pesando em usar o que falei na abertura do tópico.
Nenhum dos argumentos q vc usou explica fazer uma aplicação para desktop.
Uma aplicação web pode ser muuuito mais rápida q uma desktop.
E a questão do servidor, pode ser feito de muitas maneiras. Por exemplo: colocar seu banco de dados no servidor e a aplicação em um cloud.
Nunca uma aplicação desktop vai ser melhor q uma aplicação web.
Há algum tempo iniciamos um projeto com requisitos parecidos com os que você apresentou. Também optamos por desenvolver algumas interfaces desktop e outras web. Não nos arrependemos.
Não dominávamos EJB. Então optamos por não utilizá-los inicialmente e fomos estudando paralelamente. Há aspectos muito úteis nessa tecnologia (clusters, balanceamento). Mas se você construir seu sistema com uma arquitetura bem resolvida, poderá adicionar EJBs posteriormente e manterá seu sistema independente deles.
Voltando à questão da interface. Além da web e desktop, é provável que você precise de outras interfaces (integração EDI, dispositivos móveis, sistemas legados, etc). Então, o que sugiro é que você crie seu sistema, separando completamente a interface da aplicação. No nosso caso, criamos um projeto para a aplicação e outros projetos para cada tipo de interface.
Obrigado a todos pelas repostas, vou optar por uar EJB mesmo.
Só aproveitando gostaria de ponderar sobre o que o nosso amigo aluisiodsv respondeu:
A questão nao está relacionado a ser melhor, porém a atender o que eu preciso, veja, vou precisar de clientes que em nenhum momento sofrem intervenção humana, os mesmos são executados via cron, até pensei usar o EJB Time Service, porém como tenho hardware para distribuir minhas aplicações como clientes decidi por nao usar os timers. Nunca vi uma página html sofrer interações em que seja de um humano, certo?
Outra questão é ainda vamos depender por um tempo de aplicações que não sejam somente WEB.
[1]Não sofrem intervenção humana ? Então não é uma aplicação desktop, com janelas e tudo mais ?
[2]Não entendi …
[3]Por quê ?
Realmente, o hardware vai interferir na decisão. Seu ambiente está propício à divisão dos processamentos, só q a evolução do software destacam esses problemas. Por isso tudo voltou a ser como era antes, onde o processamento é focado em um servidor.