0

我正在构建一个应用程序,该应用程序在 C++/Qt 中具有基于应用程序的前端,在 Python(使用 Django)框架中具有基于 Web 的前端。我正在尝试将架构迁移到基于服务的架构,因为这两个前端都嵌入了业务逻辑,这使得它难以维护。

我正在考虑选择 Thrift 来编写 RPC 服务,这些服务可以被系统中的其他模块和 Python 代码使用。但是,看起来 Thrift 在 Windows 上不能很好地工作,所以我可以选择将 Thrift 输出转换为一些 C++ 结构,然后需要再次序列化/反序列化,以便服务可以由 Qt/C++ 使用。Python 代码可以轻松使用这些 Thrift 服务。

在这个过程中,我需要转换/序列化结构,首先根据 Thrift IDL,然后是一些自定义代码。任何改变架构的建议,以便

  • 把事情简单化
  • 适用于多种语言
  • 快速实施?
4

2 回答 2

1

我已经使用omniORB 实现了类似的东西。它具有 python 和 C++ 的绑定。在 python 中它真的很容易并且性能非常好。

于 2012-04-25T14:38:15.567 回答
1

你可以考虑:

  • 已经提到的 CORBA 解决方案:内置编组,紧凑的二进制协议
  • REST http 和基于 json 的服务器:简单,网络上有点啰嗦,你需要将你的数据序列化为 json
  • AMQP 消息传递 + json 或其他一些序列化器:您需要将数据序列化为 json 或其他类似 google 协议缓冲区的东西,此外,如果您需要更多服务器,扩展会更简单。
于 2012-04-26T07:17:21.517 回答