[Resolvido] Arquitetura Java Web

Pessoal,

Tenho um grande projeto em Java para Web onde estou decidindo melhores tecnologias para serem abordadas neste projeto, ou seja, estou decidindo a arquitetura para iniciar o projeto.
Irei iniciar do ZERO, por este motivo não posso cometer erros.

A aplicação sera tanto browsers, como para mobile. Mas tudo rodando na nuvem.

Estava pensando na seguinte ideia:

  • Core -
    Hibernate

Spring

JSF2

Além disso tenho ideia em usar o MAVEN e Apache Tomcat, para mobile estava pensando no Jquerymobile ou PrimeFaces

Os gurus de plantão que estão acostumados com projetos web de grande proporção se puder opinar gostaria de trocar essas experiencias.

Grato.

Eu pessoalmente utilizaria CDI ao invés de Spring, e um Servidor de aplicação ao invés do Tomcat, para grandes projetos o nível de escalabilidade que ele propicia é realmente grande. Quanto maior o projeto, mais eu vejo vantagem em trabalhar em cima da especificação.

Receita de arquitetura de sistema eu não dou, mas se quiser uma receita de farofa de banana para servir com um peixe assado, hmmm, essa é uma delícia… :wink:

grande= relativo…? kkk sem detalhes específicos e limitações…qualquer coisa serve.

E pq das suas escolhas em Sring, JSF, etc?
Hype? Modinha ou tem algum fundamento?

Sem flames, pfv.

[quote=j0nny]E pq das suas escolhas em Sring, JSF, etc?
Hype? Modinha ou tem algum fundamento?

Sem flames, pfv.[/quote]

Parece modinha devido ao numero de pessoas que usam essa abordagem. Mas o que seria fora de moda para você?

Obrigado pelo retorno.

grande= relativo…? kkk sem detalhes específicos e limitações…qualquer coisa serve.[/quote]

Entendido. Obrigado.

[quote=luizinfo][quote=j0nny]E pq das suas escolhas em Sring, JSF, etc?
Hype? Modinha ou tem algum fundamento?

Sem flames, pfv.[/quote]

Parece modinha devido ao numero de pessoas que usam essa abordagem. Mas o que seria fora de moda para você?

Obrigado pelo retorno.[/quote]

A questão n é se é moda ou não é, a questão é, o porque das suas escolhas!
Não estou dizendo que são tecnologias ruins (apesar de eu não gostar nem um pouco), só estou dizendo, que se vc quer ajuda pra definir sua arquitetura, primeiramente, tem que saber responder pq escolheu essas tecnologias.

Creio que isso varia demais de projeto para projeto, seria bom fazer um estudo de viabilidade das tecnologias, vantagens e desvantagens, qual se encaixaria melhor para seu projeto.

Mas dando minha opinião para grandes projetos web:

Java, GWT, Hibernate, Tomcat.

Alguma nova sobre o projeto? fiquei curioso pelo resultado…

Após estudar um pouco sobre arquitetura, realmente é relativo ao projeto que está trabalhando, tem que executar vários testes e ir validando com a equipe.
Mas finalizei com a seguinte decisão:

  • Java
  • EJB 3.1
  • JPA (Hibernate)
  • Jboss
  • Grails
  • Maven

Web Responsive para mobilidades com tablets até 7", para celular decidimos criar mais uma camada visual.
Entre usar Grails e JSF, o Grails trabalhando com as paginas GSP deu maior controle das paginas sem depender dos faces da vida, como primefaces, icefaces etc etc etc.

Ferramentas Ágeis
Git
Jekins
Sonar
Archiva

Jboss é como diz um colega meu: é igual a matar um mosquito com metralhadora. Vc vai conseguir matar o mosquito, mas tem que conhecer bem a metralhadora para não errar o alvo.

Gostei da frase da metralhadora…

Quanto a tecnologia gostei desse Grails eu não o conhecia.

Eu ja trabalhei com a tecnologia do seu primeiro post mas não gostei muito não (principalmente do JSF)

Hoje no lugar no JSF estamos usando JQuery + JQueryUI + JSP + VRaptor e estou gostando muito.
Claro que não tem todos aqueles componentes prontos do Primefaces, mas a pagina fica muito mais na sua mão.

[quote=luizinfo]Após estudar um pouco sobre arquitetura, realmente é relativo ao projeto que está trabalhando, tem que executar vários testes e ir validando com a equipe.
Mas finalizei com a seguinte decisão:

  • Java
  • EJB 3.1
  • JPA (Hibernate)
  • Jboss
  • Grails
  • Maven

Web Responsive para mobilidades com tablets até 7", para celular decidimos criar mais uma camada visual.
Entre usar Grails e JSF, o Grails trabalhando com as paginas GSP deu maior controle das paginas sem depender dos faces da vida, como primefaces, icefaces etc etc etc.

Ferramentas Ágeis
Git
Jekins
Sonar
Archiva

Jboss é como diz um colega meu: é igual a matar um mosquito com metralhadora. Vc vai conseguir matar o mosquito, mas tem que conhecer bem a metralhadora para não errar o alvo.[/quote]

Você foi rápido em dicidir, mas eu acho que está começado pela ponta errada do cajado.

Arquitetura é diferente de “escolher tecnologias”. Vc está escolhendo tecnologias, mas não está desenhando uma arquitetura.

Primeira coisa Plataforma Fisica: Sistemas Operacionais. quais e quantos OS vc precisa dar suporte ?
Mobile é o quê ? IOS , android, todos ? A sua aplicação “mobile” é na realidade uma casca para um browser ? Ou melhor o que vc quer é um site que também seja usável em mobile ?
Pelas suas escolhas acho que é mais esta ultima. Ora, isso é simples : crie dois sites o geral em www.seudominio e o mobile em mobile.seudominio. O geral deve ter estrutrua de reconhecer que está sendo acessado via mobile e redirecionar para o outro dominio.

Segunda coisa : Plataforma Virtual : Java ou .NET ou outro ?
Pelos vistos decidiu por java.

Terceira coisa : Plataforma de Aplicação: Java é um emaranhado de api. Como isso vira uma aplicação.
Primeiro ha que entender que vc tem dois stacks , duas aplicações. A mobile a normal. O que muda entre elas é a o Cliente e Apresentação. O resto das camadas é o mesmo.
Vc escolheu o grails para a UI , mas falta a interatividade . Não tem um JQuery faltando ai ?
Para o back end EJB 3.1 .Ok. Mas Hibernate para JPA ? Ou vc usa o EclipseLink ou vc não está usando a melhor ferramenta. O link é mais rápido que o hibernate para JPA 2 porque é a implementação de referencia.
JPA com EclipseLink se vc usar JPA puro. hibernate apenas se for usar features não padrão do JPA.

Servidor de Aplicação. JBoss é muito bom, mas se vc não gosta tem o Glassfish que é a implementação de referencia e é muito evoluido pela Oracle. Tem outros pagos, mas os free são mais evoluidos que os pagos neste momento. A Oracle até vai fundir o seu pago com o Glassfish ( não realidade é o glassfish , mas com o outro nome e outra licença). Usar apenas um webcontainer como o tomcat é suicídio.

A única coisa qe ficou esquisito é esse grails ai no meio ( usando groovy, portanto). O grail é uma ferramenta, não sei se será prático evoluir isso depois … acho que depende de outros fatores, mas não vejo como isso pode ser mais simples que um jsp da vida com uma boa tag lib , ou até mesmo usando freemarker, por exemplo, que é otimo para isolar a UI do controle.