Автор работы: Пользователь скрыл имя, 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
Как видно из результатов теста 2, представленных в таблице 2, после изменения логики работы проблемного компонента нагрузка на компьютер web-приложения и время генерации страниц заметно уменьшились. Теперь только время генерации страниц /search/index.php и /pc/top/index.php превышает одну секунду. Это можно объяснить тем, что у компонентов games.search и games.raiting не включено кэширование. Для устранения проблемы необходимо включить кэширование данных компонентов.
Теперь, после устранения всех проблем, выявленных при предыдущих тестах, можно увеличить число одновременных пользователей при имитации нагрузки до 300 и увеличить время имитации до 600 секунд (10 минут), чтобы оценить поведение web-приложения при больших нагрузках.
[root@v8733 ~]# siege -c 300 -d 1 –t600S –i -f /home/dima/access_log.log
После окончания имитации были получены следующие результаты:
Таблица 4 – результаты теста 3. с=300, t=600S
Адрес страницы |
Нагрузка, % |
Среднее время формирования страницы, сек |
/pc/index.php |
33.79 |
0.4454 |
Таблица 4 – результаты теста 3. с=300, t=600S. | ||
/index/new/all/index.php |
23.66 |
0.2403 |
/pc/new/index.php |
5.00 |
0.3264 |
/detail/index.php |
4.28 |
0.1797 |
/index/top/index.php |
2.49 |
0.2138 |
/xbox_360/index.php |
1.74 |
0.3262 |
/about/index.php |
0.26 |
0.1330 |
/advertisement/index.php |
0.61 |
0.1560 |
/contacts/index.php |
0.45 |
0.1843 |
/pc/upcoming/index.php |
0.48 |
0.2465 |
/pc/top/index.php |
2.82 |
0.3863 |
/search/index.php |
5.28 |
0.3390 |
/index/new/index.php |
3.78 |
0.2219 |
Как видно из результатов теста со значениями параметров c=300 и t=600S, время генерации страниц и нагрузка на компьютер web-приложения заметно уменьшились, чему поспос обствовало включение кэширования во всех компонентах и исправление ошибок разработки. Число в 300 одновременных посетителей является достаточно большим и в то же время не вызывает долгой генерации страниц (долгим считается время генерации страницы пользователям с временным промежутком более 1-2 секунд), что позволяет сделать вывод о том, что web-приложение обладает еще большим запасом ресурсов для обслуживания посетителей.
В дипломной работе осуществлена разработка информационного web-сайта на основе системы «1С – Битрикс: Управление сайтом».
В процессе выполнения дипломной работы была спроектирована и реализована структура хранения данных web-сайта, спроектирована и реализована структура страниц web-сайта, написан код программных компонентов. Для обеспечения сохранности данных было настроено автоматическое резервное копирование таблиц базы данных и файлов файловой структуры web-сайта. Для обеспечения возможности командной разработки была настроена система управления версиями Subversion. Для проверки производительности web-сайта было проведено нагрузочное тестирование с последующей оценкой результатов тестирования и корректировкой сценариев работы web-сайта согласно результатам тестирования.
В результате работы был получен web-сайт, удовлетворяющий требованиям заказчика и доступный всем пользователям сети Internet. Web-сайт был оптимизирован под высокие нагрузки согласно результатам нагрузочного тестирования.
Физически система представляет собой совокупность файлов и папок, которые располагаются в корневой директории компьютера, на котором находится web-приложение. Файлы в основном представляют собой сценарии на языке PHP, определяющие функциональность модулей системы, административного раздела.
Для поддержания структурной ясности файлы объединяются в разделы. Например, сценарии, определяющие функциональность модуля «Главный модуль» объединены в папку main, которая, в свою очередь, является одной из подпапок папки modules.
«1С – Битрикс: Управление сайтом» является модульной структурой. В системе определены модули, количество которых зависит от той или иной редакции системы.
Возможность управления модулями предусмотрена в административном разделе системы. В этом же разделе имеется возможность получить доступ к файловой структуре web-приложения. Для того, чтобы получить доступ к административному разделу, пользователь должен принадлежать к группе (группам) пользователей, в настройках которой указан уровень доступа, позволяющий доступ к административному разделу. Перед доступом в административный раздел пользователь должен пройти процедуру авторизации.
Для доступа к работе самого web-приложения, разрабатываемого на основе системы, предусмотрен публичный раздел. Данный раздел доступен всем пользователям сети Internet, не требует авторизации. В данном разделе размещаются страницы web-приложения и другие материалы (например, файлы изображений), которые могут быть доступны пользователям сети Internet.
Как уже было отмечено выше, система «1С – Битрикс: Управление сайтом» является модульной системой, т.е. вся функциональность системы логически состоит из функциональности независимых модулей, взаимодействующих между собой. Количество модулей зависит от редакции системы, но имеется набор модулей, которые присутствуют в каждой редакции и выполняют набор необходимых функций. Это следующие модули:
Модуль «Главный модуль» выполняет основные функции работы системы и построенного на ней web-приложения. В функции данного модуля входят:
Основными функциями являются функция выполнения загрузки страниц web-приложения функция создания основных объектов классов API и функция подключения к базе данных. Описание действий, выполняемых системой при загрузке страницы, будет описана в разделе 3.4.1. Подключение к базе данных осуществляется неявно при загрузке страницы в зависимости от содержимого файла dbconn.php, который выполняется во время загрузки страницы и содержит адрес, по которому доступна база данных, логин и пароль пользователя базы данных и имя базы данных.
Модуль «Управление структурой» выполняет следующие функции:
Информационные блоки - модуль, позволяющий каталогизировать и управлять различными типами (блоками) однородной информации.
Модуль «Информационные блоки» - это своеобразная надстройка над СУБД, хранящей данные web-приложения. Наличие данного модуля позволяет удобно разделить информацию по логическим разделам и управлять ей, не вдаваясь в подробности хранения данных непосредственно в базе данных той или иной СУБД.
Можно выделить несколько основных функций модуля:
В состав модуля «Информационные блоки» входят следующие определения:
Типы инфоблоков используются для группировки информационных блоков. Информационные блоки одного типа чаще всего характеризуются принадлежностью к определенной тематике и одинаковой (или схожей) структурой.
Информационные блоки – блоки однородной информации.
Разделы – логические единицы, используемые для группировки элементов внутри информационного блока. С помощью разделов создается иерархическая структура хранения информации.
Элементы информационных блоков - непосредственно информация, размещаемая в информационных блоках.
Совокупность данных сущностей и связей между ними составляет структуру информационных блоков web-приложения.
Компоненты системы являются блоками, с помощью которых строится публичная часть web-приложения. В состав компонентов входят сценарии, написанные и отлаженные один раз с целью многократного использования на различных страницах web-приложения.
Компоненты можно сравнить с классами в языках программирования, например в языке PHP. Классы также размещены в одном месте, имеют методы, определяющие функциональность объектов класса и могут быть использованы многократно в разных местах вызывающей программы.
Компоненты являются средством инкапсуляции (сокрытия) функциональности web-приложения. Т.е., разработчику, который будет использовать компонент, не обязательно знать, как конкретно реализована функциональность, им предоставляемая. Разработчику достаточно знать имя компонента, набор параметров и правила, по которым он должен быть подключен на странице. Компонент может содержать в себе вызовы других компонентов. Эти свойства компонентов показывают, насколько они похожи на классы в языках программирования.
Физически компоненты «1С – Битрикс: Управление сайтом» представляют набор файлов и папок, которые определяют функциональность компонента и результаты его работы. Компонент должен быть размещен в папке web-приложения bitrix/components.
Файловая структура компонента выглядит следующим образом:
<пространство_имен_
<имя_компонента>
lang
templates
<имя_шаблона_компонента>
lang
images
template.php
style.css
script.js
.parameters.php
result_modifier.php
component.php
.description.php
.parameters.php
<пространство_имен_
lang – папка, в которой размещаются подпапки, определяющие языковые фразы, использованные в компоненте. Эта папка необходима для автоматического выбора фраз на нужном языке, если web-приложение выводит информацию на нескольких языках. В данной папке содержатся подпапки, именами которых являются идентификаторы языков, настраиваемых в административном разделе системы.