Доброе время суток! Я - программист под Windows, но недавно мне поставили задачу написать программу-агент, серверная часть которой должна работать под управлением Linux :( В линухе я, понятное дело, не шарю. То есть шарю чуть-чуть на уровне пользователя. Итак, подскажите, пожалуйста кто чем может. Работа агента напоминает технологию Jabber, мне надо чтобы:
1) клиентские программы могли соединятся с серверной частью, причем количество одновременных соединений - тысячи. 2) сервер должен принимать, отправлять, перенаправлять текстовые сообщения 3) сервер должен уметь соединятся с базой данных
В общем-то получается jabber-сервер, на который необходимо дописать всякие фишки вроде запроса баланса, передача команд пользовательским агентам в виде текстовых сообщений и т.д.
А теперь собственно вопросы: 1) Можно ли написать шустрое серверное приложение на java, qt или надо обязательно на C++ ? 2) Какова вообще архитектура подобных приложений? Каждый клиент через сокет соединяется с сервером и все время поддерживает соединение? А сервер не сдохнет от нескольких тысяч открытых сокетов? Для каждого клиента походу на сервере должен создаваться собственный поток(или как там под линухом это называется) для прослушки каждого сокета. А сервер не ляжет от тысяч потоков? 3) Может быть можно взять уже готовое решение, какой-нибудь jabber-сервер и немного перепилить его руками? Подскажите какие-нибудь исходники jabber-серверов. 4) Ну и, конечно же, вопрос-боян. Какой дистрибутив Linux лучше всего позволит сосредоточится на разработке? Именно на разработке а не на настройке этого дистрибутива. Есть mandriva, open suse, kubuntu, серверная версия ubuntu, slackware.
Заранее всем спасибо!