Existe um melhor Ajax Push para JSF 2.0 do que Icefaces

Estou em uma situação em que gostaria de implementar o Ajax Push em um aplicativo da Web baseado em Java para atualizar coisas como a contagem de itens em estoque na página da Web à medida que eles mudam sem nenhuma interação do usuário. Eu entendo que a tecnologia necessária para isso é chamada de Ajax Push. Eu também tenho alguma experiência com o JSF 2.0, e isso é o preferido, mas não é obrigatório.

Primeiro precisamos de uma demonstração mostrando isso em cerca de duas semanas, mas se a demo for aceita, teremos tempo suficiente para fazer isso direito.

Eu olhei em volta e descobri que aparentemente Icefaces faz isso muito bem, e eu vou investigar isso. Eu gostaria apenas de saber se existem outros que poderiam ser melhores para usarmos?

Por favor, não “estas são as três principais respostas do Google”. Eu gostaria de ouvir opiniões baseadas em experiências.

Nós tentamos os dois Icefaces (no modo JSF 1.2) e o Atmosphere / Comet com o Primefaces.

Icefaces push trabalhou shinymente fora da checkbox.

Nós não conseguimos fazer o Atmosphere funcionar (em Primefaces), mas isso pode ser porque tentamos com a versão mais recente (0.6), e o Primefaces não suporta ainda – então agora estamos esperando por uma versão atualizada (é prometeu que será o próximo grande recurso após p: dataTable ter sido reescrito). No nosso caso, o push não era um elemento crítico na demonstração e poderíamos facilmente usar o polling em vez de uma solução push real.

O Icepush era muito fácil de ser instalado e executado, enquanto o Atmosphere não é muito bem documentado (IMHO) e requer um monte de jars e configurações. Não é para iniciantes, com certeza.

Então, se ajax: push for uma parte essencial de sua demonstração, sugiro que você fique com o JSF 1.2 e Icefaces. Pelo menos até que a demonstração seja feita e o cliente esteja feliz – você ainda pode aproveitar o tempo com a configuração do Atmosphere depois disso 😉

Agora você pode usar o Ajax Push fora do ICEfaces. Checkout http://www.icepush.org/ . Existem adaptadores clientes para JSP, Spring MVC, Wicket, GWT, jQuery, protótipo e Grails.

Eu não sei se é melhor já que eu não faço IceFaces, mas PrimeFaces tem um componente também. Ele faz uso do Atmosphere sob os capôs ​​para ser o máximo possível de aplicativos independentes, que por sua vez já é bastante impressionante. Ele abstrai todos os detalhes específicos do servidor. Veja também este artigo sobre o Servlet 3.0 vs. Atmosphere :

O ambiente sempre detecta automaticamente a melhor API assíncrona quando você implanta seu aplicativo. Sempre tente primeiro procurar a API 3.0 Async. Se falhar, ele tentará encontrar a API nativa do WebServer como o Grizzly Comet (GlassFish), o CometProcessor (Tomcat), o Continuation (Jetty), o HttpEventServlet (JBossWeb), o AsyncServlet (WebLogic), o Google App Engine (Google). Finalmente, ele utilizará um bloqueio de E / S Thread para emular o suporte para events asynchronouss.

Como fazer tudo funcionar, é explicado em detalhes no capítulo 6 do Guia do Usuário PrimeFaces (PDF) no sabor de um aplicativo de bate-papo, conforme apresentado na página de demonstração .

Eu acho que o ICEfaces é a melhor solução para AJAX PUSH, eles foram os pioneiros, e na minha opinião eles têm a melhor implementação.

O Primefaces parece promissor, mas a funcionalidade push não funciona com o último lançamento. Com o Icefaces 2 beta, o push funciona OOTB.

Existe uma implementação de push baseada em framework de atmosfera independente para o jsf 2.2 chamado Ext JSF Push. Ele é totalmente integrado ao JSF e pode ser enviado para um único cliente, enviar o render diretamente para um grupo de clientes ou enviar events de renderização para um grupo de clientes:

    

Um evento de renderização dentro da tag de envio pode ser acionado pelo atributo de renderização tradicional ou pela chamada de código. A renderização é transmitida de forma transparente para todos os clientes conectados ( http://www.intersult.com/wiki/page/JSF%20Ext%20Push ).

O ICEfaces é definitivamente o seu melhor para os requisitos de demonstração de curto prazo, bem como para os objectives de longo prazo “fazendo o certo”.

Para começar, o ICEfaces fornece o modelo mais natural para o desenvolvimento de aplicativos push. Você pensa em termos simples de gatilhos do lado do servidor causando alterações de estado em seu aplicativo. O ICEfaces e o JSF fazem o resto, afetando a renderização contínua do novo estado. Nenhuma marcação de tag de envio confusa onde você precisa declarar precisamente como a apresentação muda com cada evento de envio. Se você conhece o JSF, adicionar push a um aplicativo é muito simples com o ICEfaces. Obtenha seu aplicativo JSF básico em primeiro lugar e, em seguida, inclua a lógica de push necessária em seu código do lado do servidor. Nenhuma outra alteração é necessária.

A mais longo prazo, você deve saber que o ICEfaces fornece toda a tecnologia de implantação necessária para implantações de força empresarial. O Enterprise Push Server é fundamental para isso, pois fornece gerenciamento completo de conexões de envio em ambientes em cluster (consulte: EPS ). ICEfaces O Ajax Push está operando em um amplo espectro de ambientes de produção em muitas empresas da Fortune 500, para que você possa ter certeza de que ele se adaptará às suas demandas. Além disso, o suporte profissional ao cliente está disponível. Estas são todas as principais características que ajudarão você a vender a substância por trás de sua demonstração.

Nada mais no mercado se compara, e aguardo com expectativa o ICEfaces 2.0, que é compatível com o JSF 2.0 e traz resources de próxima geração do Ajax Push. Está disponível em beta agora.