HTTP是计算机领域最有名的首字母缩写词之一。NRPC就是Notes的HTTP。
Web程序的通讯是建立在HTTP协议上的,Notes应用背后的远程通讯则是通过NRPC(Notes remote procedure call)完成。
Notes客户端或者服务器要进行远程操作,比如打开一个数据库、打开某个视图的索引、打开一个文档、保 存一个文档,都需要使用NRPC发出请求,远端的服务器监听到请求后,转给DBServer任务;功能完成后,服务器再通过NRPC将结果返回。这些通讯对于命令的发出者都是透明的,发出者无需考虑对象数据库是在本地还是异地。
Domino服务器不断增加对各种应用级协议的支持,比如HTTP, POP3, IMAP, SMTP。如果是使用Notes客户端处理邮件和使用各种应用程序,就只需要使用NRPC协议;其他邮件客户端可以使用标准的邮件协议和Domino通讯;浏览器则可以通过HTTP访问到Domino上的数据库。
在客户端和服务器都可以分别看到NRPC通讯。打开客户端的notes.ini,添加如下的语句:
Client_Clock=1
Debug_Console=1
Debug_Outfile=<pathto filename> (optional)
第一行表示开启在客户端显示NRPC通讯,第二行表示结果在控制台显示,可选的第三行指定将结果输出到某个文件。
保存notes.ini后,重新启动Notes,就可以看到一个Notes Debug Window。现在,打开一个数据库,就可以在控制台中看到很多诸如Open_Note的消息。
(20-121)OPEN_NOTE: 1045 ms. [28+3906=3934]
从左到右各部分分别指:序号、名称、花费时间、发出的字节数、收到的字节数、总和的字节数。
下面是一些常见的NRPC通讯的种类和含义。
名称 含义
Open_Session 服务器互相验证并且建立会话
Open_Database找到并打开一个数据库
Open_Note 获取一个note的内容(note在下一节中说明)
Update_Note 保存一个note
Open_Collection打开一个视图
Read_Entries 从视图或搜索中获取多行文档的信息
Find_By_Key 根据一个关键字来找文档,比如GetDocumentByKey
Get_Special_Note_ID 获取ACL的信息
Close_DB 关闭数据库
在服务器端,可以输入Sh Trans命令看到NRPC通讯,管理员帮助中给出了一个例子。
在Notes架构中,各种基础功能都是由NOS(Notes Object Service)提供的,NRPC client用于完成有关NRPC协议的操作。