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

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

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

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

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

Диплом.doc

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

       При получении полного файла клиент переходит в специальный режим  работы, в котором он только отдаёт данные (становится сидом).

       Клиенты периодически информируют трекер об изменениях в состоянии закачек  и обновляют списки IP-адресов.

       Трекер  — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для  того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хеш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хеш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключённых пиров и пр.

       Для каждого распространяемого файла  создаётся файл метаданных с расширением .torrent, который содержит следующую  информацию:

  • URL трекера;
  • общую информацию о закачиваемом файле (имя, длину и пр.);
  • Контрольные суммы (точнее, хеш-суммы SHA1) сегментов закачиваемого файла.

       Файлы метаданных могут распространяться через любые каналы связи: они (или  ссылки на них) могут выкладываться  на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться  по электронной почте, публиковаться в блогах или новостных лентах RSS. Получив каким-либо образом файл с метаданными, клиент может начинать скачивание.[2]

  • 1.2.2 Протокол FTP
  •        FTP — протокол, предназначенный для  передачи файлов в компьютерных  сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами (FXP).

           FTP является одним из старейших  прикладных протоколов, появившимся  задолго до HTTP, он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.

           Протокол FTP относится к протоколам прикладного  уровня и для передачи данных использует транспортный протокол TCP. Команды и  данные, в отличие от большинства  других протоколов передаются по разным портам. Порт 20 используется для передачи данных, порт 21 для передачи команд.

           Протокол  не шифруется, при аутентификации передаёт логин и пароль открытым текстом. Если злоумышленник находится в  одном сегменте сети с пользователем FTP, то, используя снифер, он может перехватить логин и пароль пользователя, или, при наличии специального ПО, получать передаваемые по FTP файлы без авторизации. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных SSL, который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.[3]

  • 1.2.3 Протокол HTTP
  •        HTTP (HyperText Transfer Protocol) — протокол прикладного уровня передачи данных (изначально - в виде гипертекстовых документов). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

           Основным  объектом манипуляции в HTTP является ресурс, на который указывает URI (Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т.д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.

           HTTP — протокол прикладного уровня, аналогичными ему являются FTP и  SMTP. Обмен сообщениями идёт по  обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования.[4]

  • 1.3 Загрузка содержимого  сайтов
  •        Пользователи  часто встречаются с проблемой  загрузки сайтов для последующего просмотра информации на локальной машине. Сохранять сайт по одной странице, открывая каждую, очень не удобно и занимает много времени. Гораздо удобнее загружать сайт с указанием глубины рекурсивных ссылок.

  • 1.4 Клиентские программы  загрузки информации
  •        На  сегодняшний день сделано очень  много менеджеров закачки данных и клиентов торрент, но для их работы необходимо постоянное подключение  к сети и компьютер, работающий 24 часа в сутки. Стационарные компьютеры создают много шума, поэтому не всем нравится держать его включенным круглые сутки. Ноутбуки по своему назначению, как мобильные устройства не всегда подключены к интернету. Эти проблемы делают процесс загрузки данных очень долгим или не возможным вовсе, если не поддерживается догрузка файлов с момента отключения.

  • 1.5 Домашний сервер
  •        Решением  данных проблем может стать менеджер закачек, работающий на «домашнем сервере», с управлением через веб-интерфейс. «Домашний сервер» стационарен, практически не шумит и имеет  постоянное подключение к сети. Веб-интерфейс позволяет управлять загрузками с любого персонального компьютера, подключенного к серверу через домашнюю сеть или через интернет.

    2.Постановка  задачи

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

    1. клиентское приложение для работы с загрузками;
    2. система загрузки торрент-файлов;
    3. система загрузки файлов
    4. система загрузки и сайтов;
    5. Файловый менеджер, для просмотра загруженных фалов.

  • 2.1 Требования к клиентскому приложению
    1. возможность назначать новые задания для  загрузок;
    2. возможность управления загрузками;
    3. возможность просмотра полной информации о процессе загрузки/раздачи торрентов (процент загрузки, вложения в торрент-файл, пиры и т.д.);
    4. отсутствиенеобходимости в установке дополнительного програмного обеспечения на стороне клиента.

  • 2.2 Требования к системе  загрузки торрент-файлов
    1. возможность мониторинга процесса загрузки;
    2. торрент-клиент должен быть консольным;
    3. возможность остановки загрузки торрентов;
    4. возможность удаления торрентов.

  • 2.3 Требования к системе  загрузки файлов
    1. клиент  загрузки должен быть консольным;
    2. возможность загрузки с ресурсов, требующих авторизацию (задается имя пользователя и пароль);
    3. возможность загрузки через прокси-сервер;
    4. возможность загрузки файлов по протоколам HTTP и FTP;
    5. возможность продолжения загрузки, после обрыва сети;
    6. возможность сегментной закачки;
    7. возможность загрузки по сценариям metalink.

  • 2.4 Требования к системе  загрузки сайтов
    1. клиент  загрузки должен быть консольным;
    2. возможность загрузки с ресурсов, требующих авторизацию (задается имя пользователя и пароль);
    3. возможность продолжения загрузки, после обрыва сети;
    4. возможность «зеркалирования» сайтов (точное копирование со всеми вложениями);
    5. настройка глубины скачиваемых ссылок.

  • 2.5 Требования к файловому  менеджеру
    1. возможность передвигаться по каталогам;
    2. возможность загрузить файл на локальную машину;

    3.Выбор  технологии

  • 3.1 PHP
  •        Технология Personal Home Page (PHP) получила очень широкое  распространение благодаря своей  бесплатности и поддержке самых  популярных платформ. Она базируется на принципе построения страниц из шаблонов, впервые появившемся в Active Server Pages, но развивает и дополняет его. Страницы РНР имеют вид обычных HTML страниц, в которых могут использоваться специальные тэги вида <?php и ?>. Между тэгами вставляются строки программного кода на специальном языке сценариев РНР.[6]

           Принцип шаблонов позволил разработчикам писать программы гораздо быстрее и  без ошибок, присущих традиционным CGI - программам, выдающим HTML содержимое в поток вывода. На сегодняшний день диапазон систем, построенных на шаблонах простирается от простых страниц с выборками из базы данных до крупных приложений электронной коммерции, основанных на XML. Шаблонные системы пользуются большой популярностью среди разработчиков, поскольку наиболее подходят для типовых сайтов. Такие решения включают ColdFusion, PHP, JSP и ASP, из которых РНР является наиболее распространенной.

           Наилучшим качеством PHP является то, что он предельно  прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста-профессионала.[5]

  • 3.2 XML
  •        XML (Extensible Markup Language) – это язык разметки, описывающий целый класс объектов  данных, называемых XML-документами.  Этот язык используется в качестве  средства для описания грамматики  других языков и контроля за правильностью составления документов. То есть сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания.

           Процесс создания XML документа очень прост  и требует от нас лишь базовых знаний HTML и понимания тех задач, которые мы хотим выполнить, используя XML в качестве языка разметки. Таким образом, у разработчиков появляется уникальная возможность определять собственные команды, позволяющие им наиболее эффективно определять данные, содержащиеся в документе. Автор документа создает его структуру, строит необходимые связи между элементами, используя те команды, которые удовлетворяют его требованиям и добивается такого типа разметки, которое необходимо ему для выполнения операций просмотра, поиска, анализа документа.

           Еще одним из очевидных достоинств XML является возможность использования  его в качестве универсального языка  запросов к хранилищам информации.

           XML позволяет также осуществлять  контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. Создавая структуру механизма обмена информации в самом начале работы над проектом, менеджер может избавить себя в будущем от многих проблем, связанных с несовместимостью используемых различными компонентами системы форматов данных.[7]

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

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