GUI和服务器之间远程通信的更好解决方案

Better solution for remote communication between GUI and server

本文关键字:通信 更好 解决方案 服务器 之间 程通信 GUI      更新时间:2023-10-16

在我们公司,我们将开发一个服务器应用程序,以及一个将控制它的GUI。服务器应用程序是用c++编写的。我们需要能够从GUI向应用程序发送命令。它们通常只有很少的参数,数据也不会很大(几乎不会大于1kb)。首先,GUI将在服务器的同一系统上运行,但是需要将GUI放在另一台机器上。一个重要的需求是,当GUI需要向服务器方法发送异步调用时,服务器也必须能够向GUI发送数据(例如,报告错误)。现在我们正在评估GUI应用程序和服务器之间的通信协议技术。我们对各种机会都持开放态度,比如SOAP、XML-RPC、JSON、协议缓冲区或其他。在SOAP或类似协议的情况下,由于双向性需求,我们可以评估创建轮询机制的可能性,即,如果需要,GUI将定期"ping"服务器,而不需要对称的SOAP服务器。

我想就各种可行的解决方案提出一些建议。

更新:我们还需要一个认证和加密系统。HTTPS是一个可行的解决方案。

zeroc's ice也是一个值得检查的通信中间件系统,它具有双向连接,而icestorm具有允许异步方法调用的发布/订阅模型

就我个人而言,我会选择JSON。它比XML(通过扩展,SOAP)要简单得多,并且有很多库可以用来处理JSON数据的序列化和反序列化,还有很多很好的工具可以以一种很好的方式显示JSON数据。

在我看来,它可以像XML一样易于阅读(当格式化时)。而且您也没有XML的开销。