FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo...
-
Upload
agustina-carreira-borja -
Category
Documents
-
view
213 -
download
1
Transcript of FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo...
![Page 1: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/1.jpg)
FEA/USPFaculdade de Economia, Administração e Contabilidade da
Universidade de São Paulo
Tecnologia de Informática
Arquitetura deSistemas Aplicativos
Prof.Dr. Antonio Geraldo da Rocha Vidal
![Page 2: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/2.jpg)
Arquitetura de uma Aplicação Web
![Page 3: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/3.jpg)
Funções das Camadas naArquitetura do Sistema Aplicativo
Camada Responsabilidade Funções Ferramentas Aplicativo do usuário
Prover interface compreensível e eficiente.
Apresentação, entrada, navegação e análise de dados.
Ferramentas gráficas, linguagem de programação e componentes.
Regras de negócio Estabelecer a política dos negócios: regras e heurística. Preparar respostas para o usuário.
Tomada de decisões, imposição da política, cálculos, coordenação de recursos.
Linguagem de programação e componentes.
Banco de dados Manter dados consistentes, atualizados e seguros.
Manutenção, atualização, integridade e segurança de dados
Banco de dados, linguagem de banco de dados e XML.
![Page 4: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/4.jpg)
Arquitetura em Camadas
A arquitetura em camadas é lógica e não física. Se preocupa com as funções do aplicativo e não com
sua implementação. Essa mesma arquitetura pode ser usada para elaborar
sistemas distribuídos ou centralizados, tradicionais, Cliente/Servidor ou para a Web.
Entretanto, a utilização dessa arquitetura facilita a distribuição dos componentes do aplicativo, quando for preciso por razões de negócios, tecnológicas ou ambas.
![Page 5: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/5.jpg)
Benefícios daArquitetura em Camadas
Estrutura para elaboração de aplicativos flexíveis que possam ser alterados com facilidade para atender às necessidades de negócios em constante mudança.
Alto nível de reutilização de software. Desenvolvimento mais fácil de aplicativos grandes e
complexos em ambientes transacionais, Web e de suporte à decisão.
Desenvolvimento mais fácil de aplicativos distribuídos que dão suporte ao gerenciamento central, a equipes auto gerenciadas e ao atendimento externo.
![Page 6: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/6.jpg)
Como DesenvolverSistemas Aplicativos Complexos?
Abstração:– É uma técnica analítica para dividir um sistema em
vários níveis de detalhes (níveis de abstração) ou camadas.
Encapsulamento:– É um processo de combinar informações (conjuntos
de dados) e comportamentos (funções ou métodos) em uma nova entidade, chamada componente (ou objeto).
![Page 7: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/7.jpg)
Abstração
Usando a abstração, pode-se ocultar uma série de detalhes dos quais não se necessita num determinado nível do sistema aplicativo.
A redução da quantidade de detalhes visíveis é uma parte fundamental da descrição e do projeto de sistemas aplicativos complexos.
A principal técnica para ocultar detalhes é definir os níveis de abstração a serem utilizados.
![Page 8: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/8.jpg)
Arquitetura Baseada emNíveis de Abstração
Uma arquitetura em camadas, baseadas em níveis abstração, possui três características principais:
1. Camadas claramente definidas;2. Interfaces formais e explícitas entre as camadas;3. Detalhes ocultos e protegidos dentro de cada
camada.
![Page 9: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/9.jpg)
Benefícios da Abstração na Arquitetura em Camadas
Esconde deliberadamente de cada camada os detalhes contidos na camada abaixo dela:– Desenvolvimento simplificado do aplicativo: o
desenvolvedor de uma camada não precisa se preocupar com as outras.
– Maior segurança e proteção: o desenvolvedor de uma camada não pode controlar fisicamente outra camada em qualquer nível de detalhe.
![Page 10: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/10.jpg)
Interface entre as Camadas
É a superfície entre os componentes adjacentes de um aplicativo e o dispositivo por meio do qual eles interagem através das seguintes funções:
1. Informa o que o outro componente deve fazer;
2. Pergunta o estado atual de outro componente;3. Recebe os resultados das operações
solicitadas.
![Page 11: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/11.jpg)
Detalhamento da Interfaceentre as Camadas
![Page 12: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/12.jpg)
Interface entre Componentes para Acesso a Banco de Dados
![Page 13: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/13.jpg)
Implementação das Camadas com Componentes
![Page 14: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/14.jpg)
Projeto de cada Camada na Arquitetura em CamadasCamada Interface Foco do Projeto
Aplicativo de usuário (desktop ou browser)
GUI ou WEB Objetos do aplicativo,
independentes de regras.
Processos de regras de negócios
Fluxo dos processos Solicitação de decisões
independentes da interface de usuário
e dos dados.
Gerenciamento de banco de dados
Transações e consultas
Dados independentes das
decisões.
Nenhuma camada deve realizar funções que sejam de responsabilidade de outra.
![Page 15: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/15.jpg)
Camada de Interface
Apresentação:– Apresentação de informações– Metáforas visuais– Navegação e transição consistente entre
formulários/páginasEntrada:
– Coleta de informações (conjuntos de dados)– Coleta de decisões (execução de ações)– Interação (diálogo) com os usuários
![Page 16: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/16.jpg)
Camada de Interface
Liberdade para os usuários:– Moldam a interface do sistema aplicativo de acordo com suas
necessidades específicas, sem afetar as regras de negócios e o banco de dados.
Liberdade para a organização:– O aplicativo de usuário envia solicitações de processo formais
para executar as regras de negócios e transações e consultas no banco de dados.
– As regras de negócio e o banco de dados ficam mais isolados das mudanças na interface do usuário.
– Podem ser facilmente implementadas várias visões para usuários diferentes, sem afetar as regras e os dados.
![Page 17: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/17.jpg)
Camada de Regras de Negócios e Lógica do Aplicativo
Interoperabilidade:– Capacidade de compartilhar trabalho (regras),
compartilhar software (lógica) e fazer “coisas” de forma consistente por toda a organização.
Reutilização:– Um dos principais motivos para a impossibilidade
de alta reutilização de código é a falta da separação, num mesmo sistema aplicativo, entre a interface de usuário, as regras/lógica do negócio e o gerenciamento do banco de dados.
![Page 18: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/18.jpg)
Camada de Regras de Negócios e Lógica do Aplicativo
Um único componente de software trata de uma tarefa específica.
Este componente deve ser independente do banco de dados e da interface do usuário.
Todos os aplicativos da organização sempre utilizam este mesmo componente de software (classe de objeto) para realizar esta mesma tarefa.
![Page 19: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/19.jpg)
Camada de Dados
Transações:– Atualizações de dados consistentes;– Imposição de regras de negócios básicas;– Evitar mudanças não-autorizadas ou inválidas.
Consultas:– Simplificar uniões complexas de tabelas;– Assegurar consistência de resultados;– Assegurar direitos de acesso.
Dados proveniente de várias “fontes”.
![Page 20: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/20.jpg)
Aplicativos Complexos ExigemDivisão do Trabalho
O desenvolvimento de um sistema aplicativo complexo normalmente exige especialização em:– Arquitetura de sistemas– Desenvolvimento de interface e design gráfico– Programação de negócios– Administração de dados– Administração de banco de dados– Programação componentes– Distribuição de aplicações e componentes– Administração de redes de comunicação– Gerenciamento de segurança
Formação de pequenas equipes, em geral de 3 a 6 pessoas por tipo de especialização.
![Page 21: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/21.jpg)
Sistemas Distribuídos Complexos
Cliente em casa
do Banco
Internet
Servidor do Distribuidor
Rede do Distribuidor
Terminais de Caixa do Supermercado
Servidor da Loja
Mainframe Regional do Banco
Mainframe Principal
Rede do Banco
Servidor do FornecedorInternet
Servidor do Fornecedor
Cliente em casa
![Page 22: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/22.jpg)
Empresas Digitais
Empresa AEmpresa A
Consumers, PartnersConsumers, Partners
MobileMobileEmployeesEmployees
Empresa BEmpresa B
Customers Customers Partners Partners SuppliersSuppliers
Consumers, PartnersConsumers, PartnersMobileMobile
EmployeesEmployees
![Page 23: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/23.jpg)
Modelo para o Planejamento, Projeto e Desenvolvimento
Conceitual Lógico Físico Aplicativos de usuário
Fluxo de Trabalho
Seqüências de páginas e formulários
Páginas e Formulários
Regras de Negócios
Fluxo de processos de negócio
Modelo de processos e regras
Programas e Componentes
Banco de dados Modelo de dados Esquema de banco de dados
Tabelas, índices e Procedimentos
Segurança Pontos vulneráveis e tipos de ataque
Esquemas de defesa e autenticação
Firewall, controle de acesso e disciplina
![Page 24: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/24.jpg)
Do Modelo Conceitual aoModelo Físico
Conceitual Modelo deNegócios
Fluxo deProcessos
Fluxo deTrabalho
Domínio do Problema:Domínio do Problema: modelo do negócio (REGRAS) modelo do negócio (REGRAS)
Domínio da Solução:Domínio da Solução: modelo do software (DESEMPENHO) modelo do software (DESEMPENHO)
Modelo deDados
Interação deProcessos
Seqüência deFormulários
Lógico
Banco deDados
Programas eComponentes
Formuláriose Páginas
Físico
![Page 25: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/25.jpg)
Problema versus Solução
Quando a NASA iniciou o lançamento de astronautas, descobriram que as canetas não funcionariam com gravidade zero. Para resolver este problema, contrataram a Andersen Consulting (hoje Accenture).
Empregaram uma década e 12 milhões de dólares desenvolvendo uma caneta que escrevesse com gravidade zero, ao contrário, de ponta cabeça, debaixod'água, em praticamente qualquer superfície (incluindo cristal) e suportando variações de temperatura de abaixo de 0 até mais de 300 Celsius...
Qual foi a solução dos Russos para esse problema?
![Page 26: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/26.jpg)
Evolução doDesenvolvimento de Aplicativos
Anterior Atual Arquitetura Monolítica Distribuída
Modelo de interação de objetos e componentes.
Aplicativos do usuário
Telas, teclas e relatórios
Interatividade, documentos, objetos e protótipos
Processos, comportamentos
Modelo funcional Objetos e componentes Modelo de classes
Banco de dados Modelo de dados Modelo de dados Modelo de documentos
![Page 27: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/27.jpg)
Estrutura de Projeto de umSistema Aplicativo
Interface Web
Regras deNegóciosLógica doAplicativo
Fonte deDados
![Page 28: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/28.jpg)
Estrutura x ModelosUML (Unified Modeling Language)
Modelos estáticos (definição de objetos)– Diagramas de Processos de Negócio– Diagramas de Dados (DER)– Diagrama de Classes de Objetos
Modelos dinâmicos (interação de objetos)– Diagramas de fluxos de trabalho ou rotas de navegação– Diagramas de respostas a eventos e mensagens.– Diagramas de estados (regras de negócios)– Diagramas de atividades (transações e consultas)
Protótipos– Interface do usuário
![Page 29: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/29.jpg)
Modelo para Desenvolvimento de Sistemas Aplicativos para a Web
Serviços de Usuário (interface): páginas Web com formulários no navegador.
Serviços de Negócios (regras): serviços de acesso em Servidores Web e serviços de regras e lógica do negócio em Servidores de Aplicativos.
Serviços de Dados (informações): serviços de Servidores de Banco de Dados.
![Page 30: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/30.jpg)
O Modelo de Serviços
![Page 31: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/31.jpg)
Aplicativo com Uma Camada Física
![Page 32: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/32.jpg)
Aplicativo com Duas Camadas Físicas
![Page 33: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/33.jpg)
Aplicativo com Três Camadas Físicas
![Page 34: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/34.jpg)
Aplicativos com Múltiplas Camadas
![Page 35: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/35.jpg)
Funcionamento de Aplicativos Web
![Page 36: FEA/USP Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Tecnologia de Informática Arquitetura de Sistemas Aplicativos.](https://reader035.fdocumentos.com/reader035/viewer/2022070507/5706384e1a28abb8238f71f1/html5/thumbnails/36.jpg)
Ciclo de Vida de Aplicativos para a Web