摘要
- James E. White 在 RFC 707 中提出通用的过程调用协议和运行时,希望减少 ARPANET 各应用协议反复处理命令、参数与答复的负担。
- 文件记载了面向运行 TENEX 的 PDP-10 原型,也强调远程调用依然要经过进程间通信,成本高于本地调用,而且并非所有通信都适合过程调用。
一次改名为何要走两步
FTP 的改名操作把这个问题变得具体。1973 年的规范要求发送 RENAME FROM,再发送 RENAME TO。用户想表达的是一次改名,协议却要求客户端和服务器按顺序完成一段命令与答复。远程作业提交也有自己的命令流和回复;作业尚未结束时,服务器还可能报告进度。每种应用都在描述业务操作之外,重复承担一套对话规则。
RFC 707《网络资源共享的高级框架》正是从这层重复工作切入。作者 James E. White 当时在斯坦福研究院(SRI)的增强研究中心工作。文件并未主张取消消息,而是提出把共同的请求、参数、结果和应答处理方式放进更通用的层,让应用不必为每一种服务重新拼出命令语法。
调用语法下面仍是消息
方案中的过程调用协议(PCP)以 CALL 和 RETURN 配对,使用事务标识关联请求与结果,支持参数、返回值以及多个未完成请求。每个安装点的运行时负责封装调用、与远端交换消息,再把结果交还调用方。设计还允许阻塞或非阻塞调用,以及远端服务向客户端回调。
这改变的是程序的表达方式,不是网络的工作方式。程序可以围绕一个过程及其参数来组织逻辑,运行时再处理重复的命令往返;但消息仍需发送、匹配和等待。PCP 也没有把所有通信都塞进过程调用。文件保留较低层的进程间通信接口,供不适合这种形式的交互使用。
一台 TENEX 主机的证据边界
RFC 707 自述,增强研究中心从 1974 年 7 月开始研究,经过约 12 个月和三轮设计,最终为运行 TENEX 的 PDP-10 设计、编写说明并实现了运行时原型。文件称 TENEX 运行时实现了该规范,并提供了文中及附录所述能力的超集。这比单纯提出设想更具体:它指向一个明确的平台和项目方报告的实现。
证据也止于这里。它不能证明不同厂商的主机已经互通,不能给出部署规模或采用数量,更不能代表整个 ARPANET。RFC 编辑部如今把 RFC 707 标为 Legacy、状态 UNKNOWN;IETF Datatracker 说明它早于正式来源记录,不属于今天 IETF 标准流程中的正式成果。这些现行标签同样不能推算 1975 年有多少人使用过原型。
运行时不能抹掉路程
RFC 707 对自己的抽象提出了限制:本地过程调用很便宜,远程调用则不同,因为它必须借助进程间通信消息。程序员需要判断何时采用这种便利形式;分布式程序可以异步继续;某些有用的网络交互也无法自然表示成过程调用,因此底层 IPC 必须继续开放。
这段提醒比“网络像本地机器”这样的后见概括更忠于史料。RFC 707 记录的是一个有限而可检验的尝试:将重复的请求与回复机制放进通用运行时,在 TENEX 上做出原型,同时不把距离、异步性和通信成本藏起来。现有来源没有证明它成为后续 RPC 系统的起点,也没有说明它曾在 ARPANET 普遍部署。
来源
- James E. White,RFC 707,《网络资源共享的高级框架》。
- RFC 编辑部的 RFC 707 记录;IETF Datatracker 的 RFC 707 状态页。
- RFC 542:FTP 命令和改名序列;RFC 360:远程作业提交的命令、答复与进度报告。
- RFC 592提供 SRI 早期资源共享讨论的背景;恒路的第 65 篇笔记只是后来的编辑视角,不是证明 1970 年代意图或采用情况的史料。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
