Prévia do material em texto
<p>Desenvolvimento Web</p><p>Universidade Regional Integrada do Alto Uruguai e das Missões -</p><p>Campus Erechim</p><p>Prof. Jackson Felipe Magnabosco</p><p>Arquitetura Web</p><p>Introdução</p><p>● Descrever componentes da arquitetura</p><p>Web</p><p>● Diferenciar padrões de arquitetura Web</p><p>● Explorar tecnologías utilizadas</p><p>O que é Arquitetura Web?</p><p>Definição Geral</p><p>● Estrutura e organização dos componentes de um site ou aplicativo web.</p><p>● Componentes Principais:</p><p>○ Front-end: Interface com o usuário (HTML, CSS, JavaScript).</p><p>○ Back-end: Lógica do servidor (Python, Java, PHP, Node.js).</p><p>○ Banco de Dados: Armazenamento de dados (MySQL, PostgreSQL,</p><p>MongoDB).</p><p>○ Serviços de Rede: APIs e serviços externos.</p><p>Eficiência e Desempenho</p><p>● Garante operação eficiente do site/portal.</p><p>● Responde rapidamente às solicitações e gerencia</p><p>recursos de forma otimizada.</p><p>Escalabilidade e Manutenção</p><p>● Escalabilidade: Suporta aumento de usuários sem</p><p>comprometer o desempenho.</p><p>● Manutenção: Facilita atualizações e novas</p><p>funcionalidades sem impacto significativo.</p><p>Segurança e Experiência do Usuário</p><p>● Segurança: Protege dados e previne ataques com</p><p>práticas robustas.</p><p>● Experiência do Usuário: Garante uma interface</p><p>intuitiva e navegação agradável.</p><p>Arquitetura Cliente-Servidor</p><p>● Arquitetura tradicional.</p><p>● Ainda em uso.</p><p>● Base para outros tipos</p><p>de arquiteturas.</p><p>Funcionamento Cliente-Servidor</p><p>Cliente: Demanda uma solicitação</p><p>por meio de equipamentos</p><p>Servidor: Chega aos servidores de</p><p>dados ofertantes do serviço</p><p>Através da internet</p><p>Exemplo pratico Cliente-Servidor</p><p>Quando acessar o Netflix, seu dispositivo é o</p><p>cliente e o servidor é onde os vídeos estão</p><p>armazenados.</p><p>Arquitetura Monolítica</p><p>Estrutura única e vários</p><p>módulos.</p><p>● Baseada em cliente-servidor.</p><p>● Trabalha em parte modular.</p><p>Vantagens da Arquitetura Monolítica</p><p>Desvantagens da Arquitetura Monolítica</p><p>Exemplo de Arquitetura Monolítica</p><p>Imagine uma empresa onde</p><p>todos os departamentos estão</p><p>integrados. Isso facilita o</p><p>controle, mas se algo der</p><p>errado, consertar um erro pode</p><p>afetar toda a empresa.</p><p>EMPRESA</p><p>RH</p><p>FINANCEIRO</p><p>PRODUCAO</p><p>GERENCIA</p><p>Arquitetura em Camadas</p><p>● Separação das responsabilidades</p><p>do sistema em camadas.</p><p>● Interface, lógica de negócio e</p><p>banco de dados.</p><p>O que são Microsserviços?</p><p>Microsserviços são uma abordagem arquitetônica onde uma</p><p>aplicação é dividida em pequenos serviços independentes.</p><p>Cada microsserviço é responsável por uma funcionalidade</p><p>específica e se comunica com outros serviços através de</p><p>APIs.</p><p>Características:</p><p>● Independência</p><p>● Escalabilidade</p><p>● Desdobramento autônomo</p><p>Comparação com Arquitetura Monolítica</p><p>Vantagens dos Microservices</p><p>Desvantagens dos Microservices</p><p>Exemplo de Arquitetura de Microsserviços</p><p>Diagrama da Arquitetura</p><p>● Gateway API: Rotear solicitações para os microsserviços</p><p>apropriados.</p><p>● Microserviços: Serviços independentes, como Autenticação,</p><p>Pagamento, Inventário.</p><p>● Banco de Dados: Cada microsserviço pode ter seu próprio banco</p><p>de dados ou compartilhar um banco de dados central.</p><p>● Comunicação: Utiliza protocolos como HTTP/REST, gRPC, ou</p><p>mensageria (e.g., Kafka).</p><p>Serviços de hospedagem na web</p><p>Hospedagem Compartilhada</p><p>● Descrição: Vários sites compartilham o mesmo servidor e</p><p>seus recursos.</p><p>● Vantagens:</p><p>○ Custo mais baixo</p><p>○ Gerenciamento fácil</p><p>● Desvantagens:</p><p>○ Menos controle</p><p>○ Recursos compartilhados podem afetar o desempenho</p><p>Serviços de hospedagem na web</p><p>VPS (Virtual Private Server)</p><p>● Descrição: Um servidor físico é dividido em múltiplos</p><p>servidores virtuais independentes.</p><p>● Vantagens:</p><p>○ Mais controle e recursos dedicados</p><p>○ Maior flexibilidade</p><p>● Desvantagens:</p><p>○ Custo mais alto</p><p>○ Necessidade de conhecimento técnico para</p><p>gerenciamento</p><p>Serviços de hospedagem na web</p><p>Hospedagem Dedicada</p><p>● Descrição: Um servidor físico é dedicado exclusivamente a um</p><p>único cliente ou site.</p><p>● Vantagens:</p><p>○ Total controle sobre o servidor</p><p>○ Recursos dedicados</p><p>○ Alto desempenho</p><p>● Desvantagens:</p><p>○ Custo elevado</p><p>○ Requer habilidades avançadas para gerenciamento</p><p>Serviços de hospedagem na web</p><p>Serviços de hospedagem na web</p><p>Serviços de hospedagem na web</p><p>Escolhendo um Serviço de Hospedagem</p><p>● Critérios para selecionar um serviço de</p><p>hospedagem.</p><p>● Preço, desempenho, escalabilidade.</p><p>Segurança na Web</p><p>● Principais ameaças.</p><p>● Boas práticas de segurança.</p><p>Segurança na Web</p><p>SQL Injection</p><p>● Exemplo Prático: Em 2008 organizações governamentais</p><p>foram comprometidas por SQL Injection, resultando na</p><p>exposição de dados sensíveis. O atacante injetou</p><p>comandos SQL maliciosos na entrada de dados, que foram</p><p>executados pelo banco de dados.</p><p>● Mitigação: Utilize consultas parametrizadas e Stored</p><p>Procedures. Valide e escape todas as entradas do usuário.</p><p>Introdução</p><p>● Diferenciar requisitos de negócio, de cliente, de sistema e</p><p>de usuários.</p><p>● Elaborar a documentação de requisitos e regras de</p><p>negócio.</p><p>● Classificar os requisitos por prioridade (essencial,</p><p>importante e desejável</p><p>Dúvidas ou sugestões ?</p><p>Desenvolvimento Web</p><p>Universidade Regional Integrada do Alto Uruguai e das Missões -</p><p>Campus Erechim</p><p>Prof. Jackson Felipe Magnabosco</p>