【问题标题】:.Net Remoting: Wrap user objects vs more remoting channels.Net Remoting:包装用户对象与更多远程处理通道
【发布时间】:2023-04-06 17:16:02
【问题描述】:

我正在通过基于远程处理的小型项目来学习远程处理,并在这样做的同时尝试执行良好实践以避免我养成不良习惯的习惯。

有一项使用用户创建插件的服务。每个插件都隔离在自己的 appdomain 中。此外,还有一个客户端应用程序连接到该服务并与之交互。

有服务-客户端通信和服务-插件通信的通道,但没有任何促进插件-客户端通信的通道。因此,插件创建的任何对象都必须先包装在服务定义的对象中,然后才能到达客户端(否则会由于缺少通道接收器而导致异常)。

如果这有意义,我的问题是:我应该继续这种模式还是应该在插件和客户端应用程序域之间创建通道以允许插件实例化的对象进入客户端应用程序?

感谢您提供有关该主题的任何教育!

【问题讨论】:

    标签: .net remoting


    【解决方案1】:

    如果不详细了解您的申请,我无法给您明确的答案,所以虽然这个问题可以说是主观的,但这是我的主观回答:

    服务器聚合到插件的连接似乎是合理的,客户端只维护一个到服务器的通道。这以多种方式简化和整合了解决方案:

    • 仅在服务器中执行访问控制
    • 插件机制可以让客户端透明
    • 全面简化客户端
    • 在客户端和服务器位于不同机器上的情况下,您可能希望客户端只与服务器通信,而不是直接与任何插件通信,因为它可能需要在服务器计算机上打开多个连接/端口(例如每个插件),如果您有防火墙等,这可能会成为一个问题。

    另一方面,将每个插件对象封装在服务器对象中可能会很麻烦。

    【讨论】:

    • 您关于不同机器和防火墙的观点是我没有考虑的。将每个对象包装在服务器对象中非常麻烦,但尝试协调未知数量的可能使用的端口也是一场噩梦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多