t. d. s. i. para web prof. emmanuel nolêto [email protected]

53
T. D. S. I. PARA T. D. S. I. PARA WEB WEB Prof. Emmanuel Nolêto Prof. Emmanuel Nolêto [email protected] [email protected]

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

T. D. S. I. PARA WEBT. D. S. I. PARA WEB

Prof. Emmanuel NolêtoProf. Emmanuel Nolêto

[email protected]@yahoo.com.br

Page 2: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Introdução

Page 3: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

O que é um sistema distribuído?

• São o conjunto de computadores utilizados por usuários como se fosse um só.

• São uma extensão dos sistemas de redes onde a interação inclui:– Cooperação

• Todos por todos.• Cada um com a sua tarefa.

– Colaboração• Todos por um.• Todos com a mesma finalidade.

Page 4: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Onde se usa?– Redes– Hardware de computador– Sistemas Operacionais– Linguagens de programação– Implementações por diferentes programadores

• Soluções– Middleware– Máquinas virtuais (ex: Applets Java)

Page 5: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Suporta o aumento dos recursos e usuários mantendo um desempenho satisfatório.– Desafios:

• Controlar o custo dos recursos físicos• Controlar a perda de performance (quantidade)• Prevenir esgotamento de recursos (ex: IP)• Evitar gargalos de performance (centralização)

Page 6: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Exemplo de um sistema distribuido

Sistemas DistribuídosSistemas Distribuídos

Page 7: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Exemplo de um web service

Page 8: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Exemplo de uma intranet

Page 9: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Exemplo de dispositivos portáteis

Page 10: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• A utilização dos dispositivos móveis para o acesso à Internet está aumentando. De acordo com a comScore, nos EUA, mais de 2,1 milhões de PCs, smartphones, PDAs e outros dispositivos móveis utilizaram conexões de banda larga para celulares para acessar a Web em 2007. Isso é mais do que o dobro de usuários do ano anterior. Somente 1% dos usuários de Internet nos EUA acessa, atualmente, a Web via banda larga móvel. Mas espera-se que essa porcentagem continue a crescer, conseqüentemente tornando os pontos de conexão Wi-Fi irrelevantes – [fonte: PC World (em inglês)].

Page 11: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Crescimento do acesso em pequenos dispositivos no Brasil

• Necessidade de desenvolver aplicações para estes dispositivos

• Necessidade em adaptar as aplicações já existentes.

• Criar uma mentalidade em utilizar mais dispositivos portáteis do que os convencionais.

• Investimento em melhorias na tecnologia,

Page 12: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• SDs de diferentes tipos compartilham importantes propriedades fundamentais

• Com esse compartilhamento podem sugir problemas de projeto comuns.

• As propriedades comuns e as questões de projeto para SDs serão abordadas na forma de modelos descritivos.

• Um modelo descritivo é uma descrição abstrata, simplificada, mas consistente de um aspecto de projeto de sistema distribuído.

Page 13: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Um Modelo Arquiteturial define o modo no qual os componentes de sistemas interagem e como são mapeados sobre uma rede de computadores.

• As localizações e as interações dos componentes são determinadas pela estrutura em camadas do software de SDs e pelo modelo arquitetura principal. – Variantes do modelo Cliente/Servidor, incluindo aqueles devido

ao uso de código móvel. – As características de um SD para o qual dispositivos móveis

podem ser adicionados ou removidos convenientemente. – Requisitos de projeto gerais para SDs.

Page 14: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistema Distribuído

• A arquitetura em termos de componentes especificados separadamente.

• A meta é garantir que a estrutura satisfará as demandas presentes e futuras.

• Interesses importantes: – tornar confiável– gerenciável – adaptável – custo-efetivo (custo real).

Page 15: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistema Distribuído

• Principais modelos empregados em SDs:– Multi Processador– Cliente Servidor– Cliente servidor em camadas

• Modelos são construídos em termos de processos ou de objetos.

• Um modelo abstrai e simplifica as funções dos componentes individuais e então considera:– a colocação dos componentes através de uma rede– Definir padrões úteis para a distribuição de dados e carga de

trabalho;– as inter-relações entre os componentes de seus papéis e

padrões de comunicação.

Page 16: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

Organização de um Sistema Distribuído.

Page 17: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistema Distribuído

• Hardware de mais baixo nível e camadas de software.• Middleware

