Автор работы: Пользователь скрыл имя, 19 Декабря 2010 в 23:14, дипломная работа
Целью выпускной квалификационной работы является создание компонентов системы загрузки данных из интернета с управлением через web-интерфейс.
Были спроектированы и разработаны: клиентское приложение для управления системой загрузки данных, система загрузки торрент-файлов, система загрузки данных из интернета, база данных.
XML-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]
AJAX (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.[9]
AJAX
- это не самостоятельная
Преимущества AJAX:
CSS (Cascading Style Sheets — каскадные таблицы стилей) - технология описания внешнего вида документа, написанного языком разметки. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате XML.
CSS
используется создателями веб-
Стандарт CSS определяет приоритеты, в порядке которых применяются правила стилей, если для какого-то элемента подходят несколько правил одновременно. Это называется «каскадом», в котором для правил рассчитываются приоритеты или «веса», что делает результаты предсказуемыми.
Таблица
стилей состоит из набора правил. Каждое
правило, в свою очередь, состоит из одного
или нескольких селекторов, разделённых
запятыми, и блока определений. Блок определений
же обрамляется фигурными скобками, и
состоит из набора свойств и их значений.
[http://ru.wikipedia.org/wiki/
MySQL
— свободная система
MySQL является решением для малых и средних приложений. Входит в LAMP. LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:
Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.[10]
На
сегодняшний день применяется множество
технологий построения Web приложений серверной
стороны. Общая цель данных приложений
– это реализации логики на стороне
сервера и генерация кода для
клиентской стороны. Все эти приложения
имеют одинаковую архитектуру взаимодействия
(клиент-сервер) и взаимодействуют по протоколу
HTTP. Общая схема работы Web-приложений представлена
на рисунке 3.1
Рисунок 3.1 –
Принцип работы web-приложений
На рисунке видно, что работа серверных приложений происходит в три основных этапа:
1. Запрос. Клиент, с помощью web-браузера, отправляет запрос к серверу. Метод запроса может быть GET или POST.
2. Обработка запроса, подготовка ответа. После получения запроса web – сервер проводит обработку запрашиваемого ресурса. В случае, если запрашивается статический ресурс, такой как HTML страница, рисунок, документ, эта информация форматируется для протокола HTTP и передается клиенту в качестве ответа. Если же запрашивается динамический ресурс, запрос передается на обработку соответствующему приложений или программе. Результат работы также передается клиенту в качестве ответа.
3.
Ответ. Он содержит данные (обычно
HTML код, либо двоичные данные),
а также дополнительные
Работа приложений серверной стороны всегда происходит по описанному выше сценарию. Приложение работает исключительно в режиме запрос-ответ, не имея данных о предыдущих шагах пользователя или какой-либо иной постоянной информации. Для решения этой проблемы применяется понятие пользовательской сессии, которая позволяет хранить данные на сервере в течение сеанса работы пользователя.[5]
Для реализации поставленной задачи нами была спроектирована система, архитектура которой представлена на рисунке 4.1
Рисунок 4.1 — Архитектура системы
Как видно из рисунка , система включает в себя ряд ключевых компонентов: клиентское приложение для управления загрузками, сервер, система загрузки данных из интернета.
Клиентское приложение отображает информацию о всех загрузках, позволяет создавать новые задания и управлять текущими загрузками. Состоит из шести разделов:
Клиентское приложение представляет из себя набор HTML-страниц. Такая реализация позволяет использовать клиентское приложение на всех платформах (Linux, Windows, MacOS и т.д.) без установки дополнительного программно обеспечения.
HTML-страницы генерируются на сервере с помощью модуля PHP. PHP программа собирает информацию о текущих и выполненных загрузках, обрабатывает ее и генерирует таблицы с результатами.
Клиентское приложение создано с использованием технологии AJAX, которая позволяет обновлять данные страницы без полной ее перезагрузки с помощью использования XMLHttpRequest. XMLHttpRequest - это технический компонент, который делает возможными асинхронные взаимодействия клиентского приложения с сервером. Скрипт AJAX периодически запрашивает у сервера новые данные о загрузках, и если имеются изменения, то происходит обновление части веб-страницы, без полной перезагрузки клиентского приложения.
Рисунок 4.2 — главная страница клиентского приложения
Архитектура системы загрузки данных представлена на рисунке 4.3
Рисунок 4.3 — Архитектура системы загрузки данных
Информация о работе Менеджер закачек с управлением через WEB-интерфейс