Utilizando uma aplicacao via rede!

Boa tarde pessoal

Sou novo no forum e gostaria de saber o seguinte:

Eu fiz uma aplicacao em java que interage com o banco de dados interbase (localmente). A aplicacao faz: cadastro,remocao,consulta(listagem e busca)… O problema eh q eu so posso usar a aplicacao na maquina em q o banco de dados esta instalado ! Gostaria de poder usar a aplicacao em qualquer maquina da rede ! Eu sei q p/ isso eu devo utilizar SOCKETS ! + eu não sei exatamente como fazer ! Tenho q ter uma classe Cliente e outra Servidor ?! Eu estou usando o NetBeans :smiley: !

[]s

Você pode fazer de várias maneiras:

  • liberar o interbase para comunicar com máquinas além do localhost e assim você muda o endereço do banco para se comunicar com aquela máquina em específico.
  • fazer um programa que fica na mesma máquina do banco e modificar o seu programa para conversar com ele via rede. Pode ser por sockets puro ou podes procurar fazer algum serviço baseado em comunicação HTTP.
  • instalar o interbase em cada máquina e fazer um serviço de replicação (blargh).

Agora é só procurar. O primeiro é simples, em geral qualquer tutorial de como se trabalhar com DB em Java já tem quase pronto.

Até!

vai ter um servidor socket rodando na maquina onde esta o bd, o cliente vai se conectar nesse servidor e mandar uma requisição, o servidor recebe a requisição, faz a consulta no banco e devolve uma resposta com os dados consultados

Depende muito da situação,

Mas acho que instalar o servidor do interbase é a melhor alternativa.

Valeu pessoal pelas informacoes !

A forma q + me agrada eh essa citada acima ! Esse servidor Socket vai ter q ficar na aplicacao ?

Exemplo: No pc onde esta o banco de dados vai ficar a Aplicao + Servidor Socket !

Nas outras maquinas vao ficar: Aplicacao + cliente !

Sendo q o cliente e o servidor ja vao estar "dentro da aplicao " ? Ou eu vou ter q fazer uma aplicao separada ?

Ja existem essas 2 classes prontas p/ facilicar minha vida ? :oops:

Desculpa a falta de informacao pessoal… Eh pq eu nao conheco quase nada de sokets …

Cuidado com esse tipo de abordagem. Sockets são úteis sim mas talvez você vá ter mais trabalho fazendo um servidor que escute, um cliente, integrá-los de forma eficiente e concorrentemente, garantir que algum espertinho no meio do caminho não saia lendo os dados trafegados e/ou mudando-os. Sério, mude somente a URL de conexão do banco e deixe-o liberado para a rede. É uma linha de mudança e talvez abrir o firewall no servidor para a porta do banco.

Até!

[quote=maquiavelbona]Cuidado com esse tipo de abordagem. Sockets são úteis sim mas talvez você vá ter mais trabalho fazendo um servidor que escute, um cliente, integrá-los de forma eficiente e concorrentemente, garantir que algum espertinho no meio do caminho não saia lendo os dados trafegados e/ou mudando-os. Sério, mude somente a URL de conexão do banco e deixe-o liberado para a rede. É uma linha de mudança e talvez abrir o firewall no servidor para a porta do banco.

Até![/quote]

Valeu cara pela dica ! + eu nao to fazendo nada profissional ainda ! Ainda nao trabalho com programacao ! Eh p/ estudo mesmo !

  • eu kero fazer usando Server e Client ! Essas 2 classes ja existem prontas ? Como eu faco ? To completamente perdido nesse aspecto !

[]s

Em algum lugar da internet deve ter pronto mas acho que o mais legal seria você procurar ou fazer na mão então. Eu acho um tédio trabalhar com sockets, mas boa sorte. Tem bastante material, até aqui no guj mesmo, sobre isso.

Até!

Eu fiz algo parecido na facu, mas o requisito era usar RMI pra comunicação.

[quote=Agr0][quote=maquiavelbona]Cuidado com esse tipo de abordagem. Sockets são úteis sim mas talvez você vá ter mais trabalho fazendo um servidor que escute, um cliente, integrá-los de forma eficiente e concorrentemente, garantir que algum espertinho no meio do caminho não saia lendo os dados trafegados e/ou mudando-os. Sério, mude somente a URL de conexão do banco e deixe-o liberado para a rede. É uma linha de mudança e talvez abrir o firewall no servidor para a porta do banco.

Até![/quote]

Valeu cara pela dica ! + eu nao to fazendo nada profissional ainda ! Ainda nao trabalho com programacao ! Eh p/ estudo mesmo !

  • eu kero fazer usando Server e Client ! Essas 2 classes ja existem prontas ? Como eu faco ? To completamente perdido nesse aspecto !

[]s[/quote]

já que e para estudo que tal aprender uma coisa que normalmente e utilizada? como webservice por exemplo?

da uma olhada em:
http://cxf.apache.org/

abraços

Opa

kra, se vc puder mandar a aplicacao via email iria me ajudar muito ! Vou mandar meu email por MP p/ vc !

[]s

[quote=edpipole]…
já que e para estudo que tal aprender uma coisa que normalmente e utilizada? como webservice por exemplo?

da uma olhada em:
http://cxf.apache.org/

abraços[/quote]

Ele mal sabe o que é socket e você já quer dar um framework inchado para ele aprender? Que tal mostrarmos como se anda para depois ele tentar virar fundista?

Até!

[quote=maquiavelbona][quote=edpipole]…
já que e para estudo que tal aprender uma coisa que normalmente e utilizada? como webservice por exemplo?

da uma olhada em:
http://cxf.apache.org/

abraços[/quote]

Ele mal sabe o que é socket e você já quer dar um framework inchado para ele aprender? Que tal mostrarmos como se anda para depois ele tentar virar fundista?

Até![/quote]

ue, não custa tentar…

Amigo (do post), eu também trabalho de forma semelhante ao que você está querendo fazer, eu uso o banco Firebird, ele fica instalado em uma máquina servidora (pode ser linux ou windows), o sistema roda via JWS (inclusive com instalação e atualização automática) e o acesso ao banco de dados é feito via URL do servidor, veja exemplo:

String url = "jdbc:firebirdsql://" + servidorBancoDeDados + ":3050/" + LOCAL_ARQUIVO_BD + "?lc_ctype=ISO8859_1"; try { c = java.sql.DriverManager.getConnection(url, usuario, senha); } catch (org.firebirdsql.jdbc.FBSQLException ex) { } catch (SQLException ex) { }

Funciona bem assim pois já tenho esses sistemas em produção desde 2004

entao vou te passar uma aplicação que é um jogo da velah que fiz usando socket, nessa aplicacao um usuario cria o server e se conecta nele e espera outro conectar ai os dois jogos em rede por socket, vc pode faezr uma classe servidor que ao receber um pedido de um cliente executa uma query passada pelo cliente e retorna um resultset para esse cliente por exemplo, a aplicacao que fiz eh diferente mas a parte de comunicacao vc pode ter uma ideia olhando, segue o .jar anexo abaixo, vais te que usa um descompiler para ver as classes to sem o fonte aqui.