u01-Arquitetura de Software Multicamadas

39
UNID 1 - Arquitetura de Software UNID 1 - Arquitetura de Software UNAMA – Universidade da Amazônia PRÓ-REITORIA DE PESQUISA, PÓS-GRADUAÇÃO E EXTENSÃO PÓS-GRADUAÇÃO LATO SENSU Curso de Especialização em Desenvolvimento de Sistemas Baseado em Software Livre Desenvolvimento de Aplicações Multicamadas Prof. Cláudio Martins [email protected]

description

Uploaded from Google Docs

Transcript of u01-Arquitetura de Software Multicamadas

Page 1: u01-Arquitetura de Software Multicamadas

UNID 1 - Arquitetura de Software UNID 1 - Arquitetura de Software

UNAMA – Universidade da AmazôniaPRÓ-REITORIA DE PESQUISA, PÓS-GRADUAÇÃO E EXTENSÃOPÓS-GRADUAÇÃO LATO SENSUCurso de Especialização em Desenvolvimento de Sistemas Baseado em Software Livre

Desenvolvimento de Aplicações Multicamadas

Prof. Cláudio Martins [email protected]

Page 2: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

2

AssuntosAssuntos

Visão geral – Arquitetura de Software

Arquitetura de uma camada

Arquitetura de duas camadas

Arquitetura multicamadas

Computação distribuída x multicamadas

Computação de aplicações corporativas

Page 3: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

3

Visão geral – Arquitetura de SoftwareVisão geral – Arquitetura de Software

Esquema de uma queda d'água de Escher

http://pt.wikipedia.org/wiki/Maurits_Cornelis_Escher

Page 4: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

4

O que é uma arquitetura de O que é uma arquitetura de software?software?

“arquitetura é a estrutura do sistema, que compreende:– componentes ou partes da implementação– as propriedades visíveis externamente desses

componentes, e– as relações entre eles.”

Bass, Len, Clements, Paul, Kazman, Rick, “Software Architecture in Practice” – 1998

Page 5: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

5

““Arquitetar” é propor soluções (modelar) Arquitetar” é propor soluções (modelar) antes de se contruir.antes de se contruir.

Page 6: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

6

O papel do Arquiteto de Software (definido O papel do Arquiteto de Software (definido no Processo Unificado)no Processo Unificado)

Page 7: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

7

O que faz um arquiteto de software?O que faz um arquiteto de software?

O arquiteto de software define tecnologias, infra-estrutura, padrões e metodologias que serão utilizadas nos projetos de software.

O arquiteto estabelece as melhores soluções para resolver as questões dos requisitos não funcionais de um sistema:– Desempenho

– Segurança

– Escalabilidade

– Portabilidade

– Usabilidade

– Persistência, e muito mais...

Page 8: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

8

Desejos, preocupações e proposições de Desejos, preocupações e proposições de projetoprojeto

Direciona para (propostas)

Preocupações dos Interessados (stakeholders)

Atributos de Qualidades (requisitos não funcionais)

* Aumentar participação no mercado... - Modificabilidade, Usabilidade

* Manter a reputação e qualidade... - Desempenho, Usabilidade, Disponibidade

* Adicionar novas características sem problemas... - Desempenho,Disponibidade, Modificabilidade

* Facilitar a programação do software... - Modificabilidade

* Integrar com outros sistemas facilmente... - Interoperabilidade, Portabilidade, Modificabilidade

FONTE: Software Architecture in Practice (3rd Edition) [2012] -Len Bass, Paul Clements, Rick Kazman

Page 9: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

9

O arquiteto de software e visões (modelos) O arquiteto de software e visões (modelos) do projetodo projeto

Os modelos do Processo Unificado– Cada modelo representa uma visão do projeto – Cada modelo é um ponto de vista ou perspectiva de uma etapa do ciclo de vida do software

Page 10: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

10

Desenvolvimento de Aplicações e cuidados Desenvolvimento de Aplicações e cuidados com a arquitetura de software com a arquitetura de software

“Sistemas são frequentemente substituídos ou redesenhados não porque suas funcionalidades são deficientes – as substituições geralmente são idênticas em termos de funcionalidades – mas porque eles são difíceis de manter, portar, escalar, ou porque são muito lentos, ou porque foram comprometidos por eventos inseguros ...”

FONTE: Software Architecture in Practice (3rd Edition) [2012] -Len Bass, Paul Clements, Rick Kazman

Page 11: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

11

Software para Aplicações Empresariais (Corporativas)

Page 12: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

12

O que é O que é Software para Aplicações Software para Aplicações Empresariais (Corporativas)?Empresariais (Corporativas)?

É um software desenvolvido para atender as necessidades de processos de negócio e de fluxo de dados de uma empresa.

– Geralmente manipulam grandes bases de dados, necessitam compartilhar dados com vários usuários ou integrá-los com outros sistemas.

– São chamados também de Sistemas de Informação Empresarial, ou simplesmente Aplicações Corporativas

São exemplos (de domínios de sistemas):

– Controle de gestão: financeiro, recursos humanos, compras

– Processos Industriais: para produção industrial ou processos de fabricação integrados aos sistemas de gestão

– Comercial: sistemas de vendas e suporte a clientes

– Sistemas bancários, de seguro, entre outros.

Page 13: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

13

O que não é uma aplicação corporativa?O que não é uma aplicação corporativa?

O software não é um sistema de informação empresarial (Aplicação Corpotativa), quando atende um problema específico de uso pessoal ou industrial, por exemplo:– Sistemas embarcadas (em carros, televisão digital,

console de vídeo, controles de um robô, para câmera digital, etc).

– Sistemas para telefonia e telecomunicação;

– Sistemas aplicativos para escritório (editor de texto, planilha, etc).

Page 14: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

14

HistóricoHistórico

Podemos encontrar algumas formas de organizar a evolução dos sistemas empresariais, mas em geral, encontramos três grandes momentos ou “ondas” (com alguns autores chamam):– 1a. Onda: aplicações monolíticas (anos 1950 a 70)

– 2a. Onda: aplicações cliente/servidor (anos 1980 a 90)

– 3a. Onda: aplicações distribuídas (metade dos anos 1990)

Observem que estamos convivendo com a evolução da terceira onda, onde há computação em “nuvens”, Internet, computação pervasiva e ubíqua, convergência entre plataformas e tecnologias (móvel, multimídia, TV Digital, etc). Não sabemos ainda as consequencias dessas mudanças.

Page 15: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

15

1a. onda - aplicações monolíticas (anos 1a. onda - aplicações monolíticas (anos 1950 a 70)1950 a 70)

Uso de “mainframes” (hardware era muito caro) em salas fechadas (CPD)

aplicações de software monolíticas (uma camada), com programas e dados firmemente entrelaçados.

– Cada desenvolvedor de aplicação escolhia como estruturar e armazenar os dados e usava freqüentemente técnicas para minimizar o caro armazenamento

– Um dos problemas que surgiu foi “ano 2000” ou “bug do milênio”).

Integração estreita entre programa e dados dificultava a evolução e reuso de componentes.

Page 16: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

16

2a. onda - aplicações cliente/servidor (anos 2a. onda - aplicações cliente/servidor (anos 1980 a 90)1980 a 90)

Sistemas passam a usar software para gerenciamento de banco de dados.

Separação de programa aplicativo dos dados armazenados em SGBD (duas camadas).

Adoção de interfaces gráficas (janelas) e acesso de informação em tempo real em estações de trabalho (desktops) ao SGDB das empresas.

Aumento no tamanho e complexidade de aplicações cliente - clientes “pesados”

– Dificuldade em atualizar versões nas estações

Apesar do compartilhamento e separação de dados dos programas, havia pequeno reuso de lógica empresarial encapsulada (componentes).

Page 17: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

17

Aplicações cliente/servidor – Duas camadasAplicações cliente/servidor – Duas camadas

Servidor de Banco de Dados

AplicaçãoCliente

AplicaçãoCliente

AplicaçãoCliente

Camada Cliente

– Aplicação com lógica de negócio e apresentação (janelas)

– Muito processamento

– Uso de meddleware para conexão ao servidor

Camada Servidora

– Armazenamento usando um SGBD (relacional)

– Algumas regras de negócio armazenadas no banco (em forma de stored procedure e triggers)

Page 18: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

18

3a. onda - aplicações distribuídas (metade 3a. onda - aplicações distribuídas (metade dos anos 1990 até hoje)dos anos 1990 até hoje)

Processamento da aplicação é distribuído com várias máquinas

Evolução do C/S

Modelos físicos:– Cliente/Servidor

– Peer-to-peer (ponto-a-ponto)

– Híbrido (ex: Web, Email)