– Uma camada de software cujo propósito é mascarar– heterogeneidade e prover um modelo de programação– conveniente para programadores de aplicação.– Processos ou objetos.– Invocações de métodos, comunicações entre um grupo de– processos, notificação de eventos, replicação de dados– compartilhados e transmissão de dados multimídia em

tempo real.– Java RMI (Remote Method Invocation)– CORBA (Common Object Request Broker Architecture)

Page 18: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Acesso a recursos

• Compartilhamento

• Acesso

• Economia

• Segurança

• Confiança nos serviços

• Rastreamento

Page 19: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Transparência da distribuição

• Ocultar distribuição física

• Tipo de transparência – Acesso– Localização– Migração– Realocação – Replicação – Concorrência– Falha

Page 20: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Transparência da distribuição

• Acesso– Oculta a diferenciação de arquiteturas de

máquinas e sistemas

• Localização– Não permitir que o usuário saiba a

localização da aplicação ou do servidor da mesma.

• Migração– Permitir que os recursos possam ser

mudados de local em tempo de execução.

Page 21: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Transparência da distribuição

• Realocação– Recursos podem ser realocados em tempo de

execução.

• Replicação – Não permitir que o usuário saiba que são feitas

cópias dos sistemas.

• Concorrência– Não permitir que o usuário saiba que o sistema esta

sendo usado por muitos usuários ao mesmo tempo.

• Falha– Questão mais difícil de se tratar. Devido a

quantidade de softwares e hardwares integrados.

Page 22: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Abertura

• Sistema que oferece regras e serviços padronizados com regras.

• Definição de interfase– Nomes de funções disponíveis, tipos de

parâmetros e valores de retorno

• Interoperabilidade

• Portabilidade

Page 23: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Escalabidade

• Tamanho– Fácil adicionar novas máquinas e usuários

• Geograficamente– Recursos podem esta distribuídos em

grandes distâncias

• Fácil gerenciamento– Pode ser gerenciado mesmo estando em

servidores e locais diferentes.

Page 24: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Técnicas de escalabidade

• Ocultar latencias– Evitar demora no tempo de resposta.

• Distribuição– Dividir componentes para tornar o tempo de

resposta melhor, como o serviço de DNS.

• Replicação– Equilibra as cargas entre os componentes,

amplia dispersão geográfica e pode ser usado cache para facilitar a replicação.

Page 25: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Problemas de Escalabilidade

• O que distingue um algoritmo descentralizado de um algoritmo centralizado?– Nenhuma máquina tem informações completas sobre

o estado do sistema.– As máquinas tomam decisões tendo como base

somente informações locais.– A falha de uma máquina não arruína o algoritmo.– Não há nenhuma premissa implícita quanto à

existência de um relógio global

Page 26: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Problemas de escabilidade geográfica

• Impossível prover comunicação síncrona para grandes distâncias;

• Comunicação em redes de longa distância não é confiável e ponto a ponto;

• Soluções centralizadas atrapalham a escalabilidade de tamanho.

Page 27: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Problemas de escalabilidade administrativa

• Difícil estabelecer políticas de uso e pagamento de:– Recursos.– Gerenciamento.– Segurança.

Page 28: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Técnicas de EscalabilidadeComunicação síncrona X assíncrona

Page 29: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Técnicas de escalabilidade - distribuição

Page 30: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Principais ciladas

• Premissas falsas adotadas ao desenvolver uma aplicação distribuída pela primeira vez

– A rede é confiável– A rede é segura– A rede é homogênea– A topologia não muda– A latência é zero– A largura da banda é infinita– O custo de transporte é zero– Há apenas um administrador

Page 31: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Tipos de Sistema Distribuído - Cluster

Page 32: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Tipos de Sistema Distribuído – Grade (grid)

Page 33: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas de Informação Distribuídos

• Empacota várias requisições de programas clientes em uma transação distribuída.

• EAI (Enterprise Application Integration)• RPCs (Procedimentos remotos)

Page 34: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Propriedades das transações

• Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível.

• Consistentes: a transação não viola invariantes de sistema.

• Isoladas: transações concorrentes não interferem umas nas outras.

• Duráveis: uma vez comprometida uma transação, as alterações são permanentes

• ACID (para facilitar a decoreba)

Page 35: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Exemplo de Transação Aninhada

Page 36: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Andrew S. TanenbaumMaarten Van Steen

Integração usando Monitor TP

Page 37: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Integração usando Middleware de comunicação

Page 38: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos Pervasivos

• Sistemas decorrentes do uso de computação móvel e embutida, nas quais o comportamento esperado é a instabilidade;– Pequeno tamanho– Alimentados por bateria;– Comunicação sem fio;

