【发布时间】:2016-10-05 05:48:07
【问题描述】:
我需要在 .NET 中编写 Bridge 应用程序,并且客户端是 Java RMI。 如果可能的话,我试图找到在 .NET 中实现服务器的正确方法。
【问题讨论】:
-
不是。 Java RMI 依赖于 Java 序列化,为此您需要一个 JVM。
标签: c# windows-services rmi rpc .net-remoting
我需要在 .NET 中编写 Bridge 应用程序,并且客户端是 Java RMI。 如果可能的话,我试图找到在 .NET 中实现服务器的正确方法。
【问题讨论】:
标签: c# windows-services rmi rpc .net-remoting
这并非不可能,但几乎可以肯定不值得在纯 .NET 中开发网桥。如果您无法将客户端更改为更具互操作性的技术(一些多语言 RPC 或 REST),请考虑如何将 RMI 的 Java 服务器端合并到桥应用程序中。
例如,您可以在使用 C/C++ 开发的“本机”进程中托管 JVM,或者您可以将本机代码的 DLL 加载到 JVM 进程中。无论哪种情况,您都使用 JNI 从 Java 到 C/C++ 进行通信。您可以在 C++/CLI 中开发 C/C++ 端以过渡到 .NET。 (这导致了一个有趣的场景,即 JVM 和 CLR 在同一进程中运行,我从未亲自使用过。)
或者,您可以将服务器端 Java 和 .NET 分成不同的进程,并让它们再次使用多语言 RPC 或 REST 进行通信(请注意,这不需要更改客户端)。如果您要桥接的接口很大,您可能更喜欢这种方法来编写大型 JNI 接口的本机端,我觉得这很乏味且容易出错。
【讨论】: