【问题标题】:Java and .NET application interoperabilityJava 和 .NET 应用程序互操作性
【发布时间】:2011-09-12 10:40:06
【问题描述】:

我有一个 Java 应用程序和一个 .NET 应用程序都驻留在两台不同的机器上,需要在这两个应用程序之间设计一个通信层。任何输入或想法都会非常有帮助。下面提到的是这两个应用程序之间交互的性质。

  • Java 应用程序向 .NET 应用程序发送大量数据
  • 应将数据延迟降至最低
  • .NET 应用程序也应该能够请求一些数据(同步/异步)

【问题讨论】:

  • @Yedhu:你为什么不试试网络服务?

标签: java .net interop


【解决方案1】:

.Net 和 Java 对话的最简单方式是使用 Web 服务——我们在我的公司中取得了很大的成功(在 .Net 端使用 apache 的 cxf 和标准代码)。

但如果延迟和大小是主要要求,您应该使用套接字 - 两个平台都提供了相当广泛的套接字框架,它可以为您提供最佳性能。

【讨论】:

    【解决方案2】:

    我认为这可以通过在 java 端设置一个 xml webservices 层来完成。您可以将 RestEasy 用于宁静的 Web 服务。只是我的 0.2 美分。

    【讨论】:

      【解决方案3】:

      另一种选择是某种形式的 MOM(面向消息的中间件)。有很多实现,但首先要查看的是 ActiveMQ,因为它同时具有 Java 和 C# 绑定(以及其他)。

      我并不是说这比使用网络服务更好,这完全取决于您的要求。

      【讨论】:

        【解决方案4】:

        我们在使用 JAX-WS(Java 6 中标准运行时的一部分)提供 Web 服务方面有很好的经验。他们明确将 .NET 兼容性列为目标,并在 IDE 中得到很好的支持。

        Endpoint.publish() 机制允许进行小型、简单的部署。

        【讨论】:

          【解决方案5】:

          您可以使用网络服务。 Jax-WS 是 java 中允许您使用它的 API。作为这个 API 的实现,我推荐 Metro (http://metro.java.net/),它已经随 SDK 一起提供,并且与 netbeans 有很好的集成。

          正如已经有人提到的那样,您可以使用套接字,并在其上创建一个通信通道,但这有一些问题,首先是安全性。不要在现实生活中使用它。

          如果您需要有关此主题的帮助,可以开始阅读以下内容: Getting started with JAX-WS

          【讨论】:

            【解决方案6】:

            这真的取决于您的要求。简单的方式一般是Web services。但是,如果您想要更高的性能,或者更细粒度地访问其他平台上的 API,您可能需要考虑 JNBridgePro (www.jnbridge.com)。

            披露:我为 JNBridge 工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-09-06
              • 2010-09-21
              • 2011-09-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多