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

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

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

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

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

Диплом.doc

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

  • 3.3 XML-RPC
  •        XML-RPC - протокол вызова удаленных процедур, основанный на XML. RPC расшифровывается  как Remote Procedure Call - удаленный вызов процедур. Это значит, что приложение (неважно, скрипт на сервере или обычное приложение на клиентском компьютере) может прозрачно использовать метод, который физически реализован и исполняется на другом компьютере. XML тут применяется для обеспечения универсального формата описания передаваемых данных. Как транспорт, для передачи сообщений применяется протокол HTTP, что позволяет беспрепятственно обмениваться данными через любые сетевые устройства - маршрутизаторы, фаерволы, прокси-сервера.  XML-RPC, как и любой другой интерфейс RPC, определяет набор стандартных типов данных и команд, которые можно использовать для доступа к функциональности другой программы.

           Вся работа с XML-RPC происходит в режиме "запрос-ответ", для использования надо иметь: сервер XML-RPC, который предоставляет один или несколько методов, клиент XML-RPC, который может формировать корректный запрос и обрабатывать ответ сервера, а также знать необходимые для успешной работы параметры сервера - адрес, название метода и передаваемые параметры.

           Процедура работы с XML-RPC начинается с формирования запроса. В первых строках формируется стандартный заголовок HTTP запроса. К обязательным параметрам относятся host, тип данных (MIME-тип), который должен быть text/xml, а также длина сообщения. Далее идет обычный заголовок XML-документа. Корневой элемент запроса - <methodCall>, может быть только один, и не может содержать таких узлов в качестве дочерних. Это означает, что одним запросом можно вызвать только один метод на сервере.

           Строка <methodName></methodName> указывает имя  метода, который мы вызываем. При  необходимости, тут можно указывать  имя программы или модуля, содержащего  метод, а также путь к нему. Спецификация XML-RPC хоть и налагает некоторые ограничения  на набор символов, которыми может обозначаться метод, но как их интерпретировать - полностью зависит от реализации сервера.

           Далее задаются передаваемые параметры. Для  этого служит секция <params>, которая  может содержать произвольное число  подэлементов <param>, которые содержать параметр, описываемый тегом <value>.

           После описания всех параметров следуют закрывающие  теги. Запрос и ответ в XML-RPC это  обычные документы XML, поэтому все  теги обязательно должны быть закрыты. А вот одиночных тегов в XML-RPC нет, хотя в стандарте XML они присутствуют.

           Заголовок HTTP ответа обычный, если запрос успешно  обработан, то сервер возвращает ответ HTTP/1.1 200 OK. Также как в запросе, следует корректно указать MIME-тип  и длину сообщения.

           Теперь  вместо корневого тега <methodName> указывается тег <methodResponse>, в который вложены сразу результаты обработки запроса. В ответе не передается имя метода, поэтому следует его сохранить на стороне клиента, чтобы избежать путаницы, если одновременно вызываются различные методы.

           Если  при обработке запроса произошла ошибка, то вместо <param> в ответе будет элемент <fault>, в котором будет вложена структура, описывающая ошибку. Описание ошибки содержит числовой код ошибки и ее текстовое описание.[8]

  • 3.4 AJAX
  •        AJAX (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.[9]

           AJAX - это не самостоятельная технология, а концепция использования нескольких  смежных технологий. AJAX базируется  на двух основных принципах:

    • использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, с использованием XMLHttpRequest (основной метод), через динамическое создание дочерних фреймов или через динамическое создание тега <script>.
    • использование DHTML для динамического изменения содержания страницы;

           Преимущества AJAX:

    • Экономия трафика
    • Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только небольшую изменившуюся часть.
    • Уменьшение нагрузки на сервер
    • AJAX позволяет несколько снизить нагрузку на сервер. К примеру, в Gmail, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и отсылать её клиенту.
    • Ускорение реакции интерфейса
    • Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат своих действий быстрее.

  • 3.5 CSS
  •        CSS (Cascading Style Sheets — каскадные таблицы стилей) - технология описания внешнего вида документа, написанного языком разметки. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате XML.

           CSS используется создателями веб-страниц  для задания цветов, шрифтов, расположения  и других аспектов представления  документа. Основной целью разработки CSS являлось разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS). Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом.

           Стандарт CSS определяет приоритеты, в порядке которых применяются правила стилей, если для какого-то элемента подходят несколько правил одновременно. Это называется «каскадом», в котором для правил рассчитываются приоритеты или «веса», что делает результаты предсказуемыми.

           Таблица стилей состоит из набора правил. Каждое правило, в свою очередь, состоит из одного или нескольких селекторов, разделённых запятыми, и блока определений. Блок определений же обрамляется фигурными скобками, и состоит из набора свойств и их значений. [http://ru.wikipedia.org/wiki/Css]

  • 3.6 MySQL
  •        MySQL — свободная система управления  данных (СУБД). MySQL является собственностью  компании MySQL AB, осуществляющей разработку  и поддержку приложения. Распространяется  под GNU General Public License и под собственной коммерческой лицензией. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

           MySQL является решением для малых и средних приложений. Входит в LAMP. LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:

    • Linux - операционная система GNU/Linux;
    • Apache - веб-сервер;
    • MySQL - СУБД;
    • PHP - язык программирования, используемый для создания веб-приложений.

           Обычно MySQL используется в качестве сервера, к которому обращаются локальные  или удалённые клиенты, однако в  дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

           Гибкость  СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы  типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.[10]

  • 3.7 Web-приложение
  •        На  сегодняшний день применяется множество  технологий построения Web приложений серверной  стороны. Общая цель данных приложений – это реализации логики на стороне  сервера и  генерация кода для клиентской стороны. Все эти приложения имеют одинаковую архитектуру взаимодействия (клиент-сервер) и взаимодействуют по протоколу HTTP. Общая схема работы Web-приложений представлена на рисунке 3.1  

            Рисунок 3.1 – Принцип работы web-приложений 

           На  рисунке видно, что работа серверных приложений происходит в три основных этапа:

           1. Запрос. Клиент, с помощью web-браузера, отправляет запрос к серверу.  Метод запроса может быть GET или  POST.

           2. Обработка запроса, подготовка  ответа. После получения запроса  web – сервер проводит обработку запрашиваемого ресурса. В случае, если запрашивается статический ресурс, такой как HTML страница, рисунок, документ, эта информация форматируется для протокола HTTP и передается клиенту в качестве ответа. Если же запрашивается динамический ресурс, запрос передается на обработку соответствующему приложений или программе. Результат работы также передается клиенту в качестве ответа.

           3. Ответ. Он содержит данные (обычно HTML код, либо двоичные данные), а также дополнительные параметры, передаваемые в заголовках HTTP ответа.

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

            

    4.Разработанная  система

  • 4.1 Архитектура разработанной  системы
  •        Для реализации поставленной задачи нами была спроектирована система, архитектура которой представлена на рисунке 4.1

            Рисунок 4.1 —  Архитектура системы

           Как видно из рисунка , система включает в себя ряд ключевых компонентов: клиентское приложение для управления загрузками, сервер, система загрузки данных из интернета.

  • 4.2 Клиентское приложение  для управления  загрузками
  •        Клиентское  приложение отображает информацию о  всех загрузках, позволяет создавать  новые задания и управлять  текущими загрузками. Состоит из шести  разделов:

    • создание нового задания для торрента
    • создание нового задания на загрузку файлов
    • создание нового задания на загрузку сайтов
    • просмотр заданий торрента
    • просмотр заданий для файлов
    • просмотр заданий для сайтов

           Клиентское  приложение представляет из себя набор HTML-страниц. Такая реализация позволяет использовать клиентское приложение на всех платформах (Linux, Windows, MacOS и т.д.) без установки дополнительного программно обеспечения.

           HTML-страницы  генерируются на сервере с  помощью модуля PHP. PHP программа собирает информацию о текущих и выполненных загрузках, обрабатывает ее и генерирует таблицы с результатами.

           Клиентское  приложение создано с использованием технологии AJAX, которая позволяет  обновлять данные страницы без полной ее перезагрузки с помощью использования XMLHttpRequest. XMLHttpRequest - это технический компонент, который делает возможными асинхронные взаимодействия клиентского приложения с сервером. Скрипт AJAX периодически запрашивает у сервера новые данные о загрузках, и если имеются изменения, то происходит обновление части веб-страницы, без полной перезагрузки клиентского приложения.

            Рисунок 4.2 —  главная страница клиентского приложения

  • 4.3 Система загрузки  данных из интернета
  •        Архитектура системы загрузки данных представлена на рисунке 4.3

            Рисунок 4.3 — Архитектура системы загрузки данных

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