Менеджер закачек с управлением через WEB-интерфейс
Автор работы: Пользователь скрыл имя, 19 Декабря 2010 в 23:14, дипломная работа
Краткое описание
Целью выпускной квалификационной работы является создание компонентов системы загрузки данных из интернета с управлением через web-интерфейс.
Были спроектированы и разработаны: клиентское приложение для управления системой загрузки данных, система загрузки торрент-файлов, система загрузки данных из интернета, база данных.
Содержимое работы - 1 файл
Диплом.doc
— 1,010.50 Кб (Скачать файл)Как видно на рисунке система загрузки данных состоит из клиентского приложения, 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/
- -d — директория в которую будет сохранен файл;
- -o — имя, с которым будет сохранен файл;
- -s — количество сегментов закачки.
Данный компонент системы предназначен для хранения различной информации о хранилище данных (например, какие файлы есть в наличии, какие файлы сейчас загружаются) и выдаче этой информации клиентскому приложению по запросу.
Для обработки запросов пользователей на сервере-диспетчере были разработаны скрипты на языке PHP. Эти скрипты служат для следующих целей:
- получение XML выражений от торрент-клиента, анализ их и выдача запрашиваемой информации в форме XML выражений обратно клиенту;
- получение информации о процессе загрузки файлов и передача ее в форме XML клиенту;
Обмен
оперативной служебной
Клиентское приложение, используя технологию 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 — Файловый менеджер
5. Заключение
За время работы были выполнены в полной мере все поставленные передо мной задачи.
Результатом проектирования является стандартный набор инструментов и компонентов, реализующих основные функции менеджера закачек, включающий в себя: клиентское приложение для управления загрузками, система загрузки торрентов, система загрузки файлов, система загрузки сайтов, файловый менеджер для просмотра загруженных файлов.
В процессе выполнения данного проекта были получены навыки проектирования и создания клиент-серверных систем при помощи таких технологий, как XML, PHP, HTML, MySQL, AJAX, Bash.
Список литературы
- NAS – сетевая система хранения данных - Режим доступа:
http://www.cyberguru.ru/
- Википедия. BitTorrent - Режим доступа:
http://ru.wikipedia.org/wiki/
- Википедия. FTP - Режим доступа:
http://ru.wikipedia.org/wiki/
- Википедия. HTTP - Режим доступа:
http://ru.wikipedia.org/wiki/
- Обзор современных web технологий построения приложений серверной стороны — Режим доступа:
http://lightnet.obninsk.ru/
- Кристина Пейтон, Андре Меллер, PHP5 и MySQL5. Пер. с нем. - М. ООО «Бином-Пресс», 2007 г. - 368 с.: ил.
- Синтаксис языка XML, 2005 - Режим доступа:
http://www.script-coding.info
- Овчинников С. XML-язык форматирования документов World Wide Web
- Введение в XML-RPC — Режим доступа:
http://www.realcoding.net/
- Wikipedia. The Free Encyclopedia - Режим доступа:
http://ru.wikipedia.org/wiki/
- Дари К., Бринзаре Б. книга AJAX и PHP: разработка динамических приложений. - Спбю: Символ-плюс, 2006 — 336 с., ил.
- MySQL, Материал
из Википедии - свободной энциклопеди
- Режим доступа: http://ru.wikipedia.org/wiki/
MySQL - The libTorrent and rTorrent Project — Режим доступа:
http://libtorrent.rakshasa.no
- Викиучебник. rTorrent — Режим доступа:
http://ru.wikibooks.org/wiki/
- Using XMLRPC with rtorrent — Режим доступа:
http://libtorrent.rakshasa.no/
- rTorrent Man Page — Режим доступа:
http://libtorrent.rakshasa.no/
- Wget - насос для Интернета — Ржим доступа:
http://vap.org.ru/
- Википедия. Wget — Режим доступа:
http://ru.wikipedia.org/wiki/
- Aria2: утилита командной строки для быстрой загрузки файлов — Режим доступа: http://citkit.ru/articles/987/
- Aria2c - Linux man page — Режим доступа: