GARANTIR DESCONTO

Fórum Cliente/Servidor X 3 camadas #335521

02/01/2007

0

Olá Pessoal,

Estou com problema de lentidão na conexão do meu aplicativo com o servidor de banco de dados.
Uso D7, FB2.0, com Soap, Apache, etc... Recriei meu aplicativo como cliente/servidor e o problema foi resolvido. A questão é a seguinte, pela ordem dos fatos eu estaria retroagindo minha aplicação, pois uma vez feita todas as conexões estaria apta a trabalhar na web, cliente/servidor não tem essa vantagem, no entanto, meu cliente espera uma solução ágil. Alguém sabe me dizer qual o problema de trabalhar em 3 camadas? seria os componentes de conexão, forma de configuração dos mesmos? Sei lá qualquer coisa que explique a lentidão...


Grata
Ediane


E.cequinatto

E.cequinatto

Responder

Posts

02/01/2007

Brunolspp

Vc esta usando a tecnologia errada.

SOAP foi criado originalmente para disponibilização de interfaces entre sistemas, principalmente hetereogeneos.

A Borland havia embutido o datasnap nele assim como no http para ter mais uma via, isso não significa q ela seria a melhor forma.

Seu aplicativo com certeza esta lento por conta do SOAP.

Vc precisa trocar o seu servidor de aplicação por Borland Socket Server.
É muito mais rapido, seguro, escalavel e adaptavel.

Se o seu servidor e todo baseado em DataSnap a migração e muito fácil.
e vc não perde nada no cliente.

Porem deve se atentar para varios fatores que influenciam tambem na performance, como a conexao com o banco de dados, construção de sqls, tecnicas de interfaces com o usuarios.
Uso dos recursos do datasnap e do clientdataset. Tudo deve ser levado em consideração.

Eu tenho varias aplicações de alto risco e disponibilidade como gestores clinicos/hospitalares completos, q rodam a 24/7 com mais de 200 conexoes simultaneas, com acesso a base de dados centralizados e distribuição geografica(acesso em tempo real de outras filiais ou postos avançados) e tudo isso 100¬ Delphi e em alguns clientes grandes FireBird.

São sistemas de alta disponibilidade com inetrface win32 que são muito mais rapidos que Client/Server, sem essa arquitetura seria praticamente impossivel conexoes geograficas a baixo custo e alta performance.

Como alcançar isso? ou como se certificar da veracidade...
Meu link de downloads tem materiais, codigo fontes, exemplos e slides sobre o assunto.
http://cc.codegear.com/Author.aspx?ID=795118

Mantenho um grupo de discussao somente sobre o assunto:
nddv@yahoogrupos.com.br

Pode me contactar sempre que for necessario, será muito bom ser util de alguma forma.

Este mes de janeiro vou iniciar o primeiro de 2 modulos de treinamento Delphi em São Paulo Capital, o primeiro será Client/Server com DBExpress, DataSnap, Relatorios com Fortes Report, Graficos, etc e o segundo focado em multicamadas e Web.

Quem não puder vir ao treinamento presencial em SP, temos os treinamentos on-line, que ocorrem como o rpesencial só que muito focado e as aulas ocorrem emtempo rela pela internet.

No mais estou as ordens para o que precisarem.


Responder

Gostei + 0

02/01/2007

E.cequinatto

Olá Bruno,

Obrigada pela resposta, darei uma olhada.
Já participei de uma palestra sua em Porto Alegre - RS no TechDay não estou muito bem lembrada do ano, mas gostei muito da experiência.

Com relação ao treinamento, como estou no interior no RS ficaria difícil participar pessoalmente, mas gostaria de maiores informações para a participação on-line.

Abraços
Ediane


Responder

Gostei + 0

02/01/2007

Brunolspp

Então,

me chame no email blichot@softpark.com.br ou bruno.lichot@gmail.com

para conversarmos melhor e eu poder te ajudar melhor também no assunto.

Abração


Responder

Gostei + 0

02/01/2007

E.cequinatto

Legal, pode ter certeza de que entrarei em contato.

Com relação ao meu problema, gostaria de esclarecer uma falha, a conexão com o servidor não se torna lenta enquanto estou inserindo, editando, consultando, deletendo... e sim quando uma estação requer a execução de uma stored ou uma view por exemplo que levam em torne de 50 segundos para dar retorno, nesse tempo as outras estações que estão inserindo dados trancam, ou seja enquanto o servidor está processando a informação da stored, as estações param até que a execução seja concluída. Poderia mesmo assim ser a conexão?

Grata
Ediane


Responder

Gostei + 0

02/01/2007

Brunolspp

então..

é por causa do modelo de gerecia de threads do SOAP, ele é um serviço sobre outro serviço q usa o windows como framework para operar.. é limitado em seus recursos e não tem muita autonomia para utiliza-los.

por isso q existe o travamento..pq ele não consegue um multiprocessamento muito confiavel.


Responder

Gostei + 0

02/01/2007

E.cequinatto

Bruno,

Desculpe a insistência mas realmente é um problema que nos intriga. Baixamos umas vídeo aulas do Guinther na página Devmedia e conseguimos compilar nossa aplicação utilizando o Com+, justamente para ver se o problema era o Soap, mas o problema persistiu.

Grata
Ediane


Responder

Gostei + 0

02/01/2007

Brunolspp

Dependendo da forma como vc configura as threads e as instancias iso pode ocorrer mesmo, principalment por conta da cncorrencia, com certeza e alguma coisa na configuração,

eu comecei no COM+ mas já fazem 4 anos q esse cara não serve mais rpa construção de aplicações em camadas..
e mto dificilk a manutenção e alem do mais o BSS e estupidamente mais facil, rapido, escalavel, adaptavel e seguro em relação ao COM+


naum vi as video-aulas do meu amigo Guinther, mas as nunacias de configuração do server influenciam diretamente na performance das aplicações.

teste o modelo de thread single e me fale o q acontece.. outra coisa como vc acessa e consome as SP e views? usa DBExpress qual o banco e versao?


Responder

Gostei + 0

02/01/2007

E.cequinatto

Acesso com DBExpress, SQLDataSet, DataSetProvider e clientDataset o banco era o Firebird 1.5 mudamos para o 2.0 por achar que o problema fosse o banco, mas concluímos que não e resolvemos ficar no 2.0 por parecer mais rápido em algumas execuções.
Com relação a ´teste o modelo de thread single e me fale o q acontece´, como poderia fazer isso, pois meu conhecimento não chega a tanto?

Grata
Ediane


Responder

Gostei + 0

02/01/2007

Brunolspp

vai no initialization das classes no server(os RDMs ou TDMs da vida), na seção initializationtem um parametro que configura o modelo de thread q é tmAlgumaCoisa, ex.: tmApartment, tmBoth, etc.. entao seja o q estiver la..troca por tmSingle..

testa ai e ve se resolve..

outra coisa o seu server e executavel ou dll, pq executavel e mais rapido q dll

naum me pergunte pq... kkkk

abração


Responder

Gostei + 0

02/01/2007

E.cequinatto

Bruno!

Muito obrigada mesmo pela sua atenção!!!

Vou dedicar um tempo para estudar as suas dicas e ver o que acontece. Entrarei em contato...

Abraços
Ediane


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar