Escolar Documentos
Profissional Documentos
Cultura Documentos
o em Software Livre
Assuntos
Viso geral Arquitetura de Software Arquitetura de uma camada Arquitetura de duas camadas Arquitetura multicamadas Computao distribuda x multicamadas Computao de aplicaes corporativas
compreende:
componentes ou partes da implementao as propriedades visveis externamente desses
Bass, Len, Clements, Paul, Kazman, Rick, Software Architecture in Practice 1998
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
- Desempenho,Disponibidade, Modificabilidade
- Modificabilidade
- Interoperabilidade, Portabilidade, Modificabilidade
FONTE: Software Architecture in Practice (3rd Edition) [2012] -Len Bass, Paul Clements, Rick Kazman
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
Desenvolvimento de Aplicaes e cuidados com a arquitetura de software Sistemas so frequentemente substitudos ou redesenhados no porque suas funcionalidades so deficientes as substituies geralmente so idnticas em termos de funcionalidades mas porque eles so difceis de manter, portar, escalar, ou porque so muito lentos, ou porque foram comprometidos por eventos inseguros ...
FONTE: Software Architecture in Practice (3rd Edition) [2012] -Len Bass, Paul Clements, Rick Kazman
10
11
necessitam compartilhar dados com vrios usurios ou integr-los com outros sistemas.
Empresarial, ou simplesmente Aplicaes Corporativas
12
empresarial (Aplicao Corpotativa), quando atende um problema especfico de uso pessoal ou industrial, por exemplo:
Sistemas embarcadas (em carros, televiso digital,
Sistemas para telefonia e telecomunicao; Sistemas aplicativos para escritrio (editor de texto,
planilha, etc).
13
Histrico
Podemos encontrar algumas formas de organizar
a evoluo dos sistemas empresariais, mas em geral, encontramos trs grandes momentos ou ondas (com alguns autores chamam):
1a. Onda: aplicaes monolticas (anos 1950 a 70) 2a. Onda: aplicaes cliente/servidor (anos 1980 a 90) 3a. Onda: aplicaes distribudas (metade dos anos
1990)
terceira onda, onde h computao em nuvens, Internet, computao pervasiva e ubqua, convergncia entre plataformas e tecnologias (mvel, multimdia, TV Digital, etc). No sabemos ainda as consequencias dessas mudanas.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
14
aplicaes de software
aplicao escolhia como estruturar e armazenar os dados e usava freqentemente tcnicas para minimizar o caro armazenamento
Um dos problemas que surgiu foi
Integrao estreita
banco de dados.
informao em tempo real em estaes de trabalho (desktops) ao SGDB das empresas. clientes pesados
Aumento no tamanho e complexidade de aplicaes cliente Dificuldade em atualizar verses nas estaes
16
conexo ao servidor
Camada Servidora
SGBD (relacional)
Aplicao Cliente
Aplicao Cliente
Aplicao Cliente
17
Processamento da
ponto) Email)
18
denominar a distribuio de algum tipo de processamento da aplicao entre mquinas que esto na rede. aplicao distribuda onde esto claramente identificadas pelo menos as trs principais camadas fsicas e a comunicao ocorre com objetos distribudos:
Camada de Apresentao Camada de Servios (Lgica do Negcio) Camada de Acesso a Dados (Banco de Dados/Persistncia)
19
outra.
O modelo 3Camadas similar ao modelo cliente/servidor com um
Pr(s)
Mais flexiilidade (crescimento, tolerncia a falhas, etc) Maior independncia dos dados por parte do cliente
Contra(s)
Muita complexidade para controlar/gerenciar Muitos tipos de implementao e padres tecnolgicos (Java RMI,
20
21
22
estilo arquitetural.
Fowler identifica 3 camadas fundamentais em
(Lgica de domnio)
Fonte de Dados
23
As 3 Camadas
Apresentao: fornecimento de servios,
visualizao de informao (em Janelas ou em Pginas HTML), controle de interao do usurio (eventos do mouse e do teclado), pedidos http, invocaes da linha de comando, etc.
Lgica de domnio: a lgica que o principal
Dados, sistemas de mensagens, gestores de transaes e outros pacotes de apoio para acesso a dados.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
24
arquitetura do sistema em um conjunto de camadas coesas com fraco acoplamento entre elas.
Cada camada possui um propsito bem definido. A camada superior conhece apenas a camada imediatamente
Chamada Resposta
Camada N-1
Camada 1
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
25
exemplo:
as 5 camadas de Brown: Presentation, Controller/Mediator (pattern
Application Controller), Domain, Data mapping (pattern Data Mapper) e Data Source.
26
camada como um todo coerente sem se saber muito sobre as outras camadas substituio de camadas por implementaes alternativas dos mesmos servios entre camadas componentes
27
alteraes em cascata.
Exemplo: adicionando um campo na Base de Dados que impacta
na visualizao (interface), necessrio atualizar todas as camadas entre a Base de Dados e a interface.
desempenho.
Em cada camada os dados necessitam de ser transformados de
uma representao para outra. No entanto, o encapsulamento de um funo muitas vezes trs ganhos de eficincia que mais do que compensam a potencial perda de performance. Por exemplo, uma camada que controla as transaes pode ser otimizada fazendo com que toda a aplicao fique mais rpida.
28
Atividades/Exerccios
29
Atividade Prtica
Projetar um sistema de venda de ingressos para um
empresa de cinemas.
Definio geral:
Clientes podem utilizar um website ou quiosques para
comprar os ingressos e ver quais filmes esto em cartaz. O pagamento no website por carto de crdito. No quiosque pode ser efetuado com crdito ou dbito. O sistema emite o bilhete com um cdigo de barras e o bilhete tem um nmero nico. O sistema controla o nmero de bilhetes e as vagas disponveis para cada sesso de exibio de um filme em um determinado cinema. Considere que a empresa possui vrios locais e salas disponveis para exibir os filmes.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
30
Atividade (cont.)
1) Identifique os envolvidos no sistema e acrescente novas regras e requisitos definio inicial. 2) Modele o domnio dos dados (utilize um DER ou modelo de classes) 3) Definir arquitetura(s)
Escolha os tipos arquiteturais envolvidos na soluo.
Justifique as escolhas.
envolvidas.
31
Os itens I a IV referemse, respectivamente, aos modelos de a) 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.
32
33)
Prova: ESAF - 2006 - CGU - Analista de Finanas e Controle - rea - Tecnologia da Informao - Prova
Com relao arquitetura em camadas no desenvolvimento Orientado a Objetos correto afirmar que: a) uma camada diretamente dependente de todas as outras camadas existentes na aplicao. b) as camadas se comunicam da base para o topo. c) na camada de apresentao a lgica de interface do usurio 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 negcio responsvel pelo armazenamento e recuperao dos
dados.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
33
34
I - A comunicao indicada por 7 , usualmente, realizada em resposta a um pedido http. II - Em um sistema de arquitetura em trs camadas apresentao, negcio e dados , podem residir, em uma mesma camada, as unidades integrao e dados. III - Do ponto de vista da arquitetura cliente-servidor, existem, na figura apresentada, vrios clientes e vrios servidores. IV - A troca de informaes de modo assncrono um mecanismo de uso mais frequente nas comunicaes indicadas por 6 e 1 que nas comunicaes indicadas por 2 e 5. V - As comunicaes indicadas por 3 e 4 realizam-se, exclusivamente, por meio da linguagem SQL.
36
37
chamado Criando Camadas (est disponvel para download). Desenvolva as seguintes atividades:
Elabore um resumo de 2 pginas. Responda as seguintes questes:
a) Explique as diferenas entre os termos layer e tier. b) Explique o que o modelo do cliente gordo e do cliente rico, usado em soluo para a aplicaes na web. c) Quais as solues aplicadas ao modelo cliente-servidor (dos anos 1990) para tratar a lgica de domnio dos sistemas corporativos?
38
Referncias
http://pt.wikipedia.org/wiki/Arquitetura_de_software Padres de Arquitetura de Aplicaes Corporativas.
39