Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Um sistema distribuído é aquele que as informações em fase de processamento são distribuídas para
vários computadores, em vez de ficarem confinadas a uma única máquina [Sommervillle, 2003].
Dois aspectos:
● Computadores independentes
● Um único sistema middleware
Exemplos de SDs:
● Amazon Marketplace ● Facebook
● Google ● Twitter
● Yahoo ● Youtube
O que é um middleware?
Middleware é o software que conecta programas separados e já existentes. Normalmente fica entre a
aplicação e o SO.
Para suportar computadores e redes simultaneamente, oferecendo uma visão de um sistema único, os
sistemas distribuídos são organizados por meio de uma camada de software.
O desafio para os projetistas de sistemas distribuídos está em projetar software e hardware para que eles
forneçam as características desejáveis dos sistemas distribuídos e ao mesmo tempo minimizem os
problemas inerentes a esses sistemas. Questões relevantes de projetos de sistemas distribuídos são a
identificação de recursos, comunicação, qualidade do serviço e a arquitetura do software.
Um sistema distribuído exige normalmente um software que gerencie as diversas partes e garanta que elas
se comuniquem e troquem dados. Os sistemas distribuídos podem ser implementados com diferentes
linguagens de programação, executados em processadores diferentes e podem utilizar diferentes
protocolos de comunicação. O software de gerenciamento , conhecido por middleware, é uma espécie de
intermediário dos diferentes componentes distribuídos do sistema.
Objetivos de um SD
● Fazer o link entre usuários e recursos; ● Transparência;
● Compartilhamento de recursos; ● Flexibilidade;
● Segurança; ● Escalabilidade.
● Reduzir a comunicação indesejada;
Transparência
Formas de ocultação para os usuários e desenvolvedores de aplicação. Por quê?
Porque deseja-se que o sistema seja percebido como único, ao invés de uma coleção de partes
independentes
● Objetivo: ocultar que os processos e recursos estão fisicamente distribuídos por vários
computadores.
● Um sistema distribuído apresenta aos usuários e aplicações como um único sistema de computador
denominado transparente.
● É uma das métricas de sucesso de um SD.
Sete formas de transparência:
Transparência Descrição
Migração Oculta que um recurso pode ser movido para outra localização.
Escalabilidade
Propriedade que mede a capacidade do sistema em lidar facilmente com uma quantidade crescente de
trabalho.
Três medidas para medir a escalabilidade:
Número de processos e/ou usuários (escalabilidade de tamanho)
Distância máxima entre os nós (escalabilidade geográfica)
Número de domínios administrativos (escalabilidade administrativa)
● Nenhuma máquina tem informação completa do estado do sistema (se uma máquina sair do ar, o
restante do sistema distribuído vai continuar funcionando);
● As máquinas tomam decisões com as informações locais;
● A falha no algoritmo não “quebra” todo o sistema;
● Não existe uma suposição de um relógio global.
Computação em Cluster
● Característica homogênea
● Hardware: conjunto de PCs ou estações de trabalho semelhantes
● Conexão entre os hardwares: rede local (LAN)
● Software:
● É normal ter o mesmo SO entre as máquinas
● Geralmente, um único programa executado em paralelo
● Normalmente usada para computação paralela
● Forte acoplamento entre os nós
Nó mestre:
Alocar tarefas aos nós, organizar a fila de tarefas e interface com usuários
Provê transparência de localização e migração
2) Quais são as duas grandes desvantagens do RMI e do RPC? Lembrando que ambos
dizem respeito aos middlewares de comunicação. [2 pontos]
Resposta: As duas principais desvantagens são:
a) O chamador e o chamado precisam estar ligados e em funcionamento no momento da
comunicação.
b) Os componentes comunicantes devem saber exatamente como se referir um ao outro.
O que é uma operação idempotente? A operação de excluir (de um banco de dados) um registro
de um aluno usando o seu identificador (ID) é uma operação idempotente? Justifique a sua
resposta. [2 pontos]
Resposta: a operação idempotente pode ser repetida várias vezes sem causar dano ao
sistema. A operação de excluir um registro de aluno usando o seu ID é uma operação
idempotente, visto que se o registro foi excluído na primeira tentativa, o sistema poderá
tentar outras vezes sem causar danos. Isso porque o sistema não encontrará mais esse
registro.
Atividade Avaliativa II
(3 pontos) É dito que as interfaces são escritas em uma linguagem específica como a IDL
(Interface Definition Language) para simplificar o desenvolvimento de sistemas distribuídos.
Explique em que sentido as IDLs facilitam (ou simplificam) o desenvolvimento de aplicações
distribuídas. Dentro do assunto de interfaces, estabeleça a diferença entre a interface requerida e
a provida.
A diferença é que na mobilidade fraca o código a ser executado é transferido para a outra
máquina antes da sua execução na máquina-destino, e a sua execução é iniciada desde o
começo. Na mobilidade forte, o segmento da execução é migrado de uma máquina para a
outra. Essencialmente, a execução de um código é iniciada na máquina original e depois a
sua execução é migrada para a outra máquina. Na mobilidade forte, a execução de um
processo pode ser parada, e na sequência, ser movida para a outra máquina; e então, a
execução pode ser retomada a partir do ponto em que parou. Assim, a implementação da
mobilidade forte é mais complexa e requer mais sofisticação.
(3 pontos) Cite e explique os três modelos de comunicação remota entre processos amplamente
utilizados e que foram estudados no âmbito de sistemas distribuídos.
(2 pontos) O que é o endereço Care of Address (COA)? Explique o motivo de um único endereço
COA ser compartilhado com múltiplos nós móveis visitantes a uma rede IPv4 externa.
O COA é um endereço que um nó móvel recebe, assim que ele visita uma rede externa (i.e.
quando o nó móvel não está na sua rede nativa). Como há escassez de endereços IPv4,
normalmente os nós móveis visitantes compartilham o mesmo endereço COA de uma rede
externa.
A nomeação simples faz uso dos identificadores únicos e normalmente não intuitivos para
endereçar uma determinada entidade. O endereço IP e o MAC (Media Access Control) são
exemplos de nomeação simples. A nomeação estruturada faz uso de nomes estruturados
que são compostos por várias partes; tais nomes são fáceis de serem manuseados e
lembrados por humanos. O exemplo de nomes estruturados inclui nomes de host da
Internet (exemplo www.univesp.br). Concluindo, uma das diferenças fundamentais é que a
nomeação simples é mais fácil de ser operada por máquinas, enquanto que a nomeação
estruturada é fácil de ser manuseada pelos usuários.
(2 pontos) Explique quais são as vantagens dos relógios lógicos sobre os relógios físicos.
A sincronização usando relógios lógicos é muito mais simples do que o relógio físico, pois
os relógios físicos dependem de que haja um relógio global (como o UTC) para sincronizar.
Muitas vezes é suficiente para um sistema entrar em um acordo sobre a hora local, o que
não precisa ser necessariamente a hora real. Ao usar relógios lógicos, não precisamos nos
preocupar com a sincronização global dos relógios físicos, mas apenas sincronizar
logicamente o relógio com os nós participantes. Para isso, podemos sincronizar uns com
os outros, utilizando técnicas como o algoritmo de Lamport. Em resumo, o uso de um
relógio físico em um sistema distribuído é muito mais difícil e não é mais preciso do que
um lógico.
(3 pontos) Cite uma vantagem e uma desvantagem dos algoritmos de exclusão mútua
centralizados e distribuídos.
Desvantagens:
● O coordenador é um único ponto de falha;
● O coordenado pode ser o gargalo de desempenho.
2) Por que a identificação de erros e falhas em um Sistema Distribuído pode tornar-se uma
tarefa difícil? Essa tarefa é um desafio porque geralmente é difícil afirmar que um servidor
ou uma máquina encontram-se fora de operação ou estão lentos pela sobrecarga da rede.
Isso torna desafiante dizer qual é o motivo da falta de resposta. Consequentemente, alguns
sistemas podem informar que um serviço não está disponível, embora, de fato, o servidor
esteja apenas sobrecarregado.
3) Por que nem sempre é uma boa ideia implementar o mais alto grau de transparência
possível nos Sistemas Distribuídos?
Visar o maior grau de transparência possível pode levar à uma perda considerável de
desempenho, o que pode ser inaceitável para algumas aplicações distribuídas.
11) Dê dois exemplos de aplicações que geralmente fazem uso da comunicação persistente
e assíncrona. Explique sua resposta.
Resposta: As aplicações de transferência de arquivos e de e-mails, por exemplo. Elas
normalmente requerem a comunicação persistente e assíncrona. A razão é que um usuário
envia a solicitação de envio para o middleware e o middleware garantirá enviar a
mensagem (ou o arquivo – no contexto da transferência do arquivo) para o servidor. Isso,
visto que o middleware do emissor armazenará a mensagem (ou o arquivo) antes de enviar
(persistente). O middleware também não bloqueia o receptor até que a sua requisição seja
aceita. Consequentemente, o middleware permite que o usuário receptor possa retornar
imediatamente à sua tarefa, sem que ele fique bloqueado (assíncrona).
12) Quais são as vantagens e as desvantagens da utilização de protocolos epidêmicos para
disseminação de informações?
Resposta: Vantagens: boa escalabilidade devido ao número de sincronizações entre
processos ser relativamente pequena. O referido protocolo é adequado para disseminar as
atualizações. Desvantagens: O protocolo pressupõe que todos os nós na rede conheçam
um ao outro. Além disso, disseminar a exclusão de um item torna-se trabalhoso.
13) Você consideraria que um URL como http://www.johnson.org/index.html é
independente de localização?
Sim. O endereço é genérico e independe da localização física. O endereço físico do
servidor web poderá ser alterado sem que haja uma mudança no nome da URL.
14) Explique por que o DNS não é a melhor escolha para fornecer informações de
localização de dispositivos móveis.
O DNS não é a melhor escolha para fornecer a localização porque ele não incorpora a
informação de localização geográfica nele. Note que os endereços IP normalmente não
representam uma localização geográfica específica, mas os endereços hierárquicos que
são distribuídos para uma determinada organização.
15) Dê alguns exemplos de identificadores verdadeiros.
Os exemplos incluem os números de ISBN para livros, números de identificação (série) de
produtos de software e hardware, números de funcionários dentro de uma única
organização e o número DOI (Document Object Identifier) para documentos científicos.
AVALIAÇÃO PRESENCIAL - P1
Questão 1 (2,5 pontos)
Explique o que faz a Transparência de Acesso dentro do contexto de sistemas distribuídos.
E a transparência de localização? O que ela realiza dentro do mesmo contexto?
Resposta:
AVALIAÇÃO PRESENCIAL - P
Q2) Nos dois itens abaixo indique V para verdadeiro ou F para falso:
a) A linguagem IDL (Interface Definition Language) permite descrever interfaces de
componentes independentes das linguagens de programação. Verdadeiro.
b) O middleware é o software que geralmente tenta tirar a complexidade das camadas
que se encontram entre o Sistema Operacional (SO) e a máquina, ou seja, ele tenta
remover a complexidade das camadas abaixo do SO.FALSO
Q4) Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) No sistema Publicar-Subscrever (Publish-Scribe) há um forte acoplamento entre os
componentes que publicam eventos e os que subscrevem e recebem estes eventos.
FALSO
b) A virtualização é uma tecnologia nova que surgiu com a popularização de
computadores PC. Isso porque os PCs geralmente demandam múltiplas plataformas
e Sistemas Operacionais diversificados, como o Windows e Linux. Verdadeiro
AVALIAÇÃO PRESENCIAL - P3
Questão 1 (2,5 pontos)
Explique o que faz a Transparência de Replicação dentro do contexto de sistemas
distribuídos. E a transparência de Migração? O que realiza dentro do mesmo contexto?
Resposta:
1) Pesquise sobre os principais fatores que determinaram o êxito da Web como a aplicação
de hipermídia de sucesso na atualidade. Por quê ela se destacou em meio a tantas outras
aplicações desenvolvidas anteriormente?
a) criação do protocolo HTTP, que permitiu estabelecer conexões simultâneas para obter
as mídias que compõem um hiperdocumento; e
b) adoção da linguagem HTML, que permitiu criar documentos hipermídia com um formato
de apresentação definido, além de estruturar o conteúdo de maneira eficiente;
(10 pontos) Com base nos materiais e nas discussões que tivemos até este momento na
disciplina, responda: qual a relação entre hipermídia e multimídia?
a) possibilidade de interação;
c) acesso não sequencial. Além disso, o aluno poderá argumentar que sistemas hipermídia
utilizam multimídia em seus hiperdocumentos (uma página Web composta por texto e
imagens, por exemplo).
3 pontos) Explique em linhas gerais as etapas adotadas pelo padrão JPEG para codificar
uma imagem.
(4 pontos) Por que é necessário transformar a imagem do domínio espacial para o domínio
de frequência?
Q1) Defina o princípio de mobilidade dos centros em sistemas hipermídia. cite e explique
um exemplo real da Web em que isto ocorre.
A rede não tem centro, ou melhor, possui permanentemente diversos centros que são
como pontas luminosas perpetuamente móveis, saltando de um nó a outro, trazendo ao
redor de si uma ramificação infinita de pequenas raízes, de rizomas, finas linhas brancas
esboçando por um instante um mapa qualquer com detalhes delicados, e depois correndo
para desenhar mais à frente outras paisagens do sentido.
Q2) Suponha uma imagem sem compressão com resolução 160 x 120 e 8bits por pixel.
Quanto tempo em segundos será necessário para transmitir essa imagem pela rede com
largura de banda equivalente a0? kbps (bbits por segundo? Considere 1 kbit = 1024bits.
300segundos
a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica
Q4) Assinale e justifique a alternativa correspondente ao algorítmo de compressão
abordado na seguinte definição: “Constrói uma árvore binária a partir de símbolos de
menor frequência”.
a) Algoritmo de Huffman
b) Codificação por carreira
c) Codificação por diferenças
d) DCT e quantização
e) Estimativa e compensação de movimentos
Uma árvore binária completa, chamada de árvore de Huffman é construída recursivamente
a partir da junção dos dois símbolos de menor probabilidade, que são então somados em
símbolos auxiliares e estes símbolos auxiliares recolocados no conjunto de símbolos. O
processo termina quando todos os símbolos forem unidos em símbolos auxiliares
formando uma árvore binária. A árvore é então percorrida, atribuindo-se valores binários
de 1 ou 0 para cada aresta, e os códigos são gerados a partir deste percurso.
Princípio da metamorfose
A rede hipertextual está em constante construção e renegociação. Ela pode permanecer estável
durante um certo tempo, mas esta estabilidade é em si mesma fruto de um trabalho. Sua
extensão, sua composição e seu desenho estão permanentemente em jogo para os atores
envolvidos, sejam eles humanos, palavras, imagens, traços de imagens ou de contexto, objetos
técnicos, componentes destes objetos etc.
Princípio de heterogeneidade
Os nós e as conexões de uma rede hipertextual são heterogêneos. Na memória serão
encontrados imagens, sons, palavras, diversas sensações, modelos etc., e as conexões serão
lógicas, afetivas etc. Na comunicação, as mensagens serão multimídias, multimodais, analógicas,
digitais etc. O processo sociotécnico colocará em jogo pessoas, grupos, artefatos, forças naturais
de todos os tamanhos, com todos os tipos de associações que pudermos imaginar entre estes
elementos.
Princípio de exterioridade
A rede não possui unidade orgânica nem motor interno. Seu crescimento e sua diminuição, sua
composição e sua recomposição permanente dependem de um exterior indeterminado: adição de
novos elementos, conexões com outras redes, excitação de elementos terminais (captadores) etc.
Princípio de topologia
Nos hipertextos, tudo funciona por proximidade, por vizinhança. Neles, o curso dos
acontecimentos é uma questão de topologia, de caminhos. Não há espaço universal homogêneo
onde haja forças de ligação e separação, onde as mensagens poderiam circular livremente. Tudo
que se desloca deve utilizar-se da rede hipertextual tal como ela se encontra, ou então será
obrigado a modificá-la. A rede não está no espaço, ela é o espaço.
a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica
PERGUNTA 1: Como saber a que taxa de amostragem um sinal de áudio deve ser
digitalizado para que não ocorra o efeito de aliasing?
Resposta: Para evitar o efeito de aliasing devemos seguir a frequência de Nyquist, ou seja,
a taxa de amostragem deve ser definida como pelo menos o dobro da componente de mais
alta frequência do sinal de entrada.
PERGUNTA 2: Qual o tamanho de uma música de 5 minutos digitalizada a uma taxa de
amostragem de 44100 Hz, estéreo e 8 bits por componente?
Resposta: A taxa de amostragem de 44100 significa que teremos 44100 amostras por
segundo para cada canal do som estéreo (direito e esquerdo), sendo que cada amostra
contém 8 bits ou 1 byte. Multiplicando tudo temos: 44100 x 1 x 2 x 60 x 5 = 26.460.000
bytes.
Resposta: A radiância é a quantidade total de energia que é emitida pela fonte de luz, e é
medida em watts (W). A luminância é medida em lumens (lm) e mede a quantidade de
energia que um observador percebe de uma fonte de luz. O brilho, por fim, incorpora a
noção de acromática de intensidade e é uma medida subjetiva, ou seja, depende do
contexto da imagem para se perceber o seu brilho.
PERGUNTA 4: Qual o tamanho de uma imagem RGB em formato 1280x1024 em que cada
pixel ocupa 24 bits?
Resposta: A imagem tem 1280 linhas por 1024 colunas, sendo que essa multiplicação
indica a quantidade de pixels da imagem. Um pixel, por sua vez, tem 24 bits, ou 8 bits por
componente (R, G e B), ou 3 bytes no total. Multiplicando tudo temos: 1280 x 1024 x 3 =
39.332.160 bytes.
Resposta: Podemos resolver esse exercício calculando primeiro a quantidade de bytes por
segundo do vídeo (taxa), e depois dividindo o armazenamento total do DVD pela taxa. A
quantidade de bytes por segundo do vídeo será de: 640 x 480 x 25 x 3 = 23.040.000
bytes/seg. O DVD conseguirá armazenar então: 4,7 x 109 / 23040 x 103 = 203,9 segundos ou
3,4 minutos.
A topologia de uma rede de hipermídia indica que ela funciona por proximidade ou
vizinhança, ou seja, o curso dos acontecimentos é uma questão propriamente topológica.
A mobilidade dos centros relaciona-se com a topologia pois a cada conexão, existem
novos centros ou possibilidades. Não existe uma central única na rede (o próprio leitor e
seu interesse são o centro).
O protocolo HTTP permite estabelecer conexões simultâneas com diversos servidores para
se obter os diferentes tipos de mídia que compõem um hiperdocumento. Tais conexões
ocorrem via TCP/IP e tem um limite de duração pré-estabelecido, o que facilita o
gerenciamento das conexões pelo navegador Web.
Um sistema multimídia requer que o acesso à informação seja feito de forma não linear,
sendo que o usuário é quem escolhe o quê, como e quando acessar o conteúdo. Além
disso, deve haver interatividade do usuário, ou seja, ele deve participar da atividade e não
ser um simples espectador passivo. Por fim, deve haver integração com outros programas
do computador, como bases de dados, codecs, interface gráfica, comunicadores, etc.
5) Por que é necessário digitalizar os dados para poder usá-los em sistemas multimídia?
Ambos são células fotossensíveis presentes na retina do olho humano. Os bastonetes são
em maior quantidade, estão espalhados por toda a retina e são responsáveis pela captura
de intensidade luminosa. Os cones são em menor número, estão mais concentrados no
centro da retina e são responsáveis pela captura das cores.
Neste tipo de animação, quadros-chave são criados pelos animadores como desenhos
estáticos, e o programa gera os quadros intermediários através de interpolação entre
pontos correspondentes de dois quadros consecutivos.
10) Por que a compressão de dados sempre será importante independente do avanço em
armazenamento e transmissão de dados?
A compressão sempre será importante pois ao mesmo tempo que as tecnologias para
armazenamento e transmissão de dados evoluem, a demanda dos usuários por mídias
cada vez mais sofisticadas também aumenta.
11) Qual a diferença entre compressão sem perdas e compressão com perdas?
A compressão sem perdas é dita reversível, ou seja, a mídia comprimida pode ser
recuperada integralmente após a descompressão. Já na compressão com perdas, a mídia
comprimida não pode ser recuperada integralmente, ou seja, o processo é irreversível.
Trata-se de um conjunto de técnicas que podem ser aplicadas em qualquer tipo de mídia, e
que alteram a representação da informação de modo que a quantidade de dados utilizada
seja reduzida, ocasionando uma compressão nos dados.
Redundância temporal é quando dados se repetem em uma mídia ao longo do tempo. Por
exemplo, em uma sequência de quadros em vídeo, muitas informações irão se repetir ou
variar pouco ao longo dos quadros.
A estimativa realiza uma busca por uma região que melhor se assemelha à do quadro alvo
na imagem de referência. Uma vez encontrada essa região, a compensação é realizada por
meio da subtração entre a região encontrada na imagem de referência e a região do quadro
alvo, formando um resíduo (erro de predição).
AVALIAÇÃO PRESENCIAL P5
Questão 1 (2,5 pontos)
Suponha uma imagem sem compressão com resolução 640 x 480 e 24 bits por pixel.
Quanto tempo (em segundos) será necessário para transmitir essa imagem pela rede com
largura de banda equivalente a 10kbps (kbits por segundo)? Considere: 1 kbit = 1024bits.
a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica
a) Algoritmo de Huffman
b) Codificação por carreira
c) Codificação por diferenças
d) DCT e quantização
e) Estimativa e compensação de movimento
GESTÃO DE PROJETOS
O
Áreas de conhecimento
● Gerenciamento da integração do projeto;
● Gerenciamento do escopo do projeto; o que vai ser tratado, o que vai ser desenvolvido;
● Gerenciamento do tempo do projeto; quando começa e quando termina
● Gerenciamento dos custos do projeto;
● Gerenciamento da qualidade do projeto;
● Gerenciamento dos recursos humanos do projeto; quem vai trabalhar? quais e quantas pessoas?
● Gerenciamento das comunicações do projeto;
● Gerenciamento dos riscos do projeto;
● Gerenciamento das aquisições do projeto;
● Gerenciamento das partes interessadas no projeto;
Boas práticas
Boas práticas:
● Existe um consenso geral de que a aplicação do conhecimento, habilidades, ferramentas e técnicas
pode aumentar as chances de sucesso de muitos projetos.
● Não significa que o conhecimento descrito deva ser sempre aplicado uniformemente a todos os
projetos A organização e/ou a equipe de gerenciamento do projeto é responsável por determinar o
que é apropriado para um projeto específico.
Gestão de escopo
Escopo:
Descrição documentada de um projeto quanto aos objetivos, aos resultados, à abordagem e ao conteúdo;
ou seja, ao que se pretende obter, como fazê-lo e as ações que envolve.
Gestão de escopo:
Assegurar que o projeto inclui todas as atividades necessárias, e apenas as necessárias, para ser
concluído com sucesso.
● Escopo do produto, em que são definidas e delimitadas as funções e as características do
produto ou do serviço a ser gerado pelo projeto;
● Escopo do projeto, que define e quantifica o trabalho a ser feito, a fim de gerar o produto ou
serviço tal como estabelecido em seu escopo.
Ele é composto por especificações e requisitos que descrevem o que deve ser entregue pelo projeto,
podendo ser mais ou menos detalhado conforme a complexidade de regras, características físicas ou até
mesmo impressões que irão compor o produto final. Esse é o ponto de partida fundamental para qualquer
projeto que busca atender a necessidade do cliente.
Conforme definição do Guia PMBOK (Project Management Body of Knowledge), o Escopo do projeto é o
trabalho que precisa ser realizado para entregar um produto, serviço ou resultado com as características e
funções especificadas anteriormente. Ou seja, é o escopo que vai definir os limites do projeto,
considerando tanto o que deve ou não deve ser feito.
O escopo do projeto representa a maneira com que vamos executar o trabalho para entregar o produto
que desejamos, contemplando objetivos, restrições, premissas, entre outros detalhes fundamentais para o
planejamento do projeto. Ele precisa ser deixar claro para toda a equipe envolvida, como o Projeto irá
entregar o Produto desejado pelo cliente.