Менеджер закачек с управлением через WEB-интерфейс

Автор работы: Пользователь скрыл имя, 19 Декабря 2010 в 23:14, дипломная работа

Краткое описание

Целью выпускной квалификационной работы является создание компонентов системы загрузки данных из интернета с управлением через web-интерфейс.
Были спроектированы и разработаны: клиентское приложение для управления системой загрузки данных, система загрузки торрент-файлов, система загрузки данных из интернета, база данных.

Содержимое работы - 1 файл

Диплом.doc

— 1,010.50 Кб (Скачать файл)

       Как видно на рисунке система загрузки данных состоит из клиентского приложения, web-сервера, программы-демона и трех консольных утилит: rTorrent, aria2c, wget.

  • 4.3.1 rTorrent
  •        rTorrent - консольный BitTorrent клиент для Unix/Linux систем, отличается высокой скоростью и нетребовательностью к системным ресурсам. rRorrent через определенный интервал времени проверяет директорию, в которую помещаются новые торрент-файлы. При обнаружении нового файла начинается загрузка торрента. Управление rTorrent'ом и обмен информацией о текущих торрент загрузках происходит по протоколу XML-RPC.

           rTorrent позволяет узнать о загрузке  много оперативаной информации, такой как: список загружаемых  файлов, подключенные пиры, процент  загрузки каждого файла, скорость загрузки и раздачи. В клиентском приложении отображена самая необходимая информация, а для просмотр подробного списка параметров и характеристик на отдельной станице. Ссылка на страницу просмотра подобной информации — заголовок загрузки торрента.

            Рисунок 4.4 —  Страница с подробной информацией  о торренте

  • 4.3.2 Aria2c
  •        Aria2c - это кроссплатформенная утилита,  расходующая мало системных ресурсов, позволяющая разбивать загрузку  файла на потоки, загружать один  файл с нескольких серверов, загружать одновременно несколько файлов, продолжать загрузку файлов после обрыва, поддерживает metalink. Metalink - открытый формат файлов на основе XML, предназначенный для описания ссылок на файлы для загрузки по протоколам HTTP, FTP, BitTorrent и т.п. Использование файла подобного формата позволяет, с одной стороны, увеличить надёжность в случаях, когда файл по части адресов будет недоступен, с другой - для компьютеров с высокоскоростным подключением к сети - увеличить интенсивность процесса скачивания посредством закачки сегментов файла одновременно из разных источников.

  • 4.3.3 Wget
  •        Wget представляет из себя утилиту  управляемую командной строкой.  Благодаря тому, что у Wget отсутствует  графический интерфейс, программа  занимает очень мало пространства  на диске и, что более важно, требует немного оперативной памяти во время своей работы. Возможности wget простираются от скачивания отдельно взятого файла, до операции зеркалирования (mirroring), т.е. создания локальной точной копии удаленного сайта. Все это работает как для протокола FTP, так и для протокола HTTP. При выполнении операции зеркалирования Wget автоматически выполняет сравнение уже существующих на локальном диске файлов и каталогов с файлами и каталогами на скачиваемом сайте докачивая только разницу. Поддерживается работа через прокси. Wget является не-интерактивной программой. Это означает, что после её запуска пользователь не может повлиять на её работу.

  • 4.3.4 Программа-демон
  •        Для запуска 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/media/editor/Sony_Sound_Forge_9.0c_Retail.exe -s 3». Видно, что программе-демону нужно запустить утилиту aria2c для загрузки файла с HTTP-сервера с параметрами:

    1. -d — директория в которую будет сохранен файл;
    2. -o — имя, с которым будет сохранен файл;
    3. -s — количество сегментов закачки.

  • 4.4 Сервер
  •        Данный  компонент системы предназначен для хранения различной информации о хранилище данных (например, какие файлы есть в  наличии, какие файлы сейчас загружаются) и выдаче этой информации клиентскому приложению по запросу.

           Для обработки запросов пользователей  на сервере-диспетчере были разработаны  скрипты на языке PHP. Эти  скрипты служат для следующих целей:

    • получение XML выражений от торрент-клиента, анализ их и выдача запрашиваемой информации в форме XML выражений обратно клиенту;
    • получение информации о процессе загрузки файлов и передача ее в форме XML клиенту;

  • 4.5 Протоколы обмена информацией
  •        Обмен оперативной служебной информацией  между клиентским приложением и  сервером осуществляется по протоколу, описанном на 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>

  • 4.6 База данных
  •        База  данных предназначена для хранения истории загрузок и загруженных данных, а так же для хранения пар «логин-пароль» для авторизации пользователей. База данных основана на файловой системе и MySQL. В файловой системе хранятся названия загрузок для файлов и сайтов, загруженные данные. Для каждого из разделов (файлы и сайты) в хранилище отведен каталог с названиями загрузок, представляющий из себя набор файлов, каждый файл соответствует одному заданию и содержит в себе названия загрузок. Имена файлов с названиями идентичны именам файлов с командами на выполнение этих заданий.

           В MySQL хранится таблица «users», в которую  занесены все пользователи. Так как  менеджер закачек является подсистемой  проекта «Домашний сервер», используется база данных, созданная для проекта.

  • 4.7 Система авторизации
  •        Для защиты от несанкционированного входа  предусмотрена система авторизации. В базе данных MySQL хранится таблица  с названием «users», содержащая поля: «id», «login», «password». При входе в  систему, вводится пара «логин-пароль»  и сравнивается со значениями в таблице. Если в базе MySQL есть такая же пара «логин-пароль», то значение поля «id» записывается в сессии, иначе выводится сообщение, с просьбой повторить авторизацию.

           Сессии  как и cookies предназначены для хранения сведений о пользователях при  переходах между несколькими страницами. При использовании сессий данные сохраняются во временных файлах на сервере. Если в сессии записан id пользователя, то считается, что пользователь авторизован. В противном случае открывается форма для входа.[21]

  • 4.8 Файловый менеджер
  •        Все файлы загружаются в специально отведенный каталог. Для просмотра  содержимого каталога с файлами  сделан файловый менеджер. С его  помощью можно загрузить файлы  с сервера на персональный компьютер. Если из интернета были загружены  каталоги, то имеется возможность передвигаться по каталогам. Внешний вид файлового менеджера показан на рисунке 4.5.

    Рисунок 4.5 —  Файловый менеджер

    5. Заключение

           За  время работы были выполнены в  полной мере все поставленные передо мной задачи.

           Результатом проектирования является стандартный набор инструментов и компонентов, реализующих основные функции менеджера закачек, включающий в себя: клиентское приложение для управления загрузками, система загрузки торрентов, система загрузки файлов, система загрузки сайтов, файловый менеджер для просмотра загруженных файлов.

           В процессе выполнения данного проекта  были получены навыки проектирования и создания клиент-серверных систем при помощи таких технологий, как  XML, PHP, HTML, MySQL, AJAX, Bash.

    Список  литературы

    1. NAS – сетевая система хранения данных - Режим доступа:

      http://www.cyberguru.ru/networks/network-technologies/nas.html

    1. Википедия. BitTorrent - Режим доступа:

      http://ru.wikipedia.org/wiki/BitTorrent

    1. Википедия. FTP - Режим доступа:

      http://ru.wikipedia.org/wiki/FTP

    1. Википедия. HTTP - Режим доступа:

      http://ru.wikipedia.org/wiki/HTTP

    1. Обзор современных web технологий построения приложений серверной стороны — Режим доступа:

      http://lightnet.obninsk.ru/Review/Webreview/257_300.shtml

    1. Кристина Пейтон, Андре Меллер, PHP5 и MySQL5. Пер. с нем. - М. ООО «Бином-Пресс», 2007 г. - 368 с.: ил.
    2. Синтаксис языка XML, 2005 - Режим доступа:

      http://www.script-coding.info

    1. Овчинников С. XML-язык форматирования документов World Wide Web
    2. Введение в XML-RPC — Режим доступа:

      http://www.realcoding.net/article/view/4067

    1. Wikipedia. The Free Encyclopedia - Режим доступа:

      http://ru.wikipedia.org/wiki/AJAX

    1. Дари К., Бринзаре Б. книга AJAX и PHP: разработка динамических приложений. - Спбю: Символ-плюс, 2006 — 336 с., ил.
    2. MySQL, Материал из Википедии - свободной энциклопеди - Режим доступа: http://ru.wikipedia.org/wiki/MySQL
    3. The libTorrent and rTorrent Project — Режим доступа:

      http://libtorrent.rakshasa.no

    1. Викиучебник. rTorrent — Режим доступа:

      http://ru.wikibooks.org/wiki/RTorrent

    1. Using XMLRPC with rtorrent — Режим доступа:

      http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide

    1. rTorrent Man Page — Режим доступа:

      http://libtorrent.rakshasa.no/rtorrent/rtorrent.1.html

    1. Wget - насос для Интернета — Ржим доступа:

      http://vap.org.ru/storeforever/wget/

    1. Википедия. Wget — Режим доступа:

      http://ru.wikipedia.org/wiki/Wget

    1. Aria2: утилита командной строки для быстрой загрузки файлов — Режим доступа: http://citkit.ru/articles/987/
    2. Aria2c - Linux man page — Режим доступа:

    Информация о работе Менеджер закачек с управлением через WEB-интерфейс