«Программное обеспечение на стороне сервера» может означать множество разных вещей, например, это может быть тривиальное приложение, которое «выводит» все обратно на конкретный порт, на сервер telnet / ftp, на веб-сервер, на котором выполняется множество «служб».
Так где же в этой гамме возможностей находится ваше конкретное приложение?Без дополнительной информации трудно вносить какие-либо предложения, но давайте посмотрим ..
- Веб-службы, т.е. ваше требование "на стороне сервера" состоит в том, чтобы обрабатывать отдельные запросы и отвечать, выполнив некоторый набор бизнес-логики.Обычно связь осуществляется через SOAP / XML, и это идеально, если вы используете веб-клиентов (хотя ничто не мешает вам получить доступ к этим службам через автономные клиенты).Как правило, вы размещаете их на веб-серверах, как вы упомянули, и часто они проще всего написаны на Java (мне еще не приходилось сталкиваться с тем, который нужно было писать на C ++!)
- Простой веб-сайт - немного отличается отвышеизложенное передается в HTML-запросах get / post и обслуживает статический или динамический контент (я полагаю, это не то, что вам нужно!)
- Автономный сервер, который отвечает на что-то конкретное, вот вамнеобходимо реализовать свои собственные «сообщения» / протоколы и т. д., и сервер будет выполнять определенную функцию по входящему запросу и потенциально отправлять ответы обратно.Ключевым моментом здесь является то, что сервер делает что-то конкретное и не является универсальным контейнером (в этом пункте 1 имеет больше смысла!)
Так, где находится ваше приложение?Если 1/2 использует Java или какой-либо другой язык сценариев (например, Perl / ASP / JSP и т. Д.). Если 3, вы, безусловно, можете использовать C ++, а если это так, используйте подходящую абстракцию, такую как boost :: asio и буферы протокола Google.избавь себя от головной боли ...
Что касается безопасности, то, конечно же, постоянно обнаруживаются ошибки и дыры в безопасности, однако в некоторых из этих проектов ОС хорошо то, что сообщество будет заниматься и исправлять ошибки.их.Скажем так, вам будет безопаснее пользоваться ими, чем собственным имплементированием, управляемым вручную, вероятность того, что вы сможете решить все проблемы, с которыми они столкнулись бы за годы своего существования, очень мала (без неуважения).к вашим способностям!)
РЕДАКТИРОВАТЬ: теперь, когда есть немного больше информации, вот один из возможных подходов (это то, что я делал в прошлом, и я работал на Java большую часть пути ..))
Клиентский сервер должен быть чем-то надежным, особенно.если это через Интернет, я бы использовал проверенный продукт, например, Apache или IIS (зависит от того, какие технологии у вас есть).ИМХО, я бы выбрал jBoss AS - действительно мощный и легко настраиваемый кусок комплекта, и он действительно прекрасно интегрируется с множеством разных вещей (все, конечно, с Java!). Тогда у вас может быть простой кусочек Java, который затем можно делегировать вашему фактическому серверу.процессы, выполняющие эту работу ..
Для работы с сервером вы можете использовать C ++, если вам это удобно
Есть одна клавишанемного, что я пропустил, и вот как 1 и 2 разговаривают друг с другом.Здесь вы должны взглянуть на продукт обмена сообщениями с открытым исходным кодом (даже более высокий уровень, чем буферы asio или протокол), а здесь я бы посмотрел на что-то вроде Zero MQ или Red Hat Messaging (оба являются протоколами обмена сообщениями MQ), большое преимуществоЭтот тип «шины обмена сообщениями» заключается в том, что между вашими серверами нет тесной связи, с вашей собственной управляемой реализацией, вы будете делать множество шаблонов, чтобы взаимодействие работало правильно, с чем-то вроде MQ, вы будетеиметь многоплатформенное общение без необходимости вдаваться в детали ... Вы сэкономите много времени и будете беспокоиться, если решите использовать что-то подобное ... (кстати. Есть и другие продукты для обмена сообщениями, и некоторые из них проще в использовании- например, Tibco RV или EMS и т. д., но они являются коммерческими продуктами, и лицензии будут стоить больших денег!)
С помощью решения для обмена сообщениями ваши серверы становятся тривиальными, поскольку они просто обрабатывают входящие сообщения и отправляют сообщения обратно, и вы можете сосредоточиться на бизнес-логике ...
мои две копейки ...:)