Upload
computacao-depressao
View
276
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
Parte 3Conceitos Básicos de SD
Sistemas DistribuídosSistemas Distribuídos
MainframesMainframes
• 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”
MainframesMainframes
• 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
MicrocomputadoresMicrocomputadores• 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
MicrocomputadoresMicrocomputadores
• 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
MicrocomputadoresMicrocomputadores
• 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 RedesEvoluçã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 RedesEvoluçã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ômicoPanorama 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 MooreLei 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 MooreLei 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 MooreLei de Moore
Lei de MetcalfeLei 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 MetcalfeLei 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ógicaLei 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ógicaLei 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çãoConsequê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çãoConsequê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çãoConsequê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íquaComputaçã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íquaComputaçã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ógicaConvergê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ógica une 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ógicaConvergê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ênciaInteroperabilidade e Convergência
• Cuidado para não confundir os dois conceitos
APLICAÇÃO
CONVERGENTE
Aplicação 1
Aplicação 2
InteroperabilidadeAplicação 1
Aplicação 2
Arquitetura Cliente/ServidorArquitetura 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
InternetInternet
– É 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/ServidorCliente/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ídoCliente/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çãoResumo 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 CamadasArquitetura 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 CamadasArquitetura em Camadas
• Duas Camadas (2-tier)CLIENTE
SERVIDOR
PROCESSAMENTO PROCESSAMENTO
PROCESSAMENTO
DADOSDADOS
Arquitetura em CamadasArquitetura 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 Arquitetura em Camadas
• Três Camadas (3-tier ou n-tier)
CLIENTESERVIDOR BANCO DE
DADOS
SERVIDOR APLICAÇÕES
Arquitetura em CamadasArquitetura em Camadas
• Três Camadas (3-tier ou n-tier)
CLIENTE
SERVIDOR BANCO DE
DADOSSERVIDOR
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 ACSVantagens da ACS
Mais Vantagens da ACSMais Vantagens da ACS
DesvantagensDesvantagens
Conceitos e TerminologiasConceitos 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 TerminologiasConceitos 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 TerminologiasConceitos e Terminologias
• Tipos de interação
Conceitos e TerminologiasConceitos 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 TerminologiasConceitos e Terminologias
• Controle de estado
Requisitos para DistribuiçãoRequisitos 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çãoRequisitos 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çãoRequisitos 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çãoRequisitos 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 sistema distribuí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 SDDefiniçã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 FundamentaisAspectos 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 FundamentaisAspectos 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 SDsDificuldades 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 SDsDificuldades 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 SDsDificuldades 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 SDsVantagens 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 SDsVantagens 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 SDsVantagens 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