среда, 18 ноября 2009 г.

Делаем файлообменник [3: Отдача файла]

[Горбачёв]
Здесь теория, потому как это ещё не готово.

В общем, при отдаче нужно:

  • Проверять, имеет ли этот пользователь право скачивать этот файл
  • Проверять, не идёт ли этому пользователю отдача этого или другого файла
  • Ограничивать скорость отдачи
Основаная проблема здесь - при ограничении скорости отдачи мы получим большое количество одновременных соединений, что при стандартной для большинства веб-серверов pre-fork модели приведёт к большому количество процессов веб-сервера, а значит к расходу оперативки и замедлению работы системы (из-за повышенных расходов на планирование приоритетов и переключение процессов).

Обычно для таких задач используют сервер, построенный по модели конечного автомата(автоматное программирование). В этом случае один процесс сможет эффективно обслуживать большое количество соединений. Для своей реализации я нашёл библиотеку на Perl, с помощью которой такой сервер можно достаточно просто написать - пример реализации веб-сервера для отдачи файла (без проверок и ограничения скорости) занимает менее 100 строк кода. Но, ещё раз повторюсь, это всё пока теория, требующая проверки.


Предыдущие части: 1: Планирование, 2: Индикатор загрузки.
Реклама в бомжеленте.

Помогите детям!

[http://blog.rumoneybook.net/2009/11/3.html]