将业务逻辑迁移到服务:Thrift的替代品

时间:2012-04-25 14:18:48

标签: c++ python architecture thrift

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

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

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

  • 保持简单
  • 使用多种语言
  • 快速实施?

2 个答案:

答案 0 :(得分:1)

我使用omniORB实现了类似的功能。它具有python和C ++的绑定。它在python中非常简单并且表现非常好。

答案 1 :(得分:1)

你可以考虑:

  • 已经提到过CORBA解决方案:内置编组,紧凑的二进制协议
  • REST http和基于json服务器:简单,在网络上有点健谈,需要将数据序列化为json
  • AMQP消息传递+ json或其他一些序列化程序:您需要将数据序列化为json或google协议缓冲区等其他内容,如果需要更多服务器,则需要进行扩展。