2011-01-10 3 views
0

Мое приложение работает в Windows и реализовано с использованием C++/Qt.Какой из них выбрать? SSH или AMQP?

Приложение вызовет другое приложение, развернутое на сервере Linux, которое, в свою очередь, вызовет некоторые сторонние инструменты. Серверное приложение Linux отправит некоторые обновления статуса на основе работы сторонних инструментов. Обычно стороннее приложение будет работать в течение нескольких часов, и обновления будут отправляться на разных этапах. Сервер Linux также может отправлять некоторые файлы в дополнение к обновлениям состояния, и клиент Windows также отправит некоторые файлы, необходимые для работы сторонних инструментов.

Я планировал реализовать это в libssh2, поскольку передача файлов может быть выполнена, и приложения могут быть выполнены также с использованием libssh2_channel_exec(). Обновления могут быть отправлены и получены через неблокирующие передачи сокетов. Также переводы должны быть защищены, и они аутентифицируются паролем, поэтому я думал, что SSH будет соответствовать моим требованиям.

Я также изучил Qpid apache, который реализует AMQP. Обмен сообщениями кажется более подходящим для моих обновлений статуса, поскольку обновления становятся менее частыми. Но я не очень уверен в защищенном подключении, аутентификации паролей и вызове приложения.

Итак, какой из них выбрать? Или есть ли другой лучший вариант? Я не совсем привык к сетевому программированию, поэтому любые указатели, ссылки по этому поводу приветствуются.

ответ

0

Рассматривали ли вы некоторые веб-решения, такие как XML-RPC, REST, SOAP или другие? Обратите внимание, что вы можете либо иметь постоянное сетевое подключение, либо обновлять потоки, либо просто заставлять своего клиента запрашивать обновление так часто, как нужно.

Кроме того, я думаю, что решение для построения, основанное на некоторых из этих протоколов, даст вам более легкое кодирование - нет необходимости в некоторых решениях низкого уровня, когда у вас большие библиотеки. Что касается части безопасности, я бы рассмотрел SSL, который является частью протокола HTTPS, чтобы быть достаточно безопасным. Конечно, вы также можете использовать этот гибридный стиль, например SSH-туннель, чтобы защитить сервер и использовать авторизацию ключа SSH.

Но если вы уверены, что вы используете SSH или AMQP, тогда используйте первый вариант - я думаю, что он имеет лучшую безопасность. Кроме того, не пытайтесь использовать username/passowrd. Вместо этого используйте упомянутые выше ключи.

0

Начните с SSH, а затем рассмотрите прокладку других протоколов сверху. Вы можете использовать пересылку портов SSH для создания VPN-подключения к серверу, и, возможно, это упростит использование чего-то вроде AMQP или 0MQ.

Смежные вопросы