COULOURIS, G.; DOLLIMORE, T.; KINDBERG, T. Sistemas
Distribuídos: Conceitos e Projetos. 4 ed. Porto alegre:Bookman, 2007. TANENBAUM, A. S.; STEEN, M. V. Sistemas Distribuídos: Princípios e Paradigmas. 2 ed. São Paulo: Prentice Hall, 2007.
Prof. Paulo Bentes 1
Cap1 - Introdução ● Definição: ● “Um sistema distribuído é aquele no qual os componentes localizados em computadores interligados em rede se comunicam e coordenam suas ações apenas passando mensagens”. (COULOURES et al,2007) ● “Um sistema distribuído é um conjunto de computadores indepedentes que se apresenta a seus usuários como um sistema único e coerente”. (TANENBAUM & STEEN, 2007)
Prof. Paulo Bentes 2
● Características ● Concorrência de componentes – Compartilhamento de recursos ● Inexistência de um relógio global – Coordenação de ações trocando mensagens ● Independência na ocorrência de falhas – Falha de uma parte do sistema não é imediatamente percebida pelos outros componentes com os quais ele se comunica. – Cada componente pode falhar independentemente, deixando os outros ainda em funcionamento.
Prof. Paulo Bentes 3
● Motivação ● O desejo de compartilhar recursos – Componentes de hardware: discos e impressoras, etc. – Entidades definidas pelo software: arquivos e bancos de dados, etc.
Prof. Paulo Bentes 4
● Exemplo 1 ● A Internet – Permite que seus usuários, onde quer que estejam, façam uso de seus serviços: ● World Wide Web ● E-mail ● Transferência de arquivos
Prof. Paulo Bentes 5
● Os provedores de serviço de Internet, os ISPs (Internet Service Providers), são empresas que fornecem, através de variados tipos de acessos (linhas discadas, ADSL, Cable, Frame Relay, Satélite, etc) o acesso a usuários individuais, ou organizações, à Internet. ● Estas tecnologias permitem que os usuários tenham acesso aos backbones da Internet composto de acessos de alta capacidade que interligam os ISPs da mesma ou de várias empresas. ● Os ISPs podem fornecer ainda alguns serviços como e-mail e hospedagem de páginas web (páginas que compõem a World Wide Web)
Prof. Paulo Bentes 6
● Exemplo 2 ● As Intranets – Uma Intranet é uma parte da Internet administrada separadamente, cujo limite pode ser configurado para impor planos de segurança locais. – Ela é composta de várias redes locais (Local Area Networks – LANs) interligadas por conexões de backbone. – A configuração de rede de uma intranet em particular é de responsabilidade da organização que a administra. – Geralmente utilizam recursos de segurança como firewall e IDS (Intrusion Detection Systems) para restringir e controlar o acesso a todo ou parte de seus recursos.
Prof. Paulo Bentes 7
● Exemplo de intranet
Prof. Paulo Bentes 8
● Exemplo 3 ● Computação móvel, ubíqua e pervasiva – Móvel: aparelhos portáteis que permitem o movimento, como notebooks, PDAs (assistentes digitais pessoais), telefones móveis, etc. – Ubíqua: dá noção de unipresença, isto é, o acesso a serviços está disponível em qualquer lugar. – Pervasivo: segere que pequenos equipamentos de computação são entranhados nos objetos diários que mal serão notados.
Prof. Paulo Bentes 9
● A presença de computadores em toda parte se torna mais útil quando eles podem se comunicar uns com os outros e possam ser controlados e monitorados a partir de um único dispositivo universal. ● Por exemplo um controle só para todos os eletrodomésticos com suas ações coordenadas por uma entidade central.
Prof. Paulo Bentes 10
● Compartilhamento de recursos ● Compartilhamento de equipamentos – Impressoras, discos, etc. ● Compartilhamento de informações – Banco de dados. ● Serviço: constituído de uma parte distinta de um sistema de computador que gerencia um conjunto de recursos relacionados e apresenta sua funcionalidade para para usuário e aplicativos, cujo acesso se dá por um conjunto de operações que ele exporta. – Sistemas de arquivos (leitura, escrita e exclusão), – serviço de impressão (imprimir, excluir impressão), – serviço de pagamento eletrônico (pagamento por boleto, pagamento por cartão de crédito), etc.
Prof. Paulo Bentes 11
● Servidor: é um processo (programa em execução) em um computador interligado em rede, que aceita pedidos de outros programas em execução chamados de clientes, para efetuar um serviço e responder apropriadamente. ● O mesmo processo pode ser tanto cliente como servidor, pois os servidores podem solicitar serviços de outros servidores. ● Os servidores funcionam continuamente, enquanto os clientes duram apenas enquanto os aplicativos que fazem parte estão ativos. Prof. Paulo Bentes 12 ● A World Wide Web ● É um sistema aberto e em evolução para publicação e para acesso a recursos e serviços pela Internet. ● A acesso é feito através de navegadores (browsers) que funcionam como clientes na utilização do serviço. ● A web fornece uma estrutura de hipertexto entre os documentos que armazena baseada em padrões de comunicação e de documentos. Estes documentos contêm links (ou hiperlinks) que são referências para outros outros documentos e recursos que também estão disponíveis na web. Prof. Paulo Bentes 13 ● Se novos formatos forem utilizados na web os usuários necessitarão de meios para “ler” no novo formato. ● Os navegadores são então projetados de maneira a acomodar novas funcionalidades de apresentação de conteúdo, na forma de aplicativos “auxiliares” e “plug-ins”.
Prof. Paulo Bentes 14
● A web é baseada em três componentes tecnológicos principais: ● HTML (HyperText Marked Language) – linguagem que especifica o conteúdo e layout de páginas de forma que possam ser exibidas pelos navegadores. ● URLs (Uniform Resouce Locators) – identificam os documentos e outros recursos armazenados como parte da web. ● Uma estrutura cliente-servidor, com regras padrão para interação. – HTTP (HyperText Tranfer Protocol); – FTP (File Tranfer Protocol); etc.
Prof. Paulo Bentes 15
● Todo URL, em sua forma completa, tem dois componentes de nível superior: esquema:identificador_específico_do_esquema ● O primeiro componente, o esquema, declara qual o tipo dessa URL. ● Os URLs são obrigados a identificar uma variedade de recursos. ● Ex: maito:jose@umISP.net ● Ex: ftp://ftp.dowloadIt.com/software/aProg.exe
Prof. Paulo Bentes 16
● Exercício 1)Forneça 3 exemplos de URL. 2)Quais os arquivos acessados quando utilizadas entas URLs? 3)O que é necessário para disponibilizar e exibir um página HTML localizada em um computador remoto? 4)O que pode estar contido na página HTML (cite 3)?
Prof. Paulo Bentes 17
● Metas (1) ● Heterogeneidade – A internet permite aos usuários acessarem serviços e executarem aplicativos por meio de um conjunto heterogêneo de computadores e redes. Ela se aplica aos seguintes aspectos: – Redes (ex:ethernet, ATM, satélite... mas utilizam a arquitetura TCP/IP) – Hardware de computador (ex: x86, sparc) – Sistemas operacionais (ex:windows, unix) – Linguagem de programação (ex: java, C) – Implementação de diferentes desenvolvedores(ex: representação diferentes de tipos de dados primitivos)
Prof. Paulo Bentes 18
● Metas (2) ● Sistemas Abertos – Pode ser estendido e reimplementado de várias maneiras. Novos serviços podem ser adicionados e disponibilizados para uso por uma variedade de programas clientes. Ex: Web (Internet Explorer. Mozilla Firefox, etc) – A documentação das principais interfaces de software dos componentes de um sistema estão disponíveis para os desenvolvedores de software, ou seja, as principais interfaces são publicadas, de forma similar àquele realizado por organizações de padronização.
Prof. Paulo Bentes 19
● Metas (3) ● Segurança ● Confidencialidade – proteção contra exposição para pessoas não autorizadas (necessário também verificar a autoria). ● Integridade – proteção contra alteração ou dano (executáveis com efeitos imprevisíveis – segurança de código móvel – também podem gerar problemas de confidencialidade). ● Disponibilidade – proteção contra interferência com os meios de acesso aos recursos (bombardeamento do serviço com um grande número de solicitações sem sentido – ataque de negação de serviço).
Prof. Paulo Bentes 20
● Metas (4) ● Escalabilidade – Mantém a eficiência perante um aumento significativo no número de recursos e no número de usuários. ● Ampliação do sistema a um custo razoável. Ex: aumentando a quantidade de servidores. ● Controle da perda de desempenho. Ex: gerenciamento de rede ● Estratégias para evitar o esgotamento de recursos. Ex: IPv4 (32 bits) para Ipv6 (128 bits) ● Evitar gargalos de desempenho. Ex: Arquivo hosts e o serviço de DNS (Domain Name System)
Prof. Paulo Bentes 21
● Metas (6) ● Tratamento de falhas (falhas parciais) – Detecção de falhas Ex: Somas de verificação – Mascaramento de falhas Ex: mensagens podem ser retransmitidas quando não chegam Ex: dados de arquivos podem ser gravados em dois discos. – Tolerância a falhas Ex: quando um navegador não consegue contatar um servidor web, ele não faz o usuário esperar indefinidamente, enquanto continua tentando, ele informa que o servidor não respondeu. – Recuperação de falhas (o estado dos dados permanentes podem ser recuperados ou retrocedidos) Ex: banco de dados – Redundância Ex: duas rotas entre dois roteadores; vários servidores de DNS; replicação de banco de dados em vários servidores Prof. Paulo Bentes 22 ● Metas (7) ● Concorrência – Vários clientes podem tentar acessar um mesmo recurso compartilhado ao mesmo tempo. Ex: lances de um leilão – Recurso pode ser encapsulado como um objeto e as chamadas podem ser executados em diferentes fluxos de execução (processos ou threads, concorrentes) e ao mesmo tempo garantir resultados consistentes.
Prof. Paulo Bentes 23
● Metas (8) ● Transparência – É definida como sendo a ocultação, para um usuário final ou para um programador de aplicativos, da separação dos componentes em um sistema distribuído de modo que o sistema seja percebido como um todo, em vez de uma coleção de componentes independentes. – Transparência de acesso – permite que recursos locais e remotos sejam acessados com o uso de operações idênticas. – Transparência de localização – permite que os recursos seja acessados sem o conhecimento de sua localização física ou na rede. – Transparência de concorrência – permite que vários processos operem concorrentemente, usando recursos compartilhados sem interferência entre eles. Prof. Paulo Bentes 24 – Transparência de replicação – permite que várias instâncias dos recursos sejam usadas para aumentar a confiabilidade e o desempenho, sem conhecimento das réplicas por parte dos usuários ou dos programadores de aplicativos. – Transparência de falhas - permite a ocultação de falhas, possibilitando que usuários e programas concluam suas tarefas, mesmo na ocorrência de falhas em alguns componentes. – Transparência de migração ou de mobilidade – permite a movimentação de recursos e clientes dentro de um sistema, sem afetar a operação de usuários ou programas. – Transparência de desempenho – permite que o sistema seja reconfigurado para melhorar o desempenho à mediada que as cargas variam. – Transparência de escalabilidade – permite que o sistema e os aplicativos se expandam em escala, sem alterar a estrutura do sistema ou os algoritmos de aplicativos.
Prof. Paulo Bentes 25
● Exercício 5 ● Liste três componentes principais que podem falhar quando um processo cliente invocar um método em um objeto servidor. Dê um exemplo de falha em cada caso. Sugira a maneira como os componentes podem ser feitos para que o sistema seja redundante.
Prof. Paulo Bentes 26
● Exercício 6 ● Dê um exemplo para cada tipo de transparência abaixo: – Transparência de acesso – Transparência de concorrência – Transparência de migração