4
Sistemas Distribuídos * 4 de maio de 2011 1 Introdução. Conceitue Sistemas Distribuídos, aponte a principal motivação de sua adoção, liste pelo menos três características e aponte alguns desafios relativos a sua implementação. Definimos um sistema distribuído como um sistema no qual componentes de hard- ware e software são localizados em redes de computadores e se comunicam e coorde- nam suas ações através da transferência de mensagens. Segundo Andrew Tanenbaum, é uma “coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente”, já segundo George Coulouris, é uma “coleção de com- putadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados”. A principal motivação para a adoção de Sistemas Distribuídos é o compartilha- mento de recursos. Abaixo são listadas três características inerentes a Sistemas Dis- tribuídos: Concorrência de Componentes; Ausência de Clock Global; Independentes de falhas de componentes; Alguns desafios que podem ser apontados em relação a sua implementação são: Heterogeneidade de seus componentes; Abertura/Openness (componentes podem ser adicionados ou substituídos) Segurança: como prover segurança para sistemas híbridos/heterogêneos Escalabilidade (deve funcionar bem quando o número de usuários aumenta) Manipulação/Tratamento/Recuperação de falhas Concorrência de componentes Transparência * Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi- [email protected], [email protected]. Disciplina: Sistemas Distribuídos. Docente Responsável: Willy Tiengo. 1

Distributed Systems - Exercises

Embed Size (px)

DESCRIPTION

We define a distributed system as one in which hardware and software are located on computer networks and communicate and coordinate their actions through the messaging system. According to Andrew Tanenbaum, is a "collection of independent computers that appears to the user as a single, consistent system" since the second George Coulouris, is a "collection of autonomous computers interconnected by a computer network and equipped with software that allows sharing of system resources: hardware, software and data. "

Citation preview

Page 1: Distributed Systems - Exercises

Sistemas Distribuídos

Michel Alves dos Santos ∗

4 de maio de 2011

1 Introdução. Conceitue Sistemas Distribuídos, aponte a principal motivação de suaadoção, liste pelo menos três características e aponte alguns desafios relativos a suaimplementação.

Definimos um sistema distribuído como um sistema no qual componentes de hard-ware e software são localizados em redes de computadores e se comunicam e coorde-nam suas ações através da transferência de mensagens. Segundo Andrew Tanenbaum,é uma “coleção de computadores independentes que se apresenta ao usuário como umsistema único e consistente”, já segundo George Coulouris, é uma “coleção de com-putadores autônomos interligados através de uma rede de computadores e equipadoscom software que permita o compartilhamento dos recursos do sistema: hardware,software e dados”.

A principal motivação para a adoção de Sistemas Distribuídos é o compartilha-mento de recursos. Abaixo são listadas três características inerentes a Sistemas Dis-tribuídos:

• Concorrência de Componentes;

• Ausência de Clock Global;

• Independentes de falhas de componentes;

Alguns desafios que podem ser apontados em relação a sua implementação são:

• Heterogeneidade de seus componentes;

• Abertura/Openness (componentes podem ser adicionados ou substituídos)

• Segurança: como prover segurança para sistemas híbridos/heterogêneos

• Escalabilidade (deve funcionar bem quando o número de usuários aumenta)

• Manipulação/Tratamento/Recuperação de falhas

• Concorrência de componentes

• Transparência

∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: [email protected], [email protected]. Disciplina: Sistemas Distribuídos. Docente Responsável:Willy Tiengo.

1

Page 2: Distributed Systems - Exercises

2 Comunicação. Por que a comunicação entre Sistemas Distribuídos é realizada atravésda transferência de mensagens? Para que ocorra comunicação entre duas entidadesinseridas nesse contexto, o que devemos estabelecer?

A comunicação é realizada através da transferência de mensagens devido a ausênciade memória global compartilhada entre os componentes. Para que ocorra comunica-ção entre duas ou mais entidades inseridas nesse contexto devemos estabelecer umprotocolo(padrão, especificação) de comunicação.

3 Camadas de Software e Hardware em Sistemas Distribuídos. Conceitue Middleware,cite pelo menos dois produtos comerciais relacionados com esse conceito e disponhaos seguintes elementos em um diagrama de 4 níveis, colocando-os em ordem de co-municação dentro do contexto de Sistemas Distribuídos: [Middleware], [Aplicações eServiços], [Computadores e Hardware de Rede], [Sistema Operacionais].

Middleware é uma camada de software cujo propósito é mascarar heterogeneidadee prover um modelo de programação conveniente para fornecedores e programado-res de aplicação. É utilizado para mover ou transportar informações e dados entreprogramas de diferentes protocolos de comunicação, plataformas e dependências dosistema operacional. É composto por um conjunto de processos ou objetos em umgrupo de computadores, que interagem entre si de forma a implementar comunica-ção e oferecer suporte para compartilhamento de recursos e aplicativos distribuídos.Exemplos de produtos comerciais relacionados com esse conceito são:

