Buscar

Respostas do Questionario de Sistema Distribuido V1

Prévia do material em texto

CAP 1
Um sistema distribuído é uma coleção de coleção de computadores independentes que aparenta ao usuário ser um computador único.
Heterogeneidade: SD deve permitir acesso a um conjunto heterogêneo de computadores e redes. Abertura: Determina se o sistema pode ser estendido ou reimplementado de diversas maneiras. Escalabilidade: Suporta o aumento dos recursos e usuários mantendo um desempenho satisfatório. Segurança: Resume-se no CID, onde existe desafio em DoS e código móvel. Tratamento de falhas: SD devem ser parciais, ou seja, alguns componentes falham e outros continuam funcionando. Concorrência: Permitir que recursos compartilhados sejam utilizados por diversos processos. Transparência: É a ocultação, para o usuário final ou programador, da separação dos componentes em SD de modo que o sistema seja percebido como um todo.
Internet. Os protocolos permitem que um programa em execução em qualquer lugar envie mensagens para programas em qualquer outro lugar.
Vantagens de SD sobre SC: Melhor relação custo/benefício. Capacidade de processamento além dos limites práticos de SC. Maior confiabilidade e disponibilidade. Crescimento gradativo da capacidade de processamento. Vantagens de SD sobre PCs independentes: Compartilhamento de recursos de HW e SW. Flexibilidade na distribuição de tarefas de acordo com as aplicações. Extra: Desvantagens SD: Falta de software adequado. Segurança pode ser comprometida. Desenvolvimento de SW distribuído é mais complexo. Alto custo para implementar aplicações colaborativas.
Heterogeneidade, escalabilidade, tratamento de falhas, segurança, transparência, abertura, concorrência.
Fortemente acoplado: Usa multiprocessadores (memória compartilhada) Ex: Sistema de Time Sharing p/ multiprocessadores. Fracamente acoplado: Usa multicomputadores (Memórias separadas) Ex: SO de Rede
Sistema Distribuído: Fortemente acoplado, Vantagem: Parece um único SC, Desvantagem: Tem várias copias de SO. Rede: Fracamente acoplado, Vantagem: Não existe uma fila única de execução, Desvantagem: Várias copias de SO. Centralizado: Fortemente acoplado, Vantagem: , Desvantagem: .
Transparência de Acesso, Localização: Recursos são acessados sem que sua localização seja determinada, Concorrência, Replicação, Mobilidade: Movimento de recursos ou cliente dentro do sistema não podem afetar a operação dos usuários ou programas, Performance: Sistema deve permitir ser reconfigurado para melhorar a performance conforme a variação de carga, Falha: Ocultar e tratar as falhas, HW ou SW, permitindo que as aplicações ou usuários completem suas tarefas.
Os elementos básicos de um SD são os componentes de SW que distribuem as funcionalidades, dando a aparência de uma só. Exemplos: Transações bancarias, serviços de persistência para guarda em banco, de gerencia para garantir que todo o sistema funcione adequadamente, middleware.
A aparência de um único sistema, SD deve ser muito mais performático do que uma única maquina, a segurança do sistema com relação a disponibilidade são características de usuário.
CAP 2
O emissor, receptor e o canal, que em SDs são os protocolos. Uma requisição.
A comunicação, ter a capacidade de escalonamento, balanceamento, registros de logs.
Relógio global, endereçamento, aspectos de segurança.
Tanto o cliente como o servidor têm que começar a comunicação, obviamente o servidor está sempre alive para qualquer quantidade de clientes, sabendo o que cada um faz, e nessa comunicação existe algo que logo abaixo aparece que é a codificação e decodificação de dados, pois eles irão ser mandados via rede em um formato e na outra ponta ou codifica ou decodifica para que haja continuidade na comunicação. O C/S é um serviço em estrela, onde a estrela é o servidor na qual existe uma vulnerabilidade que é a queda, outra é quando um cliente cai e o servidor ainda mantem uma thread para ele (pode-se gerencia isso através de um timeout). Caso o servidor cai você precisa colocar outra que assuma com os contextos que foram gravados e para que isso aconteça você tem que ter logs das operações de cada cliente em um banco para que o novo servidor possa recuperar a partir do último log registrado dos clientes. 
É a ilusão de que você está chamando um método local, quando na verdade é um método remoto. E essa chamada de um método envolve elementos de desempenho da rede, enviar todos os parâmetros formatar isso e garantir que na ponta exista um processo que possa receber isso, o que dá origem a stub. Desenho: Tem uma rotina que chamada uma função, essa função não é local, tem que ter uma interface que diz quais parâmetros devem ser passados para a função remota, essa interface pega os parâmetros no momento da chamada, abre uma conexão com o elemento remoto, que atua como servido nesse momento.
É como você codifica o dado, são parâmetros ou retornos no caso das funções que o servidor da de volta. Essa codificação é um modelo tradicional de ASCII que o protocolo HTTP usa para os diversos tipos de dados. Essa visão de marshalling e unmarshalling é necessária porque você não garante qual arquitetura está na ponta recebendo dados, nem HW e SW, e precisa ser codificado de algum jeito.
O endereçamento de grupo significa eu ter uma perspectiva do servidor na minha necessidade em comunicar-se com os vários clientes ao invés de eu fazer um laço para colocar todos os clientes registrados. As comunicações em grupo ajudam do ponto de vista de simplificar a programação, mas impõe uma camada que não é de SW, mas de logica como os clientes são organizados.
Dependabilidade: É o conceito de que um serviço depende de outro, para que você consiga obter um resultado para haver as comunicações entre os componentes. Os conceitos associados são o de segurança e de falha.
Interação: A finalidade é mostrar os componentes e como são feitas as comunicações. Falha: É verificar onde estão as limitações dessa arquitetura que você pensou e verificar contingências ou situações onde você corrige falhas dos componentes para minimizar os estragos, no caso dos impactos que vão acontecendo. 
Segurança: Verificar como está a cobertura dos dados e se os serviços fazem corretamente aquilo que deveria ser feito. Caso tenha um ataque alguém pode ou não alterar o dado que tem que ser passado.
 1 Camada: apenas a ligação do servidor (Controller) - 2 Camada: ligação do servidor e banco de dados (Controller e Model) - 3 Camada: modelo MVC completo, com interação do usuário.
CAP 3
A importância do RPC é que ele permite que várias rotinas possam existir em diferentes componentes de SW, sendo uma da maneiras de permitir a distribuição de SW.
Socket é o ponto final de uma comunicação full-duplex entre dois processos. Pool de thread é um mecanismo de compartilhar sockets em termos de threads, onde elas são flutuantes.
Empacotamento: Tem a ver com marshalling (codificação). Quando eu codifico, jogo isso em um local e esse local é justamente o pacote que eu vou transmitir. Na visão de SD é você colocar os pacotes em um grupo de mensagens (em um buffer) e mandar.
É uma simplificação do mecanismo de falar com todos os clientes. Clientes interagem sem necessariamente jogar isso para um ponto central. Não existe a necessidade de um servidor e ele mandar para todo mundo.
Já foi respondida. OHAR QUESTÃO 6 DO CAP 2.
Interface remota tem a ver com RPC, pois existe uma interface para você identificar para onde irá ser mandado um serviço que você não tem localmente. E essa interface pode fazer uma comunicação com um componente externo ela é remota. A importância dela é que permite que diferentes serviços em diferentes locais possam ser usados por um programa que não tem a mínima ideia onde isso esteja.
A IDL é um modelo que as diferentes linguagens podem utilizar na hora de realizar um RPC. Elas dizem como devem ser estruturadas essas interfaces, Stubs. Caso não existisse a IDL, um serviço em JAVA só seria capaz de se comunicar com um outro cliente ou serviço JAVA. A IDL traz transparência nas comunicações remotas, ela é uma linguagem de definiçãode interface.
Um evento e/ou notificação NÃO é uma requisição é um aviso. Uma notificação (TRAP) é jogar uma mensagem, não esperada, que alguém tem que receber para ser notificado sobre algum evento. Não é RPC, no RPC eu fico aguardando o retorno de uma função, já na TRAP o cliente não espera. O ideal é criar grupos para garantir que esses eventos irão para grupos específicos de maquinas. Ex: O servidor precisa enviar uma mensagem para os clientes informando que ele irá reiniciar as 17hrs. Grupos servem para permitir o uso de TRAPS, de eventos ou notificações.
RMI foi uma abordagem JAVA para trabalhar o RPC. Ele é importante pois ele guarda a identificação de onde estão os serviços, para que alguém quando precise possa ir atrás. É um modelo para implementar as arquiteturas Publishers subscribers no JAVA.
CAP 4
P2P são pares, como se fossem clientes comunicando entre si. Não existe servidor, eles mesmos se servem entre si. A Diferença dele para o modelo C/S é que tem uma comunicação múltipla, com o seguinte preço: Já que você consome, você também tem que servir. Vulnerabilidade eles resolvem: O servidor sendo a estrala (servidor centralizado). Problemas que ele trouxe: Necessidade de que se tenha sempre que abrir sempre canis de comunicação de ida e volta, servindo a outros peers para ter acesso ao dado que quero. 
Serviço cientifico (SETTI) e compartilhamento de vários tipos de mídias.
Em um C/S hierárquico, onde clientes que usam meu serviço, e por sua vez eu servidor sou cliente de outros que usam outros serviços. Para você ter a funcionalidade completa, você navega na rede de serviços até todo mundo ter feito o seu serviço e trazido de volta. Isso é de difícil implementação no modelo P2P pois existem serviços e serviços, significando que os peers teriam que ter todos os serviços entre si ou eu teria que criar uma hierarquia de peers. Ex: Torrents.
Estabelecer um rótulo para esses peers que entram nesse grupo, esses peers começam a trocar informações entre eles, e aí depois eles podem sair ou simultaneamente migrar para outros peers.
Se não existisse uma hierarquia, todo mundo tem que saber de tudo. No modelo hierárquico, eu peço uma informação e alguém vai atrás e busca essa informação, envolvendo endereços de serviços.
Existe uma complexidade na criação da arquitetura hierárquica. Bem como, o servidor precisasse se comunicar enquanto cliente com outro servidor. Vantagens: Balancear a carga, interações com outros tipos de aplicações.
Na arquitetura C/S, o servidor sabe a identificação dos clientes por causa das threads onde ele mapeou isso. Através da criação de rótulo, pois você não sabe que o peer é o endereço X, Y ou Z, você sabe que é o u1 ou u2 ou u3. Isso é importante pois peers são muito dinâmicos, horas eles estão vivos horas eles estão saindo. Pode-se mapear isso como uma lista.
Selecione atividades simples que possam ser idempotentes, ou seja, que possam ser executadas N vezes sem danos.
O Multicast é um dos modelos de comunicação, onde eu crio grupos e associo isso ao peer e então eu faço a comunicação com esse grupo como se fosse um C/S ou dos peers entre si.
Ao invés de olhar um indivíduo, eu vejo uma massa e a essa massa como um rótulo (uma identificação do grupo). 
EXTRA – MIDDLEWARE
É uma camada de software intermediário, entre o SO e a aplicação distribuída, para receber transações, fazer avaliações disso, orquestrações, saber a sequência disso, definir transformações de dados, padrões. A importância do middleware é que quando você tem uma arquitetura boa de barramento, na hora que houver um problema ele sabe onde esse problema ocorreu, manda isso para quem é de direito, e isso ajuda a continuar o processo
Funções de middleware: Transformar o dado, encadear uma sequencialização, garantir que os erros sejam devidamente mapeados e registrados e enviados para quem precisa.
Problemas de middleware: Tem que ser transparente para o usuário, alto custo, alta complexidade, e a gerencia do middleware exige uma capacidade além do serviço original. Preciso criar aspectos como por exemplo logs.
Serviço de registro é responsável por obter a permissão ao banco de dados do servidor e obter informações.
Nível superior (aplicação): Clientes. Nível médio (middleware): APIs, serviços, estruturas de comunicações, módulos. Nível inferior (back-end): servidores distribuídos, SOs e Banco de dados
Servidores que permitem a execução de certos softwares/programas/aplicações sem precisar dos mesmos instalados nas máquinas de acessos (clientes).
Mensagens são o conceito básico para você fazer a comunicação de informação em um SD. No cenário da camada do meio isso é importante porque você tem uma independência de modelos, você não tem uma visão de como isso é implementado, você repassando as mensagens.
Isso é visto hoje em um BUS (barramento de serviços), esses barramentos significam que quando alguém requisitar qualquer coisa que seja fora do seu sistema o middleware deve prover e buscar identificar onde isso está. Isso se torna importante quando a organização começa a usar cada vez mais serviços.
EXTRA – TOPICOS ADICIONAIS
É importante tanto para a identificação de componentes como de serviços.
No modelo C/S o cliente estaticamente vai buscar informações no servidor, pois ele precisa saber onde quem é esse servidor através de algum nome previamente usado. Já no modelo P2P as coisas são dinâmicas, você não sabe onde exatamente isso está e em descobrindo agora depois pode não existir. O modelo estático garante o serviço independente do tempo, já o dinâmico garante dinamicidade, crescimento porem com a fragilidade de você não ter a garantia da localização dos componentes.
 Sim. Nomes não devem ser visíveis, serviços devem ser encapsulados de maneira que só outros serviços ou maquinas possam usar aquele serviço. A arquitetura é mais ampla para dar o resultado que se pretende.
Solução interativa de nomes: Significa que você está fazendo um laço para descobrir como eu identifico um recurso, uma máquina. Solução recursiva de nomes: Significa que você pergunta a alguém, se ele souber responde, se não pergunta a outro e assim a outro, fazendo um mapa de rede subindo até fornece o que eu quero. 
Transparência, dinâmica na resolução de nomes.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes