我正在阅读有关netconf的RFC6241,其中有关RPC作为协议的消息传递机制的说法。但是,规范定义了用于传输RPC消息的XML,所以我不太明白为什么这仍然被称为RPC?我曾经认为在ONC RPC中描述了RPC,即应该定义一个存根函数(由Unix上的 rpcgen 完成)等等,但NETCONF所说的并不严格遵循这个范例,而是定义了一种通过线路传输参数的机制。
也许,我误解了RPC作为一个概念。任何人都可以为我澄清netconf中的RPC吗?谢谢,
答案 0 :(得分:-1)
远程过程调用概念只是客户端 - 服务器通信模型中的请求 - 回复机制的抽象。客户端向(远程)服务器发送请求,等待响应,并在接收到后,根据收到的信息继续执行。这就对了。这基本上是在调用NETCONF操作时发生的情况。
您引用的specification:
ONC RPC协议基于远程过程调用模型, 这类似于本地过程调用模型。在当地 case,调用者将一个过程的参数放在一些好的 - 指定的位置(例如注册窗口)。然后转移 控制程序,最终重新获得控制权。在那 点,程序的结果是从井中提取的 指定的位置,调用者继续执行。
远程过程调用模型类似。一个控制线程 逻辑上涉及两个过程:呼叫者的过程和a 服务器的过程。呼叫者首先向呼叫者发送呼叫消息 服务器进程并等待(块)回复消息。电话 消息包括过程的参数和回复消息 包括程序的结果。一旦回复消息是 收到后,程序的结果被提取出来了 呼叫者的执行被恢复。
和NETCONF specification说同样的话:
也是如此NETCONF协议使用远程过程调用(RPC)范例。一个 客户端对XML中的RPC进行编码[W3C.REC-xml-20001006]并将其发送给 服务器使用安全的,面向连接的会话。服务器 以XML编码的回复进行响应。两者的内容 请求和响应在XML DTD或XML中完整描述 模式或两者,允许双方识别语法 对交易所施加的限制。
NETCONF使用基于RPC的通信范例。客户端发送一个 一系列一个或多个RPC请求消息,它们导致服务器 使用相应的一系列RPC回复消息进行响应。
RPC是一种请求 - 响应协议。 RPC由客户端启动,客户端向已知的远程服务器发送请求消息,以使用提供的参数执行指定的过程。远程服务器向客户端发送响应,应用程序继续其进程。当服务器正在处理呼叫时,客户端被阻止(它等待服务器在恢复执行之前完成处理),除非客户端向服务器发送异步请求,例如XHTTP调用。各种实现中存在许多变化和细微之处,导致各种不同(不兼容)的RPC协议。
(迟到总比没有好,对吗?)