A arquitetura da aplicação define a articulação lógica dos componentes e serviços em software sem estabelecer uma escolha definitiva sobre a maneira de aplicação. Trata-se da definição da base estrutural.

Distribuição em módulos e modelo em camadas #

As classes que constituem o código da aplicação Java inicialmente serão agrupados em pacotes de acordo com as camadas definidas na arquitetura. A distribuição dos módulos ou domínios identificados na análise ou design da aplicação, deverá ocorrer dentro das camadas da aplicação. A distribuição em pacotes deverá demonstrar as camadas e em seguida os módulos ou domínios identificados na análise ou design da aplicação, exceto as funcionalidades puramente técnicas ou transversais ao sistema. Esta escolha visa facilitar a identificação de objetos e ou funcionalidades comuns dentro de cada camada da aplicação como incentivo ao reuso e componentização dos objetos criados.Os pacotes serão organizados em camadas, cada uma para o seu papel específico na aplicação. Serão 4 camadas por padrão:

  • client (cliente) : gestão da apresentação à tela, da navegação e das interações entre o sistema e os usuários em geral (IHM); esta camada também pode representar os tratamentos do tipo batch ou de outros sistemas que acessem alguma funcionalidade da aplicação.
  • service (serviços) : reúne toda a lógica funcional da aplicação na forma de serviços
  • persistence (persistência) : realiza a correspondência entre as entidades de negócio sob a forma de objetos e o seu armazenamento na camada inferior, permitindo também realizar a ligação com outros sistemas externos
  • data (dados) : sistema(s) externo(s) utilizados para conservar os dados, tipicamente uma base de dados relacional. Em geral, esta camada não é realizada em Java, não aparecendo nos pacotes de código da aplicação.

Caso seja desejável implementar reutilização ou componentização das camadas baixas entre várias aplicações, deverá ser adicionada uma camada suplementar:

  • enterprise (corporativa): reúne a lógica de negócio comum à todas as aplicações

Desta forma, estará distinto no nível da camada de serviço, várias aplicações que realizarão solicitações aos serviços de uma camada enterprise comum transversal às aplicações.