jueves, 20 de septiembre de 2012

Tipos de RPC y Parametros


ONC

ONC RPC, abreviación del inglés Open Network Computing Remote Procedure Call, es un protocolo de llamada a procedimiento remoto (RPC) desarrollado por el grupo ONC de Sun Microsystems como parte del proyecto de su sistema de archivos de Red NFS, algunas veces se lo denomina Sun ONC o Sun RPC. Trabaja sobre los protocolos TCPy UDP. La codificación de datos se realiza utilizando el protocolo XDR (presentación de datos).
ONC RPC está regulado por RFC 1831. Los mecanismos de autenticación usados por ONC RPC están descritos en RFC 2695, RFC 2203, y RFC 2623.

Desarrollo de aplicaciones: compiladores de protocolo

El desarrollo de aplicaciones para ONC RPC consiste en desarrollar programas cliente/servidor, donde los datos deben codificarse según el protocolo XDR.
Las aplicaciones se realizan en forma sistemática mediante compiladores de protocolo como el programa rpcgen, que fue el programa original desarrollado por Sun que generaba casi todo el código en lenguaje C necesario para crear los programas servidor y cliente. Existen compiladores de este protocolo que generan código en Java, denominados jrpcgen.

Implementaciones

Las implementaciones de ONC RPC existen para la mayoría de los sistemas como Unix (OpenVMS Alpha, OpenVMS I64,1 etc.) y Linux (en el subdirectorio sunrpc de la biblioteca Glibc).
Las tecnologías que involucran a ONC RPC (incluyendo NFS y NIS) desarrollada por Sun para su sistema operativo Solaris, en sus versiones más recientes se denominan tecnologías ONC+.2
La Free Software Foundation está desarrollando una implementación GNU de este protocolo, denominado GNU Guile-RPC,3 como parte del desarrollo del lenguaje de programación GNU Guile.
Microsoft provee una implementación para su Windows en el producto "Microsoft Windows Services for UNIX”; además, existen otras implementaciones de ONC RPC para Windows, incluyendo versiones en lenguaje C/C++, Java, y Microsoft .NET.

DCE

DCE Remote Procedure Call o bien DCE RPC es un sistema de llamada a procedimiento remoto del conjunto de software OSF DCE. DCE / RPC, la abreviatura de "Distributed Computing Environment / Remote Procedure Calls ", es el sistema de llamada a procedimiento remoto desarrollado para el entorno de la informática distribuida (DCE). Este sistema permite a los programadores escribir software distribuido como si fuera todos los que trabajan en el mismo equipo, sin tener que preocuparse por el código de red subyacente.1
DCE RPC no debe confundirse con DCE el cual es un conjunto de servicios que incluye DCE RPC, además de otras cosas como CDS y DCE DFS.
DCE RPC fue encargado por la fundación Open Software Foundation. Una de las compañías clave que contribuyeron fue Apollo.

DCOM

Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET.1 2
La adición de la "D" a COM fue debido al uso extensivo de DCE/RPC, o más específicamente la versión mejorada de Microsoft, conocida como MSRPC.
En términos de las extensiones que añade a COM, DCOM tenía que resolver los problemas de
·         Aplanamiento - Serializar y deserializar los argumentos y valores de retorno de las llamadas a los métodos "sobre el cable".
·         Recolección de basura distribuida, asegurándose que las referencias mantenidas por clientes de las interfaces sean liberadas cuando, por ejemplo, el proceso cliente ha caído o la conexión de red se pierde.
Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC como el mecanismo RPC subyacente bajo DCOM. DCE/RPC define reglas estrictas en cuanto al aplanamiento y a quién es responsable de liberar la memoria.
DCOM fue uno de los mayores competidores de CORBA. Los defensores de ambas tecnologías sostenían que algún día serían el modelo de código y servicios sobre Internet. Sin embargo, las dificultades que suponía conseguir que estas tecnologías funcionasen a través de cortafuegos y sobre máquinas inseguras o desconocidas, significó que las peticiones HTTP normales, combinadas con los navegadores les ganasen la partida. Microsoft, en su momento intentó y fracasó anticiparse a esto añadiendo un transporte extra HTTP a DCE/RPC denominado "ncacn_http" (Connection-based, over HTTP).

Parámetro por Valor

Un parámetro por valor, como fd o nbytes, solo se copia a la pila. Para el procedimiento que recibe la llamada, un parámetro por valor es tan sólo una variable local ya iniciada. El procedimiento llamado podría modificarla, pero esto no afecta el valor de la variable original en el procedimiento que hizo la llamada.

Parámetro por Referencia

Un parámetro por referencia en C es un apuntador a una variable (es decir, la dirección de la variable), en lugar del valor de la variable. En la llamada a read, el segundo parámetro es un parámetro por referencia, puesto que en C los arreglos siempre se transfieren por referencia. Lo que se introduce en realidad a la pila es la dirección del arreglo de caracteres. Si el procedimiento llamado utiliza este parámetro para guardar algo en el arreglo de caracteres, esto sí modifica el arreglo en el procedimiento que hizo la llamada. La diferencia entre los parámetros llamados por valor o por referencia es importante para RPC, como veremos más adelante.

No hay comentarios:

Publicar un comentario