Baixe o app para aproveitar ainda mais
Prévia do material em texto
2ª AVALIAÇÃO INSTRUÇÕES • A prova é individual ( ) Com consulta (X) Sem consulta • A interpretação dos enunciados das questões faz parte da avaliação, portanto não cabe explicação dos mesmos. Cada questão corresponde ao valor entre parênteses; • Só serão válidas as questões transcritas de caneta azul ou preta para folha de resposta, inclusive as questões objetivas. Nestas, a letra correspondente à sua opção de resposta deverá vir com uma palavra que inicie com a mesma letra. (A/aluno; B/busca, C/classe, D/docente, E/educação); • Serão desconsideradas as questões rasuradas ou com uso de corretivo, respondidas de lápis ou de caneta de cores diferentes das descritas acima; • Não será permitido o uso de quaisquer materiais eletrônicos e materiais de apoio (caderno, apostila, lei seca etc.), tampouco o empréstimo de materiais entre os alunos durante a prova. • A prova terá duração de 1 hora e 40 minutos; Só será permitida a entrada de alunos com atraso de até 15 minutos, não acarretando com isso o aumento na duração do horário da prova. Durante a realização da prova é proibida a saída da sala de aula. • Lembre-se que é obrigatória a assinatura da ata de frequência da prova. • O não cumprimento das normas acima acarretará em sanção ao aluno. A prova terá porcentagem de 100%. QUESTÕES 1 – (0,5 ponto) Sobre os modelos de comunicação nos procedimentos de invocação remota, analise e escolha a alterativa CORRETA: I - Um dos módulos de comunicação no RMI, o protocolo de requisição-resposta, transmite mensagens derequisição-resposta entre o cliente e o servidor. II - O módulo de referência remota é responsável pela transformação entre referências de objeto local eremoto e pela criação de referências de objeto remoto III - O módulo de referência remota de cada processo contém uma tabela de objetos remotos para registrar acorrespondência entre as referências de objeto local desse processo e as referências de objeto remoto Com base nas afirmativas pode-se conclui que : a) todas as afirmativas estão corretas. b) somente a afirmativa III está correta. c) somente as afirmativas II está corretas. d) somente a afirmativa I e III estão correta. e) somente as afirmativas II e III estão corretas. 2 – (0,5 ponto) Sobre o modelo de referencia remota, analise as afirmativas abaixo e escolha a alterativa CORRETA: a) Esse módulo é chamado pelos componentes do software RMI quando estão empacotando somentereferências de objeto remoto. b) O módulo de referência remota de cada processo contém uma tabela de objetos remotos para registrar acorrespondência entre as referências de objeto local c) Existe uma entrada para cada proxy remoto que mantém uma entrada para todos os objetos remotosmantidos pelo processo d) O módulo de referência remota de cada processo contém uma tabela de objetos locais para registrar a correspondência entre as referências de objeto local desse processo e as referências de objeto remoto e) Um servente é uma instância de uma classe que fornece o corpo de um objeto remoto. É o servente quetrata as requisições remotas repassadas pelo esqueleto correspondente e desta forma são considerados são partes integrantes do processo cliente. 3 – (0,5 ponto) Considera as seguintes afirmativas sobre a comunicação por datagrama através do protocolo UDP. I - Um datagrama enviado pelo protocolo UDP é transmitido de um processo origem para um processodestino com a existência de confirmações ou novas tentativas de envio. II – Observando as informações sobre ordenamento às vezes, as mensagens podem ser entregues em umaordem diferente da que foram emitidas. III - Tamanho da mensagem: o processo destino precisa especificar um vetor de bytes de um tamanho emparticular para receber as mensagens. IV- Ao chegar, a mensagem é posta em uma fila de recepção vinculada ao soquete associado à porta de destino. Com base nas afirmativas pode-se conclui que : a) somente a afirmativa II está correta. b) somente as afirmativas I e II estão corretas. c) somente a afirmativa II,III e IV estão corretas. d) somente as afirmativas I e III estão corretas. e) todas as afirmativas estão corretas. 4 – (0,5 ponto) Um Sistema Web, voltado para a execução na Internet, pode ser definido como umsistema composto por componentes localizados em uma rede de computadores cujas ações são coordenadas somente através de troca de mensagens. Java RMI (Remote Method Invocation) tem como objetivo auxiliar o desenvolvimento de aplicações com objetos distribuídos. Neste contexto, marque a afirmativa correta. a)Aplicações desenvolvidas em Java RMI são dependentes do protocolo de rede da camada de transporte (UDP/TCP). b)Java RMI é adequado ao desenvolvimento de aplicações P2P (peer-to-peer) pois um método invocado remotamente é automaticamente replicado em dois ou mais servidores. c)Java RMI permite o envio de objetos não- serializáveis através do parâmetro local pointer. d)Java RMI permite que um objeto cliente invoque um método de um objeto servidor remotamente. e)Java RMI baseia-se no protocolo de envio de mensagens SOAP (Simple Object Access Protocol). 5 - (2 pontos) Qual o papel da interface em arquiteturas distribuídas que usam o modelo de comunicação via RMI. R= A interface desempenha papeis crucias dentro de arquiteturas que utilizam o modelo de comunicação via RMI, suas principais atividades dentro desse modelo são: Fornecer a definição das assinaturas de um conjunto de métodos (isto é, os tipos de seus argumentos, valores de retorno e exceções), sem especificar sua implementação; Fornecer a definição das assinaturas de um conjunto de métodos (isto é, os tipos de seus argumentos, valores de retorno e exceções), sem especificar sua implementação; Definir os tipos que podem ser usados para declarar o tipo de variáveis ou dos parâmetros e valores de retorno dos métodos. Note que as interfaces não têm construtores e definir os tipos que podem ser usados para declarar o tipo de variáveis ou dos parâmetros e valores de retorno dos métodos. Notemos que as interfaces não têm construtores; 6 - (2 pontos) Para suportar RMI ou RPC, todo tipo de dados que possa ser passado como argumento, ou retornado como resultado, deve ser simplificado, e os valores de dados primitivos individuais, representados em um formato comum. Um padrão aceito para a representação de estruturas de dados e valores primitivos é chamado de representação externa de dados e tipo operação é realizado através dos procedimentos marshalling e unmarshalling. Defina estes conceitos associados a esta abordagem para representação de externa de dados. R= Marshalling(empacotamento) – se refere a uma forma de converter um objeto numa forma adequada para armazenamento ou transmissão em série; isto é, convertê-lo de sua forma nativa na memória da JVM, em uma forma que poderia ser enviada por uma conexão, inserida em um arquivo / banco de dados, etc. Já o Unmarshallig(desempacotamento) é apenas o inverso / outro lado desse processo; tomando uma representação do objeto criado por empacotamento e usando- o para reconstituir uma instância do objeto dentro da JVM. 7 - (2 pontos) A RMI (Remote Method Invocation – invocação a método remoto) está intimamente relacionada à RPC, mas é estendida para o mundo dos objetos distribuídos. Apresente as características comuns a estas duas abordagens de comunicação. R= Ambas suportam programação com interfaces, com as vantagens resultantes advindas dessa estratégia. Normalmente, ambas são construídas sobre protocolos de requisição- resposta e podem oferecer diversas semânticas de chamada, como pelo menos uma vez e no máximo uma vez. Ambas oferecem um nível de transparência semelhante – isto é, as chamadas locais e remotas empregam a mesma sintaxe, mas as interfaces remotas normalmente expõem a natureza distribuída da chamada subjacente, suportando exceçõesremotas,por exemplo. 8 - (2 pontos) Ao se trabalhar com a abordagem de comunicação de via RMI, alguns pontos devem ser observados no projeto utilizado de tal forma que proposta de comunicação atenda a abordagem de cominucação distribuída. Cite brevemente sobre estes pontos que devem observados. R= Pontos a serem observador no RMI: Modelo do objeto - Um programa orientado a objetos, por exemplo em Java ou C++, consiste em um conjunto de objetos interagindo, cada um dos quais composto de um conjunto de dados e um conjunto de métodos. Um objeto se comunica com outros objetos invocando seus métodos, geralmente passando argumentos e recebendo resultados. Os objetos podem encapsular seus dados e o código de seus métodos. Algumas linguagens, como Java e C++, permitem que os programadores definam objetos cujas variáveis de instância podem ser acessadas diretamente. No entanto, para uso em um sistema de objeto distribuído, os dados de um objeto devem ser acessíveis somente por intermédio de seus métodos. Referências de objeto - Os objetos podem ser acessados por meio de referências de objeto. Por exemplo, em Java, uma variável que parece conter um objeto, na verdade, contém uma referência para esse objeto. Para invocar um método em um objeto, são fornecidos a referência do objeto e o nome do método, junto aos argumentos necessários. O objeto cujo método é invocado é chamado de alvo, de destino e, às vezes, de receptor. As referências de objeto são valores de primeira classe, significando que eles podem, por exemplo, ser atribuídos a variáveis, passados como argumentos e retornados como resultados de métodos Interfaces - Uma interface fornece a definição das assinaturas de um conjunto de métodos (isto é, os tipos de seus argumentos, valores de retorno e exceções), sem especificar sua implementação. Um objeto fornecerá uma interface em particular, caso sua classe contenha código que implemente os métodos dessa interface. Em Java, uma classe pode implementar várias interfaces, e os métodos de uma interface podem ser implementados por qualquer classe. Uma interface também define os tipos que podem ser usados para declarar o tipo de variáveis ou dos parâmetros e valores de retorno dos métodos. Note que as interfaces não têm construtores. Uma interface fornece a definição das assinaturas de um conjunto de métodos (isto é, os tipos de seus argumentos, valores de retorno e exceções), sem especificar sua implementação. Um objeto fornecerá uma interface em particular, caso sua classe contenha código que implemente os métodos dessa interface. Em Java, uma classe pode implementar várias interfaces, e os métodos de uma interface podem ser implementados por qualquer classe. Uma interface também define os tipos que podem ser usados para declarar o tipo de variáveis ou dos parâmetros e valores de retorno dos métodos. Note que as interfaces não têm construtores. Ações - Em um programa orientado a objetos, a ação é iniciada por um objeto invocando um método em outro objeto. Uma invocação pode incluir informações adicionais (argumentos) necessárias para executar o método. O receptor executa o método apropriado e depois retorna o controle para o objeto que fez a invocação, algumas vezes fornecendo um resultado. Exceções - Os programas podem encontrar muitos tipos de erros e condições inesperadas, de diversos graus de gravidade. Durante a execução de um método, muitos problemas diferentes podem ser descobertos: por exemplo, valores inconsistentes nas variáveis do objeto ou falhas nas tentativas de ler ou gravar arquivos ou soquetes de rede. As exceções proporcionam uma maneira clara de tratar com condições de erro, sem complicar o código. Coleta de lixo - É necessário fornecer uma maneira de liberar o espaço em memória ocupado pelos objetos quando eles não são mais necessários. Uma linguagem (por exemplo, Java) que pode detectar automaticamente quando um objeto não está mais acessível, recupera o espaço em memória e o torna disponível para alocação por outros objetos. Esse processo é chamado de coleta de lixo (garbage collection). Objetos distribuídos - O estado de um objeto consiste nos valores de suas variáveis de instância. No paradigma baseado em objetos, o estado de um programa é dividido em partes separadas, cada uma associada a um objeto. Como os programas baseados em objetos são logicamente particionados, a distribuição física dos objetos em diferentes processos ou computadores de um sistema distribuído. Os sistemas de objetos distribuídos podem adotar a arquitetura cliente- servidor. Nesse caso, os objetos são gerenciados pelos servidores, e seus clientes invocam seus métodos usando invocação a método remoto, RMI. Na RMI, a requisição de um cliente para invocar um método de um objeto é enviada em uma mensagem para o servidor que gerencia o objeto. A invocação é realizada pela execução de um método do objeto no servidor e o resultado é retornado para o cliente em outra mensagem. Para permitir encadeamentos de invocações relacionadas, os objetos nos servidores podem se tornar clientes de objetos em outros servidores.
Compartilhar