Buscar

Sistemas distribuídos 2

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 11 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 11 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 9, do total de 11 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

Sistemas distribuídos
01)Discuta como garantir a heterogeneidade dos SDs.
A Internet permite aos usuários acessarem serviços e executarem aplicativos por meio de um conjunto heterogêneo de computadores e redes. A heterogeneidade (isto é, variedade e diferença) se aplica aos seguintes aspectos: 
· Redes; 
· Hardware de computador;
· Sistemas operacionais;
· Linguagens de programação;
· Implementações de diferentes desenvolvedores. 
Embora a Internet seja composta de muitos tipos de redes, suas diferenças são mascaradas pelo fato de que todos os computadores ligados a elas utilizam protocolos Internet para se comunicar. Por exemplo, um computador que possui uma placa Ethernet tem uma implementação dos protocolos Internet, enquanto um computador em um tipo diferente de rede tem uma implementação dos protocolos Internet para essa rede. Os protocolos Internet são implementados em uma variedade de redes diferentes. Os tipos de dados, como os inteiros, podem ser representados de diversas maneiras em diferentes tipos de hardware; por exemplo, existem duas alternativas para a ordem em que os bytes de valores inteiros são armazenados: uma iniciando a partir do byte mais significativo e outra, a partir do byte menos significativo. Essas diferenças na representação devem ser consideradas, caso mensagens devam ser trocadas entre programas sendo executados em diferentes hardwares.
04) O que vem a ser um SD?
Sistema distribuído é de um sistema que possui componentes localizados em computadores interligados em rede e que se comunicam e coordenam suas ações através da troca de mensagens entre os componentes. É comum pensarmos em componentes como sendo apenas servidores e máquinas conectadas em rede, mas quando falamos de componentes podem ser componentes de hardware (servidores) ou de software (aplicações e serviços).
Os componentes interligados em rede podem estar separados por qualquer distância. No mesmo edifício de uma empresa, na mesma cidade, mesmo estado, no mesmo país ou até em continentes diferentes.
Exemplos de Sistemas Distribuídos:
Em nossos dias todas as aplicações são baseadas em redes de computadores. Nenhuma aplicação ou serviço funciona de forma isolada. As redes são projetadas de forma a suportar uma ampla gama de serviços e aplicações. 
São alguns exemplos de sistemas distribuídos:
· A internet é o maior exemplo de sistema distribuído
· Qualquer aplicação intranet
· Qualquer aplicação mobile
· Aplicações e serviços baseados na Computação em Nuvem
05) O que vem a ser um serviço? E um servidor?
O termo serviço é usado para designar uma parte distinta de um sistema de computador que gerencia um conjunto de recursos relacionados e apresenta sua funcionalidade para usuários e aplicativos;
O termo servidor se refere a um programa em execução (um processo) em um computador interligado em rede, que aceita pedidos de programas em execução em outros computadores para efetuar um serviço e responder apropriadamente;
09) Diferencie computação móvel, pervasiva e ubíqua.
Computação móvel representa um novo paradigma computacional que tem como objetivo prover aos usuários acesso permanente a rede independente de sua localização física. Esse acesso pode ser feito utilizando um dispositivo computacional portátil como computadores laptops ou palmtops, ou telefones celulares. Já a computação pervasiva se destina a sugerir que pequenos equipamentos de computação finalmente se tornarão tão entranhados nos objetos diários que mal serão notados. Isto é, seu comportamento computacional será transparente e intimamente vinculado à sua função física. 
A computação ubíqua está entre a computação pervasiva e a computação móvel, sendo a visão de um mundo no qual o custo do poder computacional e das comunicações digitais tornam-se tão baratos a ponto de poderem ser embutidos em todos os objetos que nos cercam no dia-a-dia, tendo o foco no
enriquecimento de nosso ambiente computacional através da valorização da sensibilidade ao contexto, interação casual e distribuição espacial dos computadores.
10) Quais as funções do servidor e do cliente numa arquitetura Cliente-servidor?
Os servidores oferecem serviços a processos usuários, ou seja, executam a tarefa solicitada e enviam uma resposta ao cliente que se traduz nos dados solicitados. 
É o processo que responde a uma mensagem solicitando a realização de alguma tarefa por parte do cliente. O processo servidor é chamado de back-end. 
O processo servidor pode oferecer serviços a muitos clientes, realiza pesquisas, filtragens e atualizações em bancos de dados. 
Os serviços podem ser realizados diretamente pelo processo servidor ou através de processos escravos criados por este para atender cada pedido do cliente, o que libera o processo mestre do servidor para receber outras solicitações.
 Os clientes solicitam um determinado serviço, através do envio de uma mensagem ao servidor. Enquanto o processo servidor está trabalhando a solicitação, o cliente está livre para realizar outras tarefas.