– Várias Camadas

Page 19: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

19

Aplicação Distribuída x MulticamadasAplicação Distribuída x Multicamadas A diferença é conceitual.

Aplicação distribuída é um conceito genérico para denominar a distribuição de algum tipo de processamento da aplicação entre máquinas que estão na rede.

Aplicação multicamadas conceitualmente é aquela aplicação distribuída onde estão claramente identificadas pelo menos as três principais camadas físicas e a comunicação ocorre com objetos distribuídos:

– Camada de Apresentação

– Camada de Serviços (Lógica do Negócio)

– Camada de Acesso a Dados (Banco de Dados/Persistência)

Page 20: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

20

Arquitetura Multicamadas (3 Camadas)Arquitetura Multicamadas (3 Camadas) Em uma aplicação multicamadas qualquer camada se pode ligar a

outra.

O modelo 3Camadas é similar ao modelo cliente/servidor com um servidor de chamadas remotas de processamento no meio (entre o Cliente e o Servidor)

– A lógica do negócio fica disponível na camada do meio

– A camada “do meio” fala com a base de dados

Pró(s)

– Mais flexiilidade (crescimento, tolerância a falhas, etc)

– Maior independência dos dados por parte do cliente

Contra(s)

– Muita complexidade para controlar/gerenciar

– Muitos tipos de implementação e padrões tecnológicos (Java RMI, EJB, .Net, RPC, Corba, Web, XML, Ajax, etc)

Page 21: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

21

Padrões de Projeto de Software Padrões de Projeto de Software em Aplicações Corporativasem Aplicações Corporativas

Page 22: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

22

Padrões de Software em Aplicações Padrões de Software em Aplicações CorporativasCorporativas

Martin Fowler publicou o livro “Patterns of Enterprise Application Architecture” (2003) onde apresenta padrões para aplicações empresariais.

– Estes padrões descrevem soluções comprovadamente boas para problemas recorrentes no desenvolvimento de aplicações empresariais.

Veja o catálogo de padrões em http://www.martinfowler.com/eaaCatalog/

Page 23: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

23

Padrão “Divisão em Camadas” (Layers)Padrão “Divisão em Camadas” (Layers)

A “divisão em camadas” não é um padrão é um estilo arquitetural.

Fowler identifica 3 camadas fundamentais em sistemas de aplicação empresarial:– Serviços (Apresentação)

– Modelo de Domínio (Lógica de domínio)

– Fonte de Dados

Page 24: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

24

As 3 Camadas As 3 Camadas

Apresentação: fornecimento de serviços, visualização de informação (em Janelas ou em Páginas HTML), controle de interação do usuário (eventos do mouse e do teclado), pedidos “http”, invocações da linha de comando, etc.

Lógica de domínio: a lógica que é o principal ponto da aplicação (domínio de negócio).

Fonte de Dados: comunicação com a Base de Dados, sistemas de mensagens, gestores de transações e outros pacotes de apoio para acesso a dados.

Page 25: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

25

Princípios da Divisão em CamadasPrincípios da Divisão em Camadas A “Divisão em Camadas” estimula a organização da

arquitetura do sistema em um conjunto de camadas coesas com fraco acoplamento entre elas.

– Cada camada possui um propósito bem definido.

– A camada superior conhece apenas a camada imediatamente inferior (que fornece seus serviços através de uma interface).

Cliente Camada N

Camada N-1

Camada 1

Chamada

Resposta

Page 26: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

26

Formas de organizar as CamadasFormas de organizar as Camadas Existem múltiplos esquemas de divisão em camadas, como por

exemplo:

– as 5 camadas de Brown: Presentation, Controller/Mediator (pattern Application Controller), Domain, Data mapping (pattern Data Mapper) e Data Source.

– Padrão MVC: Model, View, Controller

Page 27: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

27

As vantagens da divisão em camadasAs vantagens da divisão em camadas Coesão: possibilidade de compreender uma única

camada como um todo coerente sem se saber muito sobre as outras camadas

Flexibilidade por mudanças: Possibilidade de substituição de camadas por implementações alternativas dos mesmos serviços

Baixo acoplamento: minimização de dependências entre camadas

Reuso: promovem a padronização e reuso de componentes

– Com uma camada construída, é possível usá-la para muitos serviços de mais alto nível

Page 28: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

28

Desvantagens da divisão em camadasDesvantagens da divisão em camadas Dificuldade de encapsulamento, por exemplo, as

alterações em cascata.

– Exemplo: adicionando um campo na Base de Dados que impacta na visualização (interface), é necessário atualizar todas as camadas entre a Base de Dados e a interface.

Excesso de camadas pode provocar perda do desempenho.

– Em cada camada os dados necessitam de ser transformados de uma representação para outra. No entanto, o encapsulamento de um função muitas vezes trás ganhos de eficiência que mais do que compensam a potencial perda de performance. Por exemplo, uma camada que controla as transações pode ser otimizada fazendo com que toda a aplicação fique mais rápida.

A principal dificuldade da divisão em camadas é a decisão de que camadas usar e quais as suas responsabilidades.

Page 29: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

29

Atividades/Exercícios

Page 30: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

30

Atividade PráticaAtividade Prática Projetar um sistema de venda de ingressos para um

empresa de cinemas.

Definição geral:

– Clientes podem utilizar um website ou quiosques para comprar os ingressos e ver quais filmes estão em cartaz. O pagamento no website é por cartão de crédito. No quiosque pode ser efetuado com crédito ou débito.O sistema emite o bilhete com um código de barras e o bilhete tem um número único.O sistema controla o número de bilhetes e as vagas disponíveis para cada sessão de exibição de um filme em um determinado cinema.Considere que a empresa possui vários locais e salas disponíveis para exibir os filmes.

Page 31: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

31

Atividade (cont.)Atividade (cont.)

1) Identifique os envolvidos no sistema e acrescente novas regras e requisitos à definição inicial.

2) Modele o domínio dos dados (utilize um DER ou modelo de classes)

3) Definir arquitetura(s)– Escolha os tipos arquiteturais envolvidos na solução.

Justifique as escolhas.

– Desenhe os subsistemas (em blocos) e módulos.

– Identifique os relacionamentos entre as partes envolvidas.

Page 32: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

32

Questões de Concurso (1)Questões de Concurso (1)1 - ( Prova: FCC - 2010 - TRT - 22ª Região (PI) - Técnico Judiciário - Tecnologia da Informação)

Em relação à arquitetura de sistemas multicamadas, considere as assertivas abaixo.

Os itens I a IV referem-se, respectivamente, aos modelos dea) 2, 2, 2 e 2 camadas.b) 3, 3, 3 e 3 camadas.c) 2, 2, 3 e 3 camadas.d) 3, 3, 2 e 2 camadas.e) 2, 3, 2 e 3 camadas.

Page 33: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

33

Questões de Concurso (2,3)Questões de Concurso (2,3)2 - ( Prova: FCC - 2010 - TRT - 20ª REGIÃO (SE) - Técnico Judiciário - Tecnologia da Informação)

A arquitetura multicamadas divide-se em três camadas lógicas. São elas:a) Apresentação, Negócio e Acesso a Dados.b) Apresentação, Natureza e Acesso a Dados.c) Apresentação, Negócio e Alteração.d) Manipulação, Natureza e Acesso a Dados.e) Manipulação, Negócio e Acesso a Dados.

3 - Prova: ESAF - 2006 - CGU - Analista de Finanças e Controle - Área - Tecnologia da Informação - Prova 3)

Com relação à arquitetura em camadas no desenvolvimento Orientado a Objetos é correto afirmar que:a) uma camada é diretamente dependente de todas as outras camadas existentes na aplicação.b) as camadas se comunicam da base para o topo.c) na camada de apresentação a lógica de interface do usuário é o ponto mais forte.d) nenhuma camada pode ser desativada de qualquer outra camada, exceto da camada imediatamente inferior a ela.e) a camada de negócio é responsável pelo armazenamento e recuperação dos dados.

Page 34: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

34

Questões de Concurso (4, 5)Questões de Concurso (4, 5)4) Prova: FUNCAB - 2010 - SEJUS-RO - Analista de Sistemas

Segundo C. J . Date, um sistema cliente/servidor pode ser considerado um caso particular de um sistema distribuído. Para isso ele deverá atender às seguintes características, EXCETO: a) alguns sites serem clientes e outros serem sites servidores. b) a operação ser uniforme, isto é, fornecer uma completa independência de local. c) todos os dados residiremnos sites servidores. d) as aplicações realizarem acesso remoto transparente ao servidor. e) todas as aplicações serem executadas nos sites clientes.

5) Prova: CESPE - 2010 - SAD-PE - Analista de Controle Interno – Tecnologia da Informação:A figura a seguir apresenta uma proposta de organização da arquitetura de aplicações Internet-web em várias unidades, denominadas tiers ou camadas, destacando-se, no modelo indicado, a presença de cinco unidades: Client, Presentation, Business Logic, Integration e Data. Destaca-se, ainda, uma sequência de comunicações estabelecidas entre essas unidades, numerada de 1 a 7.

A partir dessas informações e dos conceitos de arquitetura de aplicações para ambiente Internet, arquitetura de três camadas e arquitetura cliente-servidor, julgue os itens seguintes.

Page 35: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

35

I - A comunicação indicada por 7 é, usualmente, realizada em resposta a um pedido http. II - Em um sistema de arquitetura em três camadas — apresentação, negócio e dados —, podem residir, em uma mesma camada, as unidades integração e dados. III - Do ponto de vista da arquitetura cliente-servidor, existem, na figura apresentada, vários clientes e vários servidores. IV - A troca de informações de modo assíncrono é um mecanismo de uso mais frequente nas comunicações indicadas por 6 e 1 que nas comunicações indicadas por 2 e 5. V - As comunicações indicadas por 3 e 4 realizam-se, exclusivamente, por meio da linguagem SQL.

Estão certos apenas os itens: a) I, II e III. b) I, II e V. c) I, III e IV. d) II, IV e V. e) III, IV e V

Page 36: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

36

Questões de Concurso (6)Questões de Concurso (6)6) Prova: CESPE - 2009 - TCE-TO - Analista de Controle Externo - Informática - Processamento de Dados

Assinale a opção correta, acerca da tecnologia cliente- servidor. a) Em uma arquitetura do tipo two-tier, as aplicações são normalmente divididas em duas camadas de serviços: de usuário; e de negócio. b) A lógica da aplicação pode residir na interface do usuário ou no servidor produzindo dois modelos, entre eles, o FatClient, em que a interface do usuário e os dados estão no cliente e a lógica do negócio está no servidor. c) No modelo ThinClient, a interface do usuário e a lógica do negócio residem no cliente e a lógica do banco de dados reside no servidor. d) No ambiente Windows, as camadas do modelo three-tier são conhecidas como user services, business services e data services. e) Na arquitetura de três camadas, os dados recebem uma camada separada que pode ser gerenciada por um middleware como o IIS (Internet information server).

Page 37: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

37

Questões de Concurso (7)Questões de Concurso (7)7) Prova: CESGRANRIO - 2011 - TRANSPETRO - Analista de Sistemas JúniorEm aplicações distribuídas, dois modelos usados são o cliente/servidor (cliente-server, C/S) e o ponto a ponto (peer-to-peer, P2P). Nesse contexto, analise as afirmações abaixo.

I - Assim como no modelo C/S, no modelo P2P, qualquer nó pode iniciar uma conexão com qualquer outro nó. II - Diferente do modelo C/S, o modelo P2P se caracteriza por apresentar a mesma largura de banda nas conexões entre dois nós quaisquer da rede. III - Processamento relativo à sincronização e à comunicação entre nós pode sobrecarregar tanto uma rede C/S quanto uma rede P2P. IV - No modelo P2P, uma rede pode comportar nós chamados superpontos (super-peers), que agem de maneira similar aos nós servidores em uma rede C/S.

São corretas APENAS as afirmativas a) I e II b) I e III c) II e III d) II e IV e) III e IV

Page 38: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

38

Atividade para avaliação (2 pts) Atividade para avaliação (2 pts)

Leia o capítulo 1 do livro do Martin Fowler, chamado “Criando Camadas” (está disponível para download). Desenvolva as seguintes atividades:– Elabore um resumo de 2 páginas.

– Responda as seguintes questões:a) Explique as diferenças entre os termos layer e tier.

b) Explique o que é o modelo do “cliente gordo” e do “cliente rico”, usado em solução para a aplicações na web.

c) Quais as soluções aplicadas ao modelo “cliente-servidor” (dos anos 1990) para tratar a lógica de domínio dos sistemas corporativos?

Page 39: u01-Arquitetura de Software Multicamadas

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

39

ReferênciasReferências http://pt.wikipedia.org/wiki/Arquitetura_de_software

Padrões de Arquitetura de Aplicações Corporativas. Martin Fowler – Ed. Bookman. 2006