Buscar

Atividade capitulo 1 Sistemas distribuidos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

1.1 - Cite cinco tipos de recurso de hardware e cinco tipos de recursos de dados ou de software que possam ser compartilhados com sucesso. Dê exemplos práticos de seu compartilhamento em sistemas distribuídos.
R: Hardware: discos, impressora, memória ram, processador, switch.
Software: arquivos, banco de dados, protocolos de comunicação, funções do sistema operacional, páginas web.
Exemplos: Compartilhamento de impressora entre vários computadores em um escritório;
Memória principal de uma máquina que é compartilhada por todos os processadores através de um barramento que os interliga;
Compartilhamento de documentos no google docs.
1.2 - Como os relógios de dois computadores ligados por uma rede local podem ser sincronizados sem referência a uma fonte de hora externa? Quais fatores limitam a precisão do procedimento que você descreveu? Como os relógios de um grande número de computadores conectados pela Internet poderiam ser sincronizados? Discuta a precisão desse procedimento.
R: Já que o relógio é síncrono, é possível saber os limites da taxa de derivação dos relógios, o atraso máximo de transmissão de mensagens e o tempo que leva para executar cada etapa de um processo, através da técnica de relógios lógicos. O relógio lógico de Lamport é um contador de software que aumenta a contagem monotonamente cujo valor não precisa ter nenhum relacionamento em particular com qualquer relógio físico. Não existe a noção de relógio global em um sistema distribuído; portanto, os relógios de diferentes computadores não fornecem necessariamente a mesma hora. Toda comunicação entre processos é obtida por meio de troca de mensagens. A comunicação por troca de mensagens em uma rede de computadores pode ser afetada por atrasos, sofrer uma variedade de falhas e ser vulnerável a ataques contra a segurança. É impossível fazer a sincronização através de sistemas assíncronos
1.3	- Considere as estratégias de implementação de MMOG (massively multiplayer online games) discutidas na Seção 1.2.2. Em particular, quais vantagens você vê em adotar a estratégia de servidor único para representar o estado do jogo para vários jogadores? Quais problemas você consegue identificar e como eles poderiam ser resolvidos?
R: Um servidor único traz algumas vantagens como: economia de energia pelo fato da centralização de um servidor; economia de mão de obra, pois não é necessário configurar outros componentes como servidores; o fato de ter em apenas um servidor os estados do mundo virtual criado para o game auxilia no gerenciamento, gerando apenas uma cópia de segurança, isso diminui, também, a preocupação com a coerência no universo que engloba o game. Um servidor único traz consigo, também, algumas desvantagens: como o sistema não é distribuído se esse servidor único falhar ou apresentar alguma inconsistência isso afetará todos os usuários, visto que não há outro servidor para oferecer a aplicação transparência de falhas. A distância desse servidor central de usuários também seria um agravante, a aplicação poderia se tornar insuportavelmente lenta
1.4	 - Um usuário chega a uma estação de trem que nunca havia visitado, portando um PDA capaz de interligação em rede sem fio. Sugira como o usuário poderia receber informações sobre serviços locais e comodidades dessa estação, sem digitar o nome ou os atributos da estação. Quais desafios técnicos devem ser superados?
R: Este usuário pode ri a se conectar a uma WIFI, e receber informações sobre este local de vido a o provedor desta WIFI inserir tais informações na rede. Aplicativos de reconhecimento de localização também podem dar essas informações
1.5 - Compare e contraste a computação em nuvem com a computação cliente-servidor mais tradicional. O que há de novo em relação à computação em nuvem como conceito?
R: A arquitetura cliente-servidor possui máquinas dedicadas, geralmente é usada com configurações de armazenamento e processamento pré-defina adotadas por uma determinada organização que tem autonomia sobre processos de backups e segurança. A computação em nuvem usa o conceito de distribuição de aplicações que devem trabalhar como se fossem uma. As aplicações podem estar distribuídas em diversos lugares ao mesmo passo que é muito eficiente por usar tecnologias como a virtualização. A vantagem da “nuvem” é a escalabilidade, muitas organizações podem usar apenas o espaço necessário para o bom funcionamento de suas aplicações. EX: Redes sociais, buscadores, ferramentas Saas
1.6 - Use a World Wide Web como exemplo para ilustrar o conceito de compartilhamento de recursos, cliente e servidor. 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?
R: Páginas da Web são exemplos de recursos que são compartilhados. Esses recursos são gerenciados por servidores Web. Arquitetura cliente-servidor. O Navegador da Web é um programa cliente (por exemplo, Firefox ou IE) executado no computador. O servidor Web acessa os arquivos locais que contêm as páginas da Web e os fornece ao cliente (processos do navegador). HTML é uma linguagem relativamente simples para analisar e processar, mas confunde apresentação com os dados subjacentes que estão sendo apresentados. Os URLs são localizadores de recursos eficientes, mas não são suficientemente ricos como links de recursos. Por exemplo, eles podem apontar para um recurso que foi realocado ou destruído; sua granularidade (como um recurso) é muito grosseira para muitos propósitos. O HTTP é um protocolo simples que pode ser implementado com uma pequena pegada e que pode ser usado em muitos tipos de transferência de conteúdo e outros tipos de serviço. Sua verbosidade (mensagens HTML tendem a conter muitas strings) torna ineficaz para passar pequenas quantidades de dados. HTTP e URLs são aceitáveis como uma base para a computação cliente-servidor, exceto que (a) não há forte typechecking (serviços web operam por tipo de verificação de valor sem apoio do compilador), (b) há a ineficiência que mencionamos.
1.7 - Um programa servidor escrito em uma linguagem (por exemplo, C++) fornece a implementação de um objeto BLOB destinado a ser acessado por clientes que podem estar escritos em outra linguagem (por exemplo, Java). Os computadores cliente e servidor podem ter hardware diferente, mas todos eles estão ligados em uma rede. Descreva os problemas devidos a cada um dos cinco aspectos da heterogeneidade que precisam ser resolvidos para que seja possível um objeto cliente invocar um método no objeto servidor.
R: À medida que os computadores estão ligados a uma internet, podemos supor que os protocolos da Internet lidar com as diferenças de redes. Mas os computadores podem ter um hardware diferente - portanto, temos de lidar com as diferenças de representação de itens de dados de pedido e mensagens de resposta dos clientes aos objetos. Um padrão comum será definido para cada tipo de item de dados que devem ser transmitidos entre o objeto e seus clientes. Os computadores podem executar sistemas operacionais diferentes, portanto, temos de lidar com diferentes operações para enviar e receber mensagens ou para expressar invocações. Assim, no / C ++ nível Java uma operação comum faria ser usado que será traduzido para a operação específica de acordo com o sistema operacional que ele é executado. Temos duas diferentes linguagens de programação C ++ e Java, eles usam representações diferentes para dados estruturas, tais como cordas, arrays, registros. Um padrão comum será definido para cada tipo de estrutura de dados que devem ser transmitidos entre o objeto e seus clientes e uma maneira de traduzir entre essa estrutura de dados e cada um dos idiomas. Podemos ter diferentes implementadores, por exemplo, um para C ++ e outra para Java. Eles terão de acordar sobre as normas comuns mencionadas acima e para documentá-los
1.8 - Um sistema distribuído aberto permite que novos serviços de compartilhamento
de recursos (como o objeto BLOB do Exercício 1.7) sejam adicionados e acessados por diversos programas clientes. Discuta, no contexto desse exemplo, até que ponto as necessidades de abertura do sistema diferem das necessidades da heterogeneidade.
R: o sistema distribuído usa um conjunto comum de protocolos de comunicação (provavelmente protocolos de internet). Usa um padrão definido para representar os itens de dados (para lidar com a heterogeneidade de hardware). • Ele usa um padrão comum para operações de passagem de mensagens (ou para invocações). • Ele usa um padrão independente linguagem para representar estruturas de dados. Mas para o sistema distribuído aberto as normas devem ter sido acordados e documentados antes do BLOB objeto foi implementado. Os implementadores devem estar de acordo com essas normas. Além disso, a interface para o BLOB objeto deve ser publicado para que quando ele é adicionado ao sistema, atuais e novos clientes será capaz de acessá-lo. A publicação dos padrões permite que partes do sistema a ser implementado por diferentes fornecedores e trabalhar em conjunto
1.9 - Suponha que as operações do objeto BLOB sejam separadas em duas categorias – operações públicas que estão disponíveis para todos os usuários e operações protegidas, que estão disponíveis somente para certos usuários nomeados. Indique todos os problemas envolvidos para se garantir que somente os usuários nomeados possam usar uma operação protegida. Supondo que o acesso a uma operação protegida forneça informações que não devem ser reveladas para todos os usuários, quais outros problemas surgem?
1.10 - O serviço INFO gerencia um conjunto potencialmente muito grande de recursos, cada um dos quais podendo ser acessado por usuários de toda a Internet por intermédio de uma chave (um nome de string). Discuta uma estratégia para o projeto dos nomes dos recursos que cause a mínima perda de desempenho à medida que o número de recursos no serviço aumenta. Sugira como o serviço INFO pode ser implementado de modo a evitar gargalos de desempenho quando o número de usuários se torna muito grande.
R: Algoritmos que usam estruturas hierárquicas dimensionar melhor do que aqueles que usam estruturas lineares. Por conseguinte, a solução deve sugerir um esquema de nomenclatura hierárquica. por exemplo. que cada recurso tem um nome do formulário 'ABC' etc em que o tempo necessário é O (log n), onde n existem recursos do sistema. Para permitir que um grande número de usuários, os recursos são divididos entre vários servidores, por exemplo, nomes começando com A a um servidor, com B no servidor 2 e assim por diante. Pode haver mais do que um nível de particionamento como no DNS. Para evitar gargalos de desempenho do algoritmo para procurar um nome deve ser descentralizada. Esse é, ao mesmo servidor não deve ser envolvido em olhar acima de todo nome. (Uma solução centralizada usaria um único servidor raiz que mantém um banco de dados local que mapeia partes da informação para servidores específicos). Alguns replicação é necessária para evitar tal centralização. Por exemplo: i) o banco de dados de localização pode ser replicado em vários servidores raiz ou ii) o banco de dados de localização pode ser replicado em todos os servidores. Em ambos os casos, diferente os clientes devem acessar servidores diferentes (por exemplo, os locais ou aleatoriamente).
1.11 - Liste os três principais componentes de software que podem falhar quando um processo cliente chama um método em um objeto servidor, dando um exemplo de falha em cada caso. Sugira como os componentes podem ser feitos de modo a tolerar as falhas uns dos outros.
R: Reatividade: Os sistemas devem ter poucas camadas de software e minimizar transferências de dados entre o cliente-servidor.
Taxa de rendimento: Implantar computadores que consigam dar conta das requisições e ter uma boa infraestrutura de rede.
Balanceamento de carga: deve-se evitar disputar do mesmo recurso e explorar as capacidades computacionais disponíveis, pode-se também usar migração de tarefas parcialmente concluídas.
1.12 Um processo servidor mantém um objeto de informação compartilhada, como o objeto BLOB do Exercício 1.7. Dê argumentos contra permitir que os pedidos do cliente sejam executados de forma concorrente pelo servidor e a favor disso. No caso de serem executados de forma concorrente, dê um exemplo de uma possível “interferência” que pode ocorrer entre as operações de diferentes clientes. Sugira como essa interferência pode ser evitada. 
R: Para execuções concorrentes - mais taxa de transferência no servidor (particularmente se o servidor tem que acessar um disco ou outro serviço) Contra - problemas de interferência entre operações simultâneas exemplo: Um segmento do cliente de lê valor da variável X 
Segmento do cliente do B lê o valor da variável X
Cliente Um fio de adiciona 1 para o seu valor e armazena o resultado em X
Cliente fio de B subtrai 1 do seu valor e armazena o resultado em X
Resultado: x: = X-1; imaginar que X é o saldo de uma conta bancária, e os clientes A e B são de crédito de execução e operações de débito, e você pode ver imediatamente que o resultado é incorreto. Para superar uso interferência alguma forma de controle de concorrência. Por exemplo, para uma utilização de servidor Java operações sincronizadas, como crédito e débito.
1.13 - Um serviço é implementado por vários servidores. Explique por que recursos poderiam ser transferidos entre eles. Seria satisfatório para os clientes fazer multicast (difusão seletiva) de todos os pedidos para o grupo de servidores, como uma maneira de proporcionar transparência de mobilidade para os clientes?
R: As mensagens multicast fornecem uma infraestrutura útil para a construção de SDs com as seguintes características: Tolerância a falhas baseadas na replicação de serviços. Localização de objetos em serviços distribuídos. Melhor desempenho via replicação de dados. Múltipla atualização.
1.14 - Os recursos na World Wide Web e outros serviços são nomeados por URLs. O que denotam as iniciais URL? Dê exemplos de três diferentes tipos de recursos da Web que podem ser nomeados por URLs.
R: URL significa Unifor Resource Locator(localizador de recurso uniforme).Três exemplos de recursos que podem usar URLs: um arquivo ou u ma imagem, filme, som, qualquer coisa que pode ser processado, uma consulta a um banco de dados ou a um mecanismo de busca.
1.15 - Cite um exemplo de URL HTTP. Liste os principais componentes de um URL HTTP, dizendo como seus limites são denotados e ilustrando cada um, a partir de seu exemplo. Até que ponto um URL HTTP tem transparência de localização?
R: Exemplo de URL HTTP: http:/ifapa.edu.br/index.php
Principais componentes: Antes do “:” define o protocolo: ex: http (“Hyper Text Transport Protocol). A parte entre // e / é o nome do domínio no servidor web. Ex: ifpa.edu.br; O resto refere-se à informação solicitada ao servidor (recurso) que está dentro de um diretório usado no servidor web. Ex: o recurso “index.php” está localizado no diretório raiz do servidor ifpa.edu.br; quanto à transparência: O nome do host “www” é independente da localização, por isso temos a transparência do local em que o endereço de um determinado computador não está incluído. Portanto, a organização pode mover o serviço da Web para outro computador. Porém, se a responsabilidade de fornecer um serviço de informações baseado em WWW se deslocar para outra organização, a URL precisaria ser alterada.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais