Marcela Tomé Bennert
1 Universidade Federal do Pará Campus Universitário de Marabá Curso de Bacharelado em Sistemas de Informação Sistemas Distribuídos Prof.: Warley Junior Plano de Ensino. Turma SI
2 PLANO DE DISCIPLINA Carga horária: 48 horas teórica / 20 horas prática Objetivo Geral: Prover o conhecimento dos conceitos básicos de sistemas distribuídos, bem como de técnicas e critérios de projeto e implementação. 2
3 PLANO DE DISCIPLINA Objetivos específicos: Entender os diversos tipos e características dos sistemas distribuídos; Compreender o funcionamento da gerencia centralizada e distribuída de processos; Identificar corretamente vulnerabilidade em sistema de informações distribuídos; Projetar e implementar pequenos sistemas de objetos distribuídos; Compreender os principais mecanismos de troca de mensagens em sistemas distribuídos. 3
4 PLANO DE DISCIPLINA Ementa: Introdução a sistemas distribuídos. Metas de projeto de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Sistemas de arquivamento distribuído. Sistemas operacionais distribuídos. Algoritmos distribuídos. 4
5 PLANO DE DISCIPLINA Avaliação: 1) Trabalho prático + Prova Individual 2) Trabalho prático + Prova Individual 3) Seminário + Prova Individual 5
6 PLANO DE DISCIPLINA Bibliografia Básica: COULOURIS, George. Sistemas distribuídos: conceitos e projetos. 4ª ed. Porto Alegre: Bookman, TANENBAUM, Andrew S. Sistemas distribuídos: princípios e paradigmas. 2ª ed. São Paulo: Pearson Prentice Hall, DANTAS, Mario. Computação Distribuída de Alto Desempenho: Redes, Clusters e Grids Computacionais. 1ª ed. Axcel Books,
7 Sistemas Distribuídos Unidade I: Fundamentos de Sistemas Distribuídos FACOM Faculdade de Computação (Campus I - Marabá) 7
8 Agenda AULA 1: Caracterização de Sistemas Distribuídos Definição Exemplos Compartilhamento de Recursos e a Web Desafios Exercícios 8
9 Leitura Prévia COULOURIS, George. Sistemas distribuídos: conceitos e projetos. 4ª ed. Porto Alegre: Bookman, Capítulo 1. TANENBAUM, Andrew S. Sistemas distribuídos: princípios e paradigmas. 2ª ed. São Paulo: Pearson Prentice Hall, Capítulo 1. 9
10 Definição Um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente [TANENBAUM, 2007]. Um sistema distribuído é aquele no qual os componentes de hardware ou software, localizados em computadores interligados em rede, se comunicam e coordenam suas ações apenas enviando mensagens entre si [COULOURIS, 2007]. 10
11 Definição Sistemas distribuídos costumam ser organizados por meio de: Camada de Nível Alto; Camada de Software; Camada Subjacente. 11
12 Características Concorrência: em uma rede de computadores, a execução concorrente de programas é a norma. Inexistência de relógio global: quando os programas precisam cooperar, eles coordenam suas ações trocando mensagens. Falhas independentes: todos os sistemas de computador podem falhar e é responsabilidade dos projetistas de sistema pensar nas consequências das possíveis falhas. 12
13 Exemplos INTERNET % ISP intranet % % % backbone Computador Desktop: Servidor: Enlace de rede: Enlace de satelite 13
14 Exemplos INTERNET A Internet é um conjunto de redes de computadores, de muitos tipos diferentes, interligadas. A Internet é um sistema distribuído muito grande. Ela permite que os usuários, onde quer que estejam, façam uso de serviços como a World Wide Web, e transferência de arquivos 14
15 Exemplos INTRANET Servidores de Impressão Servidor de Computadores Desktop Servidor Web Rede Local Servidor de Outras porções da Internet Servidor de Arquivo Roteador/firewall Impressão Outros servidores 15
16 Exemplos COMPUTAÇÃO MÓVEL E UBÍQUA Internet Intranet anfitriã Rede local sem fio gateway Intranet doméstica Impressora Câmera Telefone móvel Laptop Site anfitrião 16
17 Exemplos Computação Móvel e Ubíqua Computação Móvel é a execução de tarefas de computação, enquanto o usuário está se deslocando de um lugar a outro ou visitando lugares diferentes de seu ambiente usual. Computação Ubíqua é a utilização de vários dispositivos computacionais pequenos e baratos, que estão presentes nos ambientes físicos dos usuários. 17
18 Exemplos COMPUTAÇÃO EM NUVEM 18
19 Compartilhamento de Recursos e a Web Compartilhamos recursos de hardware (como impressoras), recursos de dados (como arquivos) e recursos com funcionalidade mais específica (como os mecanismos de busca). O termo serviço é usado para designar uma parte distinta de um sistema de computador que gerencia um conjunto de recursos relacionados e apresenta sua funcionalidade para usuários e aplicativos. 19
20 Compartilhamento de Recursos e a Web A World Wide Web (WWW) é um sistema em evolução para a publicação e para o acesso a recursos e serviços pela Internet. A web é um sistema aberto: ela pode ser ampliada e implementada de novas maneiras, sem perturbar a funcionalidade existente. A web é aberta no que diz respeito aos tipos de recursos que nela podem ser publicados e compartilhados. 20
21 Compartilhamento de Recursos e a Web A web é baseada em três componentes tecnológicos padrão principais: HTML (HyperText Markup Language) que é uma linguagem para especificar o conteúdo e o leiaute de páginas de forma que elas possam ser exibidas pelos navegadores web. URLs (Uniform Resource Locators), que identificam os documentos e outros recursos armazenados como parte da web. Uma arquitetura de sistema cliente-servidor, com regras padrão para interação (o protocolo HTTP HyperText Transfer Protocol), por meio das quais os navegadores e outros clientes buscam documentos e outros recursos dos servidores web. 21
22 Compartilhamento de Recursos e a Web Servidores Web Navegadores Internet Sistema de arquivos de Protocolos faq.html 22
23 Desafios Heterogeneidade A heterogeneidade (isto é, variedade e diferença) se aplica aos seguintes aspectos: redes hardware de computador sistemas operacionais linguagens de programação implementações de diferentes desenvolvedores 23
24 Desafios Heterogeneidade Middleware: Camada de Software que fornece uma abstração de programação, assim como o mascaramento da heterogeneidade das redes, hardware e etc. Ex: CORBA Heterogeneidade e migração de código: termo usado para se referir ao código que pode ser enviado de um computador para outro e ser executado no destino. Ex: Applets Java 24
25 Desafios Sistemas Abertos Caracterizados pelo fato de suas principais interfaces serem publicadas; Os sistemas distribuídos abertos são baseados na estipulação de um mecanismo de comunicação uniforme e em interfaces publicadas para acessos aos recursos compartilhados; (RFCs) Os sistemas distribuídos abertos podem ser construídos a partir de hardware e software heterogêneo, possivelmente de diferentes fornecedores. 25
26 Desafios Segurança Trata da segurança dos recursos de informação que se tornam disponíveis e são mantidos em sistemas distribuídos e que têm um alto valor intrínseco para seus usuários. Pilares da Segurança da Informação Confidencialidade Integridade Disponibilidade Problemas ainda em discussão Ataque de negação de serviço Segurança de código móvel 26
27 Desafios Escalabilidade Um sistema é descrito como escalável se permanece eficiente quando há um aumento significativo no número de usuários. Apresenta os seguintes desafios: Controlar o custo dos recursos físicos Controlar a perda de desempenho Impedir que os recursos de software se esgotem Evitar gargalos de desempenho 27
28 Desafios Tratamento de Falhas Detecção de Falhas Mascaramento de Falhas Ex.: Retransmissão de mensagens. Tolerância a Falhas Ex.: Falha apresentada pelo Navegador Web Recuperação de Falhas Redundância Ex.: Duas Rotas entre dois roteadores, DNS, Banco de Dados Distribuídos. 28
29 Desafios Concorrência É a possibilidade de que vários clientes tentem acessar um recurso compartilhado ao mesmo tempo. Ex: A estrutura de dados que registre lances de um leilão Para que um objeto mantenha coerência em um ambiente concorrente, suas operações devem ser sincronizadas; Ex: Semáforos 29
30 Desafios Transparência: o objetivo é tornar certos aspectos da distribuição invisíveis para um usuário final ou para um programador de aplicativos, para que este se preocupe apenas com o projeto de seu aplicativo em particular. Transparência Acesso Localização Migração Relocação Replicação Concorrência Falha Descrição Oculta diferenças na representação de dados e no modo de acesso a um recurso Oculta o lugar em que um recurso está localizado Oculta que um recurso pode ser movido para outra localização Oculta que um recurso pode ser movido para uma outra localização enquanto em uso Oculta que um recurso é replicado Oculta que um recurso pode ser compartilhado por diversos usuários concorrentes Oculta a falha e a recuperação de um recurso. 30
31 Exercícios 1) Cite cinco tipos de recurso de hardware e recursos de dados ou software que possam ser compartilhados com sucesso. Dê exemplos práticos de seu compartilhamento em sistemas distribuídos. 2) Quais são as vantagens e desvantagens das tecnologias básicas HTML, URLs e HTTP para navegação em informações? Alguma dessas tecnologias é conveniente como base para a computação cliente-servidor em geral? 3) Liste os três principais componentes de software que podem falhar quando um processo cliente invocar um método em um objeto servidor. Dê um exemplo de falha para cada caso. Sugira a maneira como os componentes podem ser feitos para tolerar as falhas uns dos outros. 31