Applet com Servlet

Já ouvi falar várias coisas, mas até agora ñ tenho uma idéia formada.
Imagine um sistema de controle de supermercado feito em applet rodando na web. Applet comunicando direto com o banco de dados para exibir os dados para o usuário. Tem algum problema nessa estrutura applet-database?

Já ouvi dizer para colocar um servlet para fazer essa conexão com o banco de dados. Mas não sei qual a vantagem disso? Pq colocar um servlet no meio, applet-servlet-database, para se comunicar com o banco de dados? Quais as vantagens? Quais as desvantagens? Qual a diferença?

Afinal, applet-database ou applet-servlet-database? Por que?

Pra usar applet-database vc teria que assinar o seu applet, porém não é muito interessante pq todo applet é baixado para a máquina do cliente e ele pode ver seu código…
jah em applet-servlet-database, o servlet fica no servidor e o applet acessa ele atraves de URL, nenhum código referente a como é feito o armazenamento é armazenado no cliente.

Vantagens:

  • Desenvolver em 3 camadas: pense no applet apenas como camada de apresentação. Assim será mais fácil reaproveitar as classes de negócio se for desenvolver em outro front-end.
  • Pool de conexões: conectando um applet direto do banco de dados, você terá que ter uma conexão para cada cliente. Num esquema via servlet, você poderia utilizar um pool de conexões.
  • Segurança: expor o seu banco de dados. Se você utilizar um servidor de aplicação, pode limitar (via firewall) o acesso ao banco de dados. Além disso, dependo do caso é interessante nem permitir os usuário poderem logar no banco de dados diretamente, evitando que ele faça operações diretas (insert, delete e update na mão) no banco de dados.
  • Performance e escalabilidade: com conexão direta do applet no banco de dados, todo o processamento vai ser feito na maquina do cliente. Isto pode exigir computadores com maior capacidade de processamento e memória. Concentrando em um servidor, você poderia fazer apenas upgrades no servidor.

Desvantagem:

  • Disponibilidade: com um servidor de aplicação a mais, teria mais um ponto de falha além do banco de dados. Seria necessário clusterizar tanto o banco de dados quanto o servidor de aplicação.

Bem, foi isto que consegui lembrar de vantagen e desvantagens.

marcos.junqueira disse

de qualquer maneira vc teria q assinar o applet para poder usar fazer uma conexão com o servet, no caso o HTTP. certo?
agora…realmente…nda seria armazenado no computador do usuário.

oyama disse

oq seria um pool de conexões?

Não posso te garantir 100%, mas acho que sem assinar, você pode fazer conexão HTTP ao servidor de onde você fez download do applet.

Os applet podem ser armazenados em cache da maquina cliente. Se você for na parte de configuração do Java, vai achar a pasta e as bibliotecas armazenadas. Mas em todo o caso, dá para fazer download do applet passando a URL para o browser, tipo http://www.seusite.com/applet/applet.jar

É você ter um “cache” de conexões abertas com o seu banco de dados, e ir utilizando a medida que for necessário. Abrir conexão com banco de dados é muito custoso, portanto é mais eficiente abrir na iniciação da sua aplicação e ir alocando a medida do necessário.