[JSP] Opinião de vocês sobre utilização de Cookie

2 respostas
yelken

Pessoal,

Estou desenvolvendo uma aplicação onde o objetivo é realizar conferencia de itens, essa aplicação vai rodar em um MC3190 da Motorola que possui o Windows CE como SO e IE como browser. A aplicação não precisa ter dados na “session”, pois quem vai manipular são pessoas que se movimentam muito e o aparelho irá funcionar via Wi-fi e o sinal pode cair e a sessão pode ser perdida.

A minha dúvida é: Tenho a necessidade de manipular muitos objetos como: Requisição dos itens (Mestre), Itens conferidos(Detalhe), itens não conferidos(Detalhe) e o usuário que é o autenticador para gravar as informações no banco de dados.

Hoje estou manipulando os dados com JSON para enviar e receber os parâmetros, porem eu quero garantir que o conferente não perca as informações mesmo que o aparelho acabe a bateria por exemplo, então a minha dúvida é se o Cookie suporta todas essas informações, pensei em transformar os objetos em XML via Xtream(API de terceiros) e transformar em String e gravar o cookie.

Desde já agradeço a atenção.

2 Respostas

gomesrod

Olá,

Resposta rápida à sua pergunta: sim, é possível gravar cookies persistentes.

Mas tem alguns cuidados aí:

  • Primeiro, o tamanho do cookie que possui limitações (veja um exemplo aqui, valido para o IE mas pode variar dependendo do browser: http://support.microsoft.com/kb/306070)
  • Existe o risco de quando o usuário entrar na aplicação ela ficar “perdida”, não saber em que estado está uma determinada transação, ter um cookie que não deveria mais estar lá, etc. É preciso uma atenção extra a esses casos.
  • A quantidade de dados extra a serem transferidos do servidor para o client (e vice-versa) pode aumentar bastante, o que talvez seja problema caso os dispositivos tenham baixa velocidade de acesso.

Enfim… eu não considero a solução ideal. Seria melhor armazenar os estados no lado do server; a sessão não é bom, pois ficaria muito inchada além do problema que vc mencionou.
Uma idéia que vale a pena pensar: guardar o estado temporário das transações em banco de dados - quando o usuário entrar na página a informação necessária é recuperada para ele.

yelken

Gomes,

Muito obrigado!

Vou pensar na ideia que você mencionou sobre guardar os estados no banco porem o trafego aumentaria bastante na rede local, pois são mais de 200 usuários que vão utilizar essa aplicação e o nosso trafego de informações é intenso, quero acessar o banco somente quando necessário e por isso estou tentando manter a aplicação autônoma.

Pensei em guardar esses estados em um servidor intermediário, pois a aplicação é distribuída, posso montar um XML com as informações e gravar no servidor ai se ocorrer qualquer problema, consulto o XML e carrego na sessão, quando o usuário logar novamente, mostro na tela uma mensagem avisando que há uma conferencia pendente.

O que tu acha?

Atenciosamente,

Criado 13 de setembro de 2012
Ultima resposta 13 de set. de 2012
Respostas 2
Participantes 2