Автор работы: Пользователь скрыл имя, 29 Апреля 2014 в 17:16, дипломная работа
Web-приложение – клиент-серверное приложение, в котором сервером выступает web-сервер, клиентом программа или устройство, способное получить доступ к web-серверу. Логика web-приложения распределена между сервером и клиентом, хранение данных осуществляется преимущественно на сервере, обмен информацией происходит по сети.
Web - сервер — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
CMS (Content management system) – компьютерная система или программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовыми и мультимедиа документами.
Обозначения и сокращения 6
Определения 7
Введение 9
1. Описание основных используемых технологий и языков программирования 10
1.1. Общие сведения 10
1.2. Язык программирования PHP 10
1.3. Web-сервер Apache 11
1.4. СУБД MySQL 12
1.5. Язык программирования JavaScript 12
1.6. Технология AJAX 13
1.7. Таблица стилей CSS 14
1.8. Общая схема работы web-приложения 14
2. Описание системы «1С – Битрикс: Управление сайтом» 16
2.1. Общие сведения 16
2.2. Преимущества и недостатки системы 16
2.3. Целесообразность использования системы 18
2.4. Сравнение с другими системами 19
3. Описание API системы «1С – Битрикс: Управление сайтом» 21
3.1. Общие сведения 21
3.2. API модуля «Главный модуль» 21
3.3. API модуля «Информационные блоки» 23
4. Формирование требований к сценариям работы web-приложения 26
4.1. Общие сведения 26
4.2. Список требований 26
5. Диаграмма информационных блоков 29
5.1. Общие сведения 29
5.2. ER – диаграмма данных web-приложения 29
5.3. Определение информационных блоков 31
6. Описание программных компонентов 34
6.1. Создание общей структуры страниц web-приложения 34
6.2. Реализация структуры страниц web-приложения, физическая структура 36
6.3. Список программных компонентов 39
6.3.1. Компонент «Список всех игр» 39
6.3.2. Компонент «Список новых и выходящих игр» 40
6.3.3. Компонент «Список лучших игр» 42
6.3.4. Компонент «Список 100 лучших игр» 43
6.3.5. Компонент «Фильтр по играм» 44
6.3.6. Компонент «Поиск по играм» 45
6.3.7. Компонент «Автоподсказки в поиске» 46
6.3.8. Компонент «Список обзоров к игре» 47
6.3.9. Компонент «Детальная страница игры» 48
6.3.10. Компонент «Форма поиска» 48
6.3.11. Компонент «Страница разработчика игры» 49
6.3.12. Компонент «Список лучших игр за год» 50
6.4. Диаграмма связей между страницами web-приложения и компонентами 51
6.5. Особенности реализации сценариев работы web-приложения. 51
6.5.1. Общие сведения 51
6.5.2. Сохранение состояния страниц при использовании AJAX – запросов 52
6.5.3. Обработка событий панели управления. 55
7. Резервное копирование данных web-приложения. Система управления версиями 59
7.1. Общие сведения 59
7.2. Реализация резервного копирования 59
7.3. Система управления версиями 62
7.3.1. Описание системы Subversion 62
7.3.2. Настройка Subversion для работы с web-приложением 64
8. Нагрузочное тестирование 69
8.1. Общие сведения 69
8.2. Техника проведения нагрузочного тестирования 69
8.3. Оценка результатов тестирования 71
Заключение 76
Список использованных источников 77
Приложение A. Принцип работы системы «1С – Битрикс: Управление сайтом» 78
А.1. Общие сведения 78
А.2. Модульная структура системы 78
А.2.1. Главный модуль 79
А.2.2. Модуль «Управление структурой» 79
А.2.3. Модуль «Информационные блоки» 80
А.3. Компоненты 81
А.3.1. Общие сведения 81
А.3.2. Файловая структура компонента 81
А.3.3. Схема обмена данными между файлами компонента 85
А.3.4. Публичный раздел системы 87
А.3.4.1. Порядок загрузки страницы web-приложения 87
А.3.4.2. Подключение модулей системы 87
А.3.4.3. Подключение шаблонов web-приложения 88
А.3.4.4. Подключение компонентов web-приложения 88
Приложение Б. Требования заказчика к работе web-приложения и дизайн-концепция 90
Приложение В. Исходные коды программных компонентов 95
В.1. Компонент games.calendar 95
В.2. Компонент games.raiting 99
В.3. Компонент games.filter 102
В.4. Компонент games.search 113
В.5. Компонент games.detail 117
В.6. Компонент search_autocomplete 121
В.7. Компонент reviews.list 126
Для реализации сущности «Разработчик» следует предусмотреть информационный блок «Разработчики». Экземпляры сущности реализуются в информационном блоке посредством элементов, атрибуты сущности – посредством полей и свойств элементов. Среди свойств информационного блока следует предусмотреть поле, которое будет содержать в себе набор идентификаторов разделов информационного блока «Игры». Таким образом, реализуется связь с сущностью «Платформа».
После определения информационных блоков можно построить диаграмму связи между информационными блоками.
Рисунок 4 – Диаграмма информационных блоков
Совокупность файлов и папок в файловой системе web-приложения, каждая из которых содержит некоторый сценарий или другое ценное содержимое, составляет структуру страниц web-приложения.
Для того чтобы составить правильную структуру web-приложения, следует определить, какие из требований в сценариях каких из web-страниц будут реализованы.
Далее рассмотрим подробно сформированные ранее требования и попробуем определить страницы web-приложения, ответственные за реализацию того или иного требования.
Web-приложение должно выводить список всех игр для каждой из платформ. Логично предположить, что для каждой из платформ следует предусмотреть страницу «Все игры», на которой будут выведен список всех игр, возможно фильтры и возможность выбора списка игр по алфавиту.
Web-приложение должно выводить список новых игр для каждой из платформ. Должна быть возможность просматривать список игр за конкретный месяц. Эти два требования могут быть реализованы на страницах «Все новые игры» и «Новые игры», причем на первой странице будут выведен весь постраничный список новых игр, а на второй будут выведены новые игры по конкретному месяцу с возможностью переключения месяцев.
Web-приложение должно выводить список выходящих игр для каждой из платформ. Должна быть возможность просматривать список игр за конкретный месяц. Данные требования реализуются аналогично предыдущим требованиям, страницы будут называться «График выхода» и «Весь график выхода».
Web-приложение должно выводить список игр в порядке убывания рейтинга для каждой из платформ. Для реализации данного требования следует предусмотреть страницу «Лучшие игры», на которой будет выведен список лучших игр с возможностью фильтрации. Согласно пожеланиям заказчика следует предусмотреть также переход с данной страницы на страницу «Все лучшие игры», где будет отображен постраничный список всех игр, начиная с игры с самым высоким рейтингом, также возможностью фильтрации.
Web-приложение должно выводить список 100 лучших игр для каждой из платформ. Для реализации данного требования следует предусмотреть страницу «100 лучших игр».
Web-приложение должно выводить детальную страницу игры. Для реализации данного требования следует предусмотреть страницу «Детальная страница игры». На этой же странице будет реализовано требование «web-приложение должно выводить список обзоров к игре», требование «обзоры должны делиться на русские и английские в зависимости от изданий - источников обзоров и сортироваться по оценке издания к игре и важности издания», и требование «web-приложение должно выводить список скриншотов к игре», т.к. обзоры является неотъемлемой частью игры, как и список скриншотов.
Web-приложение должно отображать список найденных игр для каждой из платформ. Для реализации данного требования стоит предусмотреть страницу «Результаты поиска по играм».
Web-приложение должно выводить список игр за год для каждой из платформ. Для реализации данного требования стоит предусмотреть страницу «Лучшие игры за год».
Web-приложение должно выводить информацию о разработчике игры. Для реализации данного требования стоит предусмотреть страницу «Страница разработчика игры».
Таким образом, руководствуясь определенным выше списком страниц, можно составить схему связей между страницами:
Рисунок 5 – Общая структура страниц web-приложения
Замечание. На данном и следующих рисунках данного раздела стрелки обозначают возможность переходов между страницами web-приложения.
Схема, отображенная на рисунке 5, является общей. В ней не задано тонкостей реализации, т.е. конкретных названий страниц в файловой структуре web-приложения. Тем не менее, эта структурная схема является основополагающей для последующей реализации структуры web-приложения.
Под реализацией структуры страниц web-приложения подразумевается непосредственное создание файлов и папок согласно схеме и размещение на компьютере web-приложения.
Для того чтобы физическая структура была ясна
и логически верно построена, каждой странице
общей схемы страниц web-приложения поставим
в соответствие папку файловой системы
web-приложения, внутри которой будет расположен
файл index.php, который будет определять сценарий
работы страницы. Таким образом, согласно
стандартным настройкам web-сервера, URL
вида http://www.metagames.ru/index/
Таким образом, если использовать построенную выше общую схему страниц web-приложения, то получим следующее:
Рисунок 6 – Физическая структура страниц web-приложения
Соответствие папок общей и физической структуры, изображенной на рисунке 6, представлено ниже:
Таблица 1 – соответствие элементов общей и физической структуры web-приложения
Главная страница |
index.php |
Все игры |
pc, xbox_360, index (платформа) |
Новые игры |
платформа / new |
Все новые игры |
платформа / new / all |
График выхода |
платформа / new / upcoming |
Весь график выхода |
платформа / upcoming / all |
Лучшие игры |
платформа / top |
Все лучшие игры |
платформа / top / all |
100 лучших игр |
платформа / top_100 |
Результаты поиска по играм |
Search |
Детальная страница игры |
Detail |
Страница разработчика игры |
Developer |
Лучшие игры за год |
платформа / year_top |
Если отобразить структуру в виде дерева папок и файлов, получим следующий вид:
корневая_директория
index.php
pc
new
index.php
all
index.php
upcoming
index.php
all
index.php
top
index.php
all
index.php
top_100
index.php
year_top
index.php
--- Другие_платформы ---
search
index.php
detail
index.php
developer
index.php
После того, как структура страниц web-приложения создана, следует перейти к следующему этапу – написание сценариев работы страниц. В системе «1С – Битрикс: Управление сайтом» для реализации сценариев используются программные компоненты.
Каждый компонент реализует то или иное требование или несколько требований сразу. Далее будет сформирован список компонентов, для каждого из которых будет указан номер требования (требований) из списка указанных выше, описана логика работы, список входных параметров и шаблоны.
Имя компонента |
games.main |
Реализация требований |
1, 2 |
Логика работы:
Компонент выводит список всех элементов из указанного информационного блока. Если указан код раздела информационного блока, выводится список элементов, принадлежащий данному разделу. Список разбивается на страницы, внизу выводится постраничная навигация. Если в настройках компонента задан дополнительный фильтр, выводится список элементов, удовлетворяющий параметрам фильтра.
Параметры компонента:
Идентификатор |
Множ. |
Тип |
Описание |
IBLOCK_TYPE |
Нет |
Список |
Тип информационного блока |
IBLOCK_ID |
Нет |
Список |
ID информационного блока |
IBLOCK_SECTION_CODE |
Нет |
Список |
Код раздела (платформы) |
COUNT |
Нет |
Число |
Количество игр на странице |
FILTER |
Нет |
Строка |
Переменная фильтра |
DETAIL_URL |
Нет |
Строка |
Ссылка на детальное описание элемента |
SORT_BY1 |
Нет |
Список |
Поле первой сортировки |
SORT_ORDER1 |
Нет |
Список |
Направление первой сортировки |
SORT_BY2 |
Нет |
Список |
Поле второй сортировки |
SORT_ORDER2 |
Нет |
Список |
Направление второй сортировки |
Шаблоны:
Идентификатор |
Описание |
.default |
Основной шаблон |
Имя компонента |
games.calendar |
Реализация требований |
6, 7, 8 |
Логика работы:
Компонент выводит элементов из указанного информационного блока, отсортированных по значениям свойства с кодом DATES_DATE_REL_RUS по убыванию. Если указан код раздела инфоблока, выводится список элементов, принадлежащий данному разделу. Если в настройках компонента задан дополнительный фильтр, выводится список элементов, удовлетворяющий параметрам фильтра. В настройках компонента определен переключатель, согласно которому ограничивается вывод списка элементов по текущей дате, т.е. предписание не выводить элементы со значением свойства с кодом DATES_DATE_REL_RUS, большим или меньшим текущей даты. Также в настройках компонента определен флаг, указывающий, выводить ли по умолчанию при незаданном фильтре только элементы со значением свойства с указанным выше кодом, соответствующим текущему месяцу.
Параметры компонента:
Идентификатор |
Множ. |
Тип |
Описание |
IBLOCK_TYPE |
Нет |
Список |
Тип информационного блока |
IBLOCK_ID |
Нет |
Список |
ID информационного блока |
IBLOCK_SECTION_CODE |
Нет |
Список |
Код раздела (платформы) |
COUNT |
Нет |
Число |
Количество игр на странице |
FILTER |
Нет |
Строка |
Переменная фильтра |
DETAIL_URL |
Нет |
Строка |
Ссылка на детальное описание элемента |
DATE_BORDER |
Нет |
Список |
Ограничение вывода по дате |
CURRENT_MONTH_DEFAULT |
Нет |
Флаг |
Выводить поумолчанию игры текущего месяца |
SORT_BY1 |
Нет |
Список |
Поле первой сортировки |
SORT_ORDER1 |
Нет |
Список |
Направление первой сортировки |
SORT_BY2 |
Нет |
Список |
Поле второй сортировки |