ONC-RPC (Open Network
Computing - Remote Procedure Call)
Esta implementación fue desarrollada inicialmente por Sun Microsystem y está
disponible en la gran mayoría de los sistemas
UNIX. La especificación de ONC-RPC versión 2 está descrita en la RFC
1831 (Agosto, 1995). La RFC 1832 provee
la descripción de XDR (Agosto, 1995). Ambas pueden ser obtenidas en el sitio
http://www.rfc-editor.org.
ONC-RPC cuenta con los siguientes componentes:
• rpcgen, un compilador que toma la definición de la
interfaz de un procedimiento remoto y
genera el “stub” del cliente y el “stub” del servidor.
• XDR (eXternal Data Representation), un estándar para la descripción y
codificación de datos que garantiza portabilidad entre sistemas de arquitecturas diferentes.
• Una librería que maneja todos los detalles.
DCE Remote Procedure Call
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 CDSy DCE DFS.
DCE RPC fue encargado por la fundación Open Software Foundation. Una de las compañías clave que contribuyeron fue Apollo.
Distributed Component Object Model
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.
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 web 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ámetros
de valor y referencia
La primera es que, en
C, los parámetros pueden llamarse por valor o por referencia. Un parámetro por valor, como fd o nbytes,
solo se copia a la pila como se muestra en la figura A(b). 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.
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