Performance

8 respostas
jurunaloco

E ai pessoal blz ? queria fazer uma pergunta relacionada a Swing.

é possivel usar RMI para melhorar a performance usando swing ? dividir o processamento… tendo um servidor bom e maquinas clientes conectadas? prós , contras, rmi se encaixa?

outra coisa… tem como otimizar a JVM em modo multi-usuario ? compartilhar cache de objetos entre usuarios ? isso é possivel ? ocasionaria conflitos ?

a intenção é usar client-server , com client SWING para melhor usabilidade do usuário.

Obrigado a todos

8 Respostas

ignacio83

Existe alguma restrição com o uso de EJBs?

Acredito que eles facilitem muito o que vc deseja fazer…

Felagund

ignacio83:
Existe alguma restrição com o uso de EJBs?

Acredito que eles facilitem muito o que vc deseja fazer…

Concordo plenamente. EJBs com Swing deixam os clients muito mais leves.

[]'s

fantomas

jurunaloco:
E ai pessoal blz ? queria fazer uma pergunta relacionada a Swing.

é possivel usar RMI para melhorar a performance usando swing ? dividir o processamento… tendo um servidor bom e maquinas clientes conectadas? prós , contras, rmi se encaixa?

outra coisa… tem como otimizar a JVM em modo multi-usuario ? compartilhar cache de objetos entre usuarios ? isso é possivel ? ocasionaria conflitos ?

Respostas:

  1. Sim, na minha opinião é possivel melhorar a performance utilizando o swing.
    Mas…(sempre tem um “mas” rsrsrs) antes de qualquer “movimento brusco” em direção a uma performance maior, tem que analisar criteriosamente a sua situação atual e determinar realmente o que está causando a baixa performance.

  2. Performance com servidor potente com clientes conectados, prós, contras, rmi se encaixa?
    Sim, rmi se encaixa e é possível atingir maior performance porem essa estratégia não tem como principal ponto a performance portando muita calma.
    PRÓS, vc corre grande risco de atingir maior performance, poderá ter interface diversificada e ter uma arquitetura mais flexível, etc…
    CONTRAS, alta complexidade.

  3. Tem como compartilhar cache de objetos entre usuários?
    Sim, vc pode utilizar EJB, como já disseram, ou utilizar o Spring com RMI; para os caches / estrutura de dados Hibernate, iBATEs. Tudo isto será compartilhado entre os usuários de forma “automática, transparente” sem conflitos.

  4. Tem como otimizar a JVM em modo multi-usuario?
    Essa pergunta acho que não entendi direito.

P.S A maioria dos casos relacionados a performance tem como principal vilão o banco de dados (indices, estrutura das tabelas, triggers, procedures e etc…).

flws

jurunaloco

OPa bom dia… obrigado pela atenção … tenho somente uma noção basica dos conceitos

então, estou fazendo um sistema em Swing + PostgreSQL a velocidade está boa… porém existem situações de pico… , maquinas não tão potentes…
mesmo assim… em alguns momentos de leitura do banco (com indices criados) fica lenta… uso JDBC puro… mas aos poucos estou migrando

então… o fato de usar RMI ou ejb no que se diz a performance… otimizaria somente os processos back-end correto ?

as consultas ao banco seriam na maquina servidora e o retorno seria uma list de objetos… creio que nessas situações a performance melhoraria correto ?

o rmi nao pode ser utilizado para “serializar” telas no cliente? :oops:

fantomas

Se a máquina onde está o servidor de dados não possuir quantidade de memória razoável, podera haver baixa performance em alguns momentos sim.

A principio não somente no back-end.
Em uma arquitetura client x server tradicional (estação x servidor de dados) haverá o trafico de parte do cursor (resultado da execução do sql) suportado pelo objeto da classe ResultSet pela rede. Quando vc utiliza um servidor de aplicação no meio vc faz com que apenas os objetos que interessam sejam trafegados (rmi); se utilizar o protocolo http acredito que a otimização seja maior ainda.

Sim, veja a explicação anterior como complemento; mas o ponto interessante aqui é o fato de vc poder utilizar um pool de conexões que te levaria a uma economia de recursos muito boa. Ou seja, apenas com algumas poucas conexões (umas 15) vc iria atender uma quantida enorme de requisições.

Não entendi! Qual é o objetivo disto?
Vc não precisa utilizar rmi para poder “serializar” um objeto.

flws

flws

jurunaloco

Opa… então… a maquina servidora é razoavelmente boa.

acho que o que mais pesa… é a utilização dos cursores… (ResultSet), e uso de jtables em conjunto.

com o uso de rmi é facil tratar excessões vindas do banco por ex?

a ultima pergunta eu usei o :oops: hehe

a pergunta era se tinha como utilizar o processamento de uma maquina servidora no auxilio de geração de telas , parar centrar processamento em uma jvm somente… pergunta vergonhosa hehe…

mas é que: em modo multi usuario usando terminal service por exemplo… o servidor abre uma JVM para cada usuário… imaginando uma grande quantia de usuarios complica um pouco

Obrigado pela atenção

fantomas

Na minha opinião sim. Você pode criar as suas exceptions, fazendo com que haja exceptions para coisas ligadas a negócios, serviços, dados e etc…
aqui no forum tem alguns tópicos sobre este assunto, na net tem bastante dicas também.

Tem sim, mas não com swing.
As páginas web são construidas pelo web server, logo, as “telas” serão processadas no servidor antes de serem apresentadas no client.

flws

jurunaloco

então… mecho um pouco com web… mas a intenção seria usar desktop mesmo… para o publico alvo que estou querendo atingir nao daria mto certo sistema browser…

Mas obrigado pelas dicas… vou fazer alguns testes em como fazer uma possivel separaçao client-servidor
se ficar legal vou migrando aos poucos

valeuu

Criado 13 de julho de 2009
Ultima resposta 14 de jul. de 2009
Respostas 8
Participantes 4