Buscar

Questoes de pesquisa livre

Prévia do material em texto

1. Qual é a diferença entre uma chamada remota de procedimento e uma chamada local? Explique.
R: Uma diferença importante entre chamadas de procedimento remotas e chamadas de procedimento locais é que, no primeiro caso, a chamada pode falhar por problemas da rede. Nesse caso, não há nem mesmo garantia de que o procedimento foi invocado.
2. O que é RPC Language? Explique.
R: RPC é uma tecnologia popular para a implementação do modelo cliente-servidor de computação distribuída. Uma chamada de procedimento remoto é iniciada pelo cliente enviando uma mensagem para um servidor remoto para executar um procedimento específico. Uma resposta é retornada ao cliente. Uma diferença importante entre chamadas de procedimento remotas e chamadas de procedimento locais é que, no primeiro caso, a chamada pode falhar por problemas da rede. Nesse caso, não há nem mesmo garantia de que o procedimento foi invocado.
3. O que é um arquivo de interface RPC? Qual é a relação do arquivo de interface e a RPC
Language? Explique.
R: Uma lista mapeando o nome do serviço para o número de programa é normalmente mantida no arquivo /etc/rpc, o qual é parcialmente apresentado a seguir. 
Em redes TCP/IP, os autores do RPC confrontaram-se com o problema de mapeamento de números de programas com serviços genéricos de rede. A solução foi definida de forma que cada servidor atende aos protocolos TCP e UDP para uma versão específica de um determinado programa. Geralmente aplicações RPC utilizarão UDP para o envio de dados e utilizarão TCP quando os dados a serem transferidos não caibam em um único datagrama UDP. 
4. Qual é o papel do rpcgen na aplicação RPC? Explique. 
R: O rpcgen fornece aos programadores uma maneira direta de escrever aplicativos distribuídos. Ele aceita uma definição de interface de programa remota escrita em um idioma, chamado RPC Language, que é semelhante a C. Os procedimentos do servidor podem ser escritos em qualquer idioma que observe as convenções de chamada de procedimento. Esses procedimentos são vinculados ao stub do servidor produzido pelo rpcgen para formar um programa de servidor executável. Os procedimentos do cliente são escritos e vinculados da mesma maneira.
5. Qual é o papel de um arquivo de stub? Qual é a diferença do stub do cliente e do stub do
servidor?
R: É um pedaço de código usado para substituir algumas outras funcionalidades de programação. São partes (fragmentos) de algoritmos que provêm a abstração de uma chamada (local) de procedimento (método) fazendo a ligação deste com o mecanismo de comunicação. Os stubs de cliente interagem com a biblioteca RPC e ocultam efetivamente a rede de seus chamadores. O stub do servidor também oculta a rede dos procedimentos do servidor que serão
Chamado por clientes remotos. 
6. Caso você tenha o seguinte arquivo de interface, quais serão os arquivos gerados após a
execução do rpcgen? Explique a função de cada um dos arquivos.
R: Arquivo de especificaçao de serviços remotos de data e hora
program DATE_PROG {	<- Nome remoto do programa
version DATE_VERS { 	<- Declaraçao do numero da versao do programa
long BIN_DATE(void) = 1; <- procedure numero = 1 / retorna dia e hora como binario
string STR_DATE(long) = 2; <- procedure numero = 2
} = 1;	<- definicao da versao do programa = 1 
} = 0x3012225;	/* Numero unico remoto do programaremote program number 
7. Qual é o papel do XDR em uma aplicação RPC? Explique e dê exemplos.
R: XDR é um método independente de fornecedor de representação de dados. Usando a convenção de representação de dados padrão XDR, os sistemas não precisam entender e traduzir todos os formatos de dados que possam existir na rede; existe apenas uma convenção. Os dados são traduzidos para o formato XDR antes de serem enviados pela rede e, no ponto de recepção, são traduzidos para a convenção de dados usada lá. Isso significa que você pode integrar novas arquiteturas de computadores à rede sem exigir a atualização de rotinas de conversão. A nova arquitetura simplesmente inclui uma rotina que traduz seu formato de dados para o formato XDR e o novo membro da rede está pronto para uso. Usando XDR, os dados podem ser acessados ​​ou trocados entre máquinas de várias arquiteturas de hardware e software, sem qualquer problema de tradução ou interpretação. Comprimentos de palavra, ordenação de bytes e representações de ponto flutuante parecem ser os mesmos para todos os nós na rede.
8. O que é o CORBA? Explique.
R: É a arquitetura padrão criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos. Em face da diversidade de hardware e software que encontramos atualmente, a CORBA atua de modo que os objetos (componentes dos softwares) possam se comunicar de forma transparente ao usuário, mesmo que para isso seja necessário interoperar com outro software, em outro sistema operacional e em outra ferramenta de desenvolvimento. CORBA é um dos modelos mais populares de objetos distribuídos, juntamente com o DCOM,
9. Qual é a diferença e as similaridades entre o CORBA e o RPC? Explique?
R: RPC (remote procedure call) é uma tecnologia que podemos pensar como sendo uma evolução da programação com sockets, permitindo a execução remota de procedimentos. RPC é um mecanismo de comunicação fundamental onde existem apenas chamadas a procedimentos. Pode-se utilizar um serviço de diretórios para conectar-se ao servidor desejado, porém RPC não implementa nenhuma tecnologia que permita um endereçamento mais flexível e transparente (em contraponto, CORBA, através do ORB, permite o registro de objetos remotos e locais e assim permite uma transparência na localização dos objetos através das suas referências). Os stubs do cliente e do servidor se comunicam diretamente, sem uma entidade intermediária para resolução de referências que de fato não existem em RPC (CORBA tem um ORB que realiza a resolução das referências). Tipos de dados como uma lista encadeada não podem ser passados como parâmetros por RPC, pois esse não suporta referências. Todo tipo de dado deve ser serializado antes da comunicação, havendo uma perda no poder de expressão desta tecnologia (CORBA permite o uso de referências remotas e locais de forma totalmente transparente).
10. O é IDL? Explique qual é o seu papel e sua estrutura.
R: Uma linguagem baseada em C++ que não possui algoritmos nem variáveis, ou seja, é puramente declarativa, e, portanto, é independente da linguagem de programação utilizada para acessá-la. Há padrão de IDL definido pelo OMG para C, C++, Java, TTCN, COBOL, Smalltalk, Ada, Lisp, C#, Python e IDL. Possibilita a interoperabilidade entre os diversos sistemas, visto a separação que é definida entre interface e execução. A interface de cada objeto é definida de forma bastante específica, enquanto a sua execução (código fonte e dados) permanece oculta para o resto do sistema.
11. Qual é o mapeamento de cada tipo de dado IDL para linguagem C? Explique.
R: O mapeamento de um conceito em IDL para uma construção de uma linguagem destino dependerá das facilidades existentes. A gramática de IDL é um subconjunto de C e C++ com construções adicionais para os mecanismos de requisições de operações.
12. Qual é o papel de compilador idl2cc ou idl2ccp? Explique.
R: Se um programa precisa ser escrito em C++ o code generator irá criar todas as classes necessarias. O cpp é Windowish, só Windows usam o cpp.
13. Após a execução do compilador idl2cc ou idl2ccp, quais arquivos serão gerados? Explique a função de cada arquivo.
R: Compilaçao e montagem de todos os programas gerados. Nao entendi direito essa questao.
14. Qual é o papel do arquivo de stub? Explique.
R: Os Stubs são classes usadas do lado da aplicação cliente e funcionam como Proxies entre a aplicação cliente e o objeto remoto. Os Stubs recebem os parâmetros dos métodos exportados pelo objeto remota (definidas pela interface da classe remota) e encaminhando-nos para o lado do servidor15. Qual é o papel do arquivo de skeleton? Explique.
R: O Skeleton recebe os parâmetros enviados pelo Stub e executa as respectivas chamadas no objecto remoto. Em sentido inverso, os Skeletons são também responsáveis por receber o valor de retorno do método remoto (local na sua perspectiva) e direcioná-los para os Stubs dos clientes correspondentes.
16. Caso você submeta o seguinte arquivo idl ao compilador idl2ccp, quais arquivos serão gerados? Explique a função de cada um dos arquivos.
R: Sera gerado um arquivo o comportamento particular e definir interface visivel.

Continue navegando