-
Notifications
You must be signed in to change notification settings - Fork 3
Home
No desenvolvimento de uma aplicação Java web nos deparamos com uma série de desafios como:
- Como integrar todos os frameworks harmoniosamente?
- Como contornar os comportamentos indesejados de alguns frameworks?
- Como garantir a segurança?
- Como prover e/ou reaproveitar classes facilitadoras das nossas camadas?
- Como prover e/ou reaproveitar uma série de componentes (CPF e etc)?
- Etc
A arquitetura Suri-CDI surge justamente na tentativa de resolver esses problemas que sempre enfrentamos nos projetos, otimizando no tempo de codificação, reaproveitando códigos e ajudando a produzir aplicações mais seguras e com menos erros.
Além disso, é premissa da arquitetura ser o menos intrusiva o possível, fornecendo a flexibilidade ao desenvolvedor de utilizar o que desejar e quando desejar, sem engessar!
A arquitetura Suri-CDI não quer reinventar a roda propondo uma série de camadas e nem diz que é obrigatório seguir as camadas que serão sugeridas, tão pouco que você não possa introduzir camadas se desejar.
Enfim, no nosso cotidiano vimos que basicamente 3 camadas são importantes e muitas vezes suficientes, são elas:
- Persistência (Repository)
- Responsável pela manipulação dos dados junto ao seu local de persistência
- Negócio (Service)
- Responsável pela regra de negócio da aplicação e controle transacional
- Visão (Controller + views)
- Responsável pela interface com o usuário
Em alguns casos, pode ser necessário acoplar outras características ao software que impliquem em novas camadas arquiteturais. Esses são os casos de agendar serviços do sistema (ex: jobs) ou expor funcionalidades (ex: web services). Embora não sejam partes fundamentais da arquitetura, estão prevista e podem ser normalmente utilizadas:
- Jobs (Batch)
- Agendamento de serviços do sistema para serem executados de tempos em tempos. Serão controlados pelo framework Quartz e armazenados em banco de dados
- Web services
- Interfaces expostas por serviços do sistema via REST ou SOAP
Seguindo esse modelo de camadas, a arquitetura encontra-se modularizada em:
- Engloba a camada de Persistência, a camada de Negócio e a camada de Web Services, para os projetos que necessitarem. Não define a tecnologia da camada de visão que será utilizada. Ou seja, se o seu projeto não utiliza JSF, utilize apenas o módulo Core.
- Tecnologias que são utilizadas no módulo:
- EJB 3.1
- CDI
- JPA 2
- DeltaSpike Core
- Suri-Util
- Camada de apresentação, com a definição de que a tecnologia JSF deverá ser utilizada.
- Tecnologias que são utilizadas no módulo:
- JSF 2
- Rewrite
- Primefaces
- Infraestrutura para agendar serviços e audita-los quando necessário.
- Tecnologias que são utilizadas no módulo:
Confira o exemplo que preparamos para utilização da arquitetura Suri-CDI que encontra-se na pasta example na raiz do projeto.
Caso queira já partir para criação de seu projeto, comece pela guia de Configuração.
© Copyright 2014 SURITTEC