| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 08:59:06
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
Bom Dia Pessoal.....
Estou distribuindo meu sistema, porém estou tendo alguns problemas.
Atualmente distribui da seguinte forma, cada item em um pc (diferentes vm):
- WebServer + actions
- Controls
- DAO + model
Estou usando Spring em praticamente todas as partes do sistema (Hibernate, Controle Transação, RMI, etc...).
O sistema tem como requisito que o controle de transação seja feito nas controls, portanto, como estou usando o spring, na maquina onde estao as controls, eu preciso ter acesso ao bean sessionFactory para fazer o controle de transação, certo?
Aí veio o problema: Como os DAO's estão em outra maquina, é nela que deve estar a configuração do spring com hibernate(DataSource, SessionFactory, etc...), certo? Porém, segundo o spring, preciso da mesma sessionFactory usada nos DAO para fazer o controle de transação nas controls. Como um sistema distribuído tudo é passado por cópia, acho q isso é complicado, naum?
Desde já agradeço...
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 09:40:48
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Antes de qualquer coisa, por que você distribuiu o seu sistema assim? Porque tudo não executa em uma máquina só?
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 09:49:54
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
é um sistema muito grande.... pode receber cerca de 2000 requisições simultâneas... portanto é essencial esta distribuição....
vc acha q tem alguma solução?
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 11:28:56
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Isso ainda não justifica essa distribuição tosca. Se você quer usar um sistema distribuido, coloque toda uma parte do sistema e não só um pedaço em um tier.
Então crie business delegates/facades que implementem interfaces coarse-grained, coloque elas no AS e as chame dos controlers. Um controler não tem que se meter na lógica de negocio da tua aplicação gerenciando transações.
O que você quer é possivel usando transações distribuidas, mas vai ficar absudamente mais lento que se fosse um servidor apenas.
Vocês estão usando particionamento horizontal do comportamento, ou apenas vertical? Particionamento vertical, que é instroduzir um tier de processamento novo, quase nunca aumenta a performance se não existir partcionamento horizontal.
Me recomentação, contratem uma consultoria que saiba fazer isso, escalar sistemas, pois não é uma tarefas simples ou óbvia ou facil.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 11:30:16
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
É essencial aumentar absurdamente a quantiade de tráfego desnecessário na rede?
O melhor a se fazer é colocar várias máquinas rodando o sistema, acessando o banco de dados e usar balanceamento de carga pra direcionar as requisições.
Do jeito que você está tentando distribuir, vai é matar a aplicação, que vai ter que ficar lá na espera da rede pra executar qualquer coisa.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 11:35:18
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Aproveitando, 2000 requisições simultâneas? De onde você tirou esse número, como calcularam?
Um site web que tenha boa usabilidade responde uma requisição em até 200milisegundos, então 2000 simultâneas significa na verdade 2000 * (1000/200) = 10mil requisições por segundo. Isso dá mais de 200 milhões de requisições por dia.
Atender tudo isso exige pelo menos uma centena de servidores. Vocês estimaram direito esse volume? Esse vai ser um dos 10 maiores portais do Brasil? Você tem certeza?
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
|
|