Senhores(as) tenho a seguinte dúvida e gostaria da sua ajuda…
Estou desenvolvendo um sistema que possuirá diversos módulos, como, financeiro, contabilidade, atendimento a clientes, etc.
Estava pensando em criar um projeto para cada módulo, acessando o mesmo banco de dados. Por que isso? Caso eu tenha que fazer alguma manutenção em um módulo apenas, não precisarei fazer o deploy de um único projeto, parando os módulos que não estão envolvidos.
Para a regra de negócio eu criei uma API, ou seja, um projeto java e gerei o .jar que será adicionado a lib de cada projeto (módulo). A questão é…como farei isso com as telas (arquivos xhtml)?
Até onde sei, para atualizar sua aplicação, será necessário parar o servidor e fazer um redeploy do arquivo war, pois todos os arquivos jar de bibliotecas estão dentro dele.
Conheço um projeto que trabalha com modulos onde cada usuário pode instalar apenas o que precisar, talvez seja interessante você conversar com eles ou dar uma olhada em como eles fazem isso, o código fonte está disponível no github, segue o endereço oficial do proejto http://openmrs.org/
com maven da para modularizar relativamente facil
ficaria algo assim:
Projeto Principal
– Modulo A (war) -depende de Modulo ComumAB
– Modulo B (war) -depende de Modulo ComumAB
– Modulo Comum AB (jar)
se as regras especificas da camada A usufrui a infra/regra do modulo comum