Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 1- Introdução aos Sistemas Distribuídos Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS OBJETIVOS DA DISCIPLINA: Compreender os conceitos de Sistemas Distribuídos; Conhecer os principais modelos de arquitetura; Entender a importância dos conceitos nas novas tecnologias. Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução; AULA 2 – Aplicações Distribuídas; AULA 3 – Tratamento de Falhas; AULA 4 – Classificação de Flynn; AULA 5 – Modelo Cliente/Servidor; AULA 6 – Sockets e RPC; AULA 7 – Modelo P2P; AULA 8 – Sistemas de Arquivos Distribuídos; AULA 9 – Serviços WEB; AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens. Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 1 Evolução da computação Conceitos de Sistemas Distribuídos Computação centralizada x Computação Distribuída Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS 1970 20131980 Evolução Histórica do Processamento 1950 1960 Mainframe Time- sharing Redes Sistemas Distribuídos ? Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS A ERA DO MAINFRAME Main = Principal Frame = Estrutura Não está relacionado a tamanho nem a poder computacional ! Até meados dos anos 70: - Proprietário - Caro - Pouco escalável - Limites Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS AINDA EXISTE “MAINFRAME”? Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS AS REDES DE COMPUTADORES Qual a diferença entre um computador na sala ao lado ou na China? Para que uma rede? -Compartilhamento -Escalabilidade -Diferentes formas de conexão Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS O que é? É um sistema em que os computadores estão conectados em rede e coordenam suas ações através de troca de mensagens. Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS O que é? É um sistema em que os computadores estão conectados em rede e coordenam suas ações através de troca de mensagens. SISTEMAS DISTRIBUÍDOS Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS: •baixo acoplamento e atrasos na comunicação; •processos em sistemas computacionais distintos com probabilidade de falhas; •comunicação geralmente não confiável, onde existem atrasos, variação de atrasos, perdas e, em alguns casos, baixas larguras de banda; •dificuldade em definir a ordem dos eventos e estado global do sistema, uma vez que a comunicação acontece pela troca de mensagens; •ambiente geralmente marcado pela heterogeneidade. Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Para que? Resolver problemas! • Muito grandes: modelagem da terra/clima, simulações de reservatórios de petróleo, problemas com grandes escalas (cosmologia). • Muito complexos: física de partículas, dinâmica de fluidos, modelagem de comportamento de pessoas. • Muito caros: produção e exploração de petróleo, simulação de acidentes. • Muito perigosos: tolerância a falhas em aviões, teste de dispositivos nucleares, simulação de estratégias de defesa. SISTEMAS DISTRIBUÍDOS Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Porque precisamos de sistemas distribuídos? Eles podem resolver tudo? SISTEMAS DISTRIBUÍDOS Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Porque? Existem limites físicos. • Velocidade da luz. • Miniaturização dos componentes. • Isolamento e dissipação de calor. Desafios? Sim, claro. • Ausência de fonte comum de tempo (relógio global) • Ausência de memória compartilhada • Compartilhamento de recursos SISTEMAS DISTRIBUÍDOS Introdução – AULA1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO: Podemos comparar sistemas centralizados com sistemas distribuídos: Vantagens dos sistemas distribuídos: Melhor relação preço/desempenho Capacidade de crescimento incremental (escalabilidade) Tolerância a falhas Desvantagens dos sistemas distribuídos: Falta de padronização para desenvolvimento de software Falta de uma divisão clara entre sistema/aplicação Latência e possibilidade de congestionamento na rede Redução da segurança ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 2- Aplicações distribuídas e TI VERDE AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 2 Aplicações Distribuídas – Como identificar? Aplicações atuais Contribuição para TI Verde AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MOTIVAÇÃO • Ampla utilização das redes de computadores • Velocidade e Confiabilidade • Trabalho cooperativo • Aumento do poder computacional AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Computação Distribuída é para mim? AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPUTAÇÃO EM GRADE (GRID) Worldwide LHC Computing Grid (CERN) http://boinc.berkeley.edu/ AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS DESAFIOS DA COMPUTAÇÃO DISTRIBUÍDA • Concorrência A execução concorrente é uma característica intrínseca de um sistema distribuído, na qual os processos disputam pelos recursos compartilhados. • Ausência de Relógio Global A coordenação dos processos depende de uma noção compartilhada do tempo em que as ações dos programas ocorrem. • Falhas independentes Falhas na rede, nos sistemas ou nos processos demoram a ser percebidas nos sistemas distribuídos. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. A topologia não muda. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. A topologia não muda. A latência é zero. AULA2 - AplicaçõesDistribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. A topologia não muda. A latência é zero. A largura de banda é infinita. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. A topologia não muda. A latência é zero. A largura de banda é infinita. O custo do transporte é zero. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALÁCIAS DA COMPUTAÇÃO DISTRIBUÍDA Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. A rede é confiável. A rede é segura. A rede é homogênea. A topologia não muda. A latência é zero. A largura de banda é infinita. O custo do transporte é zero. Há somente um administrador AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS Latência Tempo decorrido entre o início de uma operação e seu término. O termo latência é usado, normalmente, para comunicações entre partes de um sistema Speedup Termo que significa ganho relativo de velocidade ou desempenho. Como exemplo de speedup, podemos citar a razão dos tempos de execução sequencial e o paralelo AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS Transparência Característica que esconde de usuários ou aplicativos detalhes de funcionamento do sistema distribuído, de tal forma que se tenha a impressão de que esse sistema é centralizado.. Acesso - oculta diferenças na representação de dados e no modo de acesso a um recurso; Localização – oculta o lugar em que um recurso está localizado; Migração- oculta que um recurso pode ser movido para outra localização; Relocação – oculta que um recurso pode ser movido para outra localização durante o uso; Replicação – oculta que um recurso é replicado; Concorrência – oculta que um recurso pode ser compartilhado por diversos usuários concorrentes; Falha – oculta a falha e a recuperação de um recurso. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS Escalabilidade Capacidade de melhoria do desempenho do sistema distribuído conforme cresce o número de elementos processadores. Disponibilidade Característica que indica quanto tempo o sistema funcionará ininterruptamente sem ser afetado por falhas, manutenção preventiva ou corretiva etc. Tolerância a falhas Capacidade de o sistema sobreviver à falha de alguns de seus elementos. AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOP 500 Desde 1993, o site TOP500 publica, semestralme nte, um ranking dos 500 computador es com maior desempenho no mundo. Ran k Site Computer 1 DOE/NNSA/LLNLUnited States Sequoia - BlueGene/Q, Power BQ C 16C 1.60 GHz, Cust om IBM2 RIKEN Advanced I nstitute for Com putational Scien ce (AICS) Japan K computer, SPARC64 VI IIfx 2.0GHz, Tofu inte rconnect Fujitsu 3 DOE/SC/Argonne National Labora tory United States Mira - BlueGene/Q, Power BQ C 16C 1.60GHz, Custo m IBM 4 Leibniz Rechenz entrum Germany SuperMUC - iDataPlex DX360M4, X eon E5-2680 8C 2.70G Hz, Infiniband FDR IBM 5 National Superco mputing Center i n Tianjin China Tianhe-1A - NUDT YH MPP, Xeon X5 670 6C 2.93 GHz, NVI DIA 2050 NUDT AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOP 500 - BRASIL Rank Site System Cores Rmax (TFlop/s) Rpeak (TFlop/s) Power (kW) 68 PETROBRASBrazil Grifo04 - Itautec Cl uster, Xeon X 5670 6C 2.930 GHz, Infiniba nd QDR, NVIDI A 2050 Itautec 17408 251.5 563.4 365.5 79 INPE (National In stitute for Space Research) Brazil Tup - Cray XE6, Opteron 6172 12C 2.10GHz, Cray Gemini i nterconnect Cray Inc. 31104 214.2 261.3 456 NACAD/COPPE/U FRJ Brazil Galileu - Sun Blade x6048, Xeon X 5560 2.8 Ghz, Infiniband Q DR Oracle 6464 64.6 72.4 430 AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TI VERDE VIRTUALIZAÇÃO AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TI VERDE GREEN 500 Green50 0 Rank MFLOPS/W Site* Computer* Total Power (kW) 1 2026.48 IBM - Rochester BlueGene/Q, Power BQC 16C 1.60 GHz, Custom 85.12 2 2026.48 IBM Thomas J. Watson Research Center BlueGene/Q, Power BQC 16C 1.60 GHz, Custom 85.12 3 1996.09 IBM - Rochester BlueGene/Q, Power BQC 16C 1.60 GHz, Custom 170.25 4 1988.56 DOE/NNSA/LLNL BlueGene/Q, Power BQC 16C 1.60 GHz, Custom 340.50 5 1689.86 IBM Thomas J. Watson Research Center NNSA/SC Blue Gene/Q Prototype 1 38.67 http://www.green500.org AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS O que fazer com o lixo eletrônico? AULA2 - Aplicações Distribuídas e TI verde ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO Sistemas Distribuídos •Desafios: ausência de memória compartilhada, relógio comum, falhas independentes •Falácias : existe uma rede •Aplicações : cluster, grid •TI verde : melhor utilização dos equipamentos ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 3- TRATAMENTO DE FALHAS AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 3 Falhas em Sistemas Distribuídos Tolerância a falhas Conceito: Falha, Erro e Defeito Tipos de falhas Detecção, Tratamento e Recuperação AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FALHAS EM SISTEMAS DISTRIBUÍDOS A falha parcial pode acontecer quando um componente em um sistema distribuído não funciona. Essa falha pode afetar a operação adequada de outros componentes e, ao mesmo tempo, deixar outros totalmente ilesos. Está funcionando ???????? AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOLERÂNCIA A FALHAS Disponibilidade Confiabilidade Segurança Capacidade de manutenção AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOLERÂNCIA A FALHAS Disponibilidade estar pronto para ser usado imediatamente Confiabilidade Segurança Capacidade de manutenção AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOLERÂNCIA A FALHAS Disponibilidade estar pronto para ser usado imediatamente Confiabilidade funcionar continuamente sem falhas. Segurança Capacidade de manutenção AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOLERÂNCIA A FALHAS Disponibilidade estar pronto para ser usado imediatamente Confiabilidade funcionar continuamente sem falhas. Segurança deixar de funcionar corretamente durante certo tempo e nada de catastrófico acontecer. Capacidade de manutenção AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TOLERÂNCIA A FALHAS Disponibilidade estar pronto para ser usado imediatamente Confiabilidade funcionar continuamente sem falhas. Segurança deixar de funcionar corretamente durante certo tempo e nada de catastrófico acontecer. Capacidade de manutenção facilidade com que um sistema que falhou pode ser con sertado. AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Falha, Erro e Defeito Falha (físico) Erro (informação) Defeito (erro percebido) AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS A HISTÓRIA DO BUG AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS No dia a dia, o que fazemos? AULA 3 – Tratamento de Falhas ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO •Identificação das falhas •Tolerância a falhas •Falhas, Erros e Defeitos “QUEM TEM DOIS TEM UM. QUEM TEM UM NÃO TEM NENHUM.” ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 4 – Classificação de Flynn AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 4 Classificação geral Detalhando cada tipo Modelos de programação AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS PRINCIPIOS DA CLASSIFICAÇÃO • Fluxo de instruções • Fluxo de Dados AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SISD – Single Instruction Single Data Máquina clássica de Von Neumann (não paralela) AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SIMD – Single Instruction Multiple Data Arquitetura vetorial – Execução síncrona AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SIMD – Single Instruction Multiple Data Arquitetura vetorial – Execução síncrona AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MISD – Multiple Instruction Single Data ????????? AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MIMD – Multiple Instruction Multiple Data Execução simultânea de instruções diferentes para cada dado AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW Arquiteturas MIMD – Memória Compartilhada AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Arquiteturas MIMD Todos os processadores compartilham a memória principal MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Arquiteturas MIMD Memória global compartilhada e memória local. MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Arquiteturas MIMD – Memória Compartilhada MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Arquiteturas MIMD Cada computador é um nó de processamento MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Arquiteturas MIMD Estações de trabalho interligadas MIMDMIMD Multiprocessadore s Multiprocessadore s UMAUMA NUMANUMA MulticomputadoresMulticomputadores MPPMPP COWCOW AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMO FAZER MAIS RÁPIDO ? AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMO FAZER MAIS RÁPIDO ? Aumentar a frequência da CPU AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMO FAZER MAIS RÁPIDO ? Aumentar a frequência da CPU Otimização do Algoritmo AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMO FAZER MAIS RÁPIDO ? Aumentar a frequência da CPU Otimização do Algoritmo Colaboração AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMO FAZER MAIS RÁPIDO ? Aumentar a frequência da CPU Otimização do Algoritmo Colaboração • Paralelismo - Execução de uma tarefa em mais de uma CPU (os processadores colaboram para execução dessa tarefa) • Concorrência – Os processos disputam CPUs (uma ou mais). AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS DIFICULDADES DA PROGRAMAÇÃO DISTRIBUÍDA Interação da aplicação e do usuário com o ambiente distribuído em níveis diferentes; Suporte a plataformas heterogêneas através de uma camada de software entre o kernel e a aplicação (middleware); Problemas como custo e carência de produtos de software adequados; Programação paralela, utilizando bibliotecas de troca de mensagem (como, por exemplo, o MPI e o PVM) ou bibliotecas baseadas em memória compartilhada (como, por exemplo, Pthreads). AULA 4 – Classificação de Flynn ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO •Sistemas classificados quanto ao fluxo de instruções e dados •Para cada tipo de sistema um modelo de programação ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 5 – Modelo Cliente/Servidor AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 5 • Modelos de comunicação; • Características de cada componente do modelo cliente/servidor. AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS PARA QUE SERVE UM MODELO? Representa de forma unívoca um conjunto de características AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MODELOS DE COMUNICAÇÃO MODELOS ARQUITETURA FUNCIONAIS Aqueles que definem a forma como os componentes dos sistemas interagem. AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MODELOS DE COMUNICAÇÃO MODELOS ARQUITETURA FUNCIONAIS Aqueles que definem o comportamento e as propriedades dos componentes. AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MODELO DE ARQUITETURA EM SISTEMAS DISTRIBUÍDOS confiável gerenciável adaptável rentável. simplifica e abstrai as funções dos componentes individuais dessesistema posicionamento dos componentes em uma rede de computadores define padrões para a distribuição de dados e da carga de trabalho. relacionamentos entre os componentes papéis funcionais e os padrões de comunicação entre eles. AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ABSTRAÇÕES PLATAFORMA = HARDWARE + SOFTWARE BÁSICO AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS IMPLEMENTAÇÕES NESTE MOMENTO ESTUDAREMOS O MODELO CLIENTE- SERVIDOR CLIENTE-SERVIDOR PEER –TO – PEER (P2P) AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MODELO CLIENTE/SERVIDOR • Dois processos trocam mensagens para realização de uma tarefa: processo cliente e processo servidor • O processo SERVIDOR é acionado primeiro e espera que o CLIENTE faça contato. • O processo CLIENTE precisa conhecer a localização na qual o SERVIDOR espera contato. AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS DO PROCESSO CLIENTE É O ELEMENTO ATIVO RESPONSÁVEL PELA INTERFACE COM O USUÁRIO PRECISA CONHECER A LOCALIZAÇÃO DO SERVIDOR AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS DO PROCESSO SERVIDOR É REATIVO NÃO POSSUI INTERFACE COM O USUÁRIO É ESPECIALIZADO PODE SER ITERATIVO OU CONCORRENTE AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS DA COMUNICAÇÃO Baixo nível: • camada de transporte • sockets • aplicações estão cientes da existência da rede Alto nível: • camadas de sessão, apresentação e aplicação • RPC • aplicações chamam operações de rede como se fossem locais • Soluções de alto nível permitem ambiente de computação distribuída AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS DA COMUNICAÇÃO Configura Cliente Configura Servidor Solicita conexão Aguarda conexão Envia e recebe dados Envia e recebe dados FIM FIM CONEXÃ O AULA 5 – MODELO CLIENTE/SERVIDOR ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO • Modelos de comunicação definem forma de comunicação entre processos • O Modelo Cliente-Servidor é baseado na comunicação de dois PROCESSOS por troca de mensagens. ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 6 – Sockets e RPC AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 6 •Sockets. •Remote Procedure Call (RPC). AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS IMPLEMENTAÇÃO COM SOCKETS • Um programa vê os sockets como um mecanismo de entrada e saída de dados • Seguem o paradigma open-read-write-close • A comunicação através de sockets utiliza também a abordagem de descritor. AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS DA COMUNICAÇÃO Configura Cliente Configura Servidor Solicita conexão Aguarda conexão Envia e recebe dados Envia e recebe dados FIM FIM CONEXÃ O AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CHAMADAS AO SISTEMA - LINUX Socket : cria um socket Bind: associa uma porta ao socket Listen: Indica ao kernel que está apto a receber conexões Accept: Aceita conexões Connect: Solicita uma conexão S o c k e t W r i t e R e a d A c c e p t L i s t e n B i n d S o c k e t R e a d W r i t e C o n n e c t L i g a ç ã o M e n s a g e m M e n s a g e m S e r v i d o r C l i e n t e AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CONFIGURAÇÃO - SERVIDOR int open_servidor(unsigned short port){ int sock; struct sockaddr_in server; sock = socket(AF_INET,SOCK_STREAM,0); if (sock < 0) return -1; server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons((short) port); if ( bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0 ) return -1; if (listen(sock, MAXBACKLOG) < 0 ) return -1; return sock; } AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS EXEMPLO – ACERTAR A HORA Configura Cliente Configura Servidor Solicita conexão Aguarda conexão Recebe data/hora e ajusta o sistema Obtém data/hora e envia ao cliente FIM FIM CONEXÃ O Servidor: ./server Cliente:./client <ip do servidor> 8000 AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS REMOTE PROCEDURE CALL • Birrell e Nelson (1984) : permitir que programas fossem capazes de chamar procedimentos localizados em outras CPUs. • Para chamar um procedimento remoto, o programa cliente deve ser ligado a um pequeno procedimento de biblioteca chamado de stub do cliente, que representa o procedimento servidor no espaço de endereçamento do cliente. • Da mesma maneira, o servidor é ligado a um procedimento denominado stub do servidor. . AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS REMOTE PROCEDURE CALL Sistema Operacional Sistema Operacional Cliente Stub do Cliente Stub do Servidor Servidor Rede A B C D E AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS EXEMPLO – EQUAÇÃO 2º GRAU Procedimentos: 1)Escrever gerador : calcula.x 2)Gerar arquivos com rpcgen: rpcgen –c – A calcula.x makefile.calcula compila cliente e servidor calcula_clnt.c stub do cliente (não alterar) calcula_svc.c stub do servidor (não alterar) calcula.h cabeçalho das funções calcula_client.c esqueleto do cliente calcula_server.c esqueleto do servidor 3)Editar arquivos calcula_client.c e calcula_server.c AULA 6 – SOCKETS E RPC ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO • Programação com sockets torna explicita as características e uso da rede • Programação com RPC disfarça a existência da rede simplificando a programação ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 7 – Modelo P2P AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 7 •Características do Modelo P2P •Aplicações P2P AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMUNICAÇÃO P2P • Comunicação direta entre os nós (peers) • Cada peer se comporta como cliente e/ou servidor • Diferentes implementações AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS DEFINIÇÃO : Peer – to – Peer Androutsellis e Spinellis(2004) propuseram a seguinte definição: Sistemas peer-to-peer são sistemas distribuídos que consistem em nós interconectados com capacidade de auto-organização em relação à topologia da rede com o propósito de compartilhar recursos, adaptar-sea falhas e picos de carga mantendo um nível aceitável de conectividade e desempenho sem requerer intermediação ou suportede um servidor central. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMO DAS CARACTERÍSTICAS • Não há coordenação central e, portanto, não há um ponto de falha nem gargalo. • Nenhum peer tem uma visão global do sistema, porém todos os dados e serviços são acessíveis de qualquer peer. • Escalabilidade • Heterogeneidade AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS APLICAÇÕES • Compartilhamento de recursos • Trabalho Colaborativo (groupware) • Compartilhamento de arquivos AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS TIPOS DE REDES P2P P2P Puro Não existe servidor centralizado. Os peers se comunicam diretamente Exemplos: Gnutella e FreeNet P2P Híbrido O servidor é conectado primeiro para obter meta-informações (identidade do peer, verificar credencias de segurança) e este então redireciona para o peer requisitado que se comunicam diretamente Exemplos: Napster, Groove, Aimster, Magi, Softwax e iMesh Intermediários SuperPeers contém algumas informações que outros peers podem não ter. Os peers então procuram informações nos SuperPeers uma vez que não conseguiram achá-las em nenhum outro lugar. Exemplo: KaZaa AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FORMAS DE BUSCA Centralizada Consulta feita a um nó central Inundação Nós totalmente independentes limitada, em geral, à vizinhança mais próxima. Tabela Hash Distribuida (DHT) Um ID randômico é associado a cada peer que, por sua vez, conhecem um determinado número de peers. Quando um novo documento é compartilhado, cada peer encaminha o documento ao peer cujo ID é mais próximo ao ID do documento. Este processo é repetido até que o ID do peer atual seja o mais próximo do documento ou o documento seja encontrado. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS O PROTOCOLO BIT TORRENT • Existem dezenas de clientes disponíveis gratuitamente que entendem esse protocolo. • torrent é um arquivoque contém dois tipos de informação: o nome de um tracker e os chuncks Tracker: Servidor que mantém uma lista dos peers que estão fazendo download/upload (swarm). Chuncks: Lista de blocos de mesmo tamanho que compõem o conteúdo da torrent. Swarm: Conjunto de peers ativos que entram em contato com o tracker regularmente para informando se ainda estão ativos. Quando um novo peer entra em contato com o tracker para se juntar ao swarm, o tracker lhe informa sobre outros peers no swarm. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS O PROTOCOLO BIT TORRENT 1)Localizar peer com conteúdo • Obter o torrent • Entrar em contato com o tracker 2)Tornar o download rápido • Enquanto participa de um swarm, o peer efetua, simultaneamente, o download de chunks que não encontra em outros peers e faz o upload de chunks dos quais outros peers precisam. • Quando um swarm é formado inicialmente, alguns peers precisam ter todos os chunks que compõem o conteúdo. Esses peers são chamados de seeders. • cada chunk deve estar disponível em muitos peers. 3)Motivar o upload • free-riders ou leechers : nós que não contribuem • Quanto mais um peer estiver contribuindo com os outros, mais ele poderá esperar em retorno. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS O PROTOCOLO BIT TORRENT AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS DISTRIBUTED HASH TABLES (DHTs)Seria possível criar índices P2P que fossem total mente distribuídos, mas que possibilitassem um bom desempe nho? •A funcionalidade básica de um índice é mapear uma chave a um valor. •Uma forma de mapeamento é a tabela hash, que na versão distribuída é implementada em algoritmos de roteamento como: Chord (STOICA et al., 2001); Can (RATNASAMY et al., 2001); Pastry (ROWSTRON; DRUSCHEL, 2001); Tapestry (ZHAO et al., 2004). AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD • Solução equivalente a um tracker distribuído • n usuários, cada um com alguns registros. • O endereço IP de cada usuário pode ser transformado em um número. • Para transformar um endereço de nó em um identifica dor, o IP é mapeado para um número de m bits, usando uma função de hash. Sendo assim, podemos usá-lo para converter qualquer endereço IP em um número de 160 bits – chamado de identificador de nó. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD os nós com identificadores 1, 4, 7, 12, 15, 20 e 27 sombreados correspondem aos nós reais. sucessor (k) identificador de nó do primeiro nó real, após k, ao redor do anel (no sentido horário). Por exemplo: •Sucessor (6) = 7; •Sucessor (8) = 12; •cada nó precisa manter o endere ço IP de seu nó sucessor. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD Tabela de fingers para M =5 bits (32 nós): inicio = (k + 2i) mod 2M IP do sucessor Ex: k=3 (entrada 3 da tabela) i = 1 (nó 1) inicio= (3+2) mod 32 = 5 Tabela de fingers do nó 1 Iníci o IP do sucessor 2 4 3 4 5 7 9 12 17 20 AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD Tabela de fingers do nó 4 Início IP do sucessor 5 7 6 7 8 12 12 12 20 20 Tabela de fingers para m =5 bits: inicio = (k + 2i) mod 2m IP do sucessor Ex: k=2 (entrada 2 da tabela) i = 4 (nó 4) inicio= (2+4) mod 32 = 6 AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD Exemplo: Pesquisa chave = 3 no nó 1. Como o nó 1 sabe que 3 se encontra entre ele e seu sucessor (4), o nó desejado é 4. Retorna o IP do nó 4. AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SOLUÇÃO DHT - CHORD Exemplo: Pesquisa chave = 14 no nó 1. Como 14 não se encontra entre 1 e 4, as tabelas de fingers serão consultadas. O predecessor mais próximo de 14 é 9. A solicitação é encaminhada para o endereço IP da entrada 9 12. O nó 12 também não sabe a resposta mas identifica que o nó 14 está entre ele e sucessor (15). Retorna o IP do nó 15 AULA 7– MODELO P2P ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO • Redes P2P podem eliminar algumas características negativas do modelo cliente/servidor • O protocolo utilizado deve ser capaz de minimizar a centralização de compontentes. • Lembre-se: Pirataria é crime! ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 8 – Sistemas de Arquivos Distribuídos AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 8 •Conceitos de Sistemas de Arquivos Distribuídos •Compartilhamento de arquivos •Replicação de arquivos AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MOTVAÇÃO Sistemas de Arquivos Distribuídos (SAD) ou Distributed File System (DFS) são a base para muitas aplicações distribuídas. Permitem compartilhamento de dados, de modo seguro e confiável, por longos períodos. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPONENTES Interface para Clientes fornece serviços de arquivo para clientes: criar, apagar, lere gravar um arquivo. Dispositivos de armazenamento secundário arquivos são armazenados e recuperados, de acordo com as solicitações dos clientes. Rede a atividade de serviço deve ser realizada através da rede. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS FUNÇÕES • Aparecer para seus clientes como um sistema de arquivos convencional centralizado transparência • Gerenciar um conjunto de dispositivos de armazenamento dispersos Medida de desempenho Tempo necessário para o atendimento das requisições de serviço. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SERVIÇOS DE UM DFS AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS NOMEAÇÃO E TRANSPARÊNCIA Conceitos •nomeação é um mapeamento entre objetos lógicos e físicos. •transparência oculta o local em que o arquivo está localizado na rede. Operação •Dado um nome de arquivo, o mapeamento retorna um conjunto de localizações dessas réplicas do arquivo. •Nessa abstração, ficam ocultas tanto a existência de múltiplas cópias quanto sua localização. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MODELOS DE ACESSO Serviço remoto •O computador que armazena o arquivo será localizado pelo esquema de nomeação e, então, realizará a transferência dos dados. •Utilização de Chamada de Procedimento Remoto (RPC). Modelo de Caching •Se os dados necessários para atender à solicitação de acesso ainda não estive rem armazenados em cache, uma cópia desses dados do servidor será trazida para o sistema cliente. •Acessos serão executados na cópia do cache redução do tráfego na rede •Quan do uma cópia do cache for modificada, as mudanças precisarão se refletir na cópia-mestra para preservar a semântica de consistência relevante. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPARANDO ... Localidade : Quando o armazenamento em cache é utilizado, o cache local pode evitar um número substan cial dos acessos remotos. Problema: consistência do cache é a principal desvan tagem do armazenamento em cache principalmente quando existem gravações frequentes ou a capacidade da máquina é insuficiente. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS REPLICAÇÃO DE ARQUIVOS EXPLICITA AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS REPLICAÇÃO DE ARQUIVOS EXPLICITA ATRASADA AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS REPLICAÇÃO DE ARQUIVOS EXPLICITA ATRASADA EM GRUPO AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SEMÂNTICA DE COMPARTILHAMENTO Quando dois ou mais usuários compartilham o mesmo arquivo ao mesmo tempo, é necessário definir, com exatidão, a semântica de leitura e de escrita para evitar problemas. Semântica Unix •As alterações são visíveis instantaneamente. •A semântica declara que, quando uma operação read vem depois de uma operação write, aquela retorna o valor que acabou de ser escrito. Semântica de Sessão •As alterações em um arquivo aberto são inicialmente visíveis apenas para o processo – ou, possivelmente, máquina – que modi ficou o arquivo; •As alterações devam ficar visíveis para outros processos ou máquinas somente quando o arquivo for fechado. AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS GOOGLE FILE SYSTEM AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO • Um sistema de arquivos é a base para aplicações distribuídas • Possuem características específicas • Implementam técnicas de replicação e compartilhamento ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 9 – Serviços WEB AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 9 •Definir o conceito de serviços web; •Identificar os componentes utilizados para o desenvolvimento desses serviços; AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS MOTIVAÇÃO As inovações na programação e no hardware levaram a tecnologias mais poderosas e úteis, entre elas: a Programação Orientada a Objeto, a computação distribuída, os protocolos da internet e o XML. Serviços WEB (WEB SERVICES) representam a integração de diversas aplicações através da internet. AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS PADRÕES ABERTOS WEB SERVICES utilizam padrões abertos (não proprietários). Permitem a comunicação entre dois componentes de software independentemente das tecnologias utilizadas (interoperabilidade). Fornecem uma interface de serviços para a interação com os servidores As aplicações podem utilizar sua própria linguagem, que será traduzida para Extensible Markup LanguagePadrões abertos permitem que empresas que utilizam plataformas diferentes se comuniquem AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ARQUITETURA SOA (Service Oriented Architecture) Visão lógica : O serviço é uma visão abstrata e lógica de programas reais, bases de dados, processos de negócio etc., definidos em termos do que faz. Orientação à mensagem: O serviço é formalmente definido em função das mensagens trocadas Orientação à descrição: Um serviço é descrito por meta- dados. A descrição apoia a natureza pública da SOA. Granularidade: Os serviços tendem a utilizar um pequeno número de operações com mensagens relativamente grandes e complexas. Orientação à rede: Os serviços tendem a ser orientados para uso em rede, embora este não seja um requisito absoluto. Plataforma neutra: As mensagens são enviadas em uma plataforma neutra, de formato padronizado e fornecido através das interfaces. AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPONENTES SOA Provedor de Serviços WEB Provedor de Serviços WEB Consumidor de Serviços Consumidor de Serviços Registro dos serviços Registro dos serviços publicação e descrição do web service no registro dos serviços AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPONENTES SOA Provedor de Serviços WEB Provedor de Serviços WEB Consumidor de Serviços Consumidor de Serviços Registro dos serviços Registro dos serviços Manutenção de diretório com as informações sobre os serviços. Padrão adotado para registro: Universal Description, Discovery and Integration (UDDI). AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPONENTES SOA Provedor de Serviços WEB Provedor de Serviços WEB Consumidor de Serviços Consumidor de Serviços Registro dos serviços Registro dos serviços Chama um serviço web descoberto pelo recebimento de sua descrição AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CLASSIFICAÇÃO DOS SERVIÇOSClassificação segundo a funcionalidade de suas especificações Descrição de serviço: Utilizada para definir as operações, as mensagens e os tipos de dados de um serviço. Essa descrição também mantém as informações sobre como acessar os serviços. Publicação e Descoberto de Serviços: Contémos protocolos que possibilitam a localização da descrição dos serviços Descrição de Composição de serviços: Contém os modelos e linguagens utilizadas para descrever como se dará a interação dos serviços. Protocolos de Comunicação: Utilizados para definir, estabelecer e manter a comunicação entre as aplicações contendo a descrição dos formatos das mensagens utilizadas na comunicação entre aplicações. AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMUNICAÇÃO ENTRE WEB SERVICES • A comunicação entre serviços web é separada em quatro camadas que tratam da requisição e da resposta entre o cliente e o servidor • A construção de web services é baseada nos padrões XML e SOAP. O transporte dos dados, por sua vez, é realizado através do protocolo HTTP ou HTTPS. • A transferência dos dados ocorre no formato XML encapsulados pelo protocolo SOAP. UDDI WSDL SOAP XML UDDI WSDL SOAP XML AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS OPERAÇÃO AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS PLATAFORMA .NET • Ambiente de desenvolvimento integrado: Visual Studio .NET • Uso de blocos de construção reutilizáveis: programadores podem utilizar componentes de outras aplicações Como começar? Abrir o Visual Studio 2008 e criar um novo projeto usando C#. Selecione ASP.NET WebService Application Você será redirecionado para uma tela onde poderá observar o código padrão de seu WebService. AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CONSTRUINDO UM CLIENTE CONSULTA DE CEP AULA 9 – SERVIÇOS WEB ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO • Web Services favorecem a interoperabilidade e o reuso de código. • Implementam padrões abertos ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Aula 10 –Tecnologia: Computação Ubíqua e nas Nuvens AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ESTRUTURA DA DISCIPLINA AULA 1 – Introdução AULA 2 – Aplicações Distribuídas AULA 3 – Tratamento de Falhas AULA 4 – Classificação de Flynn AULA 5 – Modelo Cliente/Servidor AULA 6 – Sockets e RPC AULA 7 – Modelo P2P AULA 8 – Sistemas de Arquivos Distribuídos AULA 9 – Serviços WEB AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Conteúdo Programático AULA 10 • Novas tecnologias em sistemas distribuídos; • Computação ubíqua; • Computação nas nuvens. AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS A COMPUTAÇÃO UBÍQUA Ubíquo: ao mesmo tempo em toda a parte Mark Weiser (1991) :The computer for the 21st century. Operações voltadas para a tarefa, e não para a ferramenta. AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CONCEITO • Integração entre mobilidade e presença distribuída; • Inovação em interfaces – tendência para as interfaces naturais; • Problemas: segurança, complexidade e privacidade. INTERSEÇÃO ENTRE COMPUTAÇÃO MÓVEL E PERVASIVA AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS APLICAÇÕES • Ambientes inteligentes; • Interfaces hands-free (sem as mãos) – reconhecimento de voz; • Consciência de contexto – utilização de sensores; • Computação de vestir (wearable) – acessórios como interfaces; • Computação sensível à posição; • Realidade aumentada – combinação de computadores wearable com informações de sensores de posição; • Interfaces sensíveis a objeto – Radio-Frequency IDentification (RFID). AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS COMPUTAÇÃO EM NUVEM Utilização de recursos de processamento e armazenamento compartilhados e interligados por meio da internet. Segue os moldes da computação em grid. O acesso aos dados e às aplicações é permitido a partir de qualquer computador que tenha conexão com a internet, independente de sua plataforma. AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS • Serviços sob demanda: recursos adquiridos conforme a necessidade • Virtualização: recursos acessados pela internet. • Alta escalabilidade: alocação dinâmica de recurso • Independência de plataforma: não há vinculo entre hardware e software • Compartilhamento de recursos: disponibilidade de hardware e software • Tolerância a falhas: maior facilidade de recuperação • Organização de custos de manutenção e aquisições • Transparência AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SERVIÇOS Software as a Service (SaaS) Google Docs Platform as a Service (PaaS) Google App Engine. Infrastructure as a Service (IaaS) Amazon EC2 AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS IMPLEMENTAÇÕES Nuvem privada (Private cloud) Nuvem comunitária (Community cloud) Nuvem pública (Public cloud) Nuvem híbrida (Hybrid cloud) AULA 10 – TECNOLOGIAS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS RESUMINDO “As tecnologias podem chegar a um ponto além do qual os assuntos humanos, da forma como os conhecemos, não poderiam continuar a existir”. John von Neumann
Compartilhar