Modularização de Projetos

Olá Pessoal,

Estou estudando maneiras de modularização de projetos, e estou com dificuldades de encontrar referências sobre assunto.
A idéia é dividir o aplicativo em vários módulos: financeiro, comercial, logística, rh, etc…
Pensei em duas maneiras de realizar a modularização: a primeira delas seria que cada módulo geraria um pacote .ear com um pacote.war e seus ejbs, e utilizaria uma estrátegia de single sign on (sso) para login, porém algumas pessoas com quem conversei disseram que tiveram problemas sérios com o servidor de aplicação usando essa estratégia, a segunda delas seria dividir a aplicação apenas logicamente em vários módulos, porém, utilizar o maven para gerar um único .ear com um único .war dentro, e para que aplicação não caia, utilizar recursos de hot-deploy e cluster do servidor.

Se alguém tiver alguma referências sobre esse tipo de coisa, por favor, me avise.

Abraço,
André Faria

IMHO o mais correto mesmo é fazer todos os módulos em apenas um .ear independente de quantos módulos tenha, já que é um projeto. Se voce tiver um .ear por módulo vai ser trabalhoso e confuso ficar fazendo referencia de classe de um projeto pra outro. O maven eu acho que dá uma organizada legal no projeto, eu uso e nao tenho problema algum. Vale lembrar que o maven faz muito mais além de build.

Obrigado por reponder ffranceschi.

Com certeza o maven é uma ferramenta muito poderosa, que faz muito mais que build, a utilizo para gerar documentação, relatórios, site do projeto, deploy, e execução de testes unitários em ambiente de integração contínua.

Voltando ao projeto, estou pensando na seguinte estrutura:

| / pom.xml (projeto)
|-- projeto-ear
| -- pom.xml |-- projeto-ejb | |-- src | |– main
| | -- resources | |– META-INF
| | -- ejb-jar.xml |– pom.xml
|-- projeto-core (model e DAO)
| -- pom.xml |-- projeto-util | |-- projeto-logging | |– pom.xml
| |-- projeto-validator
| | -- pom.xml |– pom.xml
|-- projeto-web
| |-- projeto-comercial
| | |-- src
| | | -- main | | |– webapp
| | | |-- WEB-INF
| | | | -- web.xml | | |– index.jsp
| | -- pom.xml |– pom.xml
| |-- projeto-financeiro
| | |-- src
| | | -- main | | |– webapp
| | | |-- WEB-INF
| | | | -- web.xml | | |– index.jsp
| | -- pom.xml |– pom.xml
|-- src
| -- main |– resources
`-- pom.xml

O que vocês acham? Já trabalharam com esse tipo de estrutura?

Estou me baseando no archetype j2ee-simple
http://maven.apache.org/plugins/maven-archetype-plugin/examples/j2ee-simple.html

aquii uso assim mesmo…
só que com 4 subprojetos

commons
web
ejb
ear

O caminho é esse mesmo. Aqui nao divido os módulos pq não é tão grande assim, e as vezes acaba complicado mais que ajudando…

André,

   Vi a sua dúvida sobre modularização de projeto  e acredito que ja tenha resolvido este problema, que isto ocorreu em 2007. Queria te perguntar se você conhece alguma referência sobre esse assunto. "Técnicas de modularização de projetos de softwares". Se puder me responder eu agradeceria.

Desde já agradeço

Adriano Souza
Analista de TI

Opa! Então Adriano, a solução para o projeto do qual mencionei neste post, foi a seguinte, criei vários projetos no maven e no fim das contas ele me gerava um war com tudo dentro. O único problema é quando você quer modularizar a parte de web (servlets, jsps e afins), daí fica meio complicado porque você só pode ter um web XML e todos os JSP devem ficar na mesma pasta do war.

Na próxima versão do Java haverá soluções bem mais interessantes através do uso de OSGI e da API de modularização do Java. Eu também estou esperando para ver.

Qualquer coisa é só falar…

Então André,

Vlw pela atenção. Mas o que eu estou precisando mesmo é de conceitos relacionados à técnicas de modularização. Neste caso vc utiliza o maven, uma ferramenta para organizar o software. Mas de qualquer forma me deu uma luz.

Obrigado.
Abraço

Adriano Souza

Pessoal achei um material muito bom sobre esse assunto:

http://portal.acm.org/citation.cfm?id=1363851
http://www.scs.carleton.ca/~deugo/thesis/simon-kaegi/thesis-sk-final.pdf

[quote=andrefariagomes]Pessoal achei um material muito bom sobre esse assunto:

http://portal.acm.org/citation.cfm?id=1363851
http://www.scs.carleton.ca/~deugo/thesis/simon-kaegi/thesis-sk-final.pdf[/quote]

Ótimo material,

Estava buscando algo sobre OSGI + Web.

Vlw

Encontrei também esse livro da Pragmatic Bookshelf

http://www.pragprog.com/titles/cwosg/modular-java

Em PDF custo $22,00