• Java RMI (Remote Method Invocation)

• CORBA (Common Object Request Broker Architecture)

• Ginga (Gerenciador de funções de interatividade em TV digital)

Logo abaixo podemos visualizar como a comunicação entre os elementos providos eos próprios elementos estão dispostos em um diagrama de níveis:

Figura 1: Disposição dos elementos fornecidos em um diagrama de 4 níveis levando em conside-ração a ordem de comunicação dos mesmos dentro do contexto de Sistemas Distribuídos.

2

Page 3: Distributed Systems - Exercises

4 Arquitetura de Sistemas. Identifique os tipos de sistemas fornecidos logo abaixo le-vando em consideração a arquitetura que os mesmos apresentam e provendo um exem-plo ou situação de aplicação de cada um deles.

a. Um servidor respondendo a vários clientes e requisitando/respondendo a outro(s) servidor(es).

b. Um conjunto de servidores que executam de forma sincronizada um determinado serviçomantendo cópia (réplica) do conjunto de objetos sobre os quais o serviço é baseado ouparticionando-os entre as máquinas componentes dessa estratégia.

c. A requisição de informações e as respostas para essas requisições são executadas através deum intermediário que também pode possuir a função de armazenamento temporário dessasinformações(cache) com o intuito de agilizar o processo de resposta de pedidos recentes paraos quais a informação original não tenham sido alterada na fonte.

d. Tanto informação como meio de sincronização e acesso se encontram compartilhados, fazendocom que todos requisitem e respondam com um grau de hierarquia equilavente. Todos osserviços que estão sendo executados (cada qual em seu host/máquina) detêm o código daaplicação e o código de coordenação das ações de compartilhamento.

3

Page 4: Distributed Systems - Exercises

Do ponto de vista da Arquitetura de Sistemas o primeiro refere-se a arquiteturaCliente-Servidor. O servidor central poderia estar no papel de um servidor webprovendo páginas/conteúdo para vários clientes. Ao mesmo tempo, o servidor webestaria no papel de cliente no momento da requisição de informações a um servidorDNS. Servidores Web e a maioria dos serviços Internet são clientes do serviço DNS.

Já no segundo sistema teríamos uma simplificação de um arquitetura de ServiçosProvidos por Múltiplos Servidores, que se utiliza da replicação como estratégiapara aumentar a performance, a disponibilidade e melhorar a tolerância à falhas.Um bom exemplo seria a estrutura de serviços web provida pela google.com que émapeada sobre diversos servidores. Um outro exemplo seria o serviço NIS usadopara autenticação de usuários em rede. Cada servidor NIS tem sua própria réplicado arquivo de senhas contendo uma lista de nomes de login de usuários e senhascriptografadas.

Para o terceiro sistema teríamos uma arquitetura de Serviços de Procura e Ar-mazenamento Temporário - Proxy Server and Cache. Esse tipo de arquitetura émuitas vezes usada para prover segurança e respostas rápidas para requisições recen-temente realizadas, pois ocorre armazenamento temporário de todos os objetos queforam requisitados através desse serviço. Caso o objeto requisitado esteja em cache eo mesmo não tenha sofrido nenhuma atualização em seu servidor de origem então oobjeto armazenado temporariamente no servidor proxy será imeditamente remetidoao cliente. Um bom exemplo de utilização de servidores proxy é o serviço Squiddisponível para Sistemas Operacionais UNIX e Like UNIX.

Finalmente o último sistema diz respeito a Arquitetura Peer-to-Peer. A arqui-tetura Peer-to-Peer é uma arquitetura de sistemas distribuídos caracterizada peladescentralização das funções na rede, onde cada nodo realiza tanto funções de servi-dor quanto de cliente. O seu design garante que cada usuário contribua com recursospara o sistema, apesar de que eles podem diferir nos recursos que contribuem. Todosos nodos em um sistema peer-to-peer possuem as mesmas capacidades funcionais eresponsabilidades. Alguns exemplos dessa arquitetura são as redes de compartilha-mento Gnutella, Napster, P2PTV e BitTorrent.

5 Considere um ambiente no qual a descoberta de um determinado serviço (residente emum host/máquina) é feita através da disseminação de mensagens em broadcast. Consi-dere ainda que ao interceptar a mensagem de requisição o servidor que abriga o serviçosolicitado responda com um “i am here”. Explique porque o esquema apresentado nãoé adequado e como poderíamos melhorar a performance desse ambiente em relação adescoberta de um serviço.

O esquema apresentado não é adequado pois as solicitações em broadcast podemdegradar a performance da rede como um todo(impacto direto na escalabilidade domesmo). Uma solução e a introdução de um servidor controlador, que a priori co-nheceria todos os endereços dos serviços, ou seja, a implantação de um serviço denomeação.

4