GARANTIR DESCONTO

Fórum quot;Multi camadasquot; e quot;Modularização BPLquot; #331601

20/10/2006

0

caros colegas, estou realizando uma pesquisa e gostaria de contar com voces. estou estudando alguns materiais sobre ´multi camadas´ e ´modularização com packages BPLs´.

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

Mahdak

Responder

Posts

20/10/2006

Leonardobhbr

1. Para que serve uma aplicação multi camada?
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


Responder

Gostei + 0

20/10/2006

Tiagorocha

Perae... isso aí que o Leonardobhbr está descrevendo me parece mais uma aplicação cliente/servidor (2 camadas). Multicamadas implica 3 ou mais camadas, por exemplo, um cliente ligado a um servidor que acessa outro servidor, não é? Eu poderia ter a lógica de apresentação rodando na máquina do cliente, a lógica de negócio em um servidor de aplicação e o banco de dados em um servidor de servidor de banco de dados, não é isso? Ou eu estou enganado? (A aula na faculdade foi há tanto tempo atrás... :P)


Responder

Gostei + 0

20/10/2006

Titanius

Perae... isso aí que o Leonardobhbr está descrevendo me parece mais uma aplicação cliente/servidor (2 camadas). Multicamadas implica 3 ou mais camadas, por exemplo, um cliente ligado a um servidor que acessa outro servidor, não é? Eu poderia ter a lógica de apresentação rodando na máquina do cliente, a lógica de negócio em um servidor de aplicação e o banco de dados em um servidor de servidor de banco de dados, não é isso? Ou eu estou enganado? (A aula na faculdade foi há tanto tempo atrás... :P)


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


Responder

Gostei + 0

20/10/2006

Mahdak

humm, muito bom... valleu a mão ai galera


Responder

Gostei + 0

23/10/2006

Tiagorocha

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...

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!

Ah.. uma dica, sempre trabalhe com querys parametrizadas, senão nao vai adiantar ser n-camadas, o sistema fica uma carroça..

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?


Responder

Gostei + 0

23/10/2006

Titanius

Olá [b:eedb39e9dc]TiagoRocha[/b:eedb39e9dc]

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


Responder

Gostei + 0

23/10/2006

Edibertoalves

Estou projetando meu sistemas para serem em n-camadas e um ponto se tornou importante: entre usar o commandtext no CDS ou usar a query no SQLQuery ou SQLDataset.

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


Responder

Gostei + 0

23/10/2006

Macario

Ola, apenas uma dica.

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


Responder

Gostei + 0

23/10/2006

Edibertoalves

Macario, desculpa mas eu não entendi. Detalhe por gentileza...

[]´s


Responder

Gostei + 0

23/10/2006

Fabiotb

Ola, apenas uma dica. 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.

O q vc quer dizer com isso acima, não entendi!
Abraço


Responder

Gostei + 0

23/10/2006

Adriano Santos

Macario, desculpa mas eu não entendi. Detalhe por gentileza... []´s


[quote:d27cad94c0] Ola, apenas uma dica. 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.

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.


Responder

Gostei + 0

23/10/2006

Tiagorocha

Olá [b:c1b2ac40c5]TiagoRocha[/b:c1b2ac40c5] 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


Oh sim, sim... SELECT * FROM TABLE sem cláusula WHERE é loucura loucura loucura... pensei que fosse outra coisa, hehehe :P


Responder

Gostei + 0

23/10/2006

Macario

[quote:0faa39a19c=´Adriano Santos´]
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


Responder

Gostei + 0

23/10/2006

Adriano Santos

[quote:4d13e4ab75=´Adriano Santos´] Não sei se o exemplo está correto, mas é mais ou menos isso que pode ocorrer.



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


Responder

Gostei + 0

23/10/2006

Macario

[quote:0696b9921f=´Adriano Santos´]
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


Responder

Gostei + 0

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

Aceitar