Автор работы: Пользователь скрыл имя, 12 Января 2014 в 15:33, курсовая работа
За последние несколько лет восприятие и использование Internet как очередной технологической «игрушки» закономерно трансформировались в осознание тех широчайших возможностей, которые Сеть способна предоставить пользователям в плане как человеческого общения, так и ведения бизнеса. Неизбежно возникший в результате подобной трансформации Internet-бум, безусловно, несколько исказил общее восприятие Internet как еще одного средства для построения информационной инфраструктуры коммерческого предприятия, поскольку все наперебой старались применить возможности Сети для малоподходящих целей.
Введение
Постановка задачи
Назначение системы
Цели создания web-приложения
Структура сайта
Обоснование инструментов разработки
Реализация
Логическая структура web-приложения
Физическая структура web-приложения
Описание структуры и формата страниц
Описание ограничений доступа к данным
Описание используемых библиотек и элементов управления
Описание используемых функций и процедур
Тестирование
Применение
Назначение и область применения программы
Описание организации диалога с пользователем
Программно-аппаратное обеспечение сервера и клиента
Руководство пользователя
Экономический раздел
Охрана труда
Заключение
Литература
- Полностью настраиваемые схемы расположения элементов, включая левый, правый и центральный блоки меню.
- Закачка изображений при помощи браузера в вашу собственную библиотеку - для последующего использования с любого места сайта.
- Форум/Опросы/Голосования для эффективной обратной связи.
- Работа под Linux, FreeBSD, MacOSX, Solaris, AIX, SCO, WinNT, Win2K.
Возможности администрирования:
- Возможность создавать неограниченное количество страниц
- Четкая организация структуры сайта
- Для каждой динамической страницы можно создать свое описание и ключевые слова в целях повышения рейтинга в поисковых системах
- Начало и окончание публикации любых материалов можно запрограммировать по календарю
- Возможность ограничить доступ к определенным разделам сайта только для зарегистрированных пользователей
- Секции новостей, продукции или услуг легко редактируемы и управляемы
- Полностью настраиваемые схемы расположения элементов по 5 областям, что позволяет сделать оригинальный дизайн
- Закачка изображений при помощи браузера в вашу собственную библиотеку - для последующего использования с любого места сайта
- Опросы и голосования для эффективной обратной связи
- Различные модули - такие как последние новости, счетчик посещений, подробная статистика посещений, гостевая книга, форум и т.д.
- Причем Вы сами выбираете, будут ли показаны эти модули и на каких страницах
- Возможность создания не одной, а нескольких форм обратной связи для каждого контакта.
- Изменение порядка объектов, включая новости, вопросы, статьи и т.д.
- Генератор показа случайной новости.
- Модуль приёма от удалённых авторов новостей, статей и ссылок.
- Иерархия объектов - количество секций, разделов, подразделов и страниц, зависит от вашего желания.
- Библиотека изображений позволит Вам хранить все Ваши GIF- и JPEG-файлы под рукой для лёгкого доступа.
- Менеджер рассылки новостей. Выбирайте из более чем 360 служб рассылки новостей по всему миру.
- Менеджер архива. Помещайте Ваши старые статьи в архив, чем просто удалять их.
- Возможность распечатать или отправить другу на e-mail любую статью с сайта.
- Выбор из 3 визуальных редакторов, что упрощает редактирование материалов до уровня редактирования текста в программе Word.
- Предварительный просмотр перед окончательным размещением.
- Возможность легкой смены дизайна.
- Экономное использование места на сервере за счет использование базы данных MYSQL.
- Возможность использования адресов страниц адаптированных для лучшей индексации всеми поисковыми системами.
Тестирование
Работоспособность сайта проверялась на всех известных браузерах(IE, Opera, Mozilla).
Ниже будут описаны следующие методы кэширования: файловое кэширование, Alternative PHP Cache (APC), eAccelerator и Memcache. Существуют и другие методы, например, кэширование на уровне операционной системы или кэширование SQL запросов, но мы остановимся на первых четырех, так как именно они реализованы в Joomla!
Доступные методы кэширования
В структуре системы Joomla! кэширование реализовано на нескольких уровнях. Даже если не установлено ни одно из поддерживаемых расширений (APC, eAccelerator или memcache), файловое кэширование будет доступно всегда. По умолчанию в Jomla! 1.5 кэширование деактивировано. Для его активации необходимо изменить соответствующий параметр глобальных настроек системы. Эта процедура не представляет сложности, но при этом активируется лишь базовое кэширование. Хотя, только одно файловое кэширование добавит вам 38-45 процентов производительности. Если вы хотите активировать и кэширование страниц, не забудьте установить плагин кэширования страниц (в настройках системных плагинов).
Доступные методы кэширования определяются Joomla! автоматически. В данном примере мы можем видеть систему, в которой реализованы все четыре метода. Доступность того или иного метода кэширования определяется возможностями вашего хостинга или наличием соответствующих библиотек кэширования. Также, от инфраструктуры вашего хостинга зависит выбор оптимального метода кэширования.
Начнем с характеристики методов кэширования, имеющихся в Joomla! Затем перейдем к использованному нами методу тестирования, и закончим подведением итогов.
Файловое кэширование
Этот метод кэширования всегда доступен в Joomla! Концепция метода заключается в том, что выводимая страница кэшируется в файл, находящийся в текущей файловой системе. При загрузке кэшированной страницы, чтение данных проводится непосредственно из файла, без обработки с помощью PHP. Производительность в данном случае во многом зависит от операционной системы, на которой работает Joomla! Файловые системы Linux считаются более производительными, чем файловая система NTFS от Windows. Таким образом, если Joomla! работает под Windows, эффект от применения кэширования будет значительно ниже, нежели при работе под Linux. По нашему опыту, Joomla! обычно работает медленнее в среде Windows. Хотя, мы не проводили сравнительных тестов с использованием Windows, поэтому не можем ничего утверждать однозначно.
Memcache
При активации данного метода кэширования, не забудьте настроить соответствующие параметры, как хост (host), порт (port), постоянное соединение (persistent connection) и сжатие(compression), иначе кэширование попросту не будет выполняться. Итак, что такое Memcache и где его стоит применять?
Memcache - это высокопроизводительная
система кэширования
Memcache разработана для
повышения скорости загрузки
часто посещаемых сайтов (более
20 миллионов динамических
Иногда, во время тестирования, Memcache показывала более низкие результаты, чем файловое кэширование (хотя система и работала на localhost). Мы не смогли протестировать Memcache в кластерном окружении, просто потому, что у нас не было необходимых для этого аппаратных средств. Помните: копирование данных из кэша операционной системы занимает меньше времени, нежели копирование через TCP/IP сокет. Объяснение этому достаточно простое - в обоих случаях логика процесса одинакова - получить результат из кэша и отправить его обратно, и тут критическую роль играет неоправданная сложность TCP/IP протокола в сравнении с сокетами Unix. При выборе метода кэширования, не стоит забывать и о таких преимуществах Memcache, как распределенное кэширование, поддержка «времени жизни» (time to live) (ваш кэш не будет терять актуальность при каждом обновлении) и возможность кэширования сложных объектов.
Alternative PHP Cache (APC)
Alternative PHP Cache (APC) - это система
кэширования оптимизированного
PHP. Она задумывалась как
Вам необходимо принять два основных решения. Первое, сколько памяти вы готовы освободить для APC. Второе, хотите ли вы, чтобы APC проверял, был ли файл изменен, при каждом запросе. За эти параметры отвечают следующие директивы настроек APC: apc.shm_size and apc.stat.
eAccelerator
eAccelerator - это бесплатный PHP акселератор, оптимизатор и динамический кэш с открытым исходным кодом. Он повышает производительность PHP скриптов путем их кэширования в откомпилированном виде. Также он оптимизирует скрипты, повышая скорость их выполнения. Обычно eAccelerator уменьшает время загрузки данных с сервера и увеличивает скорость выполнения PHP кода в 1-10 раз.
eAccelerator хранит откомпилированные
PHP скрипты в общей памяти и
выполняет их оттуда. При этом
кэш блокируется лишь на
Имейте в виду, что по умолчанию на большинстве хостов eAccelerator установлен всего лишь как кэш оптимизированного кода (opcode cache), хотя, он и содержит настройки, позволяющие вносить данные в кэш и получать их оттуда. Joomla! проверяет, активирован ли метод eaccelerator_get в настройках eAccelerator. Если система была откомпилирована без этого метода, он будет недоступен.
Метод тестирования
Для подсчета количества обрабатываемых системой запросов в секунду мы использовали Appache Benchmark. Страница была вызвана 2000 раз с взаимосовместимостью 10 (т.е. ab -n 2000 -c 10).
Мы использовали аппаратные средства, описанные ниже. Обратите внимание, что данные системы не являются высокопроизводительными и больше подходят для работы на разделяемом или общем хосте.
Система 1: Intel Celeron D 3.2 Gig Hz, 2 Gig Dual Channel High Performance RAM, PHP версий 4.4.4 и 5.2.2 (тестировались раздельно) MySQL 5.0.24, APC 3.0.14 и Memcache 2.1.2
Система 2: Intel 2.8Ghz HT, 3 Gbit RAM, Apache 2.2.3, PHP 5.1.2, MySQL 5.0.38, APC 3.0.14, eAccelerator 0.9.5.1, Memcache 1.39
Система 3: Athlon XP 2200, 2Gbit RAM, Apache 2.2.3, PHP 5.1.2, MySQL 5.0.38, APC 3.0.14, eAccelerator 0.9.5.1, Memcache 1.39
Чтобы увидеть ясную картину поведения Joomla! в тех или иных условиях, мы провели 68 тестов в различном окружении и на разных системах. Также мы провели тесты с деактивированной и активированной оптимизацией под поисковые машины (Search Engine Optimization) и с включенным или отключенным режимом совместимости с расширениями для предыдущей версии (legacy mode).
Тесты проводились двумя этапами. В каждом этапе мы стремились сфокусироваться на определенных задачах. В первом этапе мы хотели определить разницу между различными версиями Joomla! Во втором этапе мы сфокусировались на производительности версии бета-2 и влиянии на нее оптимизации под поисковые машины и режима наследования.
Результаты тестов
Начнем со сравнения базовой производительности PHP версий 4.4.7 и 5.2.2. График показывает результаты тестов с деактивированной оптимизацией под поисковые машины и режимом наследования. Первым важным моментом является то, что PHP 5.2 работает значительно быстрее, чем PHP 4.4.7. Также, при тестировании на системе с одним хостом, наивысшую производительность показала APC (на данном этапе eAccelerator не тестировался).
Рассмотрим результаты этого теста более детально. При использовании стандартных пакетов Joomla! Видно она обладает самой высокой производительностью. Без использования кэширования, работает с одинаковой производительностью как на PHP 4.4.7, так и на PHP 5.2.2. При активации файлового кэширования, скорость работы почти не изменяется, в то время как производительность возрастает более чем два раза.
Если обратить внимание на тесты с использованием APC кэширования, то видно большую разницу в производительности при использовании PHP 4.4.7 и PHP 5.2.2. Это очень важно. Если у вас имеется возможность запуска Joomla! под PHP 5.2.2, используйте ее! Теперь взглянем на тесты с использованием Memcache. Здесь мы видим, что Joomla! почти не выигрывает в производительности при запуске под PHP 4.4.7. Версия же 5.2.2 дает явное повышение скорости работы системы. В сравнении с начальной установкой (кэширование деактивировано), мы можем наблюдать изменения производительности в Joomla! 1.5 при использовании Memcache, но объяснить изменения в производительности с помощью данного графика невозможно.
Второй блок тестов дал нам следующие результаты:
Все тесты проводились с использованием PHP 5.2.1, на обеих системах использовалось идентичное программное обеспечение. Разница в производительности может быть объяснена различными аппаратными средствами систем (Athlon 2200 и Pentium 2.8 HT). Данные график еще лучше, чем предыдущий, отображает влияние методов кэширования на производительность. Файловое кэширование дает неплохие результаты, мы могли заметить это еще в первом тестовом блоке. Также видно, что использование Memcache может удвоить производительность, хотя и не так явно, как файловое кэширование. В целом, Второй этап тесторования позволил сделать следующие выводы: при работе на распределяемом хосте достаточно использовать файловое кэширование; Memcache целесообразно применять в загруженном, кластерном окружении, хотя, из-за отсутствия у нас такого окружения, мы не можем предоставить результаты соответствующих тестов; APC и eAccelerator показывают почти одинаковую производительность; максимальные результаты с APC можно получить при активированной оптимизации под поисковые машины (SEO).