O que são as três camadas?

Ouvi falar das tais 3 camadas, é um padrão? é utilizado ainda?

Ah, as famosas tres camadas. Massa, recheio e cobertura. A culinaria francesa em geral me decepciona, mas as sobremesas sao sempre otimas.

Santa Maria, Pita e Nina?
Curly, Moe e Larry?
Huguinho, Zezinho e Luizinho?
Model View Controller?
Gaspar, Baltazar e Melchior?
Aramis, Porthus e Athos?

(acabaram-se os trios…)

sexo, droga e rock and roll!

Olá

Por que quer saber só de 3 camadas?

As aplicações feitas neste milênio normalmente tem muitas camadas. Uma ou mais podem residir na máquina do cliente e ser apresentadas com html, flash, swing, thinlet, swt, etc. As outras residem em um ou mais servidores e podem conter uma infinidade de serviços.

Vamos imaginar uma aplicação bem simples para controlar o fluxo de caixa da pastelaria do japonês aqui da esquina.

No milênio passado um analista de sistema recomendaria a este japa a compra de um micro e mais o pacote Office profissional só para ter o Access. Então o analista faria um programinha em VB ou Delphi e o pobre do japinha só podia saber seu fluxo de caixa enquanto estivesse na pastelaria. Coitado!

Atualmente não acredito que alguém faria uma maldade desta com meu amigo japa. A arquitetura mínima de um sisteminha simples como este seria:

  • camada de apresentação no cliente usando html, flash, swing, thinlet, swt, OpenLaszlo, XUL, etc. Eventualmente poderiam haver outras camadas no cliente para acessar dispositivos periféricos ou para se conectar com sistemas de emissão de notas.

  • camada no servidor que roteia as mensagens trocadas entre o cliente e as próximas camadas. Exemplo: servlet engine.

  • camada que gera as respostas. Exemplo: JSP + EL/JSTL, velocity, freemarker, etc.

  • camada de negócios. Aqui realmente acontecem as coisas e são processadas as regras do negócio.

  • camada de persistência de dados, log de mensagens trocadas e log de erros. Esta camada ainda pode eventualmente ser dividida em uma camada que acessa os dados e outra que é a base de dados propriamente dita (que jamais seria o Access).

  • camada de backup, consolidação de dados (DataWarehouse) ou integração com outros sistemas (legado, BI, etc.). Esta camada também pode se dividir em várias outras.

  • eventualmente mais uma camada de serviço de mensageria para rotear mensagens entre as outras camadas.

  • uma outra camada que poderia ser adicionada seria uma interface para obter serviços de outros sistemas locais ou remotos.

Assim o japinha poderá acessar seu sistema de casa ou viajando a negócio ou férias em qualquer lugar no mundo e então acompanhar seu fluxo de caixa, contas a receber e tudo o mais que for incluído no sistema.

No futuro quando o japa expandir seu negócio seu sistema já estará prontinho. No início ele poderá executar todas as camadas no mesmo micrinho ching ling que o micreiro pré-histórico recomendou. Mas quando crescer ele poderá colocar as camadas ou partes do sistema que rodam em servidores em um ou mais data centers situados em qualquer lugar do mundo que achar mais adequado.

[color=darkblue]PS: eu não concordo com quem chama aqueles sistemas antigos que rodam stand alone como por exemplo o antiquíssimo Office, de sistemas desktop. No meu desktop rodam sistemas como GoogleEarth, messenger (msn e yahoo), skype e os browsers IE e firefox e nenhum deles tem serventia stand alone.[/color]

[]s
Luca

Olá,

Sem contexto fica difícil (e você está no off-topic :wink: )

Não existem as 3 camadas. Software é desenvolvido em camadas em diversos níveis, muitas vezes muito mais que três.

De quais camadas você está falando?

Acabaram nada.

Morango, Creme e Chocolate
Arroz, Feijao e Bife
Pao, Salsicha e Mostarda
Cafe, Leite e Acucar
Jack, Coca e Gelo

(e isso eh soh no departamento de comidas e bebidas…)

Ao leite, branco e meio amargo.

Excelente post Luca. O GUJ tem (sempre teve) um nivel alto de discussoes. Esse forum eh tril-legal! :smiley:

Marcio Kuchma

Uma camisa de força, nos acalharia bem.

  1. :twisted:

Se o japa comprar o sistema que o Luca falou vai ter que vender a pastelaria!!!

Heuheueheueh