Banco de dados online. Qual é a melhor/mais segura alternativa?

27 respostas
rissato

Olá, tenho um sistema desktop que vai ser utilizado para controlar um clube de compras de um grupo de empresas. Estou encontrando dificuldade em fazer a conexão com o banco online. Já li aqui no fórum que se conectar diretamente ao banco é uma prática não muito segura e que eu deveria usar servlets. É possível também (como última opção) que eu reconstrua o sistema para rodar via web. Dessas e de demais opções que eu certamente desconheço, qual seria a melhor para esse caso?

Obrigado!

27 Respostas

E

no seu lugar eu criaria um webservice que teriam os metodos de negocios, ou metodos para retornar do banco…
se for o caso, vc pode criar um componente ejb pra fazer acesso ao dados do banco remoto… mais acho que o webservice e a melhor opção.!

T

a) Web Services

b) Você pode “evitar o problema de segurança na Internet” usando uma VPN. O único problema é configurar corretamente a VPN (e talvez comprar licenças, se for usar um produto pago).

c) Dependendo do seu problema, você pode usar bancos de dados com sincronização. Ou seja, você tem um banco de dados local (só para edição, e de vez em quando você sincroniza o banco local com o banco da empresa. A sincronização é feita via VPN, que é um método mais seguro que disponibilizar diretamente na Internet.

Normalmente esse banco “local” é uma versão “light” de um banco grande, como o MS SQL Server ou o DB2.

Isso é feito quando há problemas de conectividade e/ou você não precisa estar todo o tempo conectado, e normalmente é feito quando você usa dispositivos como um PocketPC.

Por exemplo, um vendedor que já tenha um determinado estoque reservado para ele só pode vender as coisas que estão reservadas.

pcalcado

Não exponha seu SGBD online, crie uma forma de acesso. Acho que WebServices REST (não SOAP), Burlap ou Hessian quebram teu galho.

Daniel_Quirino_Olive

Aliás, uma forma bem interessante (e fácil) de se criar um WS REST seria usar um WebRowSet (neste caso em particular).

ResultSet rs = ...;
javax.sql.WebRowSet wrs = new WebRowSetImpl();
wrs.populate(rs);
wrs.writeXml(getOutputStream());
wrs.close();

:wink:

rissato

Muito Obrigado pessoal. Agora me ajudem com o seguinte: Então eu devo remover todo o código relacionado a banco de dados do meu sistema desktop e fazer uma chamada ao Servlet que vai me retornar um ResultSet? E como seria essa chamada?
Outra dúvida: Como faço pra saber se o servidor onde eu vou hospedar o banco tem suporte a Java? Ou todos tem?

bandrade

Pq não fazer online??

Me parece a melhor solução, + escalável… (;

T

bandrade:
Pq não fazer online??

Me parece a melhor solução, + escalável… (;

Seu banco de dados SQL suporta 10.000 conexões simultâneas? Hein?

De qualquer maneira, se fosse para um número muito reduzido de clientes (talvez até 100), usaria uma VPN mesmo.

EDIT - não tinha entendido o “online”. O Bandrade quis dizer “web”. Nesse caso, usar um pool de conexões em sistema Web permite o uso de quase qualquer banco de dados, mesmo que você tenha uma licença para só 20 conexões…

bandrade

Num sistema online (se bem feito) seria muito + fácil adicionar ou remover ‘parceiros’, sem contar a correção de bugs e tudo o +…

Eu estou virando um daqueles fervorosos que acha q sistema desktop num serve prá + nada… hehehe… tenho q parar com isso. ((;

Bom, + e aí, quantas empresas compoem o grupo? Vc teria que instalar esse sistema em quantas máquinas? Tem alguma noção disso??

Sabendo o tamanho do projeto, dá prá contribuir de maneira + eficiente. (;

rissato

Pra fazer VPN, seria preciso trocar alguns roteadores e o orçamento está bem curto. Quanto as conexões simultâneas, eu duvido que esse clube de compras chegue a ter algum dia 50 clientes.

T

bandrade:
Num sistema online (se bem feito) seria muito + fácil adicionar ou remover ‘parceiros’, sem contar a correção de bugs e tudo o +…

Hum, não tinha entendido o seu “online”. O que você queria dizer era “web”.

rissato

O sistema vai começar a operar com umas 15 empresas. Eu já fiz o controle de acesso a nível de usuário de modo que eu posso bloqueá-los sem precisar remover os mesmos da tabela de usuários. Eu já tinha feito esse sistema em Flash+PHP oO’ (é, eu sei). A única coisa que está faltando é, como eu disse acima, saber se existe algum requisito quanto ao servidor rodar Servlets, e como é feita a troca de informações entre o Servlet e o sistema desktop. Valeew!!!

bandrade

thingol:
bandrade:
Num sistema online (se bem feito) seria muito + fácil adicionar ou remover ‘parceiros’, sem contar a correção de bugs e tudo o +…

Hum, não tinha entendido o seu “online”. O que você queria dizer era “web”.

Bingo!

Desculpa, me expressei mal mesmo. (;

pcalcado

1 - Estude WebServices, especificamente REST, como mencionado, apra saber como fazer chamadas
2 - WebStart elimina o problema de “instalar em diversas maquinas” e permite que voce use Swing, muito mais poderoso que gambiarras HTML
4 - mas cada caso é um caso. Neste caso eu não sei, depende dos requisitos funcionais e não funcionais.
5 - Se este sistema é profissional é melhor você contratar um consultor

bandrade

pcalcado:
1 - Estude WebServices, especificamente REST, como mencionado, apra saber como fazer chamadas
2 - WebStart elimina o problema de “instalar em diversas maquinas” e permite que voce use Swing, muito mais poderoso que gambiarras HTML
4 - mas cada caso é um caso. Neste caso eu não sei, depende dos requisitos funcionais e não funcionais.
5 - Se este sistema é profissional é melhor você contratar um consultor

KD o 3?? ((;

Porque gambiarras HTML?? Se bem feito, um software web nao perde em muita coisa prum desktop. Se quiser um Look&Feel ainda + parecido, pode-se usar kilos de Script (e/ou Ajax) prá evitar reloads constantes.

Eu perticularmente acho q desenvolver um software desktop é perda de tempo, se eu pudesse, faria tudo web… ((como disse, estou ficando aficcionado com isso, preciso parar… hehehe

rissato

pcalcado:
1 - Estude WebServices, especificamente REST, como mencionado, apra saber como fazer chamadas
2 - WebStart elimina o problema de “instalar em diversas maquinas” e permite que voce use Swing, muito mais poderoso que gambiarras HTML
4 - mas cada caso é um caso. Neste caso eu não sei, depende dos requisitos funcionais e não funcionais.
5 - Se este sistema é profissional é melhor você contratar um consultor

1 - Alguma fonte sugerida?

2 - Prefiro deixar desktop mesmo. Assim eu tenho mais controle sobre quem usa o sistema. Não serão tantas máquinas ao ponto de tornar isso um problema;

5 - Estou fazendo o possível pra fazer (e aprender) tudo sozinho (-se: Eu+Guj+Google);
Daniel_Quirino_Olive
<blockquote><div class="quote-author">rissato:</div>

1 - Alguma fonte sugerida?

2 - Prefiro deixar desktop mesmo. Assim eu tenho mais controle sobre quem usa o sistema. Não serão tantas máquinas ao ponto de tornar isso um problema;

5 - Estou fazendo o possível pra fazer (e aprender) tudo sozinho (lê-se: Eu+Guj+Google);</blockquote>
  1. Fontes:
    :arrow: http://www.xml.com/pub/a/2004/12/01/restful-web.html
    :arrow: http://www.xfront.com/REST-Web-Services.html
    :arrow: http://www.xml.com/pub/a/2004/08/11/rest.html
    :arrow: http://www-128.ibm.com/developerworks/webservices/library/ws-restvsoap/
rissato

Muito Obrigado! :smiley:

pcalcado

Por quê?

C.Q.D.

bandrade:

Eu perticularmente acho q desenvolver um software desktop é perda de tempo, se eu pudesse, faria tudo web… ((como disse, estou ficando aficcionado com isso, preciso parar… hehehe

Voc6e não quer dizer web, quer dizer XHTML+HTTP.

Daniel_Quirino_Olive

pcalcado:

Voc6e não quer dizer web, quer dizer XHTML+HTTP.

Huh? :?

F

Daniel Quirino Oliveira:
pcalcado:

Voc6e não quer dizer web, quer dizer XHTML+HTTP.

Huh? :?

Swing, SWT, Thinlet tambem podem ser web tudo depende da arquitetura nao? :stuck_out_tongue:

Acho que foi isso que o Shoes quiz dizer.

]['s

pcalcado

Fora Flash/Laszlo/Flex, XUL, SVG…

bandrade

Vcs tão complicando… eu soh dei um exemplo de uma possível maneira de fazer o aplicativo…

Se o cara quiser fazer em ASP / flash / JSP / PHP / Applets / (coloque aki a marca de gelatina q vc + gosta)… é um problema dele… hehehe…

Eu faria o sistema web, bunitim. (;

Resumindo, eu faria que o aplicativo só fosse acessado atráves de um browser moderninho. \o/

rissato

Agora meu problema é outro. Como eu faço pra implementar a WebRowSet? Estou tentanto fazer aki mas tem um monte de métodos e eu nem imagino o que deveria ter dentro de cada um. :frowning:

Rodrigo_Carvalho_Aul

Isso é um tiro no pé. Vai dar manutenção nisso depois…

[]'s

Rodrigo C. A.

pcalcado

Existe uma diferença brutal entre fazer uma aplicação em HTML ou Flash/Flex/XUL, sua comparação não me faz muito sentido.

HTML foi feito para hipertexto.

Daniel_Quirino_Olive

rissato:
Daniel Quirino Oliveira:

ResultSet rs = ...;
javax.sql.WebRowSet wrs = new WebRowSetImpl();
wrs.populate(rs);
wrs.writeXml(getOutputStream());
wrs.close();

Agora meu problema é outro. Como eu faço pra implementar a WebRowSet? Estou tentanto fazer aki mas tem um monte de métodos e eu nem imagino o que deveria ter dentro de cada um. :frowning:

Você precisa usar Java 5.0, pois WebRowSet faz parte do JDBC 3.0 (suportado apenas a partir desta versão). A classe WebRowSetImpl faz parte do pacote com.sun.rowset.

:wink:

rissato

Ai é rápido hein! Acabei de descobrir isso! hehehe Valew d+! Ta rolando um NullPointerException mas isso eu resolvo… Valew d+

Criado 28 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 27
Participantes 8