2011-01-10 31 views
0

我的应用程序在Windows中运行,并使用C++/Qt实施。我可以选择哪一个? SSH还是AMQP?

该应用程序将调用部署在Linux服务器中的另一个应用程序,该应用程序将调用一些第三方工具。 Linux服务器应用程序将基于第三方工具的运行发送一些状态更新。通常,第三方应用程序将运行数小时,并且更新将在各个阶段发送。除了状态更新之外,Linux服务器还可能需要发送一些文件,Windows客户端还会发送一些运行这些第三方工具所需的文件。

我计划在libssh2中执行此操作,因为文件传输可以完成,应用程序也可以使用libssh2_channel_exec()执行。可以通过非阻塞套接字传输发送和接收更新。此外,转账必须安全,并且需要密码认证,所以我认为SSH将符合我的要求。

我也看了一下实现AMQP的apache的Qpid。由于更新频率较低,消息传递似乎更适合我的状态更新。但我不太确定安全连接,密码认证和应用程序调用。

那么,我可以在这两者之间进行选择?或者还有其他更好的选择吗?我不太习惯于网络编程,所以任何指针,链接都是值得欢迎的。

回答

0

您是否考虑过一些基于Web的解决方案,如XML-RPC,REST,SOAP或其他?请注意,您可以持续进行网络连接和流更新,也可以让客户端根据需要随时要求更新。

另外,我认为基于其中一些协议的构建解决方案将为您提供更简单的编码 - 当您拥有优秀的库时,无需使用某些低级解决方案。至于安全部分,我会考虑SSL是HTTPS协议的一部分,足够安全。当然你也可以做到混合风格,例如SSH tunel来保护服务器并使用SSH密钥授权。

但是,如果您确定要使用SSH或AMQP,请使用第一个 - 我认为它具有更好的安全性。另外,请不要使用username/passowrd。而是使用上面提到的键。

0

从SSH开始,然后考虑将顶层的其他协议分层。您可以使用SSH端口转发来创建到服务器的VPN连接,也许这可以更轻松地使用AMQP或0MQ之类的东西。

相关问题