Sd03 (si) conceitos básicos de sd

628 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
628
No SlideShare
0
A partir de incorporações
0
Número de incorporações
100
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sd03 (si) conceitos básicos de sd

  1. 1. Parte 3Conceitos Básicos de SDSistemas Distribuídos
  2. 2. Mainframes• Década de 1970– Soluções computacionais eram baseadas emcomputadores de grande porte (mainframes)– Redes de computadores ainda estavam em seusprimeiros passos• Confiabilidade ainda não era satisfatória• Os computadores de pequeno porte ainda nãopossuíam capacidade suficiente para suportaraplicações “sérias”
  3. 3. Mainframes• O modelo baseado em mainframes começou a sofrersaturação– Aumento de demanda: mais aplicações e mais usuários– Limitações na capacidade de crescimento dosequipamentos– Overhead associado aos sistema operacionais• O mercado começa a perceber que a soluçãocentralizada não é o melhor caminho– Distribuir melhor a carga de trabalho é mais interessante
  4. 4. 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 defazer sentido– Algumas configurações mais robustas atendemperfeitamente certas necessidades empresariais
  5. 5. Microcomputadores• O mercado de TI começa a migrar para plataformasbaixas 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
  6. 6. 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 daplataforma mainframe• Cerca de 26% do mercado brasileiro e 10% do mercado mundialainda se baseia em mainframes, embora este percentual estejaem queda• Bancos, governos e grandes corporações ainda possuem umimenso legado de aplicações nessa plataforma (especialmenteaquelas classificadas como “missão crítica”)• É preciso considerar o custo de migração ou redesenho desoluções• Ainda existem demandas específicas para supercomputadores
  7. 7. 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 astelecomunicações• Exemplo: celulares, notebooks, players mp3, ...
  8. 8. Evolução das Redes– Surgimento das conexões sem fio (wireless)• Ampliação do potencial de interligação entredispositivos 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 oconsumidor final– Exemplos: RFIDs, notas fiscais eletrônicas, transações decartões de crédito, ...
  9. 9. Panorama Econômico• A evolução tecnológica gera novas formas de fazernegócio, obrigando as empresas a acompanhar essaevolução para se manterem competitivas• Mudanças na economia e política mundial a partir dasegunda metade do século XX abriram caminho paranovas abordagens da tecnologia de informação comoferramenta para ampliar possibilidades de negócio
  10. 10. Lei de Moore• A cada 24 meses o poder de processamentodos computadores se duplica e o custo demantém constante• Teoria elaborada por Gordon Moore, um dosfundadores da Intel• Esta redução de custo contribuiu para tranformar oscomputadores em um artigo comum em nosso dia-a-dia• O impacto não se restringe a computadores – afetatodos os sistemas digitais (exemplo: telecomunicações)
  11. 11. 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 atuaisde produção.• Sua estimativa é de 10 a 15 anos até que surjam inovaçõestecnológicas que invalidem sua teoria• Este tipo de evolução não aconteceu em nenhuma outratecnologia conhecida
  12. 12. Lei de Moore
  13. 13. Lei de Metcalfe• O valor de um sistema de comunicação crescena razão do quadrado do número de usuáriosdo sistema• Lei formulada por Robert Metcalfe, inventor do sistemaEthernet de redes locais• Fórmula: (n(n-1))/2• Isso significa que quanto maior o número de usuários deum sistema de comunicação, menor é o custo individuale maior o valor global do sistema
  14. 14. Lei de Metcalfe• Exemplos: Telefonia e Internet– Quanto mais usuários, maior o valor da rede detelefonia– O custo individual para se acessar a internet é cada vezmenor• Observação importante• Embora alguns estudos mais recentes discordemdo cálculo proposto por Metcalfe (pois superestimao valor de conexões adicionais) a idéia de agregarvalor pela quantidade de usuários abriu novoshorizontes para as empresas de tecnologia– Exemplos: Netscape, Google, ...
  15. 15. Lei da Disrupção Tecnológica• O custo de uma transação pode reduzir-semais facilmente no mercado do que no interiorde um empresa, através da interligação desistemas de informação– Empresas que exploram as inovações tecnológicase a interligação adequadamente podem atingircustos menores que as empresas resistentes àevolução
  16. 16. Lei da Disrupção Tecnológica• Observação Importante– Empresas que não se adaptam a processosinovadores correm o risco de se defrontar comcompetidores que possuem custos transacionaismenores, o que permite ofertas de produtos maisatraentes e margens de lucro mais interessantes– Obs: disrupção, em termos físicos, é salto de uma faíscaentre dois corpos carregados de electricidade (só ocorredevido a “colaboração” dos mesmos)
  17. 17. Consequências da Evolução– Aumento da disponibilidade• Distribuição de tecnologia e informações em escalamundial– Novas formas de compartilhamento• Hardware (impressoras, servidores, ...)• Recursos (espaço em disco, bancos de dados, tempo decpu, ...)• Serviços (processamentos, pesquisas, ...)
  18. 18. 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 oudesempenho
  19. 19. Consequências da Evolução– Tratamento de Falhas• Investir em qualidade de software minimiza a ocorrênciade falhas, mas só isso não garante que as mesmas nãoocorrerão• É igualmente importante desenvolver métodos detolerância a falhas para suportar desastres inevitáveis– Segurança• É preciso garantir não só a segurança da informaçãoarmazenada, mas sua preservação durante o tráfego
  20. 20. Computação Ubíqua• Também conhecida como Computação Pervasiva• Objetivo• Distribuir e interligar recursos computacionais de forma atornar a presença destes algo natural (quase imperceptível),melhorando as interfaces de uso para que as mesmas não setornem um obstáculo para o usuário final• Na computação pervasiva, o homem seria inundado por tantoscomputadores que ele estaria interagindo mesmo semperceber.
  21. 21. 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 aparelhoscomuns• A capacidade de se ligar a redes wireless• Aumento na integração entre dispositivos diversos e sistemasdistribuídos– Telefones celulares navegando na internet– Dispositivos GPS ou captadores de mídia em veículos
  22. 22. 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 deinformaçõ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ógica une técnicas de sistemasdistribuídos com sistemas de telecomunicações paraobter integração entre vídeos, dados, voz e imagensde forma única e transparente para o usuário
  23. 23. 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 distintasredes e serviços (exemplo: PC e terminal móvel)
  24. 24. Interoperabilidade e Convergência• Cuidado para não confundir os dois conceitosAPLICAÇÃOCONVERGENTEAplicação 1Aplicação 2InteroperabilidadeAplicação 1Aplicação 2
  25. 25. Arquitetura Cliente/Servidor• Nascimento da Arquitetura Cliente/Servidor– Objetivo:• Integrar sistemas que usavam bancos de dados corporativosaos microcomputadores de usuários– Esta arquitetura separa as aplicações corporativas e oprocessamento 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
  26. 26. Internet– É o surgimento de um novo modelo paraintegração de sistemas– Trabalha com padrões abertos, o que permiteindependência de fornecedores– Adoção em larga escala de HTML e outrastecnologias associadas– Surgimento de grupos de trabalho colaborativosem dependência geográfica– Corporações adotam o modelo em seusambientes e o adaptam (Intranet) em númerocada vez maior• Baixo custo• Facilidade de implementação
  27. 27. Cliente/Servidor• A solução técnica ideal:– CLIENTE é qualquer equipamento (ou processo) quedepende de outro para executar seu trabalho– SERVIDOR é este outro equipamento (ou processo) queatende ao cliente– Para que esta relação de solicitação e atendimentoaconteça, é necessária a existência de meios deconexão entre as duas partes (meios públicos, privadosou mistos)– Qualquer equipamento (ou processo) pode atuar comocliente ou servidor, dependendo do momento, devidoà troca de informações• CLIENTES solicitam serviços• SERVIDORES fornecem serviços
  28. 28. Cliente/Servidor Distribuído• É o estágio mais complexo da computação distribuídaproporcionado pelo modelo Cliente/Servidor• Pode conectar:– Diversos tipos de redes– Pontos geograficamente dispersos– Configurações heterogêneas (hardware, software ouambos)• Um usuário conectado a este ambiente pode recuperardados, processar informações ou disparar processosespalhados por um ambiente sem limitações detamanho ou localização, agindo como se todos osrecursos necessários estivessem em sua máquina.
  29. 29. 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
  30. 30. 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 modelodas seguintes maneiras:• Totalmente no cliente ou• Dividida entre o cliente e o servidor– A aplicação que é executada no cliente precisa serinstalada em todas as máquinas que podem vir a setornar clientes– Quaisquer alterações na lógica da aplicação afetam ocliente e sua base de dados
  31. 31. Arquitetura em Camadas• Duas Camadas (2-tier)CLIENTESERVIDORPROCESSAMENTO PROCESSAMENTOPROCESSAMENTODADOSDADOS
  32. 32. Arquitetura em Camadas• Três camadas (3-tier ou n-tier)– Uma ou mais camadas são criadas entre o cliente eo servidor– O cliente é responsável apenas pela interface como 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 aforma como os dados estão armazenados podem serfeitas sem afetar o cliente ou o SGBD• Alterações na estrutura dos dados podem ser feitas semque o restantes do ambiente seja afetado• Alterações de interface podem ser realizadas sem que obanco de dados ou sua lógica de aplicação seja afetada
  33. 33. Arquitetura em Camadas• Três Camadas (3-tier ou n-tier)CLIENTESERVIDORBANCO DEDADOSSERVIDORAPLICAÇÕES
  34. 34. Arquitetura em Camadas• Três Camadas (3-tier ou n-tier)CLIENTESERVIDORBANCO DEDADOSSERVIDORWEBCLIENTECLIENTESERVIDORWEBSERVIDORAPLICAÇÕESSERVIDORAPLICAÇÕESSERVIDORBANCO DEDADOSSERVIDORBANCO DEDADOSSERVIDORAPLICAÇÕESSERVIDORBANCO DEDADOS
  35. 35. Vantagens da ACS
  36. 36. Mais Vantagens da ACS
  37. 37. Desvantagens
  38. 38. Conceitos e Terminologias• Privilégios e complexidade– Servidores normalmente precisam executar acesso a dados,grandes volumes de computação e manipulação deprotocolos. Isso tudo exige privilégios especiais noambiente.– O cliente não precisa ter estes mesmos privilégios, já quesuas necessidades são bem mais simples– Para funcionar com mais eficiência os servidoresgeralmente tentam trabalhar com as requisições de formaconcorrente, o que torna o projeto e a implementação deservidores muito mais complexos que os clientes
  39. 39. Conceitos e Terminologias• Tipos de interação• Ao se projetar uma aplicação cliente/servidor,os desenvolvedores devem estabelecer de queforma os servidores vão interagir com cadacliente.• Isso define o grau de disponibilidade que aaplicação terá.
  40. 40. Conceitos e Terminologias• Tipos de interação
  41. 41. Conceitos e Terminologias• Controle de estado• As informações que o servidor mantém sobre asituação atual da interação dele com o cliente échamada de state information (informação deestado)
  42. 42. Conceitos e Terminologias• Controle de estado
  43. 43. Requisitos para Distribuição• Do ponto de vista dos USUÁRIOS:– Transparência• Não deve ser perceptível ao usuário questões referentesa implementação da solução– Compartilhamento de informação– Confiabilidade• O sistema se mantém funcionando corretamente sobquaisquer circunstâncias de falha ou sobrecarga– Disponibilidade• Fração de tempo que o sistema se apresenta disponívelpara uso
  44. 44. 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ívele deve haver controle sobre dependências residuais– De Replicação:A quantidade de cópias de um recurso não é conhecida e nãoafeta o desempenho nem a continuidade de serviços– De Concorrência:Não se percebe a existência de outros usuários disputandopelo mesmo recurso– De Paralelismo:O usuário não interfere na decisão de que tarefas o sistema vaiexecutar de forma paralela para atendê-lo
  45. 45. Requisitos p/ Distribuição• Do ponto de vista dos GESTORES de Recursos eInformaçã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 ouevoluir– 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
  46. 46. Requisitos p/ Distribuição• Do ponto de vista dos DESENVOLVEDORES deaplicações:– Interfaces padronizadas• Para suportar a heterogeneidade de ambientes, osdesenvolvedores necessitam que as interfaces entre cada parte dosistema distribuído obedeça algum padrão que permita odesenvolvimento e execução de módulos em diferentesplataformas, para que a comunicação entre estes ocorra sem anecessidade 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 deveocorrer de forma simples– Tolerância a Falhas• Ferramentas e procedimentos para mascarar e tratar falhas• Procedimentos alternativos (exemplo: redundância de hardwaree/ou software)
  47. 47. Definição de SD• Sistema Distribuído– “Um sistema distribuído é aquele no qual oscomponentes localizados em computadoresinterligados em rede se comunicam e coordenam suasaçõ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 independentesque se apresentam para os usuários como umequipamento ú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
  48. 48. Aspectos Fundamentais• Qualquer modelo de arquitetura de SD possuiuma preocupação em comum:–Toda solução é composta de processos quese comunicam entre si por meio demensagens que trafegam em uma rede decomunicação
  49. 49. Aspectos Fundamentais• Outra preocupação importante de qualquermodelo de arquitetura de SD:– É preciso deixar de lado a abordagem sequencial epensar em algoritmos distribuídos, onde:• Deve-se levar em consideração o tempo de trânsito dasmensagens, o que exige preocupação com latência– Latência é o tempo entre o início da transmissão e o início darecepção da mensagem• Não há um tempo global único, por isso devem existircontroles 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
  50. 50. Dificuldades dos SDs• Comunicação por mensagens– Com a distribuição, assume-se que as partesenvolvidas contam com recursos locais que nemsempre podem ser compartilhados• É preciso haver mecanismos de comunicação entre cada“nó”– A troca de mensagens está sujeita a alguns fatoresque 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
  51. 51. Dificuldades dos SDs• Segurança– É preciso ampliar as estratégias de gerenciamento,considerando os diferentes ambientes, o que dizrespeito 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 decondições em cada máquina, o que obriga a existência demecanismos mais sofisticados de coordenação(particionamento, replicação, sincronia, tratamento detempo)– Projetar um SO distribuído é complexo
  52. 52. Dificuldades dos SDs• Modelos de Falhas– A rede de comunicação já possui um conjuntopróprio de falhas características• Falhas de hardware (cabos, roteadores, ...)• Falhas de software (perdas de pacote, erros deinteroperabilidade, ...)– A necessidade de coordenação entre diversospontos de distribuição acrescenta mais problemas• Detectar as falhas que não acontecem localmente nemsempre é simples• É preciso tratar situações de indisponibilidade parcial• Existem problemas mais abstratos, como ocongestionamento do serviço
  53. 53. Vantagens dos SDs• SDs são adaptáveis à distribuição geográfica– É uma característica natural dos sistemasdistribuídos considerar que nem todas as suaspartes se encontram fisicamente próximas• SDs são modulares– O sistema pode evoluir por partes, de acordo comnecessidades específicas, ganhando novos módulossem afetar o restante dos componentes jáexistentes– A replicação de módulos pode aumentar acapacidade de desempenhar certas tarefas jáexistentes
  54. 54. Vantagens dos SDs• SDs possuem extensibilidade– Potencialmente, a capacidade de expansão de umSD é virtualmente ilimitada, visto que não élimitada pelo hardware ou tecnologia adotada.• Maior disponibilidade– A existência de máquinas independentes podeassegurar a continuidade de determinado serviçomesmo diante da falha de uma delas– É possível replicar serviços essenciais
  55. 55. Vantagens dos SDs• Desempenho otimizado– Permite atribuir tarefas com exigências específicaspara máquinas mais adequadas para sua execução• Volume de dados, cálculos, processamento, ...• Custo– A redução gradativa de preços de equipamentosaumenta a possibilidade de elevar a capacidadecomputacional a custos baixos– Embora haja sempre a necessidade de investir emequipamentos de comunicação, a relação custo-benefício compensa

×