Архитектура IM-сервера. Параллельная работа.
От: The Phantom Daemon  
Дата: 12.07.11 18:40
Оценка:
Доброго времени суток, All.

В образовательных целях задумал разработать IM-сервер, если быть точнее XMPP-сервер.

Так вот. На этапе проектирования возник такой вопрос: какой метод, в данном случае, более пригоден для реализации параллельной работы?

Сейчас я рассматриваю несколько вариантов, но возможно вы предложите лучше.

1. Не постоянное число процессов/потоков. Один мастер-процесс обрабатывает запросы на соединение и для каждого создает новый поток/процесс. С каждым клиентом ассоциирован один процесс который и обрабатывает поступающие от него запросы.

2. Постоянное число потоков/процессов. Один мастер-процесс создает число потоков равное числу процессоров (или ядер) в системе или близкое к нему. Каждый из таких потоков/процессов обрабатывает несколько соединений с клиентами.

Я более склоняюсь к первому (его, как минимум, проще реализовать) но хотелось бы узнать и ваше мнение.

Заранее спасибо за ответ.

P.S. В качестве языка программирования использую Си (С99), ОС: Unix-like, в частности GNU/Linux.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.