2012-04-25 55 views
0

我正在構建一個應用程序,該應用程序在C++/Qt中具有基於應用程序的前端,並且在Python中使用基於Web的前端(使用Django)框架。我試圖將體系結構遷移到基於服務的體系結構,因爲這兩個前端都嵌入了業務邏輯,這使得難以維護。將業務邏輯遷移到服務:替代節點

我正在考慮選擇Thrift來編寫RPC服務,這些服務可以被系統和Python代碼中的其他模塊使用。然而,看起來,Thrift並不適合Windows,因此我可以選擇將Thrift輸出轉換爲一些C++結構,而這些結構需要再次序列化/反序列化,以便服務可以由Qt/C++使用。 Python代碼可以輕鬆地使用這些Thrift服務。

在這個過程中,我需要轉換/序列化結構,首先根據Thrift IDL和一些自定義代碼。任何建議,以改變體系結構,從而爲

  • 保持它的簡單
  • 作品多語言
  • 快速實施?

回答

1

你可以考慮:

  • 已經提到的CORBA解決方案:內置的封送處理,緊湊的二進制協議
  • REST基於HTTP和JSON服務器:簡單,有點繁瑣的網絡上,你需要序列化你的數據到json
  • AMQP消息傳遞+ json或其他一些序列化程序:您需要將數據序列化爲json或其他類似google協議緩衝區的數據,如果您需要更多服務器,則需要進行擴展。
1

我用omniORB實現了類似的東西。它綁定了python和C++。在Python中非常簡單,並且表現非常好。