代理和可信服务器访问
Agents and Trusted Server Access
我的问题是关于 Domino 代理、可信服务器和 DIIOP。在描述问题之前,让我先介绍一下 背景 -
我正在创建一个与 Domino 集成的应用程序,它能够删除特定用户的某些电子邮件 mailboxes.My 最初的设计和实现是将我的所有应用程序编写在中间件服务器上(不同于 Domino 服务器)并通过 DIIOP 和 Java API 远程设置与 Domino 服务器的会话并远程删除适当的电子邮件消息。在当前的部署环境中,客户有多个 Domino 邮件服务器,为了使我当前的 design/solution 正常工作,客户必须在所有 Domino 邮件服务器上打开 up/enable DIIOP,以便解决方案能够从适当的 Domino 邮件服务器中删除适当的电子邮件。在他们所有的邮件服务器上打开/启用 DIIOP 并不是客户愿意接受的事情,因此我需要重新设计我的解决方案。
为了满足这个要求 - 根据我的研究,我觉得我可以绕过这个限制(不是 运行在所有 Domino 邮件服务器上使用 DIIOP)将我的解决方案转换为 "Agent" 模型。我的代理将在其中一台 Domino 服务器上 运行,然后它可以从那里访问任何服务器上的 database/mail 文档并将其删除。我目前的想法是,我将通过来自中间件服务器的 URL 调用代理,这将作为我的代理的触发器,然后代理将继续访问并删除适当的邮件文档。请参阅下面的屏幕截图以获取有关 "Trusted Servers" 元素的参考,该元素似乎旨在允许代理访问另一个 Domino 邮件服务器上的数据库。
我的问题如下-
如果我继续使用此代理设计模型,那么当 DominoMailServer1 上的代理 运行 尝试 open/access DominoMailServer2 上的数据库时,该连接是否不通过 DIIOP ?有了这个架构,就不需要 enable/open 在 DominoMailServer2 上启动 DIIOP 了吗?这种通信是通过其他一些 RPC 机制发生的,还是在 DominoMailServer1 上执行的代理(在后台)用来访问 DominoMailServer2 上的数据库的一些底层 OS 级文件共享机制?
我的初始设计(我的中间件服务器解决方案通过 DIIOP 与所有单独的服务器通信)- 有什么方法可以 augment/modify 初始设计,这样就不需要打开在环境中的所有 Domino 邮件服务器上安装 DIIOP 并仍然完成 accessing/deleting 封电子邮件?
当 DominoMailServer1 上的代理 运行 连接到 DominoMailServer2 时,它使用 NRPC - Lotus 在 1980 年代后期发明的专有协议,允许 Lotus Notes 和 Domino,以及 Notes C API位于它们之下(以及所有其他使用 Notes 数据的 APIs 的实现之下),以跨不同平台和网络类型进行通信。 TCP/IP 网络上的 NRPC(如今这些网络都很重要)在端口 1352 上运行。
关于问题 2,您不必使用 DIIOP。您的 Java 代码可以使用 Notes.jar 而不是 NCSO.jar。但是,为了使用 Notes.jar,您必须在代码为 运行 的机器上安装 Notes 或 Domino 代码。如果是 Windows 机器,您可以安装 Notes 客户端。如果不是 Windows,您可以为任何平台安装 Domino 服务器代码,假设它是 IBM 支持的平台之一。代码需要安装,也需要设置,但您的 Java 代码不一定要 运行 才能工作。您的 Java 代码实际使用的是底层 DLL 或库,以及用于身份验证目的的 id 文件,这将允许 Notes.jar 使用 NRPC。您需要咨询您的 Notes/Domino 管理人员,很可能还需要咨询您的 IBM 代表,了解这可能产生的任何许可影响。恕我直言,由于您的代码充当客户端,因此即使它使用的是服务器安装附带的库,也应该将其视为客户端 - 但我无法告诉您 IBM 是否同意这一点。
顺便说一句,即使您没有询问...受信任的服务器设置会按照您的猜测进行。它允许一台 Domino 服务器上的代理访问另一台 Domino 服务器上的数据库和文档。在 Domino 6 之前,这是不允许的,因为当代理通过 NRPC 联系另一台服务器时,另一台服务器无法知道应该使用谁的权限来确定授予的访问级别。目标服务器只知道发出请求的服务器的身份。即使代理服务器告诉拥有代理的目标服务器,目标服务器也不会信任该信息,因为这可能是绕过 Notes 和 Domino 通常需要的强身份验证的捷径。实施可信服务器设置是为了识别 Donino 在传递与代理关联的身份信息时将信任的服务器。
我的问题是关于 Domino 代理、可信服务器和 DIIOP。在描述问题之前,让我先介绍一下 背景 -
我正在创建一个与 Domino 集成的应用程序,它能够删除特定用户的某些电子邮件 mailboxes.My 最初的设计和实现是将我的所有应用程序编写在中间件服务器上(不同于 Domino 服务器)并通过 DIIOP 和 Java API 远程设置与 Domino 服务器的会话并远程删除适当的电子邮件消息。在当前的部署环境中,客户有多个 Domino 邮件服务器,为了使我当前的 design/solution 正常工作,客户必须在所有 Domino 邮件服务器上打开 up/enable DIIOP,以便解决方案能够从适当的 Domino 邮件服务器中删除适当的电子邮件。在他们所有的邮件服务器上打开/启用 DIIOP 并不是客户愿意接受的事情,因此我需要重新设计我的解决方案。
为了满足这个要求 - 根据我的研究,我觉得我可以绕过这个限制(不是 运行在所有 Domino 邮件服务器上使用 DIIOP)将我的解决方案转换为 "Agent" 模型。我的代理将在其中一台 Domino 服务器上 运行,然后它可以从那里访问任何服务器上的 database/mail 文档并将其删除。我目前的想法是,我将通过来自中间件服务器的 URL 调用代理,这将作为我的代理的触发器,然后代理将继续访问并删除适当的邮件文档。请参阅下面的屏幕截图以获取有关 "Trusted Servers" 元素的参考,该元素似乎旨在允许代理访问另一个 Domino 邮件服务器上的数据库。
我的问题如下-
如果我继续使用此代理设计模型,那么当 DominoMailServer1 上的代理 运行 尝试 open/access DominoMailServer2 上的数据库时,该连接是否不通过 DIIOP ?有了这个架构,就不需要 enable/open 在 DominoMailServer2 上启动 DIIOP 了吗?这种通信是通过其他一些 RPC 机制发生的,还是在 DominoMailServer1 上执行的代理(在后台)用来访问 DominoMailServer2 上的数据库的一些底层 OS 级文件共享机制?
我的初始设计(我的中间件服务器解决方案通过 DIIOP 与所有单独的服务器通信)- 有什么方法可以 augment/modify 初始设计,这样就不需要打开在环境中的所有 Domino 邮件服务器上安装 DIIOP 并仍然完成 accessing/deleting 封电子邮件?
当 DominoMailServer1 上的代理 运行 连接到 DominoMailServer2 时,它使用 NRPC - Lotus 在 1980 年代后期发明的专有协议,允许 Lotus Notes 和 Domino,以及 Notes C API位于它们之下(以及所有其他使用 Notes 数据的 APIs 的实现之下),以跨不同平台和网络类型进行通信。 TCP/IP 网络上的 NRPC(如今这些网络都很重要)在端口 1352 上运行。
关于问题 2,您不必使用 DIIOP。您的 Java 代码可以使用 Notes.jar 而不是 NCSO.jar。但是,为了使用 Notes.jar,您必须在代码为 运行 的机器上安装 Notes 或 Domino 代码。如果是 Windows 机器,您可以安装 Notes 客户端。如果不是 Windows,您可以为任何平台安装 Domino 服务器代码,假设它是 IBM 支持的平台之一。代码需要安装,也需要设置,但您的 Java 代码不一定要 运行 才能工作。您的 Java 代码实际使用的是底层 DLL 或库,以及用于身份验证目的的 id 文件,这将允许 Notes.jar 使用 NRPC。您需要咨询您的 Notes/Domino 管理人员,很可能还需要咨询您的 IBM 代表,了解这可能产生的任何许可影响。恕我直言,由于您的代码充当客户端,因此即使它使用的是服务器安装附带的库,也应该将其视为客户端 - 但我无法告诉您 IBM 是否同意这一点。
顺便说一句,即使您没有询问...受信任的服务器设置会按照您的猜测进行。它允许一台 Domino 服务器上的代理访问另一台 Domino 服务器上的数据库和文档。在 Domino 6 之前,这是不允许的,因为当代理通过 NRPC 联系另一台服务器时,另一台服务器无法知道应该使用谁的权限来确定授予的访问级别。目标服务器只知道发出请求的服务器的身份。即使代理服务器告诉拥有代理的目标服务器,目标服务器也不会信任该信息,因为这可能是绕过 Notes 和 Domino 通常需要的强身份验证的捷径。实施可信服务器设置是为了识别 Donino 在传递与代理关联的身份信息时将信任的服务器。