Gostaria antes de tudo pedir desculpas, se por acaso alguém já fez uma pergunta parecida, eu de fato não fiz pesquisa no forum, porque eu não faço ideia de como pesquisar isso.
Pessoal, me jogaram uma bomba e não sei como desarmar, então estou recorrendo a voces, pois bem, eu fiz um programa para consumir uns serviços da nossa empresa, mas, como todos sabem quando vamos implantar, sempre o cliente quer alguma coisa diferente, eu queria saber como eu poderia fazer ou pesquisar, para fazer algo assim.
Desenvolver uma aplicação base, onde o cliente vai entrar e procurar as telas.
Ai nas telas, eu criar um jar com os metodos e etc dela, ai ao inves de atualizar a app toda, eu somente atualizo esse jar, pq assim, a maioria dos clientes pede pra alterar os dados do cadastro, ai toda vez eu tenho que mexer, compilar tudo e tal, dessa forma não precisaria fazer isso.
Primeiramente vc terá que pensar numa arquitetura que irá permitir esse tipo de intervenção… cada caso é um caso…
Essa aplicacao é web ou desktop??
O primeiro passo que eu te aconselharia fazer… é estudar ClassLoader… implementar o seu próprio… entender bem como funciona isso… pq eu imagino que em algum ponto a solução que vc tiver para o problema passará pelo ClassLoader… então é um bom ponto de partida…
Você pode usar Java Web Start, ele deve garantir que a aplicação esteja sempre atualizada, mesmo que ela consista de vários JARs.
Uma aplicação Java Web Start só precisa do browser para poder baixar os JARs, mas ela pode acessar arquivos e bancos de dados como uma aplicação normal.
A principio é uma app desktop, ela é instalada em um micro que faz a comunicação com o servidor através de webservices que se comunicam com o bd, pra poder usar em varias plataformas, por causa da dificuldade, a gente ta permitindo somente nos cadastros e algumas consultas a customização.
A principio, são na maioria dos casos, remover algum campo(somente da tela) mudar posicionamento dos campos da tela, nesses casos as queries de inclusão, exclusão, consulta, não alteram.
No caso das consultas sim, eles podem mudar as queries, mas, nessa parte, eu passo a querie como um parametros no webservice, ai ele me retorna os registros em um xml.
Na parte do cliente acontece de na maioria das vezes eles desejarem a inclusão de um relatório diferente, ou uma consulta, os serviços já existentes não mudam suas assinaturas, mas, pode ocorrer a implementação de novos.
Isso o Javawebstart dá conta… ou qualquer outra solucao que baixe os jars na hora para o cliente usar… ou entao tenha uma opcao de atualizar a aplicação cliente…
Isso pode ser perigoso… e se o usuário tiver um pouco a manha de como chamar webservices, e invocar uma query arbitrária?
Faça uma arquitetura que permita a adição de webservices sem a necessidade de reinicar a app… como nao irá alterar o que já tá rodando… fica beeeem mais fácil…