Pessoal devido a necessidade de utilizar EJB3/JPA em minha aplicação e deixar de alguma forma flexibilidade para caso deixe de usar EJBs estou pensando na seguinte arquitetura e gostaria de opniao de voces a respeito.
Estou pensando em utilizar as Entidades mapeadas com JPA e uma fabrica de Facades logo em seguida com um FacadeAncestral com metodos comuns como CRUD e herdar isso nos demais Facades. Isso porque necessito de utilizar controle de transações entao como vou utilizar de inicio o controle do container esse foi o ponto de abstração que encontrei. Eu poderia ate criar uma camada antes do Facade pra isso mais acho que vai gerar um Overhead a mais atoa. E a flexibilidade vai se dar pelas interfaces e pelo factory de Facades onde caso nao de certo a utilização dos EJBs a fabrica pode me retornar uma outra estrutura de persistencia onde o controle de transação sera feito no Facade.
Deu pra entender ??
Sera que essa é a melhor solução ??
Utilizo o Facade mesmo ou crio uma outra camada intermediaria ??
Vou acessar esses Facades pelo com JSF com um BusinessDelegate na ponta que seria uma especie de Facade na Camada Web entao caso altere a implementação do Facade isso nao afeta meu cliente.
O que acham da Solução ?
Em suma preciso dessa flexibilidade porque isso é pra um sistema 24*7 Missao Critica que caso os EJBs nao correspodam ao esperado ja esteja preparado para algum outro mecanismo de persistencia sem comprometer a camada de apresentação nem a produtividade, tudo isso sem complicar demais é claro.
O uso de AbstractFactory com DAOs utilizando os Patterns J2EE seria o perfeito senao fosse o problema que surge com a necessidade do controle de transação que pretendo utilizar o do container inicialmente.
Por favor postem suas opniões para que eu possa evoluir isso e chegar num ponto que possa partir pra prova de conceito.
A uma referencia que utilizei.
https://blueprints.dev.java.net/bpcatalog/ee5/persistence/ejbfacade.html
Havia postado isso no topico J2EE por favor moderadores retirem de la pois postei errado.
Obrigado.