Necessito dicas de como fazer "2 sistemas" em 1 só

Boa tarde galera, estou desenvolvendo um sistema que vai ter a parte gerencial e a parte que será acessada somente pelo tablet.
Então serão 2 telas de login separados, /Login.xhtml e outro /LoginTablet.xhtml…
Os dois sistemas usarão as mesmas entidades, daos, classes, até mesmo a tabela de usuários…
Só que eu estou usando PhaseListener para a autenticação do usuario.
Gostaria de algumas idéias de como eu poderia fazer isso sem ter que criar outro projeto… Sendo que o unico modo que conheço pra autenticação é o Phaselistener, e do meu ponto de vista não vi como fazer isso que eu preciso sem criar outro projeto…

Quais seriam as boas práticas para eu fazer esses 2 sistemas, usando as mesmas classes, entidades, daos…

Qualquer opinião é bem vinda.

Obrigado desde já.
Abraço!

O.o

Os dois não chamarão o mesmo servidor? O.o

eu acredito que a ideia básica da orientação a objeto seria “REUTILIZAR CLASSES”?

tipo, programação especifica ou aberta… mas que pudessem utilizar a mesma classe pra tudo…

afinal,
Cliente = usuario
Funcionario = moderador
Empresario/Gerente/Responsavel = admin…

pelo menos é essa a noção que eu tenho…


o negocio é que vc vai desenvolver 2 Clients para conectar no mesmo Servidor…

ai o sistema é 1 só… mas o acesso tem 2 meios…

Cara posso estar falando besteira mas pelo entendimento que tive de sua dúvida, você pode criar um filtro no seu web.xml para as páginas do tablet e então colocar as páginas da camada web em algo do tipo /faces/.jsf e a parte do tablet em /faces/tablet/.jsf dai vc iria definir no seu web.xml seu filtro mais ou menos da seguinte maneira: toda requisição em /faces/.jsf vc vai capturar normalmente com o PhaseListener e toda requisição em /faces/tablet/.jsf vc vai capturar no seu filtro e tratar se o usuário já está autenticado.

Mas porquê não fazer as duas aplicações separada? Crie uma aplicação web e coloque toda a regra de negócio nela, então através de um WebService vc comunica as duas aplicações e então você desenha somente a casca do seu projeto no tablet, aproveitando assim todo o recurso que a plataforma tem a te oferecer e então consome seu WS para fazer as comunicações e realizar as operações, aproveitando sua regra de negócio no projeto web com uma simples injeção de dependências.

Você pode também dar uma pesquisada a respeito de @WebFilder e também sobre security-constraints para resolver o seu problema!

Enfim, são só algumas idéias relâmpago que tive lendo sua dúvida, não analisei a fundo até mesmo porquê estou um pouco sem tempo e não ficou claro alguns aspectos como as páginas que vc vai acessar no tablet são as mesmas do projeto web só que com algum controle de acesso diferente, por exemplo, se for pelo tablet menu x é ativo senão não deve ser renderizado. Espero ter ajudado.

Se ambos vao funcionar com o mesmo servidor a solução pode ser única, com layout responsivo nas telas que precisam da usabilidade otimizada para tablet. Especifica melhor as necessidades diferenciais pro tablet.

Obrigado a todos pelas dicas.

[quote=Gabriel Garcia]Cara posso estar falando besteira mas pelo entendimento que tive de sua dúvida, você pode criar um filtro no seu web.xml para as páginas do tablet e então colocar as páginas da camada web em algo do tipo /faces/.jsf e a parte do tablet em /faces/tablet/.jsf dai vc iria definir no seu web.xml seu filtro mais ou menos da seguinte maneira: toda requisição em /faces/.jsf vc vai capturar normalmente com o PhaseListener e toda requisição em /faces/tablet/.jsf vc vai capturar no seu filtro e tratar se o usuário já está autenticado.

Mas porquê não fazer as duas aplicações separada? Crie uma aplicação web e coloque toda a regra de negócio nela, então através de um WebService vc comunica as duas aplicações e então você desenha somente a casca do seu projeto no tablet, aproveitando assim todo o recurso que a plataforma tem a te oferecer e então consome seu WS para fazer as comunicações e realizar as operações, aproveitando sua regra de negócio no projeto web com uma simples injeção de dependências.

Você pode também dar uma pesquisada a respeito de @WebFilder e também sobre security-constraints para resolver o seu problema!

Enfim, são só algumas idéias relâmpago que tive lendo sua dúvida, não analisei a fundo até mesmo porquê estou um pouco sem tempo e não ficou claro alguns aspectos como as páginas que vc vai acessar no tablet são as mesmas do projeto web só que com algum controle de acesso diferente, por exemplo, se for pelo tablet menu x é ativo senão não deve ser renderizado. Espero ter ajudado.[/quote]
Vou seguir sua dica e fazer com o PhaseListener separando o tablet em uma pasta e o gerencial em outra. Resolvi fazer assim porque as funcionalidades do sistema para tablet e o de gerente vão ser diferentes, mas assim vou conseguir reutilizar todas as minhas classes.
Por não ser um sistema muito grande, achei que assim ficaria melhor.

Obrigado!