Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将业务逻辑迁移到服务:节俭的替代方案_C++_Python_Architecture_Thrift - Fatal编程技术网

C++ 将业务逻辑迁移到服务:节俭的替代方案

C++ 将业务逻辑迁移到服务:节俭的替代方案,c++,python,architecture,thrift,C++,Python,Architecture,Thrift,我正在构建一个应用程序,它有一个C++/Qt的基于应用程序的前端和一个Python(使用Django)框架的基于web的前端。我正在尝试将架构迁移到基于服务的架构,因为这两个前端都嵌入了业务逻辑,这使得维护变得很困难 我正在考虑选择Thrift来编写RPC服务,系统中的其他模块和Python代码都可以使用这些服务。然而,看起来,节约并不适合Windows,所以我选择将节省输出转换为一些C++结构,需要重新序列化/去序列化,以便服务可以被Qt/C++所消耗。Python代码可以轻松地使用这些廉价服

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

我正在考虑选择Thrift来编写RPC服务,系统中的其他模块和Python代码都可以使用这些服务。然而,看起来,节约并不适合Windows,所以我选择将节省输出转换为一些C++结构,需要重新序列化/去序列化,以便服务可以被Qt/C++所消耗。Python代码可以轻松地使用这些廉价服务

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

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

我使用omniORB实现了类似的功能。它有Python和C++的绑定。这在python中非常简单,而且性能非常好。

您可以考虑:

  • 已经提到的CORBA解决方案:内置封送,紧凑的二进制协议
  • RESTHTTP和基于json的服务器:简单,网络上有点聊天,您需要将数据序列化为json
  • AMQP messaging+json或其他序列化程序:您需要将数据序列化为json或其他类似于google协议缓冲区的内容,此外,如果您需要更多服务器,则扩展将更简单