Автор работы: Пользователь скрыл имя, 19 Декабря 2010 в 23:14, дипломная работа
Целью выпускной квалификационной работы является создание компонентов системы загрузки данных из интернета с управлением через web-интерфейс.
Были спроектированы и разработаны: клиентское приложение для управления системой загрузки данных, система загрузки торрент-файлов, система загрузки данных из интернета, база данных.
Как видно на рисунке система загрузки данных состоит из клиентского приложения, web-сервера, программы-демона и трех консольных утилит: rTorrent, aria2c, wget.
rTorrent - консольный BitTorrent клиент для Unix/Linux систем, отличается высокой скоростью и нетребовательностью к системным ресурсам. rRorrent через определенный интервал времени проверяет директорию, в которую помещаются новые торрент-файлы. При обнаружении нового файла начинается загрузка торрента. Управление rTorrent'ом и обмен информацией о текущих торрент загрузках происходит по протоколу XML-RPC.
rTorrent позволяет узнать о загрузке много оперативаной информации, такой как: список загружаемых файлов, подключенные пиры, процент загрузки каждого файла, скорость загрузки и раздачи. В клиентском приложении отображена самая необходимая информация, а для просмотр подробного списка параметров и характеристик на отдельной станице. Ссылка на страницу просмотра подобной информации — заголовок загрузки торрента.
Рисунок 4.4 — Страница с подробной информацией о торренте
Aria2c
- это кроссплатформенная
Wget
представляет из себя утилиту
управляемую командной строкой.
Для запуска aria2c и wget разработана программа-демон. Она проверяет каталог, в который записываются файлы с командой запуска той или иной утилиты с заданными параметрами. После выполнения задания файл с командой удаляется. Далее «демон» начинает выполнять следующее задание. Загрузка файлов и сайтов считается выполненной после завершения выполнения команды программой-демоном. До завершения, загрузка имеет статус «в очереди».
Листинг программы-демона:
#!/bin/bash
cd commands
while true; do
sleep 4
if [ `ls | wc -l` != 0 ] ; then
for file in `ls`; do
source $file
rm $file
done
fi
done
Названия
файлов с заданиями для «демона»
имеют уникальные имена, соответствующие
значению функции time() в языке PHP, то
есть количество секунд, прошедших
с начала эпохи Unix. В файле содержится
строка, запускающая в консоли
утилиту, например для загрузки файла
из интернета задание может иметь следующий
вид: «aria2c -d /download_manager/data/files -o Sony.exe http://dl1.x-soft.tomsk.ru/
Данный компонент системы предназначен для хранения различной информации о хранилище данных (например, какие файлы есть в наличии, какие файлы сейчас загружаются) и выдаче этой информации клиентскому приложению по запросу.
Для обработки запросов пользователей на сервере-диспетчере были разработаны скрипты на языке PHP. Эти скрипты служат для следующих целей:
Обмен
оперативной служебной
Клиентское приложение, используя технологию AJAX, отправляет запрос серверу на получение новой информации о загрузках. Сервер собирает всю необходимую информацию и формирует ответ в виде набора примитивов. Получая ответ с сервера, клиентское приложение изменяет только часть HTML-страницы, а не перезагружает целиком.
На данный момент разработан базовый набор примитивов протокола, которые необходимы для получения информации о процессе загрузки торрентов и получения информации о статусе загрузок файлов и сайтов.
Ниже
приведены разработанные
1) процесс загрузки торрентов:
<torrent>
<hash></hash> - хэш торрента
<percent></percent> - процент загрузки
<r_down></r_down> - скорость загрузки
<r_up></r_up> - скорость раздачи
<peers></peers> - информация о пирах
<status></status> - статус торрента (хеширование, раздача, обмен)
</torrent>
2) статус загрузки файлов:
<file>
<name></name> - название загрузки
<status></status> - статус загрузки
</file>
3) статус загрузки сайтов:
<site>
<name></name> - название загрузки
<status></status> - статус загрузки
</site>
База данных предназначена для хранения истории загрузок и загруженных данных, а так же для хранения пар «логин-пароль» для авторизации пользователей. База данных основана на файловой системе и MySQL. В файловой системе хранятся названия загрузок для файлов и сайтов, загруженные данные. Для каждого из разделов (файлы и сайты) в хранилище отведен каталог с названиями загрузок, представляющий из себя набор файлов, каждый файл соответствует одному заданию и содержит в себе названия загрузок. Имена файлов с названиями идентичны именам файлов с командами на выполнение этих заданий.
В MySQL хранится таблица «users», в которую занесены все пользователи. Так как менеджер закачек является подсистемой проекта «Домашний сервер», используется база данных, созданная для проекта.
Для
защиты от несанкционированного входа
предусмотрена система
Сессии как и cookies предназначены для хранения сведений о пользователях при переходах между несколькими страницами. При использовании сессий данные сохраняются во временных файлах на сервере. Если в сессии записан id пользователя, то считается, что пользователь авторизован. В противном случае открывается форма для входа.[21]
Все файлы загружаются в специально отведенный каталог. Для просмотра содержимого каталога с файлами сделан файловый менеджер. С его помощью можно загрузить файлы с сервера на персональный компьютер. Если из интернета были загружены каталоги, то имеется возможность передвигаться по каталогам. Внешний вид файлового менеджера показан на рисунке 4.5.
Рисунок 4.5 — Файловый менеджер
За время работы были выполнены в полной мере все поставленные передо мной задачи.
Результатом проектирования является стандартный набор инструментов и компонентов, реализующих основные функции менеджера закачек, включающий в себя: клиентское приложение для управления загрузками, система загрузки торрентов, система загрузки файлов, система загрузки сайтов, файловый менеджер для просмотра загруженных файлов.
В процессе выполнения данного проекта были получены навыки проектирования и создания клиент-серверных систем при помощи таких технологий, как XML, PHP, HTML, MySQL, AJAX, Bash.
http://www.cyberguru.ru/
http://ru.wikipedia.org/wiki/
http://ru.wikipedia.org/wiki/
http://ru.wikipedia.org/wiki/
http://lightnet.obninsk.ru/
http://www.script-coding.info
http://www.realcoding.net/
http://ru.wikipedia.org/wiki/
http://libtorrent.rakshasa.no
http://ru.wikibooks.org/wiki/
http://libtorrent.rakshasa.no/
http://libtorrent.rakshasa.no/
http://vap.org.ru/
http://ru.wikipedia.org/wiki/
Информация о работе Менеджер закачек с управлением через WEB-интерфейс