Utilizando uma aplicacao via rede!

14 respostas
Agr0

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

14 Respostas

maquiavelbona

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é!

marcosharbs

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

B

Depende muito da situação,

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

Agr0

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 …

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é!

Agr0

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é!

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

maquiavelbona

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é!

renzonuccitelli

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

E

Agr0:
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é!

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

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

Agr0

Opa

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

[]s

maquiavelbona

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

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é!

E

maquiavelbona:
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

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é!

ue, não custa tentar…

javer

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

marcosharbs

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.

Criado 14 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 14
Participantes 7