Ajuda na arquitetura de sistema

Oi pessoal, tudo bem!?

vou começar um sistema particular, e queira a ajuda de vocês pra montar a melhor estrutura.
Vai ter servidor e clientes então pensei algo assim:
View : ExtJS pois vou deixá-lo OpenSource
Controle: Struts 2 (vou usar este pois preciso me aperfeiçoar pro meu trabalho tmb)
Persistência: Hibernate (JPA)
Negócio: EJB 3 (pois vou precisar de fazer acessos remotos)

Minha idéia é fazer um módulo servidor, e um cliente, não tenho experiência em arquitetura e peço paciência se eu falar muito besteira.

Módulo Cliente: View > Struts 2

Módulo Servidor: Facade (Será isso mesmo?) > EJBs > ? (alguma padrão aqui) > DAO

me ajudem a dividir bem esses acessos, e aplicar os padrões corretos.

Nesse caso ficaria assim:
view > struts 2 > facade > ejb > ? > dao

help, help!!!
Obrigada!!!

Boa tarde,

Ja pensou em dar uma olhada no VRaptor ?

Abraços.

[quote=jwalker]Boa tarde,

Ja pensou em dar uma olhada no VRaptor ?

Abraços.[/quote]

obrigada pela dica, mas já está tudo definido acima Exts + Struts + EJB3 + Hibernate. Estou usando struts 2 no trabalho, e preciso melhorar e então quero aproveitar pra isso. Por isso neste momento preciso de help pra definir a arquitetura. :wink:

Vc poderia nos falar um pouco mais sobre este detalhe?

Você já deu uma lida nos padrões JEE e sobre DDD?

Se não leu, comece a ler o ano passado (brincadeira) para poder melhorar o lado conceitual da coisa.

flws

Olá Carol,

Assim como você estou a tempos em uma longa jornada em busca da arquiterura “Microsoft”, quero dizer, simples e eficiente.
Mais o tempo tem passado e percebo que a cada diga fico um pouco mais angustiado.

é realmente muito dificil encontrar um modelo de arquitetura pronto e usa-lo adequadamente…

Aqui estamos tentando mudar algumas coisas, temos uma pequena aplicaçao que não suporta nem 50 usuarios porque tem tanta frescura tanto framework… tanto lixo… affff

mas enfim…

agora estamos tentando usar

JSF + Facelets na apresentação

Até aqui tudo bem, montar o desing na aplicaçao com JSF em forma de pequenos componentes e juntar todos com o facelets não é complicado… embora pouco produtivo, mas há o modo de criaçao visual no netbeans, o problema é que ele gera muito lixo no codigo HTML final…

EJBs + POJOS

Aqui começa a residir os problemas, EJBS parece ser feitos para serem somente eles a fazer tudo na aplicaçao… Nos EJBs vc tem que coloacr a regra de negocio e colocar a persistencia… isso me gera grande problema porque estou querendo reutilizar os controladores e daos criados em pojos de outros sistemas, bem… isso não é exatamente impossivel o problema é que se eu quiser usa-los só tenho que no EJB controlocar a criaçao dos objetos toda manualmente perdendo uma das vantegens que é a injeçao de dependencias direto do JSF aff… isso tem me tirado o sono… Minha ideia de usar EJBs era tem uma fazenda de funcionalidades remotas espalhadas pelos meus servidores os quais se eu precisasse de uma funcionalidade especifica bastaria chamar o EJB necessario… quem derá se fosse simples assim… SE ALGUEM PUDER ME AJUDAR TO ACEITANDO…

PERSISTENCIA = JPA + HIBERNATE

Esse é o esquema, estou encantado com JPA o problema é o gerenciamento das conexoes com o EntityManager, tem algumas configuraçoes que podemos fazer para que o proprio conteiner EJB gerencie o entitymanager e as conexoes… o problema é que pra fazer isso, como ja mencionei, a persistencia tem que estar no EJB … E nem pense em tentar criar um gerenciador do EntityManager proprio… vc vai ter muito problema quando muitos usuario começarem a usar sua aplicaçao… quando eu digo muito problemas… são muitos mesmo… por mais que vc preveja inumeras situaçoes… nossa como dá problema… Ou seja… cerveja…

APLICAÇOES EXTERNAS

Esse era o grande filé… depois que eu tivesse minha estrutura toda pronta, queria apenas que clientes JSE, jme fizem chamadas para os servicos providos pelos EJBs e pimba… tudo lindo… melhor manutencao… melhor disponibilidade… eu conteiner EJB seria uma conteiner de servicos… seria bom… seria mesmo…
o problema é que pra App externas acessarem esses servicos elas tem que implementar a interface remota do ejb com o servico, usa um context.lookup() pra encontrar o servico disponivel e só entao poder invocar metodos desse servico remoto… o problema é que nao estou conseguindo fazer isso funcionar adequadamente… talvez seja a minha pouca habilidade com java ainda… mas… nossa tenho penado muito… e grande comunidade java pouco tem conseguido ajudar… Nós nem se quer temos um blue print descente pra nos espelhar…
outra coisa é que penso que os desenvolvedores desses frameworks deviam tem seu seus sites exemplos de como integrar-se com a maioria dos outros framework… é uma droga no fim das contas vc acaba tendo que deduzir muita coisa por essas drogas sao intupidas de XMLs sem nenhuma explicaçao de pra q ue servem os atributos e como utiliza-los…
mas não se flustre… estou nessa com vc…
será que vamos conseguir algo ???

Ps.: minha aplicaçao deve suportar em media 1500 usuarios no horario de pico… minha app DELPHI atual suporta…

obrigada Hebert, sua ajuda foi muito importante, vou considerá-los sim.

Vamos aguardar ver se aparece alguém que tenha experiência prática pra ajudar e aí poderá ser útil também para você!