Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos exame de recurso, 9 de Fevereiro de 2012 1º Semestre, 2011/2012 NOTAS: Leia com atenção cada questão antes de responder. A interpretação do enunciado de cada pergunta é um factor de avaliação do teste. O exame é SEM consulta. A duração do exame é de 2h00 min. O enunciado contém 5 páginas que devem ser entregues com a resposta ao exame. NOME: NÚMERO.: 1) Uma das características fundamentais dos sistemas distribuídos é a independência das falhas dos sistemas de comunicação e dos componentes do sistema (máquinas, processos). Discuta as implicações desta característica no desenvolvimento duma sistema distribuído. 2) Suponha que pretende desenvolver um sistema tipo Google Docs, que permite manter um conjunto de documentos ficheiros de texto, folhas de cálculo, apresentações, etc. Vários utilizadores podem editar no seu computador um mesmo documento simultaneamente usando um browser de Internet, observando imediatamente as operações dos outros utilizadores. Adicionalmente, o sistema permite observar em que posição do documento o outro utilizador tem o seu cursor. a) Considere apenas as operações que permitem apresentar a posição do cursor dum utilizador (nova posição: linha, coluna) na edição colaborativa dum ficheiro de texto. Suponha que as operações são propagadas entre os vários clientes do sistema usando um sistema de comunicação em grupo. Indique qual a semântica do mecanismo de comunicação em grupo que deve ser usada relativamente à fiabilidade e ordenação das mensagens. Justifique. Fiabilidade: porque Ordenação das mensagens: porque 1
b) O sistema Google Docs é baseado numa arquitectura cliente/servidor, em que os clientes enviam as suas operações para o servidor que as propaga para os outros clientes. Apresente vantagens desta aproximação face a uma solução peer-to-peer em que os clientes propagavam directamente entre si as operações efectuadas (as quais podem explicar a solução do Goole Docs). 3) Considere o sistema BitTorrent de partilha de ficheiros. O protocolo implementado pelo sistema torna-o apropriado para efectuar reprodução em tempo real dos ficheiros multimédia transferidos? Justifique. Sim, porque... / Não, porque... 4) Suponha que tem um servidor em que todos os métodos são idempotentes. Caso use um protocolo de invocação com um mecanismo de retransmissão de pedidos, será necessário integrar um mecanismo de filtragem de duplicados? Justifique. Sim, porque... / Não, porque... 5) Assinale com [V]erdadeiro ou [F]also as seguintes afirmações (nota: as respostas erradas descontam): i. A codificação de dados usada no Corba é mais eficiente do que a usada no Java RMI. ii. Em Java RMI, uma referência remota mantém uma cópia das fábricas de sockets do cliente e do servidor. iii. A especificação dos Web Services (SOAP) permite que o protocolo de transporte usado seja SMTP. iv. No Java RMI, os objectos que estendem Serializable são passados por referência. v. Um servidor REST é tipicamente acedido usando uma conexão HTTP para o servidor. 2
6) Considere uma empresa U9A que tem um conjunto de clientes aos quais pretende fornecer um serviço de correio electrónico. Cada cliente tem um registo na empresa, o qual contém o seu nome e uma palavra chave. Para fornecer o serviço de correio electrónico, a empresa U9A recorre a uma segunda empresa Jêmeile que mantém o serviço através dum servidor Smail. Por questões de segurança, a empresa U9A não pretende fornecer as palavras chaves dos utilizadores à empresa Jêmeile. Para ajudar a segurança do sistema, a empresa U9A tem um servidor de autenticação SAut que conhece os nomes e passwords de todos os clientes. O servidor Saut partilha uma chave secreta, Kam, com o servidor de correio electrónico Smail que execute na empresa Jêmeile. Apresente um protocolo que permita a um cliente C com palavra-chave pwd autenticar-se e estabelecer um canal seguro com o servidor Smail. Na sua solução, minimize a informação transmitida na rede e o poder computacional necessário para executar o protocolo. O protocolo deve ter, no máximo, 4 mensagens, efectuando a seguinte interacção: C->Smail; Smail->Saut; Saut->Smail; Smail->C. Explique como seriam garantidas as propriedades indicadas. Use as notações sintéticas de descrição de protocolos criptográficos que aprendeu nas aulas. NOTA: A partir duma palavra-chave, pwd, é possível criar uma chave secreta Kpwd. NOTA: Caso não consiga resolver o problema assumindo que os elementos do sistema apenas conhecem inicialmente as chaves indicadas, indique explicitamente as chaves adicionais que assume serem conhecidas para cada um dos elementos do sistema no início do protocolo. C -> Smail: Smail -> Saut: Saut -> Smail: Smail -> C: Qual a chave a usar em posteriores comunicações entre C e Smail? O que é que garante o secretismo das mensagens seguintes? Como é que Smail tem a certeza que está a comunicar com o utilizador C? Como é que o utilizador C tem a certeza que está a comunicar com o servidor Smail? Como é que se evita o replaying? Definição dos símbolos usados (complete, se necessário): C nome do utilizador; pwd palavra chave do utilizador (conhecida por C e Saut) Kam chave secreta partilhada entre Saut e Smail 3
7) A utilização de certificados de chaves públicas levanta problemas quando uma chave privada é comprometida. Discuta o principal problema que se levanta nesta situação e como se pode lidar com ele. 8) Nos sistemas REST a utilização do mecanismo de codificação de dados json tem-se tornado bastante popular nos últimos anos em detrimento da utilização de XML. Indique como se codificaria a seguinte classe em json e apresente razões para a popularidade do json (face ao XML). class Person { String nome; String address; } 9) Suponha que se pretendia implementar um mecanismo de URNs para identificar documentos e ficheiros na Internet. Discuta as vantagens e desvantagens dessa aproximação face à utilização simples de URLs usada actualmente. Vantagens URN: Vantagens URL: 4
10) Considere o sistema distribuído de ficheiros NFS. Na versão 2 do sistema, uma operação de escrita executada no servidor apenas retornava após a escrita ter sido efectuada em disco. Explique os problemas desta solução. 11) Considere o sistema distribuído de ficheiros CIFS. A falha e recuperação dum servidor pode colocar problemas na manutenção da coerência dos ficheiros e controlo da cache? Justifique. Sim, porque... / Não, porque... 5