Fórum quot;Multi camadasquot; e quot;Modularização BPLquot; #331601
20/10/2006
0
O tema modularização eu ja consegui absorver o suficiente para formular apenas a pergunta numero 3, porem sobre o tema multi camada ainda está meio vago para mim. acabei de ver a video aula do clube delphi ´DataSnap - Aplicacoes MultiCamadas com Delphi 7´ e irei ver assim que possivel os Mini Curso - Aplicacoes Client_Server com dbExpress e Firebird, saquei a ´ideia da coisa´, porem nao consegui responder a mim mesmo as perguntas 1 e 2.
1. Para que serve uma aplicação multi camada?
2. quais as vantagens de ter uma aplicação multi camadas?
3. Fazendo uma relação entre ter um datamodule para cada BPL ou ter apenas um datamodule no form principal para todos os BPLs, qual seria o mais indicado e por que? um datamodule para cada BPL nao prejudicaria o desempenho de um aplicativo multi camada?
Mahdak
Curtir tópico
+ 0Posts
20/10/2006
Leonardobhbr
Vamos supor que seu cliente tenha uma matriz no rio de janeiro e filiais em várias cidades do brasil, o banco de dados ficaria na matriz junto com o programa Servidor e todas as filiais inclusive a propria matriz acessaria o banco via cliente. Resumindo para aplicações grandes onde possa se acessar de vário lugares ao mesmo tempo inclusive se os funcionários quisessem acessar da sua própria casa.
2. quais as vantagens de ter uma aplicação multi camadas?
as maquinas cliente não precisaria ser potente pois a maquina cliente iria chamar funções complexa que está no sistema server ele processaria tudo local e só retornaria resposta para o cliente assim podendo ser computadores carroção, só que o computador onde ficaria o servidor teria que ser um computador robusto!
espero que tenha ajudado
Gostei + 0
20/10/2006
Tiagorocha
Gostei + 0
20/10/2006
Titanius
Justamente, com 3 camadas ou n-camadas... você pode ter um servidor de aplicação, onde ficaria seu Server, e um outro computador como servidor de banco de dados... ou melhor ainda, pra aplicações grandes.. você pode fazer carga de trabalho, ou seja... vamos supor que você tenha 4 super-servidores.. você pode colocar a aplicação servidora, nos 4, e os 4 acessando o banco de dados, e fazendo a carga entre eles, ou seja, quando um servidor estiver muito carregado, outro assume seu papel, ou se um servidor cair, outro assume o papel dele... e por aí vai...
Programar pra n-camadas (digo n, porque 3-camadas pra n-camadas é questao de observação.. :D ) não é um bicho de sete cabeças, porém precisa de muita atenção, perseverança... pois é algo que não se encontra fácil na internet, ou seja, é difícil acha informaçoes sobre isto...
Mas, vale a pena.. tenho um sistema rodando 45 filiais, com 2 servidores (banco e aplicacao).. vixi.. show de bola, acesso o sistema via internet discada e vejo tudo o que quero.. os diretores ficaram bolados, onde eles tiverem, plugam lá o notebook deles, e pronto...
Ah.. uma dica, sempre trabalhe com querys parametrizadas, senão nao vai adiantar ser n-camadas, o sistema fica uma carroça..
vixi... :roll: ´falei´ demais..
[]s
Gostei + 0
20/10/2006
Mahdak
Gostei + 0
23/10/2006
Tiagorocha
Hmmm... certo, certo, me lembrei de outra aula... Sistemas Distribuídos! Sistemas capazes de distribuir suas instruções entre vários processadores de vários computadores de forma a obter um resultado mais rápido!
Taí um negócio que eu ainda não compreendo 100¬ Sei que views armazenadas no banco evitam tráfego desnecessário pela rede e são pré-compiladas e otimizadas pelo SGBDR... Mas esse lance de query parametrizada é novidade pra mim! Por quê isso acontece?
Gostei + 0
23/10/2006
Titanius
O que eu quis dizer foi o seguinte, ao invés de fazer uma query assim;
select * from cliente
é melhor fazer assim:
select * from cliente where codigocliente = :codigo
assim, você só traz o que você quer... evitando o tráfego.. outro modo, é a utilizacao de SP, Triggers e Views...
[]s
Gostei + 0
23/10/2006
Edibertoalves
Optei em jogar tudo nas SQLQueries e SQLDataSets pois assim pra ficar mais organizado, parametrizado minhas regras de negócios, tudo na camada de servidor.
Estou optando pela forma correta???
[]´s
Gostei + 0
23/10/2006
Macario
Fazendo uso do CommandText do ClientDataSet, voce pode ´deixar uma brecha´ em seu sistema para que comandos do lado servidor possam ser sobrepostos pelo lado cliente.
[]´s
Gostei + 0
23/10/2006
Edibertoalves
[]´s
Gostei + 0
23/10/2006
Fabiotb
O q vc quer dizer com isso acima, não entendi!
Abraço
Gostei + 0
23/10/2006
Adriano Santos
O q vc quer dizer com isso acima, não entendi!
Abraço[/quote:d27cad94c0]
Galera, o que o [b:d27cad94c0]Macario[/b:d27cad94c0] quis dizer é que você (usuário) poderia enviar um comando sql em uma consulta e sobrepor a SQL no servidor. Tipo:
No servidor vc tem uma instrução assim:
SELECT * FROM CLIENTES WHERE CAMPO="""" + VARIAVEL + """";
Daí seu usuário põe no campo de busca:
MARIA JOSÉ; DELETE FROM TABELA;
Pronto, o ´;´ depois de [b:d27cad94c0]MARIA JOSÉ[/b:d27cad94c0] finaliza o comando da pesquisa e o próximo comando (DELETE) é executado com facilidade.
Não sei se o exemplo está correto, mas é mais ou menos isso que pode ocorrer.
Gostei + 0
23/10/2006
Tiagorocha
select * from cliente
select * from cliente where codigocliente = :codigo
Oh sim, sim... SELECT * FROM TABLE sem cláusula WHERE é loucura loucura loucura... pensei que fosse outra coisa, hehehe :P
Gostei + 0
23/10/2006
Macario
Não sei se o exemplo está correto, mas é mais ou menos isso que pode ocorrer.[/quote:0faa39a19c]
Ola Adriano
Voce exemplificou bem, e o delete é o menor ´dos males´ que se pode ter ao se fazer uso do CommandText do CDS.
Se o sistema nao fizer uso de usuario previamente determinado no banco (muitos usam o proprio SA) as consequencias podem tornar-se uma ´catastrofe´, bancos podem ser ´dropados´ e por ai vai.
[]´s
Gostei + 0
23/10/2006
Adriano Santos
Ola Adriano
Voce exemplificou bem, e o delete é o menor ´dos males´ que se pode ter ao se fazer uso do CommandText do CDS.
Se o sistema nao fizer uso de usuario previamente determinado no banco (muitos usam o proprio SA) as consequencias podem tornar-se uma ´catastrofe´, bancos podem ser ´dropados´ e por ai vai.
[]´s[/quote:4d13e4ab75]
Opa, tô aprendendo :wink: rsrs
Vi isso no último Webdays, porém já sabia pq tinha vista com um colega aqui do fórum tempos atrás se não me engano.
Em relação a n-tier, tô particpando (não tanto assim) de uma boa lista de discussão que tem bastante material. Inclusive um dos colegas que ajuda nas idéias é o Bruno Lichot, mó barato. Já aprendi bastante.
nddv@yahoogrupos.com.br
Abraço
Gostei + 0
23/10/2006
Macario
Em relação a n-tier, tô particpando (não tanto assim) de uma boa lista de discussão que tem bastante material. Inclusive um dos colegas que ajuda nas idéias é o Bruno Lichot, mó barato. Já aprendi bastante.
nddv@yahoogrupos.com.br
Abraço[/quote:0696b9921f]
Ola.
O Bruno Lichot foi palestrante na BorCon2006, o Mini-curso dele sobre n-tier foi [b:0696b9921f]´extreme´[/b:0696b9921f], ele divulgou esse grupo [b:0696b9921f]nddv[/b:0696b9921f].
So repassando uma dica do Bruno Lichot ele indica usar BSS (Borland SocketServer).
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)