Buscar

LISTA RESOLVIDA SISTEMAS DISTRIBUÍDOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal de Ouro Preto 
 Instituto de Ciências Exatas e Aplicadas 
 Departamento de Computação e Sistemas 
Campus João Monlevade - MG 
 
 
 
 
LISTA I – CSI433 SISTEMAS DISTRIBUÍDOS 
 
 
 
 
1 – Apresente uma definição para Sistemas Distribuídos e destaque as suas principais 
características. 
R: Definição: Segundo Tanenbaum, um Sistema Distribuído (SD) é um conjunto de 
computadores independentes que se apresenta a seus usuários como um sistema único e 
coerente. Essa definição apresenta alguns aspectos: 
1) Os componentes (computadores) são autônomos. 
2) Os usuários, sejam eles pessoas ou programas, acreditam que estão lidando com um único 
sistema. 
3) Os componentes se comunicam a todo momento. 
Características: Compartilhamento de recursos, Heterogeneidade, Escalabilidade, 
Transparência, Concorrência, Tolerância a falhas, Segurança. 
• Não é estabelecida nenhuma premissa em relação ao tipo de computador; 
• Componentes podem variar desde centrais, como mainframes de alto desempenho até 
pequenos nós em redes de sensores; 
• Não estabelecida nenhuma premissa em relação ao modo como os computadores são 
interconectados; 
• Os tipos de computadores e o modo como os mesmo de comunicam estão, na maioria 
das vezes, ocultos ao usuário; 
• Usuário podem interagir com um sistema distribuído de maneita consistente e unidorme, 
independente de onde a interação ocorra; 
• A escala de um SD deve ser relativamente fácil de ser expandida; 
• Um SD está sempre disponível mesmo que uma outra parte esteja temporariamente 
inativa; 
 
2 – Explique a importância do conceito de “Transparência” no projeto de um SD e seus 
principais tipos. 
R: Transparência: “Esconder” dos usuários a distribuição física dos recursos. 
➢ A importância do conceito de “transparência” está implícita no conceito de um Sistema 
Distribuído, pois o principal objetivo de um SD é que seus recursos estejam espalhados 
sem que o usuário tenha a noção real disso. Se o usuário tem conhecimento de como se 
dá a distribuição do sistema, então é muito provável que o SD falhe em seu objetivo, 
visto que será público uma eventual concentração de recursos. 
Principais Tipos de Transparência: 
1) Acesso: recursos locais e remotos acessados igualmente. 
• Oculta diferenças em representação de dados e o modo como os recursos 
podem ser acessados por usuários. 
• O mais importante é chegar a um acordo sobre como os dados podem ser 
representados por máquinas e Sistemas Operacionais diferentes. 
EX: Diferenças entre sistemas de nomeação e como arquivos são manipulados. 
2) Localização: usuários não sabem localização dos recursos. 
• Os usuários não podem saber a localização física de um recurso no sistema. O 
nome do recurso deve ser independente de sua localização física; 
 
 
 
• Em particular, pode-se conseguir transparência de localização ao se atribuir somente 
nomes lógicos aos recursos; 
• Nomes lógicos (URL): usuário acessa recursos da independente de onde ele está. 
EX: o URL não deve dar nenhuma pista sobre a localização do principal servidor 
Web -> http://www.ufop.br/index.html. 
3) Migração: recursos podem se mover sem trocar de nomes. 
• Recursos podem ser movidos sem alterar o modo como podem ser acessados 
proporcionam transparência de migração; 
• Mais vantajosa ainda é a situação na qual um recurso pode ser realocado enquanto 
está sendo usado sem que a aplicação e o usuário percebam. 
EX: Uso de dispositivos móveis sem fio, cujos usuários continuam a usar. 
4) Replicação: usuários não sabem no de cópias de um recurso. 
• Oculta que um recurso possa ser movido para outra localização durante o uso; 
• Recursos podem ser replicados para aumentar a disponibilidade ou melhorar o 
desempenho colocando uma cópia perto do lugar em que ele é acessado; 
• Estárelacionadaaocultarofatodequeexistemváriascópiasdeumrecurso. 
EX: Serviços em nuvem que podem replicar dados para servidores mais próximos; 
5) Concorrência: vários usuários compartilham recursos automaticamente. 
• Em muitos casos, o compartilhamento de recursos é cooperativo, como no caso da 
comunicação. Mas, também existe muitos exemplos de compartilhamento 
competitivo de recursos; 
• Nesses casos, é importante que cada usuário não perceba que o outro está 
utilizando o mesmo recurso; 
• Garantir exclusão mútua; 
• Evitar deadlocks; 
• Tolerar falhas, detectar e recuperar falhas; 
EX: Dois usuários independentes, em que cada um pode ter armazenado seus 
arquivos no mesmo servidor de arquivos ou pode acessar as mesmas tabelas em 
um banco de dados compartilhado. 
6) Falha: um usuário não percebe que um recurso deixou de funcionar bem. 
• Mascarar falhas em um SD é complicado, pois o sistema muitas vezes não 
consegue diferenciar um recurso morto de um recurso muito lento. 
EX: Conectar-se a um servidor Web ocupado e, após um período, o tempo de 
browser se esgotará e ele avisará que a página Web não está disponível. 
3 – Cite três tipos de recurso de hardware e três 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: Recursos de Hardware: Disco, memória, processadores. 
Recursos de Software: Bancos de Dados, Arquivos, protocolo de comunicação. 
➢ Os processadores compartilham recursos de hardware e, na maioria das vezes 
apresentam capacidade de processamento bem similares. Em sistemas com 
multiprocessadores assimétricos isso acontece de forma diferente, pois geralmente um 
processador tem a responsabilidade de distribuir os recursos do sistema para os demais 
processadores. Já em sistemas de multiprocessadores simétricos o conceito de Sistema 
distribuído se encaixa melhor, pois como todos os processadores são tratados de forma 
equivalente, os mesmos podem assumir tarefas ou processos de outros, sendo que 
também podem ser executadas de forma concorrente em núcleos diferentes que estejam 
disponíveis. Em relação a dispositivos de entrada/saída e a memória, os acessos de 
processadores a eles ocorrem através de um mecanismo de intercomunicação com 
barramento único. 
➢ A memória principal do computador é compartilhada pelos processadores através de um 
único barramento que os interliga, isso gera um gargalo no sistema, visto que os acessos 
são seriais e sistema fica impossibilitado de passar mais de uma instrução por vez. 
 
 
4 – Considere as estratégias de implementação de MMOG (massively multiplayer online 
games) discutidas na Seção 1.2.2 do livro texto. 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. 
 
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é-definidas 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. 
 
6 – Qual o principal papel do middleware em um sistema distribuído? 
R: O principal papel de um middleware em um SD é suportar redes heterogêneas formadas 
por vários tipos de dispositivos oferecendo sempre uma visão unificada. O middleware é 
concedido por meio de uma camada de software que está situada logicamente entre o nível 
mais alto, composta por usuários/aplicações e uma camada mais baixa, que consiste em 
sistemas operacionais e facilidades básicas de comunicação. 
 
 
Figura: Um sistema Distribuído organizado como um middleware 
 
Na figura, há três aplicações, sendo que a aplicação B é distribuída para as máquinas 2 e 3 
que trabalham em sistemas operacionais diferentes. 
O SD não deixa que divergências de hardware e de sistemas operacionais das aplicações 
distribuídas sejam visíveis. A camada Middleware apresenta-se a diversas máquinas, 
oferecendo a mesma interface a cada aplicação. 
O sistema distribuído proporciona os meios para que os componentes de uma única aplicação 
distribuída se comuniquem uns com os outros, mas também permite que diferentes aplicações 
se comuniquem. Ao mesmo tempo, ele oculta, do melhor e mais razoável modo possível, as 
diferenças em hardware e sistemas operacionais para cada aplicação. 
 
 
 
