Необходимо реализовать общение мобильного клиента с сервером. Варианта реализации общения клиента с сервером два:
1. HTTP. клиент выступает в качестве веб-клиента и общается с сервером обмениваясь JSON. на сервере бежит Apache2 или Nginx – самая простая реализация
2. TCP. клиент и сервер общаются бинарным потоком сериализуя передаваемый объект с помощью Protobuf/Thift/Avro. на сервере необходимо реализовать свой небольшой TCP-сервер – чуть сложнее, но интереснее
Выбран второй вариант. Если у кого есть опыт работы с Protobuf/Thift/Avro можете рассказать о сложностях работы с ними?
Серверная часть = Ubuntu server + MongoDB + CGICC (CGI будут написаны на C++) + Nginx или Apache. Возможно, CGI будет работать в виде модуля Nginx или Apache.
Прямо сейчас разрабатываю клиент-серверное приложение и склоняюсь к общению через websocket'ы. Поясню почему — уж слишком много я видел в своей жизни кантор где доступ в инет организован через http proxy, поэтому стараясь минимизировать число клиентов которые отсекаются из-за вот такой организации и было выбрано решение на базе http.