Разработка информационного web-сайта на основе системы «1С-Битрикс: Управление сайтом»

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 1 файл

СОЗДАНИЕ САЙТА.doc

— 1.87 Мб (Скачать документ)

 

Как видно из результатов теста 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-сайт был оптимизирован под высокие нагрузки согласно результатам нагрузочного тестирования.

 

 

 

Список использованных источников

  1. Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5. – СПб.: БХВ – Петербург, 2004. – 560 с.
  2. Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. – СПб.: БХВ – Петербург, 2007. – 608 с.
  3. Робачевский А.М., Немнюгин С.А., Стесик О.Л. Операционная система UNIX. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2007. – 656 с.
  4. Ben Collins-Sussman, Brian W. Firzpatrick, C. Michael Pilato. Version Control with Subversion.: O’Reilly Media, Inc. 1005 Gravenstein Highway North, Sebastopol, 2004. – 277 p.
  5. Васвани В. Полный справочник по MySQL. – М.: Издательский дом «Вильямс», 2006. – 528 с.
  6. Бадд Э., Молл К., Коллизон С. Мастерская CSS: профессиональное применение Web – стандартов. – М. : ООО «И.Д. Вильямс», 2007. – 272 с.
  7. Бибо Б., Кац И. jQuery. Подробное руководство по продвинутому JavaScript. – СПб.: Символ-Плюс, 2009. – 384 с.
  8. Дари К., Бринзаре Б., Черчез-Тоза Ф., Бусика М. AJAX и PHP: разработка динамических веб-приложений. – СПб.: Символ-Плюс, 2007. – 336 с.
  9. Конверс Т., Парк Д., Морган К.. PHP 5 и MySQL. Библия пользователя. – М. : Издательский дом «Вильямс», 2009. – 1216 с.
  10. «1С – Битрикс: Управление сайтом». Документация для разработчиков. URL: http://dev.1c-bitrix.ru/api_help/ (дата обращения: с 30.03.2010 по 01.06.2010).
  11. Википедия — свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/ (дата обращения: с 30.03.2010 по 01.06.2010)
  12. Joe Dog Software – Siege Home. URL: http://joedog.org/index/siege-home (дата обращения: 10.05.2010)
  13. World Wide Web Consortium (W3C). URL: http://www.w3.org/ (дата обращения: 05.04.2010).

 

Приложение A. Принцип работы системы «1С – Битрикс: Управление сайтом»

 

А.1. Общие сведения

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

Для поддержания структурной ясности файлы объединяются в разделы. Например, сценарии, определяющие функциональность модуля «Главный модуль» объединены в папку main, которая, в свою очередь, является одной из подпапок папки modules.

«1С – Битрикс: Управление сайтом» является модульной структурой. В системе определены модули, количество которых зависит от той или иной редакции системы.

Возможность управления модулями предусмотрена в административном разделе системы. В этом же разделе имеется возможность получить доступ к файловой структуре web-приложения. Для того, чтобы получить доступ к административному разделу, пользователь должен принадлежать к группе (группам) пользователей, в настройках которой указан уровень доступа, позволяющий доступ к административному разделу. Перед доступом в административный раздел пользователь должен пройти процедуру авторизации.

Для доступа к работе самого web-приложения, разрабатываемого на основе системы, предусмотрен публичный раздел. Данный раздел доступен всем пользователям сети Internet, не требует авторизации. В данном разделе размещаются страницы web-приложения и другие материалы (например, файлы изображений), которые могут быть доступны пользователям сети Internet.

А.2. Модульная структура системы

Как уже было отмечено выше, система «1С – Битрикс: Управление сайтом» является модульной системой, т.е. вся функциональность системы логически состоит из функциональности независимых модулей, взаимодействующих между собой. Количество модулей зависит от редакции системы, но имеется набор модулей, которые присутствуют в каждой редакции и выполняют набор необходимых функций. Это следующие модули:

  • модуль «Главный модуль»;
  • модуль «Управление структурой»;
  • модуль «Информационные блоки»;

А.2.1. Главный модуль

Модуль «Главный модуль» выполняет основные функции работы системы и построенного на ней web-приложения. В функции данного модуля входят:

  • функция обработки URL запросов web-клиентов к компьютеру web-приложения;
  • функция инициализации web-приложения;
  • функция выполнения подключения к базе данных;
  • функция создания основных объектов классов API системы;
  • функция выполнения загрузки страниц web-приложения;
  • функция управления настройками web-приложения;
  • функция выполнения обновления системы и web-приложения.

Основными функциями являются функция выполнения загрузки страниц web-приложения функция создания основных объектов классов API и функция подключения к базе данных. Описание действий, выполняемых системой при загрузке страницы, будет описана в разделе 3.4.1. Подключение к базе данных осуществляется неявно при загрузке страницы в зависимости от содержимого файла dbconn.php, который выполняется во время загрузки страницы и содержит адрес, по которому доступна база данных, логин и пароль пользователя базы данных и имя базы данных.

А.2.2. Модуль «Управление структурой»

Модуль «Управление структурой» выполняет следующие функции:

  • функция управления файловой структурой web-приложения (создание, удаление, изменение файлов и папок);
  • функция управления свойствами файлов и папок, в т.ч. определенных разработчиком;
  • функция поддержания целостности структуры файловой системы web-приложения;
  • функция управления доступом к файлам и папкам файловой системы на уровне web-приложения.

А.2.3. Модуль «Информационные блоки»

Информационные блоки - модуль, позволяющий каталогизировать и управлять различными типами (блоками) однородной информации.

Модуль «Информационные блоки» - это своеобразная надстройка над СУБД, хранящей данные web-приложения. Наличие данного модуля позволяет удобно разделить информацию по логическим разделам и управлять ей, не вдаваясь в подробности хранения данных непосредственно в базе данных той или иной СУБД.

Можно выделить несколько основных функций модуля:

  • функция представления данных, хранящихся в базе данных (разделение на блоки, разделы);
  • функция управления данными (удаление, редактирование, создание записей в базе данных);
  • функция поддержания целостности данных;
  • функция обеспечения доступа к данным посредством API модуля.

В состав модуля «Информационные блоки» входят следующие определения:

Типы инфоблоков используются для группировки информационных блоков. Информационные блоки одного типа чаще всего характеризуются принадлежностью к определенной тематике и одинаковой (или схожей) структурой.

Информационные блоки – блоки однородной информации.

Разделы – логические единицы, используемые для группировки элементов внутри информационного блока. С помощью разделов создается иерархическая структура хранения информации.

Элементы информационных блоков - непосредственно информация, размещаемая в информационных блоках.

Совокупность данных сущностей и связей между ними составляет структуру информационных блоков web-приложения.

А.3. Компоненты

А.3.1. Общие сведения

Компоненты системы являются блоками, с помощью которых строится публичная часть web-приложения. В состав компонентов входят сценарии, написанные и отлаженные один раз с целью многократного использования на различных страницах web-приложения.

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

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

А.3.2. Файловая структура компонента

Физически компоненты «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

<пространство_имен_компонентов> - папка, в которой можно разместить компоненты одного типа, имеющие какие – либо общие признаки или выполняющие схожие действия, но с разными модулями или частями web-приложения. Например, набор компонентов по работе с файловой структурой web-приложения логично разместить в папке file_structure.

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

Информация о работе Разработка информационного web-сайта на основе системы «1С-Битрикс: Управление сайтом»