Resumen

  • James E. White planteó en la RFC 707 un protocolo común de llamadas a procedimientos y un entorno de ejecución para reducir la repetición de comandos y respuestas en los protocolos de aplicaciones de ARPANET.
  • El documento informa de un prototipo para un PDP-10 con TENEX, pero subraya que una llamada remota aún requiere mensajes de comunicación entre procesos, cuesta más que una local y no representa todas las interacciones útiles.

El trabajo escondido detrás de una orden

Un cambio de nombre parece una acción única. La especificación FTP de 1973 exigía, sin embargo, que el cliente enviara RENAME FROM y después RENAME TO. La tarea se convertía en una secuencia de órdenes y respuestas que la aplicación debía coordinar. Remote Job Entry tenía otro diálogo: el cliente enviaba comandos y el servidor podía contestar con avances mientras el trabajo seguía en marcha. Cada protocolo llevaba consigo una gramática propia de intercambio.

La RFC 707, A High-Level Framework for Network-Based Resource Sharing, vio en esa repetición un coste de diseño. James E. White, del Augmentation Research Center de Stanford Research Institute (SRI), propuso expresar la operación como una llamada con argumentos y resultados, y dejar que una capa compartida organizara los intercambios comunes. La propuesta no era eliminar la comunicación, sino dejar de reconstruir su andamiaje para cada aplicación.

Una interfaz uniforme sobre transporte distribuido

El Procedure Call Protocol (PCP) planteaba mensajes CALL y RETURN, identificadores de transacción y la posibilidad de mantener varias solicitudes pendientes. Un entorno de ejecución en cada instalación prepararía la llamada, hablaría con la otra máquina y devolvería el resultado al programa. El diseño incluía llamadas bloqueantes y no bloqueantes, además de la posibilidad de que el servidor remoto llamara al cliente.

Así, el programador podía trabajar con una operación más reconocible; el run-time absorbía parte de la gestión de parámetros, correlación y respuesta. Pero el IPC seguía debajo. White advirtió que algunos intercambios no encajan bien en el modelo de llamada y que los programas distribuidos también pueden avanzar de forma asíncrona. Para esos casos, la comunicación de menor nivel debía seguir disponible.

Qué acredita el prototipo

El texto sitúa el inicio de la investigación de ARC en julio de 1974, describe tres iteraciones a lo largo de doce meses y dice que el equipo diseñó, documentó e implementó un prototipo de entorno de ejecución para un PDP-10 que usaba TENEX. También afirma que la versión de TENEX implementaba la especificación y ofrecía un conjunto de capacidades más amplio que el descrito.

Es una afirmación concreta del propio proyecto: nombra una plataforma y una implementación. No es un censo de instalaciones, una prueba de interoperabilidad entre sistemas distintos ni una medida de adopción en ARPANET. Hoy RFC Editor muestra RFC 707 como Legacy y con estado UNKNOWN; el Datatracker indica que es anterior al registro formal de fuentes y que carece de posición formal en el proceso IETF actual. Ese estado administrativo no permite reconstruir cuántas instalaciones lo probaron en los años setenta.

La llamada seguía pagando el viaje

La cautela del documento es directa: las llamadas locales son baratas; las remotas no, porque requieren mensajes IPC. El programador debe decidir cuándo conviene usarlas. Un programa distribuido puede continuar de forma asíncrona, y hay comunicaciones útiles que no se describen bien como procedimientos. La abstracción ordena el código, pero no convierte la distancia en una operación local.

Por eso, la historia que permite contar la evidencia es más acotada que la de una supuesta invención de RPC. RFC 707 identifica la duplicación de diálogos de aplicación, propone una capa común y registra un prototipo TENEX. Las fuentes disponibles no demuestran despliegue general ni una influencia causal sobre sistemas RPC posteriores. El documento interesa precisamente porque expone tanto el atractivo de la interfaz como sus límites operativos.

Fuentes