GUI和服务器之间远程通信的更好解决方案
Better solution for remote communication between GUI and server
在我们公司,我们将开发一个服务器应用程序,以及一个将控制它的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的开销。
相关文章:
- C++:将控制台输出存储在宏中更好吗
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 初始化具有非默认构造函数的std::数组项的更好方法
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 为什么新的随机库比std::rand()更好
- 寻找一种更好的方法来表示无符号字符数组
- 哪种方法更好,性能明智
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 寻求更好地理解标准::访问
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 如何更好地检查两个 char 变量是否在一组值中?
- 有没有更好的方法对C++中的三个整数进行排序?
- 什么模板用法在阶乘中更好
- 平面缓冲区可以利用向量中的 0 吗?还是其他小波比哈尔变换更好?
- 我们应该如何使用枚举类进行索引(或者我们应该更好地避免这种情况)?
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 比使用 s.str().c_str() 更好的表达?
- GUI和服务器之间远程通信的更好解决方案