• Não possui controle administrativo humano, podendo:– Adotar mudanças contextuais– Incentivar composição ad hoc– Reconhecer compartilhamento como padrão

Page 39: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Pervasivos - ExemplosSistemas para tratamento de Saúde

Page 40: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Pervasivos - ExemplosRedes de sensores sem fio

Page 41: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Questões

Sistemas Distribuídos

Page 42: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Cite cinco tipos de recursos de hardware e cinco tipos de recursos de dados ou software que podem ser compartilhados. Dê exemplos de como eles ocorrem em Sistemas Distribuídos.

Page 43: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Cite cinco tipos de recursos de hardware e cinco tipos de recursos de dados ou software que podem ser compartilhados. Dê exemplos de como eles ocorrem em Sistemas Distribuídos.

Page 44: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Resposta

• HW: discos, impressoras;

• Entidades definidas por software: arquivos, bases de dados,objetos;

• Stream de frames de vídeo que emergem de uma câmera de vídeo digital

• Conexões de áudio que uma chamada de telefones móveis representa.

Page 45: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Liste os três principais componentes de software que podem falhar quando um processo cliente requisita um método em um servidor e dê um exemplo de uma falha em cada caso.

Page 46: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Discuta, utilizando suas palavras, as características desejáveis em um sistema distribuído.

Page 47: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

• Um sistema distribuído é definido como uma coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente. Baseado nos conceitos definidos para sistemas distribuídos, identifique a afirmativa ERRADA:

Page 48: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

a) O modelo de computação distribuída Peer-to-Peer é uma tecnologia que estabelece uma espécie de rede virtual de computadores, onde cada estação tem capacidades e responsabilidades equivalentes.

b) Um sistema distribuído fortemente acoplado provê um nível de integração e compartilhamento de recursos mais intenso e transparente ao usuário, onde vários processadores compartilham uma memória, e são gerenciados por apenas um sistema operacional.

c) Um sistema distribuído fracamente acoplado permite que máquinas e usuários do ambiente sejam fundamentalmente independentes, bem como a interação de forma limitada, quando isto for necessário, compartilhando recursos como discos e impressoras, entre outros.

d) Uma vantagem dos sistemas distribuídos sobre os sistemas centralizados é a disponibilidade de software para este tipo de ambiente.

e) Uma aplicação cliente-servidor é um caso especial de processamento distribuído no qual existe uma forma de cooperação entre dois ou mais processos, sendo essa cooperação realizada através de requisições dos componentes alocados ao cliente e das respostas que são fornecidas pelos componentes alocados ao servidor.

Page 49: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Resposta

• Item D

Page 50: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

Com relação a conceitos sobre sistemas distribuídos, assinale a opção correta.

a) Em um sistema distribuído, os usuários podem acessar recursos em outras máquinas, mas um sistema operacional distribuído não tem como tornar a distribuição dos recursos transparente aos usuários.

b) Um sistema distribuído tem que ser tolerante a falhas. Para ser considerado tolerante a falhas, tem que continuar a funcionar, sem degradação do desempenho ou das funcionalidades, após as falhas.

c) Um sistema de arquivos distribuídos pode ser implementado sem manter informações de estado. Nesse caso, as operações são tratadas individualmente e não como partes de uma sessão.

d) Um sistema distribuído pode suportar a migração de processos. A migração de processos não pode, entretanto, ocorrer sob controle de um sistema operacional, tem que ser controlada por aplicações.

Page 51: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Resposta

• Item C

Page 52: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Sistemas Distribuídos

O objetivo de uma camada de Middleware em um sistema multicamadas é:

a) oferecer componentes relacionados ao negócio para serem utilizados na construção de aplicativos pelos engenheiros de sistemas;

b) prover uma interface de acesso padrão a um sistema operacional específico, de modo a disponibilizar os serviços nele existentes a clientes em outras plataformas;

c) permitir acesso a dispositivos de hardware, como câmeras e impressoras, através de uma API de alto nível;

d) cuidar de aspectos relacionados com a infraestrutura de rede, definindo interfaces de comunicação com hubs e roteadores;

e) disponibilizar classes utilitárias e serviços independentes de plataforma que permitam a obtenção de computação distribuída em ambientes heterogêneos.

Page 53: T. D. S. I. PARA WEB Prof. Emmanuel Nolêto ejnoleto@yahoo.com.br

Resposta

• Item E