【问题标题】:Agents and Trusted Server Access代理和可信服务器访问
【发布时间】:2015-08-06 19:09:33
【问题描述】:

我的问题是关于 Domino 代理、可信服务器和 DIIOP。在我描述这个问题之前,让我先介绍一下背景 -

我正在创建一个与 Domino 集成的应用程序,并且能够从某些用户邮箱中删除某些电子邮件。我最初的设计和实现是将我的所有应用程序写在中间件服务器上(不同于 Domino 服务器)并通过 DIIOP 和Java API 远程设置与 Domino 服务器的会话并远程删除相应的电子邮件。在当前的部署环境中,客户有多个 Domino 邮件服务器,为了使我当前的设计/解决方案正常工作,客户必须在所有 Domino 邮件服务器上打开/启用 DIIOP,以便解决方案能够删除适当的电子邮件来自适当的 Domino 邮件服务器。在他们所有的邮件服务器上打开/启用 DIIOP 对客户来说并不是一件容易的事,因此我需要重新设计我的解决方案。

为了满足这个要求 - 根据我的研究,我觉得我可以通过将我的解决方案转换为“代理”模型来解决这个限制(不在所有 Domino 邮件服务器上运行 DIIOP)。我的代理将在其中一台 Domino 服务器上运行,它可以从那里访问任何服务器上的数据库/邮件文档并删除它们。我目前的想法是我将通过来自中间件服务器的 URL 调用代理,该 URL 将作为我的代理的触发器,然后代理将继续访问并删除相应的邮件文档。有关“受信任的服务器”元素的参考,请参见下面的屏幕截图,该元素似乎旨在允许代理访问另一个 Domino 邮件服务器上的数据库。

我的问题如下 -

  1. 如果我继续使用此代理设计模型,那么当在 DominoMailServer1 上运行的代理尝试打开/访问 DominoMailServer2 上的数据库时,该连接是否不通过 DIIOP?使用这种架构,是否不需要在 DominoMailServer2 上启用/打开 DIIOP?这种通信是通过其他 RPC 机制发生的,还是在 DominoMailServer1 上执行的代理(在后台)使用某种底层操作系统级别的文件共享机制来访问 DominoMailServer2 上的数据库?

  2. 使用我的初始设计(我在中间件服务器上的解决方案通过 DIIOP 与所有单独的服务器进行通信) - 有没有办法增加/修改初始设计,以便无需在所有服务器上打开 DIIOP环境中的 Domino 邮件服务器仍然可以完成访问/删除电子邮件?

【问题讨论】:

    标签: java lotus-notes lotus-domino lotus domino-designer-eclipse


    【解决方案1】:

    当运行在 DominoMailServer1 上的代理连接到 DominoMailServer2 时,它使用 NRPC——Lotus 在 1980 年代后期发明的允许 Lotus Notes 和 Domino 的专有协议,以及位于它们下面的 Notes C API(以及在所有其他使用 Notes 数据的 API),以跨不同平台和网络类型进行通信。 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 通常需要的强身份验证的捷径。实施受信任的服务器设置是为了识别多尼诺在传递与代理关联的身份信息时将信任的服务器。

    【讨论】:

    • 很棒的反应。谢谢理查德。我将尝试看看您提到的 Notes.jar 方法(没有 DIIOP),然后决定我的前进道路......
    • 还有一点需要提一下:在 openNTF 网站上有一个 Notes.jar 的开源替代品。它被称为 OpenNTF Dominpo API。它改进了使用 notes.jar 中的标准类的许多烦人的方面 - 例如,无需调用 recycle() 来释放 Java GC 不知道的 Notes 内存。它仍然依赖于已安装的 Notes 或 Domino 版本。 openntf.org/main.nsf/project.xsp?r=project/…
    • 谢谢理查德。我觉得代理模型对我来说会更好一些。我的中间件服务器是基于 CentOS 的服务器。 Notes 客户端似乎确实有一个 RHEL 版本,该版本很可能适用于 CentOS...我没有尝试安装并查看它是否适用于 CentOS,但我认为这可能会引入它自己的问题,因此我倾向于使用代理方法...
    猜你喜欢
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多