computação distribuída

140
Computação Distribuída INE 5625 Prof. Mario Dantas http://www.inf.ufsc.br/~mario Universidade Federal de Santa Catarina (UFSC) Departamento de Informática e Estatística

Upload: lucasoliveira

Post on 17-Dec-2015

4 views

Category:

Documents


2 download

DESCRIPTION

Computação distribuída mod 1

TRANSCRIPT

  • Computao DistribudaINE 5625

    Prof. Mario Dantashttp://www.inf.ufsc.br/~mario

    Universidade Federal de Santa Catarina (UFSC)

    Departamento de Informtica e Estatstica

  • Objetivo

    Neste curso vamos estudar os conceitos relativos a computao distribuda, abordando paradigmas tais:

    computao obqua; computao pervasiva; computao colaborativa; ambientes de troca de mensagens; memria compartilhada; e objetos distribudos.

  • Objetivo

    Vamos iniciar nosso curso com as novas abordagens de computao distribudas, estas conhecidas como ubqua, pervasiva e colaborativa.

    O objetivo introduzir uma viso inovadora de ambientes computacionais altamente distribudos, que necessitam de um tratamento especial por parte de especialistas e, por outro lado,ser ignorado pelos seus usurios.

  • Objetivo

    Quanto as bibliotecas de troca de mensagem sero estudadas: PVM(Parallel Virtual Machine) e MPI (Message Passing Interface).

    Ambientes de middlewares orientados memria compartilhada (shared memory), tais como Jiajia e ThreadMark, sero tambmestudados.

  • Objetivo

    Finalmente, os objetos distribudos sero abordados atravs dastecnologias CORBA, DCOM e Java RMI

  • Contedo ProgramticoModulo I. Introduo a computao distribuda

    . Ambientes de middleware

    Modulo II. Paradigma de troca de mensagem

    . Parallel Virtual Machine (PVM)

    . Message Passing Interface (MPI)

    . Ambientes de Memria Compartilhada

  • Contedo ProgramticoModulo III. Objetos distribudos

    . Componentes

    . CORBA

    . Barramento de objetos CORBA

    . Adaptador bsico de objetos

    . Linguagem de definio de interfaces

  • Contedo Programtico

    . Servios CORBA

    . Objetos COM

    . Barramento de objetos COM

    . Servios OLE/COM

    Java/RMI

  • Bibliografia Recomendada

    Coulouris, Dollimore e Kindberg, Distributed Systems: Concepts and Design, ISBN: 0201619180, Addison Weley, 2006

    Tanenbaum e van Steen, Distributed Systems: Principles and Paradigms (2nd Edition), ISBN: 0132392275, Prentice Hall, 2000

    Dantas, Computao Distribuda de Alto Desempenho: Redes, Clusters e Grids C omputacionais, ISBN: 8573232404, Axcel Books 2005.

  • Contedo Programtico

    Modulo I. Introduo a computao distribuda

    . Ambientes de middleware

    . Paradigma de troca de mensagem

    . Parallel Virtual Machine (PVM)

    . Message Passing Interface (MPI)

    . Ambientes de Memria Compartilhada

  • - Aplicaes tm se tornado a cada dia mais complexas. Um exemplo a utilizao de diversos tipos de mdia (voz, dados, imagens);

    - O crescimento numa imaginado da Internet e redes;

    - A transparncia provida pela Web;

    Introduo a computao distribuda

  • - Computadores pessoais se tornam cada vez mais acessveis;

    - Redes e dispositivos mveis sem fio tornam-se um padro de comunicao pessoal e empresarial.

    Introduo a computao distribuda

  • Exemplo tpico

    - Jogos Pan-Americanos- Muitas pessoas/dispositivos entrando com

    dados/imagens;- Sistema computacionais para processar

    informaes;- Disponibilizar um Web Site para entrada e busca

    de informao.

  • Exemplo ilustrado

    PCs

    Leblon

    Ipanema

    World

    WindowsMac

    IRIX 5.3Silicon Graphics

    UNIX System VSun

  • Fatores a serem considerados

    Eficincia desenvolvimento da soluo; tempo de execuo.

    Confiabilidade Transparncia

    flexibilidade; tolerncia falha X alta disponibilidade.

  • Codificao da Aplicao fcil utilizao

    Computao da Aplicao precisa; segura; eficiente.

    Fatores a serem considerados

  • Aplicao Web flexvel; Poder ser replicada; eficiente.

    Fatores a serem considerados

  • Possveis solues

    C/C++ aplicaes + Sockets no possui uma maior escalabilidade problemas de

    empacotamento/desempacotamento muitos protocolos temporrios

    DCE (remote procedure invocation) no existe polimorfismo

  • Possveis solues

    Ambientes de troca de mensagem;

    Pacotes de memria compartilhada distribuda;

    Objetos distribudos.

  • intranet

    ISP

    desktop computer:

    backbone

    satellite link

    server:

    %

    network link:

    %

    %

    %

    Uma tpica parte da Internet

    Fonte: [Coulouris]

  • Uma tpica Intranet

    the rest of

    email server

    Web server

    Desktopcomputers

    File server

    router/firewall

    print and other servers

    other servers

    print

    Local areanetwork

    email server

    the Internet

    Fonte: [Coulouris]

  • Dispositivos mveis e portveis em sistemas distribudos

    Laptop

    Mobile

    PrinterCamera

    Internet

    Host intranet Home intranetWAP Wireless LAN

    phone

    gatew ay

    Host site

    Fonte: [Coulouris]

  • Web servers and web browsers

    Internet

    BrowsersWeb servers

    www.google.com

    www.cdk3.net

    www.w3c.org

    Protocols

    Activity.html

    http://www.w3c.org/Protocols/Activity.html

    http://www.google.comlsearch?q=kindberg

    http://www.cdk3.net/

    File system ofwww.w3c.org

    Fonte: [Coulouris]

  • Computadores na Internet

    Date Computers Web servers

    1979, Dec. 188 0

    1989, July 130,000 01999, July 56,218,000 5,560,8662003, Jan. 171,638,297 35,424,956

    Fonte: [Coulouris]

  • Computadores vs. Web servers na Internet

    Date Computers Web servers Percentage

    1993, July 1,776,000 130 0.008

    1995, July 6,642,000 23,500 0.41997, July 19,540,000 1,203,096 61999, July 56,218,000 6,598,697 122001, July 125,888,197 31,299,592 25

    42,298,371

    Fonte: [Coulouris]

  • Como podemos definir um sistema distribudo ?

    Introduo a computao distribuda

  • Como podemos definir um sistema distribudo ?

    No mundo real os sistemas distribudos, sob o aspecto de arquitetura de mquinas para execuo de aplicativos, devem ser vistos como configuraes com grande poder de escala pela agregao de computadores existentes nas redes.

    Introduo a computao distribuda

    Fonte: [Dantas]

  • Como podemos definir um sistema distribudo ?

    Nos ambientes distribudos, a homogeneidade ou heterogeneidade de um conjunto de mquinas, onde cada qual possui sua arquitetura de software-hardware executando sua prpria cpia do SO, permite a formao de interessantes configuraes de SMPs, de MPPs, declusters e de grids computacionais.

    Introduo a computao distribuda

    Fonte: [Dantas]

  • Tipos de Transparncias1. Access transparency: enables local and remote resources to be accessed using identical operations;

    2. Location transparency: enables resources to be accessed without knowledge of their physical or network location (for example, which building or IP address);

    3. Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them;

    Fonte: [Coulouris]

  • Tipos de Transparncias

    4. Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers;

    5. Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components;

    Fonte: [Coulouris]

  • Tipos de Transparncias

    6. Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs;

    7. Performance transparency: allows the system to be reconfigured to improve performance as loads vary;

    8. Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms.

    Fonte: [Coulouris]

  • Sistemas Distribudos: Modelos de Arquitetutras

    Modelos de Arquiteturas

    Applications, services

    Computer and network hardware

    Platform

    Operating system

    Middleware

    Fonte: [Coulouris]

  • Server

    Client

    Client

    invocation

    result

    Serverinvocation

    result

    Process:Key:

    Computer:

    Clientes invocando servidores individuais

    Sistemas Distribudos: Modelos de Arquitetutras

  • Server

    Server

    Server

    Service

    Client

    Client

    Um servio provido por mltiplos servers

    Sistemas Distribudos: Modelos de Arquitetutras

  • Client

    Proxy

    Web

    server

    Web

    server

    serverClient

    Web proxy server

    Sistemas Distribudos: Modelos de Arquitetutras

  • Coordination

    Application

    code

    Coordination

    Application

    code

    Coordination

    Application

    code

    Uma aplicao distribuda baseada em processos fim (peer processes)

    Sistemas Distribudos: Modelos de Arquitetutras

  • a) client request results in the downloading of applet code

    Web server

    ClientWeb serverApplet

    Applet codeClient

    b) client interacts with the applet

    Web applets

    Sistemas Distribudos: Modelos de Arquitetutras

  • Thin clients e servidores

    Sistemas Distribudos: Modelos de Arquitetutras

  • Internet

    gateway

    PDA

    service

    Music service

    serviceDiscovery

    Alarm

    Camera

    Guestsdevices

    LaptopTV/PC

    Hotel wirelessnetwork

    Redes Ad hoc (espontnea)

    Sistemas Distribudos: Modelos de Arquitetutras

    Exemplo de um hotel

  • Conceito de Sistemas Distribudos:

    Cooperao Mquinas trabalham em conjunto para chegar a um determinado objetivo; para cooperar as mquinas precisam se comunicar de alguma forma

    Interconexo Mquinas dispem de um meio de comunicao para trocar dados com o intuito de cooperar de modo a alcanar um objetivo comum

    So sistemas compostos por diversas partes So sistemas compostos por diversas partes cooperantescooperantes que so executadas em mquinas que so executadas em mquinas diferentes diferentes interconectadasinterconectadas por uma rede por uma rede

  • Computao Distribuda: Consiste em executar processos / aplicaes

    cooperantes em mquinas diferentes Tornou-se bastante comum a partir da

    popularizao das redes de computadores

    Processos so executados em mquinas diferentes interligadas por uma rede Redes locais Internet Outras redes pblicas ou privadas

  • Infra-Estrutura Fsica

    Mquinas (hosts) so conectadas a um provedor (ISP), rede local, metropolitana ou sem fio;

    Estas redes so interligadas por redes de longa distncia pblicas (ex.: Internet) ou privadas

    Kurose & Ross Kurose & Ross

  • Sistemas distribudos x centralizados

    Sistemas centralizados tm um ponto nico de falha;

    Sistemas distribudos podem aumentar a robustez do sistema e a disponibilidade dos dados;

    Sistemas centralizados so limitados pela capacidade de processamento e armazenamento da mquina;

  • Sistemas distribudos x centralizados

    Sistemas distribudos podem crescer em escala adicionando novos servidores ao sistema;

    Sistemas distribudos so mais sujeitos a apresentar falhas parciais de funcionamento e de segurana;

    Sistemas distribudos so mais difceis de administrar pois os servidores esto em locais diferentes;

  • Sistemas distribudos x paralelos

    Ambos podem executar processamento paralelo usando os vrios processadores disponveis;

    Em mquinas paralelas os processadores podem trocar dados usando discos ou memria;

    Em sistemas distribudos dados so trocados pela rede, o que pode prejudicar o seu desempenho;

  • Sistemas distribudos x paralelos

    Sistemas paralelos so mais vulnerveis a alguns tipos de falha (ex.: falha na alimentao ou na rede);

    Sistemas paralelos no so to escalveis quanto sistemas distribudos.

  • Aplicaes

    ClienteCliente

    Servidor WebServidor Web

    RequisioRequisio RespostaResposta

    World Wide Web

    Servidor WebServidor Web

    RequisioRequisio

    RespostaResposta

  • Aplicaes E-Mail Envio, Recepo e Leitura de E-Mails:

    Remetente

    SMTP

    SMTP

    Servidor de e-mailmail.empresa.com

    POP, IMAP,Webmail,

    Destinatrio

    Servidor de e-mail mail.empresa2.com

  • Aplicaes

    NTP (Network Time Protocol)

    11oo Nvel Nvel

    22oo Nvel Nvel

  • Aplicaes

    DNS Servidores Raiz:

    b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CA

    e NASA Mt View, CAf Internet Software C. Palo Alto, CA

    i NORDUnet Stockholm

    k RIPE London

    m WIDE Tokyo

    a NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA

    Kurose & Ross Kurose & Ross

  • Aplicaes

    DNS Consulta:

    mquina.empresa.com venus.inf.ufsc.br

    Servidor de nomes raiz

    Servidor de nomes .br

    1

    28

    3

    9

    10

    Serv. de nomesns.ufsc.br

    7

    4

    Serv. de nomesns.inf.ufsc.br

    6

    5

    Serv. de nomesns.empresa.com

    11

  • Aplicaes

    Outros exemplos de aplicaes distribudas:

    Messenger, ICQ;

    Redes Peer-to-Peer (P2P);

    Sistema de Reserva de Passagens;

    Sistema de Operadoras de Carto de Crdito;

  • Aplicaes

    Sistemas bancrios;

    Sistemas de gerenciamento de redes de telecomunicaes, transmisso de energia;

    Sistemas de informao de grandes empresas;

    - Nova abordagem de TV digital.

  • Caractersticas

    Classificao: Sistemas Homogneos

    Todos os sites tm o mesmo software e hardware

    Sistemas Heterogneos Hardware, sistema operacional e aplicativos podem ser

    diferentes em cada mquina Podem representar os dados de modo diferente Protocolos de comunicao precisam ser os mesmos

    para que as mquinas possam interagir

  • Caractersticas

    Vantagens

    Dispem de maior poder de processamento;

    Se bem construdos, podem apresentar um melhor desempenho que sistemas centralizados;

    Podem apresentar maior confiabilidade ;

  • Caractersticas

    Vantagens Permitem reutilizar servios j disponveis;

    Possuem maior capacidade para armazenamento de dados que sistemas centralizados;

    Podem compartilhar dados e recursos; Podem atender um maior nmero de usurios;

  • Caractersticas

    Dificuldades

    Desenvolver, gerenciar e manter o sistema;

    Controlar o acesso concorrente a dados e a recursos compartilhados;

    Controlar a consistncia dos dados replicados;

  • Caractersticas

    Dificuldades Evitar que falhas de mquinas ou da rede

    comprometam o funcionamento do sistema Mais hardware mais falhas

    Garantir a segurana do sistema e o sigilo dos dados trocados entre mquinas;

    Lidar com a heterogeneidade do ambiente;

  • Caractersticas

    Desempenho Mais mquinas maior poder de processamento;

    Uso da rede pior desempenho;

    importante utilizar adequadamente o poder de processamento disponvel e limitar a comunicao da rede para que o desempenho da aplicao distribuda seja satisfatrio;

  • Caractersticas

    Compartilhamento de Dados e de Recursos possvel acessar dados e recursos disponveis em

    outras mquinas do sistemaEx.: impressoras, cmeras, bancos de dados, filmes.

    Recursos podem estar indisponveis devido a falhas; Acesso concorrente deve ser controlado; Deadlocks precisam ser evitados;

  • Caractersticas

    Uso da Rede Acoplamento fraco mquinas trocam dados

    atravs da rede Tempo de comunicao ilimitado pode

    comprometer o funcionamento do sistema Como reduzir o trfego na rede?

  • Caractersticas

    No-deterministas Comportamento pouco previsvel devido ao uso

    da rede, que leva possibilidade de ocorrerem retardos inesperados ou mesmo falhas na comunicao

    Como evitar congestionamento/sobrecarga?

  • Caractersticas

    Influncia do Tempo Sistemas distribudos so bastante influenciados

    pelo tempo de comunicao pela rede Em geral no h uma referncia de tempo global,

    pois os relgios das mquinas no esto sincronizados

    Como ordenar os eventos no sistema?

  • Caractersticas

    Controle Os sistemas distribudos tendem a empregar

    recursos remotos, sobre os quais no se tem total controle

    Estes recursos podem estar indisponveis por j estarem sendo usados ou por falha na mquina ou programa que os administra, na rede ou no prprio recurso

  • Caractersticas Sujeito a Falhas

    As mquinas e a rede podem falhar Como evitar que estas falhas comprometam o

    funcionamento do sistema? Segurana

    Mais difcil controlar o acesso a dados e recursos em sistemas distribudos

    Como garantir a segurana do sistema e o sigilo dos dados trocados pela rede?

  • Caractersticas

    Difcil ter uma viso global do sistema Difcil saber o estado de cada parte do sistema

    em um determinado instante devido latncia da rede

    Transaes envolvem vrias mquinas Como conhecer o estado global do sistema?

  • Caractersticas

    Gerenciamento e manuteno do sistema Mquinas dispersas pela rede difcil gerenciar

    e manter as mquinas e o sistema funcionando H maior dificuldade se o sistema for heterogneo Administrao pode ser independente

  • Caractersticas

    Replicao de Dados

    Os dados do sistema podem estar replicados;

    necessrio garantir a consistncia de rplicas rplicas com o mesmo valor!

    Alteraes nos dados devem ser propagadas para as mquinas com rplicas do dado;

  • Caractersticas

    Replicao de Dados

    Replicao dificulta a obteno do estado global do sistema;

    Cada rplica deve atualizar seu estado ao reintegrar-se ao sistema; qualquer inconsistncia nos dados deve ser resolvida.

  • Desenvolvimento de Aplicaes

    Aplicaes Distribudas so criadas usando: APIs e Bibliotecas: fornecem rotinas para

    comunicao entre processos, controle de concorrncia, monitorar transaes, etc.Ex.: Sockets, WinSock, java.net, etc.

  • Desenvolvimento de Aplicaes

    Middleware para Programao Distribuda: fornece suporte para criar / executar programas distribudos.Ex.: CORBA, COM, .NET, etc.

    Servidores de Aplicao: hospedam aplicaes que provem servios e dados a clientes remotos Ex.: JBoss, WebSphere, etc.

    Linguagens e sistemas operacionais distribudos vem caindo em desuso

  • Mquina 1Mquina 1 Mquina NMquina N

    Desenvolvimento de Aplicaes

    Middleware para Programao Distribuda

    AplicaoAplicao Servio Servio

    AplicaoAplicao

    Middleware para Programao DistribudaMiddleware para Programao Distribuda

    HardwareHardware

    Sistema OperacionalSistema Operacional Sistema OperacionalSistema Operacional

    HardwareHardware

    Servio Servio AplicaoAplicao

    AplicaoAplicao

    ......

    ......

  • Desenvolvimento de Aplicaes Servidores de Aplicao

    Mquina ClienteMquina Cliente Mquina ServidoraMquina Servidora

    ClienteCliente

    Servidor de AplicaoServidor de Aplicao

    HardwareHardware

    Sistema OperacionalSistema Operacional Sistema OperacionalSistema Operacional

    HardwareHardware

    Servio Servio AplicaoAplicao

    AplicaoAplicao

    ......

    ......

  • Desenvolvimento de Aplicaes

    Projeto de Aplicaes Distribudas

    Abordagens de projeto Top-Down: usada em sistemas construdos do zero,

    possivelmente homogneos

    Bottom-Up: usada quando os sistemas locais j esto instalados e precisam ser integrados

  • Desenvolvimento de Aplicaes

    Questes a serem respondidas no projeto Onde colocar os sites? Como distribuir dados e servios pelos sites? Replicao necessria? Como integrar sistemas j existentes?

  • O que vem a ser computao ubqua ?

    Introduo a computao distribuda

  • O que vem a ser computao ubqua ?

    O termo computao ubqua foi primeiramente sugerido por MarkWeiser em 1988. Este descreve sua idia de tornar os computadores onipresentes e invisveis.

    O esforo tirar o computador do caminho entre o usurio e seu trabalho. Em outras palavras, o objetivo ir alm da interface amigvel e longe da realidade virtual.

    Introduo a computao distribuda

  • O que vem a ser computao ubqua ?

    Ao invs de usar ao mximo todas os canais de entrada e sada do corpo, semelhante realidade virtual, a idia permitir que o indivduo faa seu trabalho com o auxlio de computadores sem nunca ter que se preocupar em trabalhar nos computadores.

    Melhorando-se as interfaces fazem do obstculo (o computador) um elemento mais fcil de usar.

    Introduo a computao distribuda

  • O que vem a ser computao ubqua ?

    Este tipo de computao cria a era da tecnologia calma (calm technology).

    A computao passa a ser subjacente s nossas vidas. Os computadores passam a ser to naturais, to sob medida e to embutidos em todos os locais, que eles se tornam praticamente invisveis, isto , ns os utilizamos quase sem pensar.

    Introduo a computao distribuda

  • O que vem a ser computao ubqua? Fonte: [Mark Weiser]

    Introduo a computao distribuda

  • O que vem a ser computao pervasiva ?

    Mark Weiser e seus colegas no Lab. PARC, utilizaram os termoscomputao ubqua e pervasiva de maneira intercambivel paradescrever como a computao iria migrar do ambiente desktop,para um ambiente pessoal e depois para uma configurao maisdistribuda mvel e embarcada.

    Introduo a computao distribuda

  • O que vem a ser computao pervasiva ?

    Todavia, existe uma diferena nestes tipos de computao.

    O termo computao ubqua significa o estado de estar presente emtodos os lugares.

    Por outro lado, computao pervasiva representa passar atravs, ouser difundida atravs de.

    Introduo a computao distribuda

  • O que vem a ser computao pervasiva ?

    No mundo real, a computao ubqua est relacionada aos frameworks, sistemas embarcados, redes e displays que estotransparentes e em qualquer lugar, permitindo aos usuriosoperaes de plug-and-play em dispositivos e ferramentas.

    Introduo a computao distribuda

  • O que vem a ser computao pervasiva ?

    Por outro lado, a computao pervasiva refere-se a dispositivosfsicos tais como seu telefone celular, computador de mo, umajaqueta inteligente que se modifica com a temperatura do corpo. Assim, podemos entender a computao pervasiva como um conjunto de ferramentas dentro de um determinado ambiente, no qual podemosacessar as informaes a qualquer hora e a qualquer momento.

    Introduo a computao distribuda

  • Introduo a computao distribuda

    Fonte:[Mark Weiser]

  • Tolerncia Faltas

    Conceitos

    Tipos de Faltas

    Replicao

    Deteco de Falhas

    Recuperao de Falhas

    86

  • Conceitos Confiana de Funcionamento (Dependability )

    Representa a confiana depositada em um determinado sistema em relao ao seu correto funcionamento

    Um sistema dito confivel (dependable) possui uma grande probabilidade de se comportar da maneira esperada

    87

  • Conceitos

    Confiana de Funcionamento (Dependability )

    A confiana de funcionamento um importante requisito de Qualidade de Servio (QoS) em sistemas computacionais crticos

    88

  • Conceitos

    Estados de um Sistema: Sistema prprio: servio fornecido pelo sistema como foi

    especificado Sistema interrompido ou imprprio: servio no fornecido

    conforme especificado

    SistemaInterrompido

    Sistema Prprio

    SistemaImprprio

    Falha catastrficaFalha catastrfica

    Falha benigna

    Restaurao

  • Conceitos A Confiana de Funcionamento de um sistema medida pelos

    seguintes fatores:

    Confiabilidade (Reliability): tempo de funcio-namento contnuo (sem falhas) do sistema

    Manutenibilidade (Maintainability): tempo gasto para restaurar o sistema aps uma falha

    90

  • Conceitos A Confiana de Funcionamento de um sistema medida pelos

    seguintes fatores:

    Disponibilidade (Availability): tempo de funcionamento em relao ao tempo de falha

    Seguridade (Safety): prejuzo causado pela falha do sistema

    91

  • Conceitos

    Confiabilidade pode ser representada por:

    Tempo Mdio Para a Falha (MTTF): indica o tempo mdio que o sistema fica sem falhar

    Ex.: X horas ou dias de funcionamento Quanto maior, melhor

    Mdio Entre Falhas (MTBF): representa o tempo entre falhas sucessivas

    Ex.: Y horas ou dias entre falhas Quanto maior, melhor

    92

  • Conceitos

    Confiabilidade pode ser representada por:

    Probabilidade (taxa) de Falha Ex.: 10-Z falhas/hora ou falhas/dia Quanto maior o expoente, melhor

    93

  • Conceitos

    Manutenibilidade representada por: Tempo Mdio Para Reparo (MTTR): indica o tempo

    necessrio para que o sistema volte a funcionar corretamente

    Ex.: X segundos, minutos ou horas para o sistema voltar a funcionar corretamente

    Quanto menor, melhor

    94

  • Conceitos

    Disponibilidade representada por: Grau de disponibilidade:

    MTBFMTBF + MTTR

    Ex.: sistema disponvel por 99.9% do tempo Quanto maior, melhor

    95

    ~ 1 ms~ 4 dias

    ~ 9 horas~ 1 hora

    ~ 5 minutos~ 30 segundos

    90%99%

    99.9%99.99%99.999%99.9999%

    Tempo de parada / anoDisponibilidade

  • Conceitos

    Seguridade representada por: Grau de Seguridade: probabilidade do sistema ser

    recupervel (de no se tornar imprprio) em caso de falha, ou seja, a chance de uma falha no ser catastrfica

    Falhas Benignas Falhas Benignas + Catastrficas

    Ex.: sistema recupervel em 98% das falhas Quanto maior, melhor

  • Conceitos

    Falta, Erro e Falha Faltas so defeitos que ocorrem em sistemas

    Originadas por fatores internos ou externos Podem ficar dormentes at serem notadas

    Erros so resultantes de faltas no sistema Ocorrem quando faltas impedem o funcionamento normal

    do sistema Diferentes faltas podem causar o mesmo erro

    Falhas podem ocorrer devido a erros no sistema A falha o efeito observvel do erro Diversos erros podem levar mesma falha

    97

  • Conceito

    Falta, Erro e Falha Exemplo: HD

    Um setor do disco pode estar com defeito (falta)

    Um erro de leitura pode ocorrer se um programa tentar ler ou escrever neste setor

    Pode ocorrer uma falha em um sistema que tente acessar este setor e no consiga

    Se os dados gravados neste setor estiverem replicados em outro local, o sistema pode tolerar a falta e no apresentar falha

    98

  • SistemaSistema

    ComponenteComponente

    ComponenteComponente

    Conceitos

    Falhas em Cascata

    ErroErro

    FaltaFaltaFalhaFalha

    ErroErro

    FaltaFaltaFalhaFalha

    ErroErroFaltaFalta

    FalhaFalha

    99

  • Conceitos

    Falhas em Cascata A falha de um componente pode ocasionar a falha de outro

    que necessita dos servios do primeiro, e assim sucessivamente, podendo levar o sistema como um todo a falhar

    Exemplo: Uma falta no disco pode causar uma falha no

    sistema de arquivos Os servidores Web e de e-mail, que usam o sist. de

    arquivos, podem falhar Uma aplicao de comrcio eletrnico baseada na

    Web pode tambm falhar

    100

  • Conceitos Previso de Faltas

    Estima a probabilidade de que faltas ocorram Permite que se avalie os riscos de falha

    Remoo de Faltas Consiste em detectar e remover as faltas antes que causem

    erros e falhas Usar ferramentas como debugger, scandisk, ...

    Preveno de Faltas Elimina as condies que fazem com que faltas ocorram

    durante a operao do sistema Usa replicao interna, tcnicas de validao, ...

    101

  • SistemaSistema

    ComponenteComponente

    ComponenteComponente

    Conceitos

    Tolerncia a Faltas

    ErroErro

    FaltaFaltaFalhaFalha

    ErroErro

    FaltaFaltaFalhaFalha

    102

    Uma barreira Uma barreira impede que a impede que a

    falha se propaguefalha se propague

  • Conceitos

    Tolerncia a Faltas Propriedade de sistemas que no falham necessariamente

    ao se deparar com uma falta Sistemas Tolerantes a Faltas

    So sistemas capazes de tolerar faltas encontradas durante a sua execuo

    Tcnicas de Tolerncia a Faltas Permitem prevenir falhas contornando as faltas que os

    sistemas podem vir a apresentar

    103

  • Tipos de Faltas

    Classificao em relao sua origem: Fsica: causada pelo hardware De projeto: introduzida durante a fase de projeto do

    sistema De interao: ocorrida nas interfaces entre componentes

    do sistema ou na interao com o mundo exterior Classificao em relao sua natureza:

    Acidental ou Intencional Maliciosa ou No

    104

  • Tipos de Faltas

    Classificao em relao ao seu surgimento: Na fase de desenvolvimento do sistema Na fase de operao do sistema

    Classificao em relao sua localizao: Interna Externa

    Classificao em relao persistncia: Temporria

    Transiente ou Intermitente Permanente

    105

  • Tipos de Faltas

    Classificao com base no modelo de faltas: Faltas Omissivas

    Crash: deixa de funcionar permanentemente Omisso: sistema deixou de fazer o que deveria em um

    determinado instante Temporal: sistema atrasou-se para executar uma

    determinada ao Faltas Assertivas

    Sinttica: formato da sada inadequado Semntica: sada apresenta valor incorreto

    Faltas Arbitrrias: omissivas + assertivas

    106

  • Tipos de Faltas

    Os tipos de faltas mais freqentes so: Faltas de operao e administrao: 42% Faltas de software: 25% Faltas de hardware: 18% Faltas de ambiente: 14% Fonte: Jim Gray. Why do Computers Stop and What Can

    Be Done About It? IEEE SRDS85. Estudos mais recentes confirmam estes dados

    107

  • Replicao

    Tolerncia a faltas pode ser obtida atravs do uso de recursos redundantes

    Redundncia pode ser aplicada das seguintes maneiras: Redundncia Temporal: repetir uma mesma tarefa at que

    um resultado vlido seja obtido Redundncia de Valores: replicar um dado armazenado ou

    enviado pela rede Redundncia Espacial: usar vrias rplicas de um

    componente de hardware ou software

    108

  • Replicao

    Uso de rplicas aumenta a disponibilidade Exemplo: se a probabilidade de perda de uma mensagem

    na rede de 2% (disponibilidade de 0,98), se duplicarmos todas as mensagens, a chance de se perder as duas cpias ser de 0,04% (disponibilidade de 1-0,022=0,9996)

    Exemplo 2: se um servidor fica indisponvel durante 8 horas a cada ano (disponibilidade de 0,999), se criarmos 3 rplicas teremos uma parada total de 3,15 segundos em um sculo (disponibilidade de 1-0,0013= 0,999999999)

    109

  • Replicao

    O acesso a servios ou dados replicados deve ser transparente para o usurio Usurio deve acessar o dado ou servio replicado da

    mesma forma que o faria se no houvesse replicao Se for preciso manter a consistncia dos dados replicados,

    este processo deve ser efetuado automaticamente pelas rplicas

    Mesmo que mais de uma rplica responda a uma requisio, apenas uma resposta deve ser entregue ao usurio

    110

  • Replicao

    Tcnicas de Replicao Definem como as rplicas se comportaro durante o

    funcionamento normal do sistema e sob a presena de faltas

    Principais Tcnicas de Replicao Replicao Passiva (Primrio-Backup) Replicao Ativa Replicao Semi-Ativa (Lder-Seguidores) Replicao Preguiosa (Lazy )

    111

  • Replicao

    Replicao Passiva (Primrio-Backup) So criados um ou mais backups de um componente

    (primrio) com o objetivo de substitu-lo em caso de falha Funcionamento com propagao de estado instantnea:

    Primrio recebe requisies, as executa, atualiza o estado dos backups e retorna o resultado ao cliente

    112

  • Replicao

    Replicao Passiva (Primrio-Backup)

    Mquina 1

    Primrio

    Mquina 2

    Backup

    ClienteCliente

    1.Requisio1.Requisio

    4. Resposta4. Resposta

    3. Estado3. Estado

    2.Executa2.Executa

    113

  • Replicao

    Replicao Passiva (Primrio-Backup) Em caso de falha do primrio, um backup ser escolhido

    para assumir o seu lugar O backup escolhido ter o mesmo estado do primrio at a

    ltima requisio executada Uma requisio em execuo durante a falha pode ser

    recuperada pelo cliente reenviando a requisio ao novo primrio

    Atualizao de estado a cada requisio causa uma sobrecarga considervel no primrio

    114

  • Replicao

    Replicao Passiva (Primrio-Backup) Funcionamento com log e checkpoints :

    As requisies de clientes so enviadas ao primrio e ao(s) backup(s) Primrio executa as requisies e responde aos

    clientes Backup recebe as requisies mas no as executa

    apenas as registra em um log O estado do primrio transferido para o(s) backup(s)

    em instantes predeterminados chamados de checkpoints

    115

  • Replicao

    Replicao Passiva (Primrio-Backup) Funcionamento com log e checkpoints (cont.):

    O backup limpa o log a cada checkpoint Em caso de falha do primrio, o backup escolhido para

    assumir o seu lugar ter o estado do primrio no ltimo checkpoint

    Para chegar ao mesmo estado do primrio no instante da falha, o backup escolhido executa as requisies registradas no log

    116

  • Replicao

    Replicao Passiva (Primrio-Backup)

    Mquina 1

    Primrio

    Mquina 2

    Backup

    ClienteCliente3.Resposta3.Resposta

    1.Requisio1.Requisio

    log

    2.Registra2.Registra2.Executa2.Executa

    117

  • Replicao

    Replicao Passiva (Primrio-Backup) Procedimento executado a cada Checkpoint :

    Mquina 1

    Primrio

    Mquina 2

    Backup1.Transfere1.TransfereEstadoEstado

    log2.Limpa2.LimpaLogLog

    118

  • Replicao

    Replicao Passiva (Primrio-Backup) Consideraes:

    O(s) backup(s) consomem muito pouco poder de processamento, pois no precisam processar as requisies

    O primrio tem a obrigao de salvar seu estado e enviar ao(s) backup(s), o que consome processamento e largura de banda

    Transferncia de estado pode ser incremental Quanto maior o intervalo entre checkpoints, menor a

    sobrecarga no primrio, e maioro tempo de recuperao de falhas

    119

  • Replicao

    Replicao Ativa Um grupo de rplicas de um componente recebe uma

    requisio de um cliente Todas as rplicas processam a requisio

    concorrentemente e enviam as suas respostas ao cliente No preciso sincronizar o estado das rplicas, pois todas

    executam os mesmos procedimentos

    120

  • Replicao

    Replicao Ativa

    Mquina 1

    Rplica 1

    Mquina 2

    Rplica 2

    ClienteCliente

    1.Requisio1.Requisio

    2. Resposta2. Resposta

    121

  • Replicao

    Replicao Ativa O cliente precisa de apenas uma resposta A resposta vlida para o cliente pode ser:

    A mais freqente (votao) A primeira recebida Uma mdia etc.

    Com isso, a replicao ativa pode tolerar faltas de valor por meio de votao

    Em 2N+1 rplicas podemos ter N respostas erradas sem ocasionar falha do sistema

    122

  • Replicao

    Replicao Ativa Consideraes:

    Alto custo para execuo das rplicas ativas As requisies devem ser entregues na mesma ordem

    para todas as rplicas usar protocolo de difuso atmica

    Ordenao de mensagens tem custo alto Recuperao mais rpida que na replicao passiva,

    pois caso uma rplica falhe, as demais continuam funcionando normalmente

    123

  • Replicao

    Replicao Semi-Ativa (Lder-Seguidores) Um componente (lder) possui uma ou mais rplicas

    (seguidores) Cada requisio enviada a todos, que as executam na

    ordem definida pelo lder Apenas o lder responde ao cliente que efetuou a requisio No preciso sincronizar o estado das rplicas, pois todas

    executam os mesmos procedimentos

    124

  • Replicao

    Replicao Semi-Ativa (Lder-Seguidores)

    Mquina 1

    Lder

    Mquina 2

    Seguidor

    ClienteCliente

    1.Requisio1.Requisio

    4. Resposta4. Resposta

    3.Executa3.Executa 3.Executa3.Executa

    2.Define2.DefineOrdemOrdem

    125

  • Replicao

    Replicao Semi-Ativa (Lder-Seguidores) Consideraes:

    Mesmo que as requisies dos clientes sejam entregues fora de ordem, todas as rplicas chegaro ao mesmo estado, j que a ordem de execuo arbitrada pelo lder

    O tempo gasto para processamento nas rplicas seguidoras grande, j que elas tambm tm que processar a chamada

    Caso o lder falhe, um seguidor escolhido para assumir o seu lugar

    126

  • Replicao

    Replicao Preguiosa (Lazy) Operaes que precisam de ordenao total (ou seja, que

    alteram o estado) so executadas como na replicao ativa Operaes que podem ser executadas em ordens

    diferentes em cada rplica podem ser enviadas para qualquer rplica, que deve:

    Atender a requisio Enviar a resposta ao cliente Difundir em background a requisio para as outras

    rplicas

    127

  • Replicao

    Replicao Preguiosa (Lazy) Operao

    com ordemcausal

    Mquina 1

    Rplica 1

    Mquina 2

    Rplica 2

    ClienteCliente

    4.Requisio4.Requisio

    2.Executa2.Executa

    1.Requisio1.Requisio

    3.Resposta3.Resposta5.Executa5.Executa

    128

  • Replicao

    Replicao Preguiosa (Lazy) Consideraes:

    Reduz a sobrecarga na execuo de algumas operaes, j que nem sempre necessrio usar um protocolo de difuso atmica

    Exige que a semntica das operaes seja conhecida para diferenciar as operaes que exigem ordenao total daquelas nas quais ordem causal suficiente

    129

  • Replicao

    Programao com Mltiplas Verses Rplicas no precisam ser idnticas So criadas diferentes implementaes de um mesmo

    componente de software Linguagem de programao, compilador e suporte de

    execuo diferentes Algoritmos diferentes Times de desenvolvimento diferentes

    Resultados so obtidos atravs de votao Com mltiplas verses, reduz-se a chance de todas as

    rplicas falharem no mesmo instante

  • Deteco de Falhas

    A falha de um componente de um sistema pode levar todo o sistema a falhar

    Mesmo que o sistema consiga tolerar a falha do componente, este deve ser recuperado para restaurar a capacidade do sistema de tolerar faltas Ex.: na replicao passiva, se o nico backup existente

    assume o lugar do primrio, preciso criar um novo backup

    preciso detectar as faltas sofridas pelos componentes para poder recuper-los

    131

  • Deteco de Falhas

    Deteco Local de Falhas Podem ser usados diversos mtodos:

    Rotinas de auto-verificao (self-check) Guardies: verificam constantemente as sadas geradas

    por um componente Watchdogs : componente deve constante-mente reiniciar

    um temporizador antes que ele se esgote, indicando uma falha

    Problema: mesmo para um observador local, processos lentos podem parecer falhos

    132

  • Deteco de Falhas

    Deteco Distribuda de Falhas Um componente do sistema envia mensagens

    periodicamente aos seus pares e avisa que est vivo (I am alive) ou pergunta se eles esto vivos (Are you alive ?)

    Se um componente no se manifestar por um determinado tempo, ele suspeito de falha

    Suspeitas infundadas podem ser causadas por atraso, particionamento ou falha da rede

    133

  • Deteco de Falhas

    Diagnstico do Sistema Componentes faltosos podem reportar erroneamente o

    estado dos seus pares Em um sistema com f componentes faltosos, cada

    componente deve ser testado por pelo menos f outros, e precisamos de n 2f +1 elementos para detectar corretamente a falta

    Para diagnosticar falhas de componentes do sistema, um elemento deve coletar e analisar os dados obtidos dos demais componentes

    134

  • Deteco de Falhas

    Detector de Falhas Servio ou mdulo que verifica a ocorrncia de falhas em

    componentes do sistema Implantado junto ao componente Executa um algoritmo de deteco de falhas Interage com detectores de outros componentes do

    sistema O componente pode requisitar ao seu detector informaes

    sobre o estado de outros componentes do sistema

    135

  • Deteco de Falhas

    Tipos de Detectores de Falhas Perfeitos

    Determinam precisamente se um componente do sistema falhou ou no

    Todos os componentes tm a mesma viso Imperfeitos

    Detectores determinam se um processo suspeito de falha ou no

    Diferentes componentes podem ter vises distintas de um mesmo componente

    136

  • Deteco de Falhas

    Tipos de Detectores de Falhas Detectores perfeitos so difceis de obter, principalmente

    em sistemas distribudos Detectores quase-perfeitos podem ser obtidos usando

    crash controlado Se um componente suspeito de falha, ele removido

    do sistema O componente passa a ser ignorado por todos os

    demais componentes Pode levar a descartar componentes que esto

    funcionando corretamente

    137

  • Recuperao de Falhas

    Recuperao de Erros Ao perceber um erro, o componente pode tentar recuperar-

    se automaticamente Recuperao de erro por retrocesso (backward error

    recovery): componente volta a um estado anterior ao erro e continua ativo

    Exemplos: reinicia a execuo de um mtodo, retransmite pacotes perdidos, etc.

    Operaes posteriores ao instante de retrocesso so perdidas, mas seu efeito pode ainda ser sentido no sistema, levando possivelmente a inconsistncias

    138

  • Recuperao de Falhas

    Recuperao de Erros (cont.) Recuperao por avano (forward error recovery):

    componente toma medidas que anulem ou aliviem o efeito do erro e continua a operar normalmente

    Exemplo: descartar pacotes, substituir um valor invlido pelo valor vlido anterior, etc.

    Usada quando no h tempo para voltar para estado anterior e retomar execuo, ou quando aes no podem ser desfeitas

    139

  • Recuperao de Falhas

    Recuperao de Falhas Se ocorrer a falha de um componente, um sistema

    tolerante a faltas deve mascar-la usando as rplicas disponveis

    Na replicao passiva, substituir o primrio por um backup e criar um novo backup

    Na replicao semi-ativa, substituir o lder por um de seus seguidores e criar um seguidor

    Nas replicaes ativa e lazy, criar uma nova rplica para manter a capacidade do sistema de tolerar faltas (ou falhas de componentes)

    140