7 – Apresente e discuta sobre as principais diferenças entre um Sistema de Computação 
Paralela e um sistema de Computação Distribuído e associe aos conceitos de Grid e 
Cluster de computadores. 
R: Em um sistema de Computação Paralela, as operações trabalham com o conceito de que 
as tarefas sempre podem ser divididas em tarefas menores, que podem ser resolvidas em 
paralelo, de forma concorrente. A memória é compartilhada, as máquinas possuem capacidade 
de processamento similares e o objetivo é aumentar a vazão ou reduzir o tempo de serviço. 
Em um sistema de Computação Distribuída as aplicações são descentralizadas, e bem 
escaláveis. Elas compartilham recursos fisicamente dispersos e os integra. 
➢ A diferença mais gritante entre os sistemas paralelo e distribuído é que os sistemas paralelos 
exigem muitos processadores dentro de uma única configuração, já os sistemas distribuídos 
podem trabalhar com o aproveitamento de poder de processamento de diversas máquinas. 
A computação em Grid consiste em sistemas distribuídos que costumam ser montados como 
uma sequencia de computadores, nos quais cada sistema pode possuir um domínio diferente. 
Em Cluster de Computadores, os hardwares são bem parecidos, com capacidade de 
processamento mais homogênea. Geralmente, são conectados por uma rede local de alta 
velocidade, com as máquinas executando o mesmo O.S. 
 
8 – 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: Em um Sistema Distribuído se um serviço é implementado por um servidor deve ser 
possível que aplicações distribuídas também implementem esse serviço de modo transparente 
a clientes/aplicações, por diversas razões como, facilidade de acesso, de possíveis 
transferências, pela capacidade de processamento, entre outros motivos. 
Fazer multicast de todos os pedidos seria uma forma de proporcionar transparência ao cliente, 
é um método muito útil no âmbito dos sistemas distribuídos, pois pode ser tolerante a falhas, já 
que os pedidos são replicados, por exemplo: se um pedido apresentar falhas ou se tornar 
insuportavelmente lento, é possível que o mesmo pedido, já replicado, não apresenta falhas e 
trabalhe intactamente. 
 
9 – Dê três exemplos específicos e contrastantes dos níveis de heterogeneidade cada 
vez maiores experimentados nos sistemas distribuídos atuais. 
R: É preciso avaliar a heterogeneidade a nível de: 
Hardware: A distribuição dos sistemas deve atender a aplicação de todos os tipos cujos 
dispositivos, atualmente apresentam discrepâncias bem significativas, tanto em relação a 
memória, processamento e tipo. Algumas são Desktops, outros notebooks, smartphones. 
Sistemas Operacionais: Há discrepância realmente significativas quanto ao uso de sistemas, 
podendo ser SOs de vários tipos e fabricantes diferentes, com diferentes mecanismos de 
segurança. 
Rede: Há diferenças nos protocolos para redes de tipos diferentes como IP, TCP, UDP, SMTP. 
 
10 – Descreva e ilustre a arquitetura cliente-servidor de um aplicativo de Internet 
importante (por exemplo, Web, correio eletrônico ou outros). 
R: 
 
