Pessoal,
Serei breve na explicação do meu problema. O cenário que possuo é composto por duas aplicações Enterprise que se comunicam através de WebServices. A primeira, é quem provê o serviço. Serviço esse que é um mecanismo de execução de testes síncronos e assíncronos. Para execução de testes assíncronos, é retornado ao usuário apenas um ID de execução, enquanto o teste fica num pool de testes gerenciado por outro componente. Toda vez que eu quiser saber se o teste terminou, envio outra requisição acessando o WS e pergunto qual o novo status do teste de ID=X. O teste, quando finalizado, tem seu resultado persistido em base no lado da aplicação 1, e toda vez que a aplicação 2 quiser ter acesso à esse resultado basta acessar novamente o WS fornecido utilizando o ID como chave para recuperação deste resultado.
Um problema que quero evitar é o enorme tráfego na rede, pois muitos usuários farão uso do sistema para execução de inúmeros testes. Acessos a resultados serão constantes e consequentemente o número de requisições ao WS será volumoso. O que pensei em fazer foi criar um mecanismo de persistência, no lado da aplicação 2, para armazenar esse resultado. As dúvidas são as seguintes:
1- Sendo o conteúdo da resposta do WS para consulta do resultado de um teste uma pequena qtd de KB, vale a pena realmente criar esse mecanismo e previnir uma reconsulta?
2- Qual implementação seria mais adequada ao mecanismo de persistência? Armazenar essa informação na sessão do usuário (em memória), ou desenvolver alguma estrutura na base de dados para fazer o trabalho e efetuar consultas em base local?
Estou usando Glassfish, JSF (MyFaces, RichFaces, Tomahawk), EJB3, MySQL.
Agradeço desde já a ajuda!
Abraço!
) acho que armazenar em memória está mais para a realidade, pois é uma informação que não preciso persistir além da sessão do usuário, e no caso de armazenar em XML, no disco, teriam operações de IO e de qualquer forma teria que me preocupar em limpar essas informações de tempos em tempos para não consumir recursos de máquina desnecessariamente. Mas não descarto a possibilidade, apenas daria um pouco mais de trabalho.