O processo cliente realiza o envio das mensagens fazendo algum pedido ao servidor. 
O cliente é a parte que interage com o usuário, possui a interface que o usuário utiliza para requisitar as tarefas ao servidor, sendo chamado de front-end da aplicação. 
Os processos clientes gerenciam as atividades dos usuários e realizam as validações dos dados informados por estes.
13) O que vem a ser um cluster?
Chama-se “cluster” ao conjunto de computadores que se relacionam através de uma rede de alta velocidade, atuando como uma unidade (ou seja, como um único computador).
Quando muitos computadores trabalham como um “cluster”, a capacidade de cálculo é multiplicada, o que permite que esses computadores adquiram maior potência. O potencial individual de cada equipamento aumenta e assim o cluster funciona como uma espécie de supercomputador.
Em resumo, o que um “cluster” faz é aumentar o desempenho. Geralmente, é mais barato unir vários computadores em um “cluster” do que ter um único computador com uma capacidade de cálculo semelhante.
Em um disco rígido (disco duro), “cluster” é um grupo de setores localizados em espaços contíguos, que constituem a menor unidade de armazenamento no disco em questão. Um arquivo pode ser armazenado em um ou mais “clusters”.
No mundo da indústria, um “cluster” é um grupo de empresas que estão inter-relacionadas na mesma área de atuação. Um “cluster” horizontal, por exemplo, permite que várias empresas localizadas no mesmo nível compartilhem determinados recursos.
18) Diferencie SDs síncronos, de assíncronos
Um Sistema Distribuído síncrono, como sendo um sistema com os limites definidos de tempo para executar cada etapa de um processo tem limites inferiores e superiores conhecidos, cada mensagem transmitida sobre um canal é recebida dentro de um tempo limitado conhecido, cada processo tem um clock local cuja drift rate de tempo real tem um limite conhecido. É possível sugerir limites inferiores e superiores para o tempo de execução de processos, retardo de mensagens e clock drift em um SD.
 Mas, é difícil chegar em valores realísticos e prover garantia dos valores escolhidos. A menos que os valores dos limites possam ser garantidos, qualquer projeto baseado sobre os valores escolhidos, não poderá ser confiável. Contudo, modelando um algoritmo como um sistema síncrono, pode ser útil para dar uma idéia de como ele se comportará em um sistema distribuído real. Em um SD síncrono é possível usar timeouts, por exemplo, para detectar a falha de um processo, como mostrado na seção sobre modelo de falhas.
A diferença entra os dois sistemas é que o sistema distribuído assíncronos é um sistema no qual não existem limites sobre rapidez na execução de processos, por exemplo, uma etapa de um processo pode tomar 1 pico-segundo (1seg x 10E-12) e uma outra etapa 1 nano-segundo (1 seg x 10E-9); tudo o que se pode dizer é que cada etapa pode levar um tempo longo arbitrariamente. Atraso na transmissão de mensagens Por exemplo, uma mensagem de um processo A para um processo B pode ser entregueem tempo mínimo e uma outra pode tomar alguns minutos ou horas. 
Drift Rates dos clocks - A drift rate de um clock é arbitrária. O modelo assíncrono não permite nenhuma hipótese sobre intervalos de tempo envolvida em qualquer execução. Isto, exatamente modela a Internet, na qual não existe nenhum limite intrínseco sobre carga de servidores e carga de rede, e portanto, sobre quanto tempo ela leva para transferir um arquivo usando FTP. Algumas vezes uma mensagem de email pode levar dias para chegar ao destinatário.
 
