Создание высокопроизводительного сетевого сервера на C ++

Мне нужно создать сетевой сервер на C ++ для торговли заявление. Этот сетевой сервер должен выполнять следующие задачи:

  • обрабатывать аутентификацию клиентов и предоставлять идентификатор сеанса для каждого сеанса .

  • обрабатывают заказы, исходящие от клиентов, и информируют клиентов об их исполнении.

  • обрабатывают другие запросы данных, запрошенные клиентами, и отправляют им данные обратно .

Я планирую использовать сетевую библиотеку Boost.Asio и буферы протокола Google для реализации сообщений, отправляемых от клиентов на сервер. Подходы, основанные на XML-RPC или SOAP, строго запрещены, так как задержка является большой проблемой.

У меня есть следующие вопросы к сообществу stackoverflow:

  1. Можно ли реализовать эти сообщения с использованием буферов протокола ? Я также рассматриваю возможность отправки сообщений в библиотеку Boost serialization , чтобы реализовать это. Когда я смотрю на код, я чувствую себя более уверенным в реализации этого с помощью ускоренной сериализации, а заголовки Google protobuf выглядят слишком тяжелыми. Какой из этих методов будет а) более удобным в обслуживании и б) потребует меньше усилий? Я думаю, оба этих подхода будут работать на разных платформах.

  2. Есть ли еще какая-нибудь сетевая библиотека, на которую я должен обратить внимание, кроме от Boost.Asio? Я считаю ACE немного устаревшей в том, что касается стиля кодирования C ++.

  3. В конце концов я бы хотел, чтобы этот сетевой сервер работал на SSL, однако у меня нет опыта внедрения SSL. Сколько усилий потребуется для перехода на SSL позже. Следует ли мне начинать с SSL или его можно будет добавить позже?

  4. Кто-нибудь знает о хорошем сетевом проекте с открытым исходным кодом, который мог бы реализовать аналогичный сетевой сервер с помощью Boost.Asio, чтобы вдохновиться ?

16
задан Sam Miller 5 October 2011 в 16:50
поделиться