1. O usuário envia dados ao servidor. 
(Ex: URL de um site) 
2. O servidor usa o interpretador para os dados. 
3. Pode ser que a página a ser oferecida requeira 
informações de algum arquivo interno. 
4. Solicita informações de um BD e incorpora a página. 
5. A página é montada e configurada. 
6. O servidor envia a página para o navegador do 
usuário e monta a apresentação final da página. 
Fonte: Carambola Digital 
 
 
11 – Construir um servidor concorrente por meio da multiplicação de um processo tem 
algumas vantagens e desvantagens em comparação com servidores multithread. Cite e 
explique algumas. 
R: Os servidores multithread não manipulam por si próprio os processos ou threads que 
devolvem a resposta ao cliente. Os threads são computacionalmente mais baratas de serem 
criadas e gerenciadas do que os processos e o compartilhamento de recursos pode ser obtido 
de forma mais eficiente entre threads do que entre processos, pois elas compartilham um 
ambiente de execução. Chaveamento entre threads: é uma vantagem para o desempenho dos 
threads. Executar um thread (que pertence a processos diferentes) em detrimento de outra em 
determinado processador gera um custo computacional, pois pode acontecer diversas vezes 
durante um thread. Dessa forma, prioriza-se o chaveamento entre threads que compartilham o 
mesmo ambiente de execução, porque é consideravelmente menos oneroso do que o 
chaveamento entre threads pertencentes a processos diferentes. 
 
12 – Considerando o projeto de um serviço onde os conceitos de mobilidade de código 
serão aplicados, comente sobre quais questões o projetista deve ser levar em conta 
antes de realizar as suas escolhas. 
R: As tecnologias que visam a mobilidade de código permitem que partes de códigos possam 
ser retransmitidos através da rede para serem executados em locais remotos. Quando se 
pensa em mobilidade de código, o objetivo é prover mais desempenho a determinada 
aplicação. Se for um recurso muito específico é possível que não seja possível ser movido. É 
necessário avaliar se a transparência de mobilidade é garantida e é imprescindível que a 
aplicação seja autônoma para migrar dentro de um sistema distribuído 
 
13 – Um mecanismo de busca é um servidor Web que responde aos pedidos do cliente 
para pesquisar em seus índices armazenados e (concomitantemente) executa várias 
tarefas de Web crawling (spiders) para construir e atualizar esses índices. Quais são os 
requisitos de sincronização entre essas atividades concomitantes? 
R: Web crawlers são executados em segundo plano quando se fala em um mecanismo debuscas. Usa-se pedidos http para ter acesso ao maior número de servidores possíveis na 
internet. Um mecanismo de busca pode se comportar tanto como um servidor ou como cliente, 
pois as buscas de usuários são respondidas; executa web crawlers que agem como clientes de 
outros servidores. Essas atividades possuem pouca necessidade de serem sincronizadas, visto 
que o servidor tem como dever responder as requisições do cliente e as ações do web crawler 
executam requisições a outros servidores. 
 
14 – Frequentemente, os computadores usados nos sistemas peer-to-peer são 
computadores desktop dos escritórios ou das casas dos usuários. Quais são as 
implicações disso na disponibilidade e na segurança dos objetos de dados 
compartilhados que eles contêm e até que ponto qualquer vulnerabilidade pode ser 
superada por meio da replicação? 
R: Nesse tipo de arquitetura, os processos que englobam uma atividade possuem papéis 
parecidos, trabalhando de forma cooperativa em pares (peers), sem diferenciação entre 
processos clientes e processos servidores. O objetivo de um sistema peer-to-peer é explorar os 
recursos de um grande número de computadores para o comprimento de uma dada tarefa ou 
atividade, por isso esse meio possui um grande chamativo para disseminação de vírus, sendo 
ainda mais agravado pelo fato de ser difícil controlar o tráfego nesse modelo. 
 
Em sistemas peer-to-peer, um tipo de ataque muito comum são os de negação de serviços, o 
ataque DoS – Denial of Service – que impedem que servidores executem suas atividades. 
Dessa forma os computadores ficam mais vulneráveis, visto que os protocolos de segurança 
não serão executados eficientemente e a disseminação de malwares ocorrerá de forma 
deliberada. A replicação pode ser útil em manter os computadores em funcionamento, 
provendo tolerância às falhas, até certo ponto, pois as aplicações mal intencionadas ou vírus 
poderiam, também, se beneficiar da replicação para multiplicar-se e deixar o sistema ainda 
mais infectado. 
 
 
15 – Quais são as principais tendências em termos de desenvolvimento e uso de 
sistemas distribuídos? Dê alguns exemplos. 
R: Os sistemas distribuídos sempre foram muito aplicáveis. Ainda hoje, há grande ascensão no 
uso deles, principalmente em aplicações de multimídia, seja no mundo mobile ou web. Para 
web, a tendência é que se tenha buscadores mais eficazes implementando aplicações mais 
sofisticadas, baseando-se em padrões de pesquisa (envolve IA), a W3C é uma organização 
que busca a padronização da World Wide Web, essa padronização envolve programas que 
tentam acessar códigos para entender onde devem ser implementado cada informação; isso 
envolve o uso de uma aplicação muito bem distribuída para que o acesso aos códigos seja feito 
facilmente e de forma eficiente. 
 
16 – Em geral, a segurança em SDs é mais difícil de ser obtida do que em sistemas 
centralizados. Explique os principais motivos. 
 R: Em sistemas centralizados, as informações estão, consequentemente, centralizadas. Sendo 
assim, é um pouco menos complicado prover segurança a uma aplicação, que é executada em 
um mainframe, por exemplo. Em sistemas distribuídos, lida-se com redes de computadores 
diferentes com máquinas diferentes, que possuem sistemas operacionais diferentes, 
capacidade de processamento e memórias diferentes. Dessa forma, o desafio de manter a 
segurança contra atividades mal intencionadas requer o uso de uma estratégia mais 
abrangente para proteger todos os nós do sistema, visto que há grande número de variáveis. O 
grande poder computacional que os sistemas distribuídos gera, deve ser acompanhado por 
aplicações que mantenham a segurança, se há acesso indevido aos dados no sistema significa 
que as ações de segurança estão sofrendo falhas. 
 
17 – A comunicação em SDs é fundamental. Cite e explique os principais métodos 
existentes para se implementar essa comunicação. 
R: Sockets: 
É a forma de possibilitar que dois processos se comuniquem (Inter-Process 
communication), esses processos podem ou não estar no mesmo componente. Os 
sockets estão entre a camada de transporte e a camada de aplicações, propiciando uma 
interface entre a aplicação e a rede de forma muito transparente. Ex: Navegador Web. 
 
• RPC – Remote Procedure Call: 
Dada a dificuldade em programar para ambientes distribuídos, o RPC visa tornar fácil a 
implementação de aplicações distribuídas, permitindo chamada de procedimento remoto 
como se fosse local. O RPC “esconde” o código das chamadas a rede em 
procedimentos chamados stubs – procedimentos com código de chamadas a rede. 
 
• RMI – Remote Method Invocation: 
RMI – Java também é um mecanismo para permitir a invocação de métodos que estão 
em máquinas diferentes; é um mecanismo de chamada de procedimentos remotos 
orientada a objetos. 
 
• CORBA – Commom Object Request Broker Architecture: 
CORBA visa estabelecer a troca de dados entre os sistemas distribuídos de forma 
simplificada. Dada a diversidade de componentes nos sistemas distribuídos, ele atua 
propiciando transparência na comunicação. 
 
• EJB – Enterprise Java Bean: 
É usado em implementações baseadas em máquinas que possuem escalabilidade, 
geralmente, apresentando lógicas específicas para um tipo de negócio. 
 
• Web Services: 
É um método usado para integrar componentes, propiciando a comunicação em 
sistemas que implementam aplicações diferentes. Os Web Services devem possibilitar 
que as aplicações mandem dados e os recebam, podendo cada aplicação implementar a 
sua própria linguagem que será traduzida para uma universal, em formatos 
intermediários (Ex: Json, xml), 
 
18 – Para pensar de forma genérica sobre as possíveis ocorrência de certas situações 
em SDs o livro texto usa o que chama de “modelos fundamentais”. Explique o são esses 
modelos de forma geral e o que ele considera nos modelos específicos apresentados 
abaixo. 
R: Os modelos de arquitetura para sistemas distribuídos apresentam propriedades 
fundamentais idênticas. Todos são compostos de processos que se comunicam por meio do 
envio de mensagens através de uma rede de computadores. É necessário, também que todos 
possuam os mesmos requisitos de projeto, se preocupar com as características de 
desempenho e confiabilidade dos processos e das redes de comunicação e com a segurança 
dos recursos presentes no sistema. Um modelo fundamental deve conter apenas os 
ingredientes essenciais que precisamos considerar para entender e raciocinar a respeito de 
certos aspectos do comportamento de um sistema. O objetivo de um modelo é: 
 
- Tornar explícitas as suposições relevantes sobre o sistema que está sendo modelado; 
- Generalizar ações sobre o que é possível ou impossível, dadas essas suposições. As 
generalizações podem ser algoritmos de propósito geral ou propriedades desejáveis. 
 
• Modelos de interação: a computação é feita por processos; eles interagem passando 
mensagens, resultando na comunicação (fluxo de informações) e na coordenação 
(sincronização e ordenação das atividades) entre eles. O modelo de interação deve refletir o 
fato de que a comunicação ocorre com atrasos que, frequentemente, têm duração 
considerável. A precisão com a qual processos independentes podem ser coordenados é 
limitada pelos atrasos de comunicação e pela dificuldade de se manter a mesma noção de 
tempo entre todos os computadores de um sistema distribuído. 
 
• Modelos de falhas: a operação correta de um sistema distribuído é ameaçada quando ocorre 
uma falha em qualquer um dos computadores em que ele é executado (incluindo falhas de 
software) ou na rede que os interliga. O modelo de falhas define e classifica as falhas. Isso 
fornece uma base para a análise de seus efeitos em potencial e para projetar sistemas capazes 
de tolerar certos tipos de falhas e de continuar funcionando corretamente. 
 
• Modelos de segurança: a naturezamodular dos sistemas distribuídos, aliada ao fato de ser 
desejável que sigam uma filosofia de sistemas abertos, expõem-nos a ataques de agentes 
externos e internos. O modelo de segurança define e classifica as formas que tais ataques 
podem assumir, dando uma base para a análise das possíveis ameaças a um sistema e, 
assim, guiando seu desenvolvimento de forma a ser capaz de resistir a eles. 
 
19 – Faça uma análise geral sobre os servidores multimídia e suas principais diferenças 
em relação aos servidores tradicionais. Aproveite para consolidar seus conhecimentos 
sobre servidor com estado e sem estado. 
R: As mídias são dados contínuos, baseados no tempo (como áudio e vídeo digital). As 
aplicações multimídia envolvem a distribuição de fluxos dos dados multimídia com restrições 
temporais para os usuários finais, ou sejam, os fluxos de dados multimídia são gerados e 
consumidos em tempo real, fazendo com que, consequentemente, os servidores sejam 
sistemas em tempo real, pois precisam executar tarefas e apresentar resultados de acordo com 
um escalonamento determinado externamente. Esse escalonamento é quem vai determinar o 
“grau de atraso” (stream) na execução das tarefas em um sistema; o quão ajustado o sistema 
está para permitir que aplicação trabalhe com streams sem maiores problemas, usufruindo da 
chamada QoS – Quality of Service. Um servidor multimídia deve possuir maior capacidade de 
processamento para suportar os processos de escalonamento, maior capacidade de 
armazenamento, implementações de posicionamento e balanceamento de carga. 
Servidores com estado armazenam informação sobre cada cliente, as operações podem ser 
implementadas de forma mais eficiente e as mensagens com pedidos são menores. 
Servidores sem estado devem implementar toda a informação necessária para seu 
processamento, apresentam maior escalabilidade e sua implementação é, consideravelmente, 
mais simples que a de um servidor com estado.

Outros materiais