Projecto de arquitectura / organização na aplicação Java EE com EJB 3.0, projetos web JPA, dinâmicos no JBoss

StackOverflow https://stackoverflow.com/questions/420222

Pergunta

Eu tenho um webapp com diferentes projetos da Web dinâmicos, cada um deles contendo geralmente um projeto EJB. Queremos mantê-los interagindo, como no uso de grãos e classes de EJBs uns dos outros através de JNDI, compartilhando o mesmo banco de dados ou usando seu próprio. Mas também quero ser capaz de manter os projetos diferentes em diferentes servidores.

Qual seria o foco correto para esse tipo de projeto em termos de arquitetura e organização?

Como devemos usar ouvidos? Um EAR para governá-los todos e na escuridão aprisioná-los? (Desculpe, tinha que fazer essa referência LOTR), ou um EAR por servidor / projeto web, etc.?

Foi útil?

Solução

O espaço em disco é barato, mas se você jogar tudo em um único EAR, o servidor de aplicativo é susceptível de executar todos eles, mesmo se tudo que você quer é o Serviço A. Você é a melhor quebrar EJBs comumente usados ??e implantá-los em pelo -se, e os componentes de cada serviço individual em seus próprios ouvidos.

Em seguida, usando JBoss como um exemplo, você pode simplesmente copiar os artefatos para a direita no diretório deploy de qualquer servidor que deseja executá-los em.

OrderManagement.ear InventoryManagement.ear StoreFront.ear

Você pode então ter ou todos, alguns ou nada em qualquer servidor em particular.

Outras dicas

O EJB são destinadas a ser modular, por isso, dependendo do serviço que você deseja fornecer você deve fornecer um EAR adequado para ser implantado. Além disso, tente usar MBeans e implantá-los como serviços independentes. interfaces de gerenciamento ajudar muito quando a depuração e testes.

Tenha em mente correção de bug / atualizar e cenários de testes de regressão. Quanto mais módulos EJB que você tem na mesma orelha, mais pontos de função terá testes de regressão, mesmo se você fixa ou adicionou um novo recurso para apenas um dos módulos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top