19) O que vem a ser servidor de aplicação? Qual a sua utilidade?
Um servidor de aplicação (Application Server) é um servidor/serviço que disponibiliza um ambiente para a instalação e execução de certas aplicações, centralizando e dispensando a instalação nos computadores clientes, os servidores de aplicação também são conhecidos como software de middleware.
A utilidade do servidor de aplicações é disponibilizar uma plataforma que abstraia do desenvolvedor de software algumas das complexidades de um sistema computacional.
Com a finalidade de implementação deste Servidor tem como principal objetivo a centralização da Informação, bem como os Arquivos de Usuários, Banco de Dados, Políticas de Grupos, Elaboração de Rotinas de Backups Automatizadas, Controles de Acessos, visando Organização, Centralização, Integridade, Segurança e Disponibilidade da informação consequentemente obtendo Aumento de Produtividade.
21) O que vem a ser migração de código? Dê um exemplo
O termo migração de código, ou ainda, código móvel, é usado para se referir ao código de programa que pode ser transferido de um computador para outro e ser executado no destino – os applets Java são um exemplo. Um código destinado à execução em um computador não é necessariamente adequado para outro computador, pois, normalmente, os programas executáveis são específicos a um conjunto de instruções e a um sistema operacional. 
22) O que são Middlewares? De que forma podem ser utilizados na construção de aplicações distribuídas?
O middleware é o software que se encontra entre o sistema operacional e os aplicativos nele executados. Funcionando de forma essencial como uma camada oculta de tradução, o middleware permite a comunicação e o gerenciamento de dados para aplicativos distribuídos. Muitas vezes, o middleware é chamado de “encanamento”, uma vez que ele conecta dois aplicativos para que os dados e bancos de dados possam ser facilmente transportados através do “cano”. O uso do middleware permite que os usuários executem solicitações como enviar formulários em um navegador da Web ou permitir que o servidor Web apresente páginas dinâmicas da web com base no perfil de um usuário.
Exemplos comuns de middleware incluem middleware de banco de dados, middleware de servidor de aplicativos, middleware orientado a mensagens, middleware de web e monitores de processamento de transações. Normalmente, cada programa oferece serviços de sistemas de mensagens para que diversos aplicativos possa se comunicar utilizando estruturas de mensagens como protocolo SOAP, serviços Web, REST (representational state transfer) e JSON (JavaScript Object Notation). Embora todos os tipos de middleware executem funções de comunicação, o tipo que uma empresa escolherá depende de qual serviço está sendo utilizado e qual tipo de informação deve ser comunicado. Isso pode incluir autenticação de segurança, gerenciamento de transações, consultas de mensagens, servidores de aplicativos, servidores da web e diretórios. O middleware também pode ser utilizado para processamento distribuído com ações que ocorrem em tempo real em vez de envio e recebimento repetitivo de dados.
23) De que forma a ordenação de eventos é aplicada em SDs?
O conceito de ordenação temporal dos eventos está diretamente associada à forma humana de pensar sobre sistemas. Considerar que um evento ocorrido em um determinado instante t no tempo forçou a ocorrência de outro, que ocorreu no instante t + i (sendo i > 0), nos passa a idéia de sincronismo entre os eventos, que neste caso são dependentes um do outro na relação de causa e efeito em função do tempo. Fatores como concorrência e não-determinismo são intrínsecos aos sistemas distribuídos, caracterizando-os como sistemas desprovidos de sincronização. A conjunção desses fatores e a falta de um relógio global para todas as máquinas pertencentes a um sistema distribuído faz com que não tenhamos uma relação de ordenação temporal entre a ocorrência de eventos em máquinas distintas.
O assincronismo característico de sistemas distribuídos faz com que a relação causa e efeito, ou a relação “aconteceu antes” (happened before), não seja estabelecida e conhecida naturalmente. E esta ordenação se faz necessária para a construção de uma linha (trace) de execução de um sistema distribuído. Sendo que esta linha tem que obedecer à relação causa e efeito entre os eventos ocorridos.
24) Numa arquitetura C/S, diferencie cliente magro de um cliente gordo.
Cliente magro é um programa de cliente que tem uma função muito mínima que só usa os recursos que estão sendo fornecidos por um computador host ou servidor. Seu trabalho é bastante simples: exibir os resultados que o servidor gera. Tudo que ele precisa é de um servidor para fazer o heavy-lifting (que é o processamento). Os clientes magros podem ser vistos como um serviço para os clientes através de uma interface de utilizador que está a ser servida aos clientes. Clientes finos tornam-se uma opção melhor quando o servidor tem mais poder de processamento do que qualquer um dos seus destinatários. A thin client computing é uma das formas mais naturais de manter serviços computacionais sem ter de sacrificar o poder de processamento do computador do destinatário.
Já o cliente gordo é o oposto direto do que é o thin client e refere-se à maior parte da atividade de processamento que não depende dos servidores centrais do mainframe que processam os dados e as informações. No entanto, ele pode precisar de uma fonte de informação (pelo menos um servidor) para carregar e atualizar dados, ou mesmo administrar o próprio programa. Na maioria dos casos, os programas antivírus pertencem a este tipo de categoria, uma vez que podem trabalhar de forma independente sem a necessidade de estarem continuamente ligados ao servidor, a menos que haja uma actualização programada e downloads específicos que sejam efectuados. Downloads e uploads devem ser feitos para o programa, para estar ciente de certos vírus enquanto também retransmite informações para o servidor de origem. Clientes espessos também são implementados em locais de trabalho onde o host ou servidor primário tem muita velocidade de rede, um poder de processamento limitado e uma quantidade limitada de armazenamento. Isto é porque os clientes espessos podem correr quase independentemente.
26) Explique o que vem a ser "denial of Service". E DDoS?
Os ataques DoS (sigla para Denial of Service), que podem ser interpretados como "Ataques de Negação de Serviços", consistem em tentativas de fazer com que computadores - servidores Web, por exemplo - tenham dificuldade ou mesmo sejam impedidos de executar suas tarefas. Para isso, em vez de "invadir" o computador ou mesmo infectá-lo com malwares, o autor do ataque faz com que a máquina receba tantas requisições que esta chega ao ponto de não conseguir dar conta delas. Em outras palavras, o computador fica tão sobrecarregado que nega serviço.
DDoS, sigla para Distributed Denial of Service, é um tipo de ataque DoS de grandes dimensões, ou seja, que utiliza até milhares de computadores para atacar uma determinada máquina, distribuindo a ação entre elas. Trata-se de uma forma que aparece constantemente no noticiário, já que é o tipo de ataque mais comum na internet.
27) Qual a finalidade da replicação em SDs?
A replicação de dados tem a finalidade de permite lidar com falhas ao nível dos nós que impeçam o acesso aos dados neles armazenados e com falhas ao nível da comunicação de dados. - Na replicação de dados existem várias cópias coma mesma informação o que implica que cada operação deverá ter em conta a última versão dos dados e a actualização consistente de todas as réplicas.
28) Quais são as técnicas aplicáveis para garantir a escalabilidade de SDs?
A escalabilidade de um sistema distribuído representa a potencialidade do seu funcionamento em diferentes escalas, podendo ser implantado em empresas de pequeno, médio e grande porte, de forma a suportar consideravelmente o crescimento de usuários, hardwares e softwares. A Internet é o nosso grande exemplo, porque funciona em qualquer uma das circunstâncias referidas, já que o número de computadores na rede vem aumentando substancialmente nos últimos anos.
Desempenho - Garantir os recursos e o gerenciamento da rede, bem como a integridade dos dados trafegados, pois o fluxo de usuários aumenta cada vez que a empresa prospera. Com isso temos mais uso de recursos da rede;
Controlar os custos dos recursos – Conforme a quantidade de usuários aumenta a demanda de recursos de hardware. Para se atender a produção e o desenvolvimento de trabalhos esta (demanda) também deve ser aumentada. Deve ser destinada à aquisição de recursos favoráveis para a manutenção corretiva e evolutiva da rede, a fim de que tais recursos tecnológicos supram as necessidades dos usuários.
Ocultar latências de comunicação 
· Não aguardar por resposta: comunicação assíncrona.
· Útil em processamento em lotes e aplicações paralelas nas quais tarefas mais ou menos independentes podem ser escalonadas para execução enquanto outra espera comunicação. 
· Há aplicações onde não é possível fazer comunicação assíncrona 
· ex: aplicações interativas: nada melhor a fazer que esperar a resposta. • Solução melhor: reduzir comunicação global.
· Ex.: verificação de erros de sintaxe em validação de formulário: código no servidor vs. código no cliente.
Distribuição 
· Dividir componente e espalhar pelo sistema.
· Ex.: DNS.; Web. 
 Replicação
