Python 请求与 java 网络服务

Python requests vs java webservices

我有一个用 cgi 编写的遗留 Web 应用程序 sys-1,当前使用 TCP 套接字连接与另一个系统通信 sys-2Sys-1 以 unix 字符串的形式发送数据。现在 sys-2 正在升级到 java 网络服务,这反过来又需要我们升级。是否有任何升级方法涉及对现有遗留代码的最小更改。我正在考虑创建一个代码块,它获取 Sys-1 的输出并将其更改为 Sys-2 所需的格式,反之亦然。

在研究过程中,我发现了两种方法:

  1. 通过使用 python 中的 "requests" 库。
  2. 使用 java 网络服务。

我是 Java 网络服务的新手,对 python 有一些了解。谁能建议这种方法是否有效,从性能和维护的角度来看哪种方法更好?也欢迎任何新的建议!

Is there any way to upgrade involving minimal changes to the existing legacy code.

提到的解决方案,在应用程序外部添加一个转换层,对现有代码库的影响最小(因为它不会更改现有代码库)。

Can anyone advise if this method works

编写 Legacy-System-2 到 Modern-System-2 的转换器是否可行?是的。您可以使用任何您喜欢的语言来编写它。Web 服务就是 Web 服务,重要的是它们是用什么实现的。与 TCP 套接字相同。

better way to opt from a performance

性能有多重要?如果这是在蓝色月亮中使用一次,那么谁在乎呢。在服务之间加一个盒子,会使服务之间的通信变慢。如果实施得当并且 运行 接近系统 1 或系统 2 可能不会慢很多。

maintenance point of view?

添加额外的基础设施会增加复杂性,从而增加维护问题。它还添加了要维护的新代码块,如果系统 1 需要以新的方式使用系统 2,则您有两批代码需要维护(遗留系统 1 和 Legacy/Modern 转换器)。

Any new suggestions are also welcome!

遗产有多糟糕?您能否将 System-1-to-System-2 代码撕成一些漂亮的界面,您可以更新这些界面以轻松使用现代系统 2?从长远来看,这会降低总体成本,但会(可能显着)增加前期成本。所以你必须决定什么对你的组织来说更重要。上市时间或长期维护。除了您的组织,没有人可以回答这个问题。

也许你可以添加一个中间人。获取 unix 字符串的套接字服务器,将它们解析为 sys-2 类型的消息并将其发送到 sys-2。这可能是一个选项,可以不重写两个系统之间的所有调用。