Prévia do material em texto
Desenvolvimento de Sistemas Distribuidos Aplicação Empresarial: Microsserviços Abordagem arquitetonica e organizacional de desenvolvimento de software que consiste em varios pequenos serviços independentes funcionando que se comunicam usando APIs para realizar um serviço maior Arquitetura Monolitica: Todos os processos são altamente acoplados e funcionam como um serviço unico Arquitetura de Microsserviço: É criado com componentes independentes que executam cada processo do software geral Exemplo: Caracteristicas dos microsserviços Autonomos · Cada serviço do componente de uma arquitetura de microsserviços pode ser desenvolvido, implantado, operado e escalado sem afetar o funcionamento de outros serviços. · Os serviços não precisam compartilhar nenhum código ou implementação com os outros serviços. · Todas as comunicações entre componentes individuais ocorrem por meio de APIs bem definidas. Especializados · Cada serviço é projetado para ter um conjunto de recursos e é dedicado à solução de um problema específico. · Se os desenvolvedores acrescentarem mais código a um serviço ao longo do tempo, aumentando sua complexidade, ele poderá ser dividido em serviços menores. Aplicação Empresarial: Criterios de Implantação de Microsserviços Criterios que justificam quebrar um serviço em aplicações menores Escopo e Funcionalidade: Dividir quando funcionalidades podem operar de forma independente, evitando dependências desnecessárias entre módulos. Codigo de Alta Volatilidade: Separar partes do código que exigem mudanças frequentes para agilizar o desenvolvimento e minimizar impactos em outras áreas. Escalabilidade e Throughput: Criar microsserviços para módulos que demandem alta capacidade de processamento ou precisem escalar individualmente conforme a carga. Tolerancia a Falha: Isolar componentes críticos melhora a resiliência da aplicação, permitindo que falhas sejam contidas sem afetar o sistema inteiro. Segurança: Separar módulos com diferentes requisitos de segurança para garantir maior controle sobre acessos e dados sensíveis. Extensibilidade: Modularizar para facilitar futuras expansões, integrando novas funcionalidades sem retrabalho significativo no sistema existente. Modelos de Sistemas SD é projetado pra funcionar perante limitação de ambiente, dificuldade e ameaça (variação nos modos de uso, ambiente heterogeneo, problemas internos, ameaças externas) Modelos Fisicos: Representações concretas dos componentes e processos do sistema, simulando o comportamento real em um ambiente físico específico. Modelos Arquiteturais: Focam na estrutura e organização do sistema, definindo como os diferentes componentes se conectam e interagem para formar uma arquitetura coesa. Modelos Fundamentais: Abstrações que representam as regras básicas e princípios essenciais que governam o sistema, incluindo propriedades de consistência, segurança e desempenho. SD Primordiais: Primeiros modelos de sistemas distribuídos, com foco em resolver problemas fundamentais de conectividade e comunicação entre componentes. SD de Larga Escala: Modelos que lidam com a escalabilidade de sistemas distribuídos, suportando grande número de usuários e alta carga de dados, com eficiência e confiabilidade. SD Contemporaneo: Modelos atuais, que incorporam avanços tecnológicos e suportam integrações complexas, garantindo interoperabilidade, segurança e adaptabilidade em cenários variados. Sistema de Informação Distribuida (SID) Consiste do middleware implementado em uma estrutura computacional que permite adicionar aplicações em rede no sistema em questão. Conforme os apps ficaram mais sofisticados, teve a necessidade de um app se comunicar com o outro diretamente, isso deu origem a integração de aplicações EAI (Enterprise Application Integration) Tipos de SID Sistemas de Processamento de Transações Integração de Aplicações Empresariais Processamento de Transações (TP Transaction Processing): Sistemas que gerenciam transações comerciais em tempo real, garantindo que cada transação seja concluída de forma confiável e eficiente. Transações Atomicas: Operações que devem ser totalmente concluídas ou totalmente desfeitas, garantindo consistência e integridade dos dados, mesmo em caso de falhas. Transações Consistentes: Garantem que as transações deixem o sistema em um estado válido, respeitando todas as regras de integridade e evitando dados incorretos. Transações Isoladas: Asseguram que cada transação opere de forma independente, sem interferências de outras transações em andamento, mantendo a integridade dos dados. Transações Duraveis: Garantem que, uma vez confirmadas, as transações sejam permanentemente registradas, mesmo em caso de falhas do sistema, garantindo persistência dos dados. Arquitetura de um SI Distribuido É atraves de camadas que definem uma separação logica de funcionalidades, o role é decidir como cominar as camadas e/ou distribuir os comandos no seu app Arquitetura Camada 1: O que é: Estrutura monolítica onde todos os componentes estão em uma única camada. Vantagem: Simplicidade na implementação e gerenciamento. Desvantagem: Difícil de escalar e menos flexível para modificações e integrações. Arquitetura Camada 2: O que é: Estrutura de cliente-servidor, onde a interface do usuário (cliente) se comunica com a lógica de negócios e o armazenamento de dados (servidor). Vantagem: Melhor desempenho e divisão de responsabilidades. Desvantagem: Escalabilidade limitada ao aumentar o número de clientes. Arquitetura Camada 3: O que é: Estrutura em que a interface, a lógica de negócios e o armazenamento de dados são separados em três camadas distintas. Vantagem: Alta escalabilidade, flexibilidade e melhor distribuição de carga. Desvantagem: Complexidade maior na implementação e maior necessidade de recursos para manter as comunicações entre as camadas. image1.png