使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP

问题描述

我们正在将部署在虚拟机内部数据中心的 .Net 应用程序与云端 Google 云平台中的发布/订阅资源主题进行集成。我有一个我目前无法决定的场景,需要帮助和正确的方向。下面是用例的简要细节。请查看并提供您的想法。

目前有一个 .Net 应用程序部署在旧本地客户端数据中心的 Windows 虚拟机上。它的作用是将 XML 消息发布到部署在本地相同数据中心的 EMS 服务器上的 Tibco EMS 主题。部署在不同 VM 上的 Java 应用程序很少订阅此 Tibco 主题并拉取消息并对其进行处理。这是遗留流程。

作为现代化的一部分,GCP 正在加入。现在的场景是 On-Prem .Net 应用程序发布到 Tibco 主题的 XML 消息也应该被推送到 GCP 云上的发布/订阅资源主题。已部署在 GCP infra 上的 Java 微服务将订阅主题并从其中使用这些消息。

现在我面临的问题是如何在 On-Prem 和云应用程序之间进行这种集成。我想了几个选项。

  1. 直接从 .Net 应用程序将消息发布到 GCP 中的 Pub/sub 主题的旧 Tibco 主题复制消息。我不是 Tibco 专家,不确定这是否受支持。我找到了下面的链接,但不确定这是否适合我的用例。此外,客户希望远离 Tibco,但不确定数据中心上的传统 Tibco EMS 是否支持以下 Tibco 连接器功能https://www.tibco.com/connected/google-cloud-pub/sub
  2. 对 .Net 代码库进行更改,以便在代码中将消息发布到 Tibco 主题,我们可以添加其他代码以将其直接发布到 GCP 中的 Pub/Sub 主题。不确定这是否可以,因为 .Net 应用程序位于传统的本地 VM 上,而 Pub/Sub 位于云中。在这里,我也不熟悉 .Net,但发现有 .Net Google 客户端库可以添加到 .Net 代码中以实现此流程。此外,Google Pub/Sub 是要使用的正确集成工具还是必须使用其他工具来连接这两个系统以进行收集。

到目前为止,我可以继续。你们能否让我知道上述两种方法是否正确,或者存在问题,哪一种是正确的方法。此外,如果除上述之外还有其他任何解决方案,它确实会帮助我向前迈进。希望得到大家的积极回复和帮助。

谢谢,Vikeng21

解决方法

对于第一个场景,提到的连接器实际上是一个 TIBCO BusinessWorks 插件。因此,该方法是使用 TIBCO BusinessWorks 构建一种 GCP Cloud Messaging / TIBCO EMS 网关。然后就可以在内部或云中运行此解决方案(使用 TIBCO TCI 产品)。 这种方法的优点是它对您的应用程序是透明的,本地 .Net 应用程序和云应用程序将收到完全相同的消息。

,

我认为 EmmanuelM 的回答涵盖了第一种情况,这可能是最简单、最透明的方法。

关于场景#2。我认为这也是一种有效的方法,尽管它需要修改您的应用程序代码以将消息与 Tibco 一起发布到 Pub/Sub,但我也不是 Tibco 专家;但就 Pub/Sub 而言,正如您所提到的,Pub/Sub 提供了一个 .NET client library,您可以在应用程序中使用它来轻松发布和使用 Pub/Sub 消息。我看到你提到了:

不确定这是否可行,因为 .Net 应用程序位于传统的本地虚拟机上,而 Pub/Sub 位于云端

完全没问题; Cloud Pub/Sub 服务通过 its API 使用,您可以使用 API,无论您是在本地还是云端进行。

关于这种方法的事情是我不确定如何在 Tibco 和 Pub/Sub 之间保持一致性,我假设这就是为什么第一种方法会更容易和透明,因为这可能是集成的原因插件负责。否则,可能需要一些自定义应用程序逻辑来保证消息成功发布到 Tibco 和 Pub/Sub。

话虽如此,我真的建议您在 contact with Google Cloud Sales 中详细描述您的用例、业务要求并为您的迁移计划获得个性化的帮助。