· Aumenta disponibilidade 
· Diminui latência
· Equilibra carga
29) Diferencie arquitetura cliente/servidor de ponto-a-ponto (P2P).
A arquitetura cliente servidor é uma arquitetura de aplicação distribuída, ou seja, na rede existem os fornecedores de recursos ou serviços a rede, que são chamados de servidores, e existem os requerentes dos recursos ou serviços, denominados clientes.
O cliente não compartilha nenhum de seus recursos com o servidor, mas, no entanto, ele solicita alguma função do servidor, sendo ele, o cliente, responsável por iniciar a comunicação com o servidor, enquanto o mesmo aguarda requisições de entrada.
Diferente da arquitetura cliente servidor a arquitetura peer-to-peer ou P2P funciona fazendo com que cada um dos nós da rede funcione tanto como cliente quanto servidor. Essa arquitetura permite com que serviços e dados possam ser compartilhados sem a necessidade de um servidor central. Através da utilização de softwares específicos que estabeleçam essa conexão, uma rede P2P pode ser configurada em casa, em empresas ou até mesmo na internet.
O fato mais interessante das redes P2P é que todos os Peers ou participantes da rede são igualmente privilegiados na aplicação. Cada computador agindo como um nó fica responsável por uma parte dos recursos da rede, podendo esses recursos serem armazenamento de dados, poder de processamento ou até mesmo largura de banda. Diferentemente do modelo cliente-servidor, onde um servidor central alimenta os clientes da rede, nos sistemas P2P todos os computadores interligados são fornecedores e consumidores de recurso.
30) O que vem a ser servidor Proxie?
Proxy é o termo utilizado para definir os intermediários entre o usuário e seu servidor. E por isso desempenha a função de conexão do computador (local) à rede externa (Internet). Como os endereços locais do computador não são válidos para acessos externos, cabe ao proxy enviar a solicitação do endereço local para o servidor, traduzindo e repassando-a para o seu computador.
Todas as requisições feitas ao servidor (o site que você quer acessar) passarão pelo seu proxy. Ao chegar ao site, o IP (Internet Protocol / Protocolo de Internet) do proxy fica registrado no cache do seu destino e não o seu. É pelo IP que os hackers conseguem invadir computadores, portanto deve-se manter o nível de segurança do seu gateway (porta de ligação com o proxy) seguro. Os riscos são vários, no entanto, dois deles podem ser enumerados como os mais fortes: ter seu computador invadido ou ter alguém navegando com o seu IP.
33) Qual a utilidade dos modelos de interação?
O modelo de interação reflete os problemas de desempenho e a dificuldade de ajuste de relógio dos Sist. Distribuído.
· Ex: atrasos e perdas de mensagens;
Dois fatores significantes afetando processos interagindo em um Sistema Distribuído:
1. O desempenho da comunicação é frequentemente uma característica limitante.
2. É impossível manter uma única noção global de tempo.
Principais fatores envolvidos na Interação:
· Desempenho na comunicação entre processos;
· Impossibilidade de manter um tempo único sincronizado.
36) O que vem a ser Jitter de uma rede de comunicação? Explique como o modelo de tempo lógico é utilizado na sincronização de SDs.
Jitter é uma variação estatística do atraso na entrega de dados em uma rede, ou seja, pode ser definida como a medida de variação do atraso entre os pacotes sucessivos de dados. Observa-se ainda que uma variação de atraso elevada produz uma recepção não regular dos pacotes. Logo, uma das formas de minimizar os efeitos da variação de atraso é a utilização de buffer, o qual armazena os dados à medida que eles chegam até que os pacotes enviados pela origem da comunicação sejam recebidos no destino final desta comunicação, então os pacotes são ordenados de acordo com a ordem de envio e os encaminha para a aplicação seguindo a mesma cadência.
Relevante em SDs Multimídia: se uma amostra consecutiva de dados de áudio é escutada com diferentes intervalos de tempo, então o som reproduzido ficará distorcido.
Percentagem de pacotes que são perdidos ou descartados em sua chegada (seja por atraso, por estar corrompido, ou buffer overflow);
Aplicações de controle (hard real time) não admitem perda de pacotes;
Aplicações multimídia (soft real time) admitem perdas.
38) O que vem a ser drift rate, e de que forma impacta na sincronização de aplicações distribuídas.
O termo drift rate ou taxa de desvio do relógio refere-se à quantidade relativa que o clock do computador difere de um clock perfeito, de referência;
 Mesmo se os clocks sobre todos os computadores em um SD são ajustados num mesmo instante, seus clocks eventualmente variarão significativamente, a menos que correções sejam aplicadas.
É possível sugerir limites inferiores e superiores para o tempo de execução de processos, retardo de mensagens e clock drift em um SD;
Mas, é difícil chegar em valores realísticos e prover garantia dos valores escolhidos;
 A menos que os valores dos limites possam ser garantidos, qualquer projeto baseado sobre os valores escolhidos, não poderá ser confiável.
Contudo, modelando um algoritmo como um sistema síncrono, pode ser útil para dar uma idéia de como ele se comportará em um sistema distribuído real;
Em um SD síncrono é possível usar timeouts, por exemplo, para detectar a falha de um processo, como será mostrado em modelo de falhas.
Resumindo, os problemas em SD síncronos são:
· Dificuldade em garantir os limites de tempo;
· Garantir que todos os elementos possuam recursos suficientes para atender as demandas (processamento, largura de banda, memória, etc..).

Continue navegando