Prévia do material em texto
Parte 3 Conceitos Básicos de SD Sistemas Distribuídos Mainframes • Década de 1970 – Soluções computacionais eram baseadas em computadores de grande porte (mainframes) – Redes de computadores ainda estavam em seus primeiros passos • Confiabilidade ainda não era satisfatória • Os computadores de pequeno porte ainda não possuíam capacidade suficiente para suportar aplicações “sérias” Mainframes • O modelo baseado em mainframes começou a sofrer saturação – Aumento de demanda: mais aplicações e mais usuários – Limitações na capacidade de crescimento dos equipamentos – Overhead associado aos sistema operacionais • O mercado começa a perceber que a solução centralizada não é o melhor caminho – Distribuir melhor a carga de trabalho é mais interessante Microcomputadores • Os PCs começam a evoluir – Mais poder de processamento e armazenamento – Mais acessibilidade (interfaces amigáveis) – Preço atraente (aumento do público consumidor) – O termo “computador pessoal” começa a deixar de fazer sentido – Algumas configurações mais robustas atendem perfeitamente certas necessidades empresariais Microcomputadores • O mercado de TI começa a migrar para plataformas baixas buscando: – Redução de custos – Extensibilidade e Modularidade – Distribuição de carga computacional – Suporte à distribuição geográfica • Novas soluções trazem novos desafios – Administração e manutenção do ambiente – Segurança da informação – Desenvolvimento de aplicações – Integração entre ambientes Microcomputadores • Tornou-se necessário repensar soluções, antes baseadas em um mundo centralizado • IMPORTANTE: A evolução dos PCs não decretou o fim da plataforma mainframe • Cerca de 26% do mercado brasileiro e 10% do mercado mundial ainda se baseia em mainframes, embora este percentual esteja em queda • Bancos, governos e grandes corporações ainda possuem um imenso legado de aplicações nessa plataforma (especialmente aquelas classificadas como “missão crítica”) • É preciso considerar o custo de migração ou redesenho de soluções • Ainda existem demandas específicas para supercomputadores Evolução das Redes – Redes em grande escala (WAN) e redes locais (LAN) • Novas tecnologias altamente confiáveis • Custos mais atraentes • Grande potencial de distribuição – Miniaturização de componentes (hardware) • Disseminação da tecnologia de informação e as telecomunicações • Exemplo: celulares, notebooks, players mp3, ... Evolução das Redes – Surgimento das conexões sem fio (wireless) • Ampliação do potencial de interligação entre dispositivos em qualquer lugar – A Internet se torna parte do dia-a-dia das pessoas • Diretamente: – Milhões de usuários conectados e transações • Indiretamente: – Empresas envolvidas em atividades que afetam o consumidor final – Exemplos: RFIDs, notas fiscais eletrônicas, transações de cartões de crédito, ... Panorama Econômico • A evolução tecnológica gera novas formas de fazer negócio, obrigando as empresas a acompanhar essa evolução para se manterem competitivas • Mudanças na economia e política mundial a partir da segunda metade do século XX abriram caminho para novas abordagens da tecnologia de informação como ferramenta para ampliar possibilidades de negócio Lei de Moore • A cada 24 meses o poder de processamento dos computadores se duplica e o custo de mantém constante • Teoria elaborada por Gordon Moore, um dos fundadores da Intel • Esta redução de custo contribuiu para tranformar os computadores em um artigo comum em nosso dia-a-dia • O impacto não se restringe a computadores – afeta todos os sistemas digitais (exemplo: telecomunicações) Lei de Moore • Observações importantes • O próprio Moore adimite que sua “lei” só se manterá correta enquanto a indústria mantiver as técnicas atuais de produção. • Sua estimativa é de 10 a 15 anos até que surjam inovações tecnológicas que invalidem sua teoria • Este tipo de evolução não aconteceu em nenhuma outra tecnologia conhecida Lei de Moore Lei de Metcalfe • O valor de um sistema de comunicação cresce na razão do quadrado do número de usuários do sistema • Lei formulada por Robert Metcalfe, inventor do sistema Ethernet de redes locais • Fórmula: (n(n-1))/2 • Isso significa que quanto maior o número de usuários de um sistema de comunicação, menor é o custo individual e maior o valor global do sistema Lei de Metcalfe • Exemplos: Telefonia e Internet –Quanto mais usuários, maior o valor da rede de telefonia –O custo individual para se acessar a internet é cada vez menor • Observação importante • Embora alguns estudos mais recentes discordem do cálculo proposto por Metcalfe (pois superestima o valor de conexões adicionais) a idéia de agregar valor pela quantidade de usuários abriu novos horizontes para as empresas de tecnologia – Exemplos: Netscape, Google, ... Lei da Disrupção Tecnológica • O custo de uma transação pode reduzir-se mais facilmente no mercado do que no interior de um empresa, através da interligação de sistemas de informação – Empresas que exploram as inovações tecnológicas e a interligação adequadamente podem atingir custos menores que as empresas resistentes à evolução Lei da Disrupção Tecnológica • Observação Importante – Empresas que não se adaptam a processos inovadores correm o risco de se defrontar com competidores que possuem custos transacionais menores, o que permite ofertas de produtos mais atraentes e margens de lucro mais interessantes –Obs: disrupção, em termos físicos, é salto de uma faísca entre dois corpos carregados de electricidade (só ocorre devido a “colaboração” dos mesmos) Consequências da Evolução – Aumento da disponibilidade • Distribuição de tecnologia e informações em escala mundial – Novas formas de compartilhamento • Hardware (impressoras, servidores, ...) • Recursos (espaço em disco, bancos de dados, tempo de cpu, ...) • Serviços (processamentos, pesquisas, ...) Consequências da Evolução – Heterogeneidade • Diversas soluções, plataformas e modos de interligação • Novas tecnologias surgindo a cada momento – Sistemas abertos • Soluções independentes de fornecedores • Aumento da competitividade – Escalabilidade • A medida que a demanda por um recurso aumenta é possível ampliá-lo sem comprometer custos ou desempenho Consequências da Evolução – Tratamento de Falhas • Investir em qualidade de software minimiza a ocorrência de falhas, mas só isso não garante que as mesmas não ocorrerão • É igualmente importante desenvolver métodos de tolerância a falhas para suportar desastres inevitáveis – Segurança • É preciso garantir não só a segurança da informação armazenada, mas sua preservação durante o tráfego Computação Ubíqua • Também conhecida como Computação Pervasiva • Objetivo • Distribuir e interligar recursos computacionais de forma a tornar a presença destes algo natural (quase imperceptível), melhorando as interfaces de uso para que as mesmas não se tornem um obstáculo para o usuário final • Na computação pervasiva, o homem seria inundado por tantos computadores que ele estaria interagindo mesmo sem perceber. Computação Ubíqua – Evolução tecnológica e competitividade • Novos dispositivos estão surgindo • Miniaturização de dispositivos • Renovação de tecnologia • Incorporação de capacidade de processamento em aparelhos comuns • A capacidade de se ligar a redes wireless • Aumento na integração entre dispositivos diversos e sistemas distribuídos – Telefones celulares navegando na internet – Dispositivos GPS ou captadores de mídia em veículos Convergência Tecnológica • Conceito de convergência tecnológica: • Integração de tecnologias relacionadas a telecomunicações, computação (especialmente Internet) e captura/difusão de informações para fornecer ao usuário aplicações mais acessíveis – Independentes de localização – Em qualquer rede computacional – Usando qualquer canal de comunicação disponível • A convergência tecnológicaune técnicas de sistemas distribuídos com sistemas de telecomunicações para obter integração entre vídeos, dados, voz e imagens de forma única e transparente para o usuário Convergência Tecnológica • Alguns tipos de convergência tecnológica: – Convergência de Redes » Uma mesma rede suporta serviços distintos (exemplo: rede de voz e dados) – Convergência de Serviços » Um mesmo serviço adapta-se a diferentes meios (exemplo: telefonia fixa, celular, TV a cabo e Internet) – Convergência de Terminais » Um mesmo terminal fornecendo acesso a distintas redes e serviços (exemplo: PC e terminal móvel) Interoperabilidade e Convergência • Cuidado para não confundir os dois conceitos APLICAÇÃO CONVERGENTE Aplicação 1 Aplicação 2 Interoperabilidade Aplicação 1 Aplicação 2 Arquitetura Cliente/Servidor • Nascimento da Arquitetura Cliente/Servidor – Objetivo: • Integrar sistemas que usavam bancos de dados corporativos aos microcomputadores de usuários – Esta arquitetura separa as aplicações corporativas e o processamento de transações em duas partes: • Execução no SERVIDOR – Mais segureança – Garantia de integridade • Execução no CLIENTE – Interface amigavel – Exibição personalizada – Problema: • A solução tem um custo alto de suporte e manutenção Internet – É o surgimento de um novo modelo para integração de sistemas – Trabalha com padrões abertos, o que permite independência de fornecedores – Adoção em larga escala de HTML e outras tecnologias associadas – Surgimento de grupos de trabalho colaborativo sem dependência geográfica – Corporações adotam o modelo em seus ambientes e o adaptam (Intranet) em número cada vez maior • Baixo custo • Facilidade de implementação Cliente/Servidor • A solução técnica ideal: – CLIENTE é qualquer equipamento (ou processo) que depende de outro para executar seu trabalho – SERVIDOR é este outro equipamento (ou processo) que atende ao cliente – Para que esta relação de solicitação e atendimento aconteça, é necessária a existência de meios de conexão entre as duas partes (meios públicos, privados ou mistos) – Qualquer equipamento (ou processo) pode atuar como cliente ou servidor, dependendo do momento, devido à troca de informações • CLIENTES solicitam serviços • SERVIDORES fornecem serviços Cliente/Servidor Distribuído • É o estágio mais complexo da computação distribuída proporcionado pelo modelo Cliente/Servidor • Pode conectar: – Diversos tipos de redes – Pontos geograficamente dispersos – Configurações heterogêneas (hardware, software ou ambos) • Um usuário conectado a este ambiente pode recuperar dados, processar informações ou disparar processos espalhados por um ambiente sem limitações de tamanho ou localização, agindo como se todos os recursos necessários estivessem em sua máquina. Resumo da Evolução • Modelos – Centralizado – Centralizado Multiterminal – Cliente/Servidor Local • Máquinas setoriais • Redução de custo – Cliente/Servidor Multiplataforma • Dados no mainframe • Gateways conectando redes – Cliente/Servidor Distribuído • Redes, hardware e software heterogêneos • Pouquíssima ou nenhuma restrição geográfica • SGBDs e arquivos distribuídos Arquitetura em Camadas • Duas camadas ou 2-tier – O cliente comunica-se diretamente com o servidor – O servidor hospeda a base de dados – A lógica da aplicação pode ser distribuída pelo modelo das seguintes maneiras: • Totalmente no cliente ou • Dividida entre o cliente e o servidor – A aplicação que é executada no cliente precisa ser instalada em todas as máquinas que podem vir a se tornar clientes – Quaisquer alterações na lógica da aplicação afetam o cliente e sua base de dados Arquitetura em Camadas • Duas Camadas (2-tier) CLIENTE SERVIDOR PROCESSAMENTO PROCESSAMENTO PROCESSAMENTO DADOSDADOS Arquitetura em Camadas • Três camadas (3-tier ou n-tier) – Uma ou mais camadas são criadas entre o cliente e o servidor – O cliente é responsável apenas pela interface com o usuário final – Alterações na lógica da aplicação se tornam mais “regionais”: • As modificações que não se refiram a interface ou a forma como os dados estão armazenados podem ser feitas sem afetar o cliente ou o SGBD • Alterações na estrutura dos dados podem ser feitas sem que o restantes do ambiente seja afetado • Alterações de interface podem ser realizadas sem que o banco de dados ou sua lógica de aplicação seja afetada Arquitetura em Camadas • Três Camadas (3-tier ou n-tier) CLIENTE SERVIDOR BANCO DE DADOS SERVIDOR APLICAÇÕES Arquitetura em Camadas • Três Camadas (3-tier ou n-tier) CLIENTE SERVIDOR BANCO DE DADOS SERVIDOR WEB CLIENTE CLIENTE SERVIDOR WEB SERVIDOR APLICAÇÕES SERVIDOR APLICAÇÕES SERVIDOR BANCO DE DADOS SERVIDOR BANCO DE DADOS SERVIDOR APLICAÇÕES SERVIDOR BANCO DE DADOS Vantagens da ACS Mais Vantagens da ACS Desvantagens Conceitos e Terminologias • Privilégios e complexidade – Servidores normalmente precisam executar acesso a dados, grandes volumes de computação e manipulação de protocolos. Isso tudo exige privilégios especiais no ambiente. – O cliente não precisa ter estes mesmos privilégios, já que suas necessidades são bem mais simples – Para funcionar com mais eficiência os servidores geralmente tentam trabalhar com as requisições de forma concorrente, o que torna o projeto e a implementação de servidores muito mais complexos que os clientes Conceitos e Terminologias • Tipos de interação • Ao se projetar uma aplicação cliente/servidor, os desenvolvedores devem estabelecer de que forma os servidores vão interagir com cada cliente. • Isso define o grau de disponibilidade que a aplicação terá. Conceitos e Terminologias • Tipos de interação Conceitos e Terminologias • Controle de estado • As informações que o servidor mantém sobre a situação atual da interação dele com o cliente é chamada de state information (informação de estado) Conceitos e Terminologias • Controle de estado Requisitos para Distribuição • Do ponto de vista dos USUÁRIOS: – Transparência • Não deve ser perceptível ao usuário questões referentes a implementação da solução – Compartilhamento de informação – Confiabilidade • O sistema se mantém funcionando corretamente sob quaisquer circunstâncias de falha ou sobrecarga – Disponibilidade • Fração de tempo que o sistema se apresenta disponível para uso – Facilidade de uso Requisitos para Distribuição • Do ponto de vista dos USUÁRIOS (cont.): – Tipos de Transparência – De Localização: Não se conhece a localização real dos recursos – De Migração: A mudança da localização física de um recursos é imperceptível e deve haver controle sobre dependências residuais – De Replicação: A quantidade de cópias de um recurso não é conhecida e não afeta o desempenho nem a continuidade de serviços – De Concorrência: Não se percebe a existência de outros usuários disputando pelo mesmo recurso – De Paralelismo: O usuário não interfere na decisão de que tarefas o sistema vai executar de forma paralela para atendê-lo Requisitos p/ Distribuição • Do ponto de vista dos GESTORES de Recursos e Informação: – Modularidade e extensibilidade • Sistemas monolíticos não são ideais para distribuição • Deve se levar em conta a possibilidade do sistema crescer ou evoluir – Baixo custo • Investimento, manutenção, expansão, ... – Desempenho • Estabelecimento de métricas para avaliar o desempenho – Segurança • Autenticidade: Comprovação de identidade • Autorização: Controle de acesso a recursos • Privacidade: Visibilidade de informação restrita por escopos • Integridade: Proteção contra corrupção ou alteração indevida • Não-repudiação (ou registro): Dispositivos de auditoria Requisitos p/ Distribuição • Do ponto de vista dos DESENVOLVEDORES de aplicações: – Interfaces padronizadas • Para suportar a heterogeneidade de ambientes, os desenvolvedores necessitam que as interfaces entre cada parte do sistemadistribuído obedeça algum padrão que permita o desenvolvimento e execução de módulos em diferentes plataformas, para que a comunicação entre estes ocorra sem a necessidade de tratar diferenças ambientais – Ambientes de programação independentes • Hardware, redes, ... – Flexibilidade e Escalabilidade • O acréssimo de novos módulos ou a substituição de partes deve ocorrer de forma simples – Tolerância a Falhas • Ferramentas e procedimentos para mascarar e tratar falhas • Procedimentos alternativos (exemplo: redundância de hardware e/ou software) Definição de SD • Sistema Distribuído – “Um sistema distribuído é aquele no qual os componentes localizados em computadores interligados em rede se comunicam e coordenam suas ações apenas passando mensagens” – Colouris/ Dollimore / Kindberg em “Sistemas Distribuídos” – Ênfase na distribuição e comunicação entre as partes distribuídas – “...é uma coleção de computadores independentes que se apresentam para os usuários como um equipamento único.” – Tanenbaum em “Distributed Systems: Principles and Paradigms” – Ênfase na transparência da distribuição – Ambas as definições incorporam os conceito de: • Compartilhamento de recursos • Heterogeneidade • Modularidade Aspectos Fundamentais • Qualquer modelo de arquitetura de SD possui uma preocupação em comum: – Toda solução é composta de processos que se comunicam entre si por meio de mensagens que trafegam em uma rede de comunicação Aspectos Fundamentais • Outra preocupação importante de qualquer modelo de arquitetura de SD: – É preciso deixar de lado a abordagem sequencial e pensar em algoritmos distribuídos, onde: • Deve-se levar em consideração o tempo de trânsito das mensagens, o que exige preocupação com latência – Latência é o tempo entre o início da transmissão e o início da recepção da mensagem • Não há um tempo global único, por isso devem existir controles de temporização e sincronismo – Relógios físicos ou lógicos • A ordenação de eventos pode ou não ser relevante – SDs síncronos ou assíncronos Dificuldades dos SDs • Comunicação por mensagens – Com a distribuição, assume-se que as partes envolvidas contam com recursos locais que nem sempre podem ser compartilhados • É preciso haver mecanismos de comunicação entre cada “nó” – A troca de mensagens está sujeita a alguns fatores que afetam seu desempenho: • Erros de transmissão e sequência de mensagens, tempos de transmissão elevados, ... – Exigem a existência de protocolos – Possuem modelos de programação mais complexos Dificuldades dos SDs • Segurança – É preciso ampliar as estratégias de gerenciamento, considerando os diferentes ambientes, o que diz respeito a: • Validação de identidade, controle de privilégios, vulnerabilidades,... • Distribuição do Sistema Operacional – Sincronização • Em sistemas distribuídos não há garantias de igualdade de condições em cada máquina, o que obriga a existência de mecanismos mais sofisticados de coordenação (particionamento, replicação, sincronia, tratamento de tempo) – Projetar um SO distribuído é complexo Dificuldades dos SDs • Modelos de Falhas – A rede de comunicação já possui um conjunto próprio de falhas características • Falhas de hardware (cabos, roteadores, ...) • Falhas de software (perdas de pacote, erros de interoperabilidade, ...) – A necessidade de coordenação entre diversos pontos de distribuição acrescenta mais problemas • Detectar as falhas que não acontecem localmente nem sempre é simples • É preciso tratar situações de indisponibilidade parcial • Existem problemas mais abstratos, como o congestionamento do serviço Vantagens dos SDs • SDs são adaptáveis à distribuição geográfica – É uma característica natural dos sistemas distribuídos considerar que nem todas as suas partes se encontram fisicamente próximas • SDs são modulares – O sistema pode evoluir por partes, de acordo com necessidades específicas, ganhando novos módulos sem afetar o restante dos componentes já existentes – A replicação de módulos pode aumentar a capacidade de desempenhar certas tarefas já existentes Vantagens dos SDs • SDs possuem extensibilidade – Potencialmente, a capacidade de expansão de um SD é virtualmente ilimitada, visto que não é limitada pelo hardware ou tecnologia adotada. • Maior disponibilidade – A existência de máquinas independentes pode assegurar a continuidade de determinado serviço mesmo diante da falha de uma delas – É possível replicar serviços essenciais Vantagens dos SDs • Desempenho otimizado – Permite atribuir tarefas com exigências específicas para máquinas mais adequadas para sua execução • Volume de dados, cálculos, processamento, ... • Custo – A redução gradativa de preços de equipamentos aumenta a possibilidade de elevar a capacidade computacional a custos baixos – Embora haja sempre a necessidade de investir em equipamentos de comunicação, a relação custo- benefício compensa