我有一个复杂而成熟的科学数据处理项目,它由一个主要用 VB6 编写的纠缠的 COM 服务器网络组成,只使用很少的 UI(没有表单或控件),因为迄今为止大多数普通用户都用它编写简短的 VBA 程序。
我们有两个未来的目标:
通过 Linux 上的 Web 服务组件创建 Web UI。
逐渐将项目迁移到 D/Python 并远离 Windows 和 VB6。
我们正处于设计消息传递框架的阶段,该框架将作为这两个目标的最佳共同提名者。
这些项目执行繁重的数字运算任务,包括运行自定义 R 脚本和 LaTeX/MS Word/Excel 报告。我们需要向广泛的客户公开一些功能,Web UI 似乎是最好的选择。另一方面,随着我们环境中对 Windows 的使用逐渐减少,我们希望最终将我们的项目移植到 Linux,或者至少保持该选项处于开放状态,而不是将自己锁定在特定于 Windows 的技术中。
从这个角度来看,基于 .NET 的自然解决方案是我们首先要避免的。
从 VB6 的角度来看,DCOM/MSRPC 似乎很自然,但这种技术已经过时且不安全。此外,我们希望将项目的 Web 服务部分保留在 Linux 上。
所以最好的选择是在 Linux 上编写 Web 服务部分(例如使用 Python 或 D)。问题仍然存在:如何有效地在 VB6 和 Python(或 D)之间进行通信。很明显,它将是某种网络协议。我们需要的是高效且易于使用的协议,它允许在两方之间传递事件和消息。传输的数据量很小,高延迟并不重要。
- DCOM/MSRPC似乎可以进行本地通信,但在 Linux 部分真的很容易吗?到目前为止,我们对 Python 的经验很少,并且在 D 中不支持它。
- 自定义 IP 协议。由于我们的需求很小,这可能会奏效。但它不是重新发明轮子吗?
- 我们喜欢JSON-RPC的想法,因为我们项目的一部分已经使用了 JSON,并且有用于 Python 和VB6的公开可用的客户端。
我想,我们的任务还有更多可行的解决方案。我们将雇用人员寻求帮助,但在此之前,我们需要知道有哪些可用的技术以及在哪里(谁)寻求帮助。