Não se se estou postando no topico certo… mas…
a questão é… preciso criar uma aplicação swing que vai pode funcionar em rede local e pela internet, tentei pesquisar sobre multicamadas usando java, desenvolvi monte de coisa usando swing glassfish e ejb, mas no final to vendo um sistema enorme pesado cheio de gambiarra, daqui a pouco nem eu sei mais q q foi feito no sistema, vejo pessoas fazerem esses sitemas em delphi com uma facilidade incrível, MAS EU N QUERO FAZER EM DELPHI E MUITO MENOS EM JSP… E POR AI VAI… :twisted:
Então o que eu preciso é o seguinte…
Um PC vai ser o servidor, vai ter o SGBD(Mysql), Vai ter alguma coisa pra controlar as regras de negócio do meu sistema.
Outros PCs dentro da rede interna acessam através de Swing o servidor, sem regras de negócio aki.
Outros PCs em uma “filial” acessam o mesmo servidor usando tb Swing, através de conexão ADSL, para achar o servidor vou usar o famoso DNS dymanic
Foi mal… vo pergunta denovo… é o seguinte, o que eu devo estudar par desenolver uma aplicação que vai funcionar acessando dados em um servidor rodando mysql na internet, lembrando que esta aplicação tem que ter interface swing.
Aplicação Swing ----- Internet ----- Servidor Mysql.
vai ter cadstro de clientes forncedores estoque e essa coisa toda.
Existe N formas de resolver seu problema. Aparentemente, você não quer que a aplicação Swing acesse a base de dados, certo? Então, terá que isolar a regra de negócio em algum lugar. Dentre as possibilidades… WebServices, EJBs ou até mesmo utilizar os lightweight containers (Spring, por exemplo)
Procure postar duvidas mais especificas… com certeza poderemos ajudar de maneira mais concreta =)
Eu estou usando EJB aqui pessoal, porém eu acho que estou fazer de forma errada, por ex. na hora de consultar um cliente, ele tem relacionamento com mais 2 tabelas, neste ponto o sistema quando está rodando em uma rede que n é a mesma do servidor, por ex. se o cliente swing está na internet e o servidor em uma intranet da empresa, esse procedimento é demorado? será que eu estou fazendo errado ou estou usando a tecnologia errada?
para chamar o EJB remoto eu faço o loockup normal… os dados estão chegando até a aplicação cliente, porém tá lento, demora d+ mesmo usando conexão banda larga, dentro de intranet n dá pra perceber
Eu fiz o seguinte cara, Instalei o mysql e o Glassfish na mesma máquina.
Na minha máquina eu tenho o Netbeans onde eu fiz um EJB-Module dei o nome dele de AppServer.
Na minha máquina tb usando o Netbeans eu Desenvolvi uma aplicação stand-alone em swing.
Fui na glassfish fiz o Deploy do EJB(Appserv), este EJB faz consultas usando Toplink no meu banco Mysql.
EX. Quando eu clico em pesquisar cliente na interface Swing, que está em uma estação qualquer da rede, a aplicação swing vai fazer o loockup no servidor Glassfish chamando meu EJB, que por sua vez faz uma consulta usando o toplink na minha base de dados Mysql, feito isso meu EJB retorna um List para minha aplicação Swing. Esta por sua vez “pega” o resultado que chegou em forma de Lista e joga nos Jtextfield Jtable e jcombobox e por ai vai…
o problema é que dentro da rede interna esse processo todo tá funcionando bem, mas quando minha aplicação swing faz o loockup por ex. da internet para o meu servidor Glassfish, esse processo demora bastante, usando banda larga nas duas pontas da conexão, então eu estou desconfiado que esta fazendo algum procedimento errado ow não é essa forma de fazer…
Fora do java, o que vc tem que ponderar também são os seus links de internet.
Pelo que entendi, vc esta com 2 ADSL padrão. Logo, seu link não é 100% real.
O que isso quer dizer, se for um link de 1M (Speedy) é 1M de download e 256 de Upload.
Quando vc faz a chamada RMI, vc tem que submeter os dados da maquina cliente para o servidor a 256 e quando volta, o servidor manda para o cliente também a 256.
Ai que da a sua lentidão.
Pq na sua rede interna (100M) funciona bem, certo?
O que vc vai ter que pensar é como otimizar isso mais ainda esse acesso externo, ou como replicar a sua base para lá, ou os dados mais usados ficarem em cache do cliente, ou trocar de link.
É Isso mesmo que acontece… com certeza… eu tive pensando também aki… se o cliente hospedar o banco em na internet, com certeza os dados devem ser mais chegar mais rápido mesmo… visto que os servidores da internet que oferecem algum serviço com certeza devem ter a banda de upload maior q a de download… mas dai em replicar n tinha pensado nisso… replicar de um local para o outro… vo estudar isso as vezes resolve e fica mais barato…
vlw