автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Исследование и разработка методов построения и кэширования веб-приложений
Автореферат диссертации по теме "Исследование и разработка методов построения и кэширования веб-приложений"
На правах рукописи
Носов Виктор Павлович
ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДОВ ПОСТРОЕНИЯ И КЭШИРОВАНИЯ ВЕБ-ПРИЛОЖЕНИЙ
Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук
003472840
Москва 2009
003472840
Работа выполнена в Федеральном государственном учреждении «Государственный научно-исследовательский институт информационных технологий и телекоммуникаций» (ФГУ ГНИИ ИТТ «Информика»).
Научный руководитель: кандидат технических наук, доцент
Булгаков Михаил Вячеславович
Официальные оппоненты: доктор технических наук, профессор
Саксонов Евгений Александрович
кандидат технических наук Сергеев Михаил Владимирович
Ведущая организация: Санкт-Петербургский государственный
университет информационных технологий, механики и оптики
Защита диссертации состоится 23 июня 2009 г. в 14:00 на заседании диссертационного совета Д 212.133.01 при Московском государственном институте электроники и математики (МИЭМ) (технический университет) по адресу: 109028, Москва, Б. Трехсвятительский пер., д. 3.
С диссертацией можно ознакомиться в библиотеке МИЭМ. Автореферат разослан «1 » мая 2009 г.
Ученый секретарь
диссертационного совета Д 212.133.01 к.т.н., доцент
С.Е. Бузников
Общая характеристика работы Актуальность исследования. За последние 10 лет всемирная сеть Интернет претерпела значительные изменения. Веб-серверы, ранее являвшиеся системами для распространения статического контента, стали представлять собой платформы для работы интерактивных, персонализированных, распределенных приложений уровня предприятия. Современные веб-приложения - это сложные программные комплексы, разработка и поддержка которых становится непростой задачей.
Разработка веб-приложений является новым и наиболее перспективным направлением развития информационных и телекоммуникационных технологий, затронувшим наряду с другими сферами систему образования. В России наблюдается повышенный спрос на получение образовательных услуг с использованием дистанционной технологии обучения. При этом спрос на образовательные услуги носит распределенный характер, что подтверждается заинтересованностью регионов в доступе к ним.
Для создания веб-приложений необходимы программные средства, известные как веб-каркасы (от англ. web-application frameworks) или системы создания веб-приложений, которые служат основой для построения специализированных решений, предоставляя повторно используемые компоненты для решения общих задач веб-приложений. Динамические веб-приложения удобны для пользователей, но они создают большую нагрузку на сервер, чем статические страницы. Поэтому возникает необходимость снижения нагрузки на веб-систему за счет кэширования динамических данных, распространенного подхода для увеличения быстродействия, при котором копия объекта, доставляемого пользователю, сохранялась и использовалась для последующих запросов.
В настоящее время создано значительное количество систем создания веб-приложений для различных платформ. Такие продукты как Zend Framework (PHP), Simfony (PHP), Limb (PHP), Ruby On Rails (Ruby), Struts (Java), Tapestry (Java) широко используются разработчиками по всему миру. По статистике наибольшее распространение получили решения на базе связки Linux (операционная система) + Apache (веб-сервер) + MySQL (СУБД) + PHP (язык программирования) - так называемый набор LAMP. В процессе создания системы образовательных порталов были выявлены следующие недостатки вышеперечисленных решений:
1. Интенсивное использование СУБД и сервера приложений, ведущее к повышенной нагрузке на веб-сервер и к увеличению времени отклика.
Использование имеющихся средств кэширования влечет за собой дополнительные затраты времени разработчика на описание правил кэширования - времени жизни записей кэша (что ведет к возможности получения пользователем устаревших данных) или зависимостей между записями кэша и источниками данных.
2. В качестве политики замещения записей кэша, с учетом ограниченности размера кэша, в основном используется алгоритм LRU (удаляется наиболее давно запрашиваемая запись). В этом алгоритме не используется информация о времени, затраченном на создание кэшируемого динамического объекта, а также отсутствует способность адаптироваться под изменяющийся характер рабочей нагрузки. Учет времени получения записи позволяет сохранять в кэше трудно вычислимую запись, что в итоге снижает нагрузку на веб-сервер.
3. В механизмах создания внешнего представления сайтов не во всех рассмотренных разработках используется фрагментарное кэширование, а методы его использования приводят к необходимости создания дополнительного программного кода.
4. Отсутствуют механизмы быстрого создания административных интерфейсов для редактирования данных веб-приложения. Т.к. практически каждое веб-приложение имеет свою уникальную модель данных, такие средства необходимы для снижения времени разработки. Таким образом, актуальность темы диссертации обусловлена
необходимостью разработки архитектуры веб-приложений, учитывающей вышеперечисленные недостатки и включающей в себя методы снижения нагрузки на веб-систему за счет многоуровневого кэширования динамических данных.
Цель работы и задачи исследования. Целью диссертационной работы является разработка методов и средств построения и кэширования веб-приложений, обеспечивающих снижение нагрузки на веб-систему. Для достижения указанной цели в работе решаются следующие задачи:
• Обзор способов построения веб-приложений;
• Анализ методов кэширования в веб-приложениях;
• Разработка архитектуры веб-приложений, нацеленной на использование многоуровневого кэширования динамических данных;
• Разработка модели системы кэширования;
• Разработка адаптивного алгоритма политики замещения данных в кэше, учитывающей время получения динамических объектов (запросы к БД, фрагменты страниц);
• Разработка системы хранения данных на основе технологии объектно-реляционного отображения;
• Разработка системы создания специализированных интерфейсов для редактирования данных;
• Практическая реализация полученных результатов.
Методы исследования. Для решения поставленных задач использованы методы общей теории систем, теории систем массового обслуживания, сравнительного анализа, объектно-ориентированного анализа и проектирования Научная новизна. При решении задач, поставленных в диссертационной работе, получены следующие научные результаты:
1. Модель системы кэширования на базе теории массового обслуживания обеспечивающая возможность численно оценить снижение нагрузки на веб-сервер при использовании фрагментарного кэширования, по сравнению с полностраничным кэшированием.
2. Оригинальная архитектура веб-приложений, основанная на парадигме Модель-Вид-Контроллер, включающая в себя:
• Использование компонентного представления при создании пользовательского интерфейса, позволяющее неявно описывать взаимосвязь между информацией, получаемой из БД и динамическими фрагментами веб-страниц;
• Модель веб-приложения на базе технологии объектно-реляционного отображения, дающая возможность отслеживать изменения в БД для поддержания целостности записей кэша - фрагментов веб-страниц и результатов выборок из БД;
• Интегрированную систему многоуровневого кэширования динамических данных, использующую модифицированный адаптивный алгоритм политики замещения записей кэша, учитывающий время получения динамических данных, хранящихся в кэше;
• Систему создания специализированных интерфейсов для редактирования данных, хранящихся в системе на базе технологии объектно-реляционного отображения.
В диссертационной работе разработаны теоретические положения и решены задачи создания средств разработки веб-приложений и снижения нагрузки на веб-систему за счет кэширования динамических данных.
5
Научные положения, выносимые на защиту:
1. Модель системы кэширования на базе теории массового обслуживания.
2. Модифицированный алгоритм адаптивного кэширования динамических данных в веб-приложениях, учитывающий время получения динамических данных, хранящихся в кэше.
3. Архитектура веб-приложений, основанная на интеграции компонентного представления и модели веб-приложения на базе технологии объектно-реляционного отображения, включающая с целью снижения нагрузки на веб-сервер многоуровневое кэширование динамических данных.
Практическая ценность. Практическая реализация методов произведена при создании свободно распространяемой системы управления сайтом iPHPortal http ://phportal. informika.ru. которая предназначена для создания сайтов различных типов, включая образовательные порталы и сайты дистанционного образования. Использование бесплатно распространяемого системного программного обеспечения позволяет расширить круг организаций, которые могут использовать созданную систему управления сайтом, а использование программного обеспечения с открытым кодом обеспечивает большую информационную безопасность.
Система использована для реализации 7 официальных сайтов и порталов:
• Сайт Министерства Образования и Науки РФ httr>://www.mon.gov.ru:
• Сайт Федерального Агентства по Науке и Инновациям http://www.fasi.gov.ru:
• Корпоративный портал Федерального Агентства по Науке и Инновациям http://portal.fasi.gov.ru:
• Федеральный портал по информационным и телекоммуникационным технологиям в образовании http://www.ict.edu.ru:
• Федеральный портал по научной и инновационной деятельности http://sci-innov.ru:
• Система региональных хранилищ Единой Коллекции Цифровых образовательных Ресурсов http://school-collection.edu.ru:
• Система электронного хранилища новостной информации. Апробация работы. Основные положения диссертационной работы
докладывались и обсуждались на научно-практических конференциях и семинарах, в том числе: XI Всероссийской научно-методической конференции "Телематика'2004" (Санкт-Петербург, 7-10 июня 2004 г.), семинарах аспирантов и научных сотрудников ФГУ ГНИИ ИТТ "Информика" (Москва
6
2005 - 2006 г.), Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2005)" (Турция, 15-22 мая 2005г.), XII Всероссийской научно-методической конференции "Телематика'2005" (Санкт-Петербург, 6-9 июня 2005 г.), Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2006)" (Турция, 19-26 мая 2006 г.), Научно-практической конференции "Инновации в условиях развития информационно-коммуникационных технологий (Сочи, 1-10 октября 2006 г.), Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2007)" (Турция, 18-25 мая 2007 г.), XIV Всероссийской научно-методической конференции "Телематика'2007" (Санкт-Петербург, 18-21 июня 2007 г.), Международном симпозиуме "Новые информационные технологии и менеджмент качества (NIT & MQ'2008)" (Турция, 16-23 мая 2008г.)
Публикации. Основное содержание диссертации опубликовано в работах автора [1-10].
Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, приложений и списка литературы. Объем работы составляет 165 страниц. Работа содержит 62 рисунка, 15 таблиц, 2 приложения и список цитированной литературы из 118 наименований.
Содержание работы.
Во введении обосновывается актуальность темы диссертации, сформулированы цель и задачи исследования, показана научная новизна и практическая ценность полученных результатов. Приведены краткие сведения о структуре и содержании диссертации.
В первой главе дается обзор известных методов построения веб-приложений. Методы разработки и построения веб-приложений постоянно развиваются на протяжении последнего времени, предлагаются новые подходы, такие как использование шаблонов внешнего представления, применение шаблонов проектирования, использование систем объектно-реляционного отображения. Интеграция методов разработки осуществляется в системах создания веб-приложений, которые обеспечивают максимально возможно повторное использование кода и позволяют в короткие сроки создавать специализированные веб-приложения.
Основными недостатками современных систем разработки веб-приложений являются отсутствие методов снижения нагрузки на веб-систему
7
за счет кэширования, поэтому требуется разработка архитектуры веб-приложений, которая помимо четкого разделения уровней бизнес-логики и представления, обеспечивает механизмы для кэширования динамических данных
Во второй главе описываются основные методы кэширования в веб-приложениях и, на базе предлагаемой модели, дается численная оценка снижения нагрузки на веб-сервер при применении фрагментарного кэширования. Также описывается модифицированный алгоритм политики замещения записей кэша, учитывающий время получения динамического объекта (генерации фрагмента или запроса к БД), позволяющий снизить суммарную нагрузку на веб-сервер.
Запрос к динамической странице обрабатывает определенная программа, которая, в сущности, является набором блоков кода. Каждый блок производит некоторые вычисления для генерации части страницы, выдавая фрагмент НТМЬ-кода. В случае использования фрагментарного кэширования результат после вычислений сохраняется в кэше и выдается пользователю до тех пор, пока не придет запрос на удаление фрагмента в связи с его устареванием по причине обновления данных, на основе которых создан фрагмент. В вебстраницах несложно выделить фрагменты, имеющие разную частоту и источники обновления. На рис. 1 показан пример главной страницы сайта, содержащей несколько фрагментов.
Рис. 1. Пример разделения страницы сайта на фрагменты
8
Блок, содержащий меню, изменяется в случае изменения администратором структуры сайта, а фрагмент с последними записями форума - при размещении пользователям сайта нового сообщения - эти события не связаны друг с другом и происходят в разные моменты времени и с разной периодичностью.
Система обработки запросов пользователей с математической точки зрения является системой массового обслуживания. Так как действия различных пользователей независимы, суперпозиция потоков запросов пользователей является простейшим потоком. Запросы пользователей могут быть не только на получение страниц сайта, но и вести к изменению информации на сайте, поэтому можно считать, что поток инвалидации (удаления, в случае нахождения в кэше) страниц и фрагментов страниц сайта, по причине изменения источника информации, является простейшим потоком.
Для снижения нагрузки на веб-сервер предлагается использовать решение, известное как реверс-прокси, в котором перед обработкой запроса пользователя на сервере проверятся, есть ли необходимая запись в кэше. В случае полностраничного кэширования записью является страница целиком, при использовании фрагментарного кэширования запись - это отдельный фрагмент страницы. Интенсивность простейшего потока инвалидации фрагмента или страницы равна ц, интенсивность потока запросов фрагмента или страницы равна X. Кэш осуществляет просеивание потока запросов к вебсерверу, снижая нагрузку на веб-систему. Интенсивность просеянного потока, идущего к системе генерации страниц или фрагментов равна Ас, интенсивность потока заявок обслуженных из кэша равно 1с. Интенсивность потока динамически обслуженных заявок пользователей равна Ах1 (рис. 2).
Рис. 2. Функционирование реверс-прокси кэша с точки зрения системы массового обслуживания 9
Работу кэша, как для фрагментарного, так и для полностраничного кэширования можно представить в виде одноканальной системы массового обслуживания с отказами без очереди и без ожидания. У системы имеются два состояния: 50 - запрашиваемой записи нет в кэше, - запрашиваемая запись есть в кэше. Ро, Р1 - вероятности этих состояний. Отказ в обслуживании (отсутствие генерации фрагмента или страницы) происходит, в случае если система перешла в состояние (фрагмент или страница уже находится в кэше и обслуживание не требуется). Стационарная вероятность обслуживания запроса страницы или фрагмента из кэша Р1 равна:
0 Х+ц Х+ц
В разработанной модели страница Р состоит из N фрагментов {р1....рм}, фрагменты были выделены разработчиком в процессе создания внешнего представления сайта. Каждый фрагмент запрашивается пользователем вместе с другими фрагментами страницы. Сборка фрагментов производится при выдаче страницы пользователю. Записи кэша, в процессе инвалидации устаревших фрагментов, удаляются независимо друг от друга. Кэширование может проводиться на уровне страницы и на уровне фрагментов. В случае полностраничного кэширования сохраненная запись удаляется в случае инвалидации любого из составляющих ее фрагментов, при этом при перегенерации страницы необходимо создать все фрагменты страницы. Рассмотрен случай, когда поддерживается только полностраничное кэширование. В этом случае страница Р становится устаревшей, когда устаревает один из ее фрагментов, интенсивность потока инвалидации страницы будет равна сумме интенсивностей потоков инвалидации ее фрагментов:
N
(2)
¡=1
Запросы, выполняемые кэшем к серверу при полностраничном кэшировании (в случае запроса страницы, которой не было в кэше или она была удалена) образуют простейший поток с интенсивностью Аср:
Я */1 Я'*1>.
3 -2 р - Р ^р — 1=1
р ~ р р0 ~ х +и ~ . Л (3)
Где РРо - вероятность динамического получения страницы, по причине отсутствия ее в кэше. При поступлении заявки на обслуживание сервер должен создать N фрагментов, следовательно, нагрузка на сервер в единицу времени Ср при полностраничном кэшировании:
С„=ЛГ*-
1=1
N
(4)
Для упрощения анализа в модели допускается, что все фрагменты инвалидируются с одинаковой интенсивностью ц, следовательно:
М2*ц*Лр р ~ \т* ,, , 2 (5)
С„ =
Ы*[1 + ХР
Также рассмотрен случай фрагментарного кэширования, когда кэш хранит фрагменты отдельно и объединяет их во время выдачи страницы пользователю. Когда фрагмент удаляется из кэша, при следующем запросе кэш запрашивает у сервера последнюю версию удаленного из кэша фрагмента. Интенсивность потока запросов Ал к фрагменту такая же, как и у страницы Хр, в которую входит фрагмент. Интенсивность потока запросов от фрагмента \ к серверу:
3 -ЗР - Уц-
Где Рй,о - вероятность получения фрагмента р! не из кэша. Запросы поступающих на сервер от всех фрагментов страницы Р образуют простейший поток с интенсивностью:
к=\
Однако, при фрагментарном кэшировании серверу нужно перегенерировать только обновившийся фрагмент. Следовательно, при допущении, что все фрагменты инвалидируются с одинаковой интенсивностью ц, общая нагрузка сервера в единицу времени от потока запросов на все фрагменты страницы Р:
Для сравнения загрузки сервера при фрагментарном и полностраничном кэшировании рассмотрен коэффициент нагрузки на СМО СК:
„ Ср ЛГ*Си + А„)
СК = —=-—-р— (9)
С/ (М*ц + К)
11
Далее рассмотрено, как изменяется СЯ в зависимости от коэффициента
2* N
загрузки СМО Хр/ц. Если Хр = ц, то СЯ(Хр = ц) = ——-. Если Хр = С х ц, то
N + 1
(1 + 1)* N
СЯ(Хр =1* ц) = —-—. Если Хр » |х, тогда СЯ(Лр = со) = Лг. Это выражение
показывает что в случае, если интенсивность запросов веб-страницы гораздо больше интенсивности обновлений, нагрузка, возлагаемая при фрагментарном кэшировании в N раз меньше нагрузки при полностраничном кэшировании. На рис. 3 показаны графики зависимости отношения СЯ и количества фрагментов на странице.
аз
50 о-
45 40 35 30 25 20
-).р = Ц
.........?.р/и
-----).р/|1 = 50
.......Хр/Ц = 100
----Ар » ц
о 6
«Р £ 141
Рис. 3. Отношение загрузки сервера при полностраничном и фрагментарном
кэшировании
Снижение нагрузки зависит от отношения интенсивности запросов страницы пользователями и интенсивности обновления фрагментов. В веб-системах в большинстве случаев интенсивность запросов страницы значительно превосходит интенсивность обновлений фрагментов, поэтому фрагментарное кэширование целесообразно применять в системах создания веб-приложений.
При решении проблемы ограниченного пространства кэша используются
алгоритмы замещения объектов в кэше, оставляющие самые "ценные" данные.
Ценность данных - это обычно функция от нескольких параметров, таких как
12
давность последнего запроса, частота запросов, размер, стоимость получения объекта, частота обновлений объекта. Политика замещения принимает решения, основываясь на этих значениях.
D - Множество запрашиваемых объектов {dl,d2,..dn}. Rd - общее число обращений к объекту d за период времени, Hd - число обращений к объекту, который уже находится в кэше, за период времени, Sd - размер объекта и Td -время, требуемое для генерации объекта (стоимость получения объекта) Критерии оценки эффективности работы кэща:
1. Соотношение обращений к объекту, обслуженных из кэша, к общему количеству запросов объекта
2. Соотношение размеров объектов, обращения к которым обслужены из кэша к общему размеру запрашиваемых объектов
3. Соотношение времени получения объектов, обращения к которым обслужены из кэша к общему времени получения запрашиваемых объектов
Для системы фрагментарного кэширования и кэширования запросов к БД требуется учитывать время, затрачиваемое на получение объекта, т.к. оно может сильно отличаться для объектов множества D. Поэтому в качестве критерия эффективности кэширования используется формула (12), из которой видно, что значение имеет не только количество, обслуженных из кэша запросов, но и время, которое было бы потрачено, если бы запрос обслуживался динамически.
Недостатком наиболее распространенных алгоритмов является то, что они не учитывают такие атрибуты документов как размер, стоимость получения объекта. Функциональные политики, такие как "Greedy Dual", "Hybrid", использующие интегрированную оценку ценности записи кэша, учитывают время получения объекта, размер объекта и др., но характеризуются высокими накладными расходами на поддержание служебной информации кэша.
Для решения задачи ограниченного пространства кэша в системе используется модифицированный алгоритм "CAR Мод", основанный на алгоритме "Clock Adaptive Replacement (CAR)", который помимо учета
2>
dsD
^Sd*Hd
R. =
£Sd*Rd
diD
Y?d*Hd
R,=
_ dt=D
(10)
(П)
давности и частоты обращения к записи кэша использует информацию о времени создания записи - выполнения запроса к БД или генерации фрагмента.
Структура данных алгоритма (рис. 4) включает в себя: Т1, Т2- кольцевые списки ("Часы"), содержащие идентификаторы записей, находящихся в кэше. В1, В2 - ЫШ-списки с записями, недавно удаленными из кэша. Т1 поддерживает информацию о недавних запрошенных записях, Т2 - о часто запрашиваемых записях (дважды запрошенные страницы).
Для каждой записи помимо бита ссылки добавляется хранение времени динамического получения объекта кэша в миллисекундах. В отличие от оригинального алгоритма в процессе обхода кольца для каждой записи, не имеющей повторных обращений, из значения ячейки времени вычитается время последней удаленной записи. В случае если значение в ячейке меньше или равно нулю - запись перемещается в соответствующий LRU список. По сравнению с исходным алгоритмом, модифицированный алгоритм позволяет задерживать записи с высоким временем их получения, при этом сохраняя низкие накладные расходы, характерные для алгоритма CAR.
Тестирование алгоритмов замещения (случайное замещение RAND, наиболее давно запрашиваемая запись LRU, CAR и CAR Мод) производилось на основе искусственно созданного набора запрашиваемых данных (А) и на основе логов реальных запрашиваемых данных рабочей веб-системы (В) (таблица 1). Распределение частоты запросов объектов во втором случае соответствует Зипф-подобному распределению.
Частота обращений
Давность обращения
Т1
Рис. 4. Структура данных алгоритма CAR Мод
Набор А Набор В
Количество запросов 3000 28000
Минимальный размер 1000 байт 100 байт
Максимальный размер 5000 байт 100 кб
Минимальное время получения 1 мс 50 мс
Максимальное время получения 100 мс 570 мс
Количество разных запросов 670 5871
Размер разных запросов 2 Мб 32 Мб
Общий размер потока запросов 9 Мб 120 Мб
I 1
По отношению количества обслуженных из кэша записей политики замещения ведут себя примерно одинаково. Из графика отношения времени получения обслуженных из кэша записей к общему времени видно, что модифицированный алгоритм CAR Мод имеет заметное преимущество (рис.5).
Набор А
Набор В
V 8 8 8 8 §' V 8 8 8 8 '-------"-Ра5мер
11111||1||| / / / / / / ШМ1
Рис. 5. Соотношение времени получения объектов, обращения к которым обслужены из кэша к общему времени получения запрашиваемых объектов при искусственно созданной нагрузке (А) и на примере реальной нагрузки (В)
На практике наибольшее значение имеет начало графика, т.к. в большинстве случаев размер кэша значительно меньше размера помещаемых в него записей. На основе экспериментов показано, что наиболее предпочтительными являются алгоритмы CAR и CAR Мод, при этом для характеристики Rt, учитывающее время динамического создания записи
преимуществом обладает алгоритм CAR Мод, снижающий нагрузку на веб-систему.
Во второй главе был проведен анализ фрагментарного кэширования и показано что оно значительно снижает нагрузку на веб-сервер. Исходя из проведенного анализа методов кэширования в качестве основного метода в разрабатываемой архитектуре веб-приложений выбрано фрагментарное кэширование HTML-фрагментов динамических веб-страниц. В качестве алгоритма замещения записей кэша используется алгоритм CAR Мод, позволяющий уменьшить нагрузку на веб-систему.
В третьей главе представлена архитектура системы создания веб-приложений, которая помимо четкого разделения уровней бизнес-логики и представления, обеспечивает механизмы для кэширования динамических данных (рис. 6). Для разграничения используется парадигма Модель-Вид-Контроллер, в которой представление реализуется при помощи компонентного подхода, а модель - на базе технологии объектно-реляционного отображения (ORM). Интегрированная система серверного кэширования объединяет кэширование запросов к БД (уровень данных) и кэширование фрагментов HTML-страниц.
Запросы пользователя
Контроллер веб-приложения
Загрузка модуля
Выдача страницы пользователю
Сборка фрагментов страницы
Кзш Кэш Кзш
запросов фрагментов каркасов
БД страниц
Обновления ЕД
Инвалидатор
устаревших
записей
Редактирование шаблонов
Рис.6. Схема работы веб-приложения 16
В разработанной схеме веб-система состоит из модулей, реализующих некоторую функциональность, например управление структурой сайта или форум. Каждый модуль является отдельным веб-приложением, предоставляющим стандартизованные интерфейсы для интеграции с другими приложениями, работающими в одной веб-системе. Внешнее представление модуля состоит из страниц, определяющих структуру расположения информации. Структура страницы может быть статической (определяться шаблоном) и динамической (портальная страница, определяется шаблоном и настройками пользователя).
Использование (ЖМ-технологий позволяет помимо увеличения скорости разработки и стандартизации интерфейсов доступа к данным, неявно описывать взаимосвязи между запросами к БД и нижележащими данными, что делает возможным автоматическое построение зависимостей между ними и решает проблему инвапидации устаревших данных в кэше. Т.к. большинство фрагментов страниц напрямую зависит от запросов к БД (рис.7), система инвалидации позволяет своевременно удалять из кэша как сохраненные результаты запросов к БД, так и фрагменты. Встроенная система кэширования использует 2 свойства, свойственные многим веб-приложениям:
• В операциях с данными превалирует чтение, что делает возможным обрабатывать все обновления данных, которые производятся веб-приложением. В этом случае не должно производиться обновлений БД другим приложением.
• Обновления состоят из небольшого набора запросов, что дает возможность создать механизм поддержания целостности и соответствия кэша источнику данных без значительной нагрузки на систему.
Рис. 7. Модель сборки страницы сайта из фрагментов 17
О = {Р1, (}к} множество динамических объектов состоящее из множества фрагментов и множества запросов к БД.
Б! (БРИ ,РР12,... БРт) - фрагмент зависящий от множества параметров = {РРП,РР!2.. РРш}. Каждый фрагмент Б! строится на основе подмножества из множества запросов к БД = {(¿1,(21... С^к}. Каждый запрос Qk ((2Рк1, QPk2,.. (2Рк]') зависит от множества параметров (}Р = {QPkl, (}Рк2,.. QPkj}.
В четвертой главе описана практическая реализация предлагаемой архитектуры на основе модульного подхода в разработанной системе ¿РНРоПа! 2. Модель веб-приложений, построенных на основе системы ¡РНРойа1 2 строится на базе подсистемы объектно-реляционного преобразования, что позволяет снизить стоимость модификации модели данных и разработки новых модулей.
При анализе предметной области были выявлены сущности, которые возникают в системе управления сайтом. Сущность - описание некоторого типа объектов в системе, определяется набором полей с заданной областью значений для каждого, а также набором возможных действий, которые может выполнять объект. Наличие базовых сущностей и возможность их модифицировать, используя механизмы наследования объектно-ориентированных программ, позволяет в короткие сроки создавать специализированные веб-приложения, имеющие собственную уникальную модель данных.
Практически каждой веб-системе требуется сделать административный интерфейс, поэтому проще один раз выработать общий шаблон, общий дизайн, максимально простой и расширяемый. В дальнейшем это сэкономит массу времени и позволит больше времени уделять разработке, а не внешнему оформлению. Поэтому важной задачей является предоставление разработчику механизма быстрой разработки административных интерфейсов для редактирования данных ИС. В созданной системе реализована программная база для реализации интерфейсов управления записями информационной системы. Для быстрого создания административных интерфейсов разработана группа классов, реализующих базовые функции операций поиска и редактирования данных.
Система 1РНРог1а1, созданная на базе разработанной архитектуры, успешно применяется при создании различных сайтов, ориентированных в первую очередь на интеграцию информационных ресурсов сферы образования.
В заключении сформулированы основные результаты диссертационной работы:
1. Проведен анализ методов кэширования веб-приложений. Разработана модель системы кэширования на базе теории массового обслуживания, показывающая, что разбиение страниц на фрагменты с различной интенсивностью обновления позволяет значительно снизить нагрузку на сервер.
2. Разработана архитектура веб-приложений, основанная на интеграции компонентного представления и модели веб-приложения на базе технологии объектно-реляционного отображения, включающая с целью снижения нагрузки на веб-сервер многоуровневое кэширование динамических данных.
3. Модифицирован алгоритм адаптивного кэширования динамических данных в веб-приложениях, учитывающий время получения динамических данных, хранящихся в кэше, и позволяющий снизить нагрузку на веб-сервер за счет удерживания в кэше записей с высоким временем получения.
4. На базе разработанной архитектуры создана свободно распространяемая система управления динамическим сайтом iPHPortal http://phportal.¡nformika.ru. Система использована для реализации 7 официальных сайтов и порталов федерального масштаба.
Список публикаций по теме диссертации
1. Булгаков М.В., Носов В.П. Создание образовательных интернет-порталов с использованием системы управления динамическим сайтом iPHPortal // Интернет-порталы: содержание и технологии. Сборник научных статей. Выпуск 2 / Редколлегия: А.Н. Тихонов (пред.) и др.; ГНИИ ИТТ "Информика". - М.: Просвещение, 2004. - С. 320-345.
2. Носов В.П. Система управления сайтом iPHPortal // Сборник трудов XI Всероссийской научно-методической конференции "Телематика'2004", 7-10 июня 2004 г. - Санкт-Петербург, 2004, С. 113-114.
3. Носов В.П. Методы кэширования в веб-приложениях // Труды XII Всероссийской научно-методической конференции "Телематика'2005" (6-9 июня 2005 г., г. Санкт-Петербург) - СПб.: СПбГУИТМО, 2005. -С. 256-258
4. Носов В.П. Кэширование в веб-приложениях, используемых для создания образовательных информационных ресурсов //
19
Телекоммуникации и информатизация образования. № 6 (31), ноябрь-декабрь 2005 - М.: Современный гуманитарный университет, 2005. - с. 77-81
5. Носов В.П. Эффективное построение веб-приложений // Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2006). Материалы Международной научной конференции / Редкол.: А.Н. Тихонов (пред.) и др.; ФГУ ГНИИ ИТТ "Информика". - М.: ВИЗКОМ, 2006. - с. 73-75
6. Носов В.П. Методы построения веб-приложений // Инновации в условиях развития информационно-коммуникационных технологий: Материалы научно-практической конференции (1-10 октября 2006 г., г. Сочи) / Под ред. В.Г. Домрачева, С.У. Увайсова - М.: МИЭМ, 2006. -с. 242-245
7. Носов В.П. Исследование и разработка методов построения и кэширования веб-приложений // Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2007). Материалы Международной научной конференции / Редкол.: А.Н. Тихонов (пред.) и др.; ФГУ ГНИИ ИТТ "Информика". - М.: ВИЗКОМ, 2007. - с. 42-45
8. Носов В.П. Разработка насыщенных веб-интерфейсов. // Труды XIV Всероссийской научно-методической конференции "Телематика'2007" (18-21 июня 2007 г., г. Санкт-Петербург) - СПб.: СПбГУИТМО, 2007. -С. 329
9. Носов В.П. Электронное хранилище новостной информации // Новые информационные технологии и менеджмент качества (NIT & MQ'2008). Материалы международного симпозиума/ Редкол.: А.Н. Тихонов (пред.) и др.; ФГУ ГНИИ ИТТ "Информика". - М.: ЭГРИ, 2008.-с. 112-113
Ю.Булгаков М.В., Носов В.П. Исследование и разработка методов построения и кэширования веб-приложений // Научно-практический журнал по информационным технологиям в образовании «Открытое образование», Москва, 2008 г., № 2.
Принято к исполнению 08/05/09 Исполнено 08/05/09
Заказ № 908 Тираж 100 экз.
ООО «Вишнёвый пирог» ИНН 7725533680 Москва, 2й Кожевнический пер., 12 +7 (495) 604-4154 www.cherrypie.ru
Оглавление автор диссертации — кандидата технических наук Носов, Виктор Павлович
Введение.
Глава 1. Обзор методов построения веб-приложений.
1.1 Введение.
1.2 Особенности веб-приложений.
1.3 Системы создания веб-приложений.
1.3.1 Введение.
1.3.2 Шаблон "Модель - Представление - Контроллер".
1.3.3 Обзор систем создания веб-приложений.
1.4 Модель веб-приложения.
1.4.1 Введение.
1.4.2 Объектно-реляционное отображение.
1.4.3 Использование объектно-реляционного отображения.
1.5 Представление в веб-приложениях.
1.5.1 Введение.
1.5.2 Шаблоны.
1.5.3 Использование XML/XSL для публикации в веб-приложениях.
1.5.4 Компонентное представление.
1.6 Контроллер.
Введение 2009 год, диссертация по информатике, вычислительной технике и управлению, Носов, Виктор Павлович
2.2 Уровни кэширования в веб-приложепиях.49
2.2.1 Клиент-кэширование.49
2.2.2 Прокси-кэширование.49
2.2.3 Реверс-прокси и форвард-прокси кэширование.51
2.2.4 Серверное кэширование.52
2.3 Фрагментарное кэширование.55
2.3.1 Введение.55
2.3.2 Модель обработки запросов пользователей с использованием серверного кэширования.58
2.3.3 Анализ изменения нагрузки па сервер при использовании полностраничного и фрагментарного кэширования.63
2.3.4 Распределенная сборка фрагментов.68
2.4 Алгоритмы замещения объектов в кэше.71
2.4.1 Введение.71
2.4.2 Традиционные алгоритмы и их прямые расширения.71
2.4.3 Функциональные и гибридные алгоритмы.74
2.4.4 Адаптивные алгоритмы.75
2.4.5 Разработка модифицированного адаптивного алгоритма, учитывающего время получения динамического объекта.78
2.4.6 Исследование эффективности работы модифицированного алгоритма.83
2.6 Заключение.88
Глава 3. Разработка архитектуры системы создания веб-приложений.89
3.1 Введение.89
3.2. Архитектура системы создания веб-приложений.90
3.2.1 Структура системы.90
3.2.2 Компонентное представление.93
3.2.3 Модель на базе объектно-реляционного отображения.100
3.3 Интегрированная система серверного кэширования.102
3.3.1 Введение.102
3.3.2 Инвалидация устаревших запросов к БД/ фрагментов.103
3.3.3 Стратегии инвалидации записей кэша.104
3.3.4 Архитектура системы инвалидации.106
3.4. Заключение.108
Глава 4. Модульная система iPHPortal 2.110
4.1. Введение.110
4.2 Архитектура системы.111
4.2.1 Системные требования для работы системы.111
4.2.2 Структура системы.111
4.2.3 Модул и системы.113
4.3 Реализация модели веб-приложения.115
4.3.1 Введение.115
4.3.2 Описание сущностей системы.119
4.3-2 Описание редактирования сущностей системы.121
4.4 Реализация представления веб-приложения.122
4.4.1 Введение.122
4.4.2 Описание компонентного представления.124
4.4.2 Обработка и кэширование шаблонов.125
4.5. Подсистема создания административных интерфейсов.128
4.5.1 Введение.128
4.5.2 Состав административного интерфейса.129
4.5.3 Составные элементы форм редактирования.134
4.5.4 Составные элементы форм поиска.138
4.6 Заключение.140
Заключение.141
Список используемых источников.143
Приложения.152
Приложение 1. Свидетельство о государственной регистрации программы для ЭВМ .152 Приложение 2. Исходный код РНР 5 алгоритма замещения CAR Мод.155
Введение
Актуальность исследования
За последние 10 лет всемирная сеть Интернет претерпела значительные изменения. Веб-серверы, ранее являвшиеся системами для распространения статического контента, стали представлять собой платформы для работы интерактивных, персонализированных, распределенных приложений уровня предприятия. Интерактивные приложения, работающие в сети Интернет в соответствии со стандартами и соглашениями всемирной паутины, получили общее название веб-приложений, в которых клиентом выступает браузер, а сервером — веб - сервер. Вся логика приложения сосредотачивается на сервере, а браузер лишь отображает информацию, загруженную по сети с сервера. Современные веб-приложения - это сложные программные комплексы, разработка и поддержание которых становится непростой задачей.
Разработка веб-приложений (порталов, информационных сайтов, образовательных сайтов и др.) является новым и наиболее перспективным направлением развития информационных и телекоммуникационных технологий, затронувшим наряду с другими сферами систему образования.
В России наблюдается повышенный спрос на получение образовательных услуг с использованием дистанционной формы обучения. При этом спрос на образовательные услуги носит распределенный характер, что подтверждается заинтересованностью регионов в доступе к ним. Современным инструментом для создания образовательных сайтов, представляющих возможности для дистанционного образования, является технология порталов, которая обеспечивает:
• размещение информационных ресурсов в среде портала (в том числе метаинформации, оперативной информации, персональной и корпоративной информации, универсальных и специализированных образовательных сервисов);
• навигацию (на основе широкого спектра поисковых процедур и специализированных средств);
• доступ к ресурсам (в частности, к цифровым образовательным ресурсам) и взаимодействие пользователей.
Для создания образовательных порталов необходимы программные средства, известные как веб-каркасы или системы создания веб-приложений (от англ. web-application frameworks), которые служат основой для построения специализированных решений, предоставляя повторно используемые компоненты для решения общих задач веб-приложений. Динамические веб-приложения удобны для пользователей, но они создают большую нагрузку на сервер, чем статические страницы, поэтому необходимо обеспечение высокой нагрузочной способности за счет кэширования динамических данных, распространенного подхода для увеличения быстродействия, при котором копия объекта, который доставлялся пользователю, сохранялась и использовалась для последующих запросов. Основным применением систем создания веб-приложений является создание на их основе систем управления содержанием, которые используются для управления структурой и информационного наполнения динамических сайтов.
В настоящее время создано значительное количество систем создания веб-приложений для различных платформ. Такие продукты как Zend Framework (PHP), Simfony (PHP), Limb (PHP), Ruby On Rails (Ruby), Struts (Java), Tapestry (Java) широко используются разработчиками по всему миру. По статистике наибольшее распространение получили решения на базе связки Linux- Apache - MySQL - PHP - так называемого набора "LAMP". Эти программные продукты не разрабатывались специально для работы друг с другом, однако такая связка стала весьма популярной, в первую очередь из-за своей доступности - все её составляющие являются открытыми и могут быть бесплатно загружены из Интернета. Набор LAMP входит в состав большинства дистрибутивов GNU/Linux и предоставляется многими хостинговыми компаниями. В процессе создания системы образовательных порталов с использованием имеющихся решений были выявлены следующие их недостатки:
1. Интенсивное использование СУБД и сервера приложений, ведущее к повышенной нагрузке на веб-сервер и к увеличению времени отклика. Использование имеющихся средств кэширования влечет за собой дополнительные затраты времени разработчика на описание правил кэширования — времени жизни записей кэша (что ведет к возможности получения пользователем устаревших данных) или зависимостей между записями кэша и источниками данных.
2. В качестве политики замещения записей кэша, с учетом ограниченности размера кэша, в основном используется алгоритм LRU (удаляется наиболее давно запрашиваемая запись). В этом алгоритме не используется информация о времени, затраченном на создание кэшируемого динамического объекта, а также отсутствует способность адаптироваться под изменяющийся характер рабочей нагрузки. Учет времени получения записи позволяет сохранять в кэше трудно вычислимую запись, что в итоге позволяет снизить нагрузку на вебсервер.
3. В механизмах создания внешнего представления сайтов не во всех рассмотренных разработках используется фрагментарное кэширование, а методы его использования приводят к необходимости создания дополнительного программного кода.
4. Отсутствуют механизмы быстрого создания административных интерфейсов для редактирования данных веб-приложения. Т.к. практически каждое веб-приложение имеет свою уникальную модель данных, такие средства необходимы для снижения времени разработки.
Таким образом, актуальность темы настоящей диссертации обусловлена необходимостью разработки архитектуры веб-приложений, учитывающей вышеперечисленные недостатки и включающей в себя методы снижения нагрузки на веб-систему за счет многоуровневого кэширования динамических данных.
Цель работы и задачи исследования. Целью диссертационной работы является разработка методов и средств построения и кэширования веб-приложений, обеспечивающих снижение нагрузки на веб-систему. Для достижения указанной цели в работе решаются следующие задачи:
• Обзор способов построения веб-приложений;
• Анализ методов кэширования в веб-приложениях;
• Разработка архитектуры веб-приложений, нацеленной на использование многоуровневого кэширования динамических данных;
• Разработка модели системы кэширования;
• Разработка адаптивного алгоритма политики замещения данных в кэше, учитывающей время получения динамических объектов (запросы к БД, фрагменты страниц);
• Разработка системы хранения данных на основе технологии объектно-реляционного отображения;
• Разработка системы создания специализированных интерфейсов для редактирования данных;
• Практическая реализация полученных результатов.
Методы исследования
Для решения поставленных задач использованы методы общей теории систем, теории множеств, теории систем массового обслуживания, сравнительного анализа, объектно-ориентированного анализа и проектирования
Научная новизна
Новыми являются следующие разработки и исследования автора:
1. Модель системы кэширования на базе теории массового обслуживания обеспечивающая возможность численно оценить снижение нагрузки на веб-сервер при использовании фрагментарного кэширования, по сравнению с полно страничным кэшированием.
2. Оригинальная архитектура веб-приложений, основанная на парадигме Модель-Вид-Контроллер, включающая в себя:
• Использование компонентного представления при создании пользовательского интерфейса, позволяющее неявно описывать взаимосвязь между информацией, получаемой из БД и динамическими фрагментами веб-страниц;
• Модель веб-приложения на базе технологии объектно-реляционного отображения, дающая возможность отслеживать изменения в БД для поддержания целостности записей кэша - фрагментов веб-страниц и результатов выборок из БД;
• Интегрированную систему многоуровневого кэширования динамических данных, использующую модифицированный адаптивный алгоритм политики замещения записей кэша, учитывающий время получения динамических данных, хранящихся в кэше;
• Систему создания специализированных интерфейсов для редактирования данных, хранящихся в системе на базе технологии объектно-реляционного отображения.
Таким образом, в диссертационной работе разработаны теоретические положения и решение задачи создания средств разработки веб-приложений и снижения нагрузки на веб-систему за счет кэширования динамических данных.
Научные положения, выносимые на защиту
1. Модель системы кэширования на базе теории массового обслуживания.
2. Модифицированный алгоритм адаптивного кэширования динамических данных в веб-приложениях, учитывающий время получения динамических данных, хранящихся в кэше.
3. Архитектура веб-приложений, основанная на интеграции компонентного представления и модели веб-приложения на базе технологии объектно-реляционного отображения, включающая с целью снижения нагрузки на веб-сервер многоуровневое кэширование динамических данных
Практическая ценность
Практическая реализация методов произведена при создании свободно распространяемой системы управления сайтом iPHPortal http://phportal.informika.ru, которая предназначена для создания сайтов различных типов, включая образовательные порталы и сайты дистанционного образования. Для реализации выбрано следующее, бесплатно распространяемое системное программное обеспечение с открытым исходным кодом:
• Веб-сервер Apache 1.3+;
• Модуль веб-сервера РНР 5+;
• Сервер баз данных MySQL версии 3.2+.
Использование бесплатно распространяемого системного программного обеспечения позволяет расширить круг организаций, которые могут использовать созданную систему управления сайтом, а использование программного обеспечения с открытым кодом обеспечивает большую информационную безопасность.
Система использована для реализации 7 официальных сайтов и порталов:
• Сайт Министерства Образования и Науки РФ http://www.mon.gov.ru:
• Сайт Федерального Агентства по Науке и Инновациям http://www.fasi.gov.ru;
• Корпоративный портал Федерального Агентства по Науке и Инновациям http://portaLfasi.gov.ru;
• Федеральный портал по информационным и телекоммуникационным технологиям в образовании http://www.ict.edu.ru;
• Федеральный портал по научной и инновационной деятельности http://sci-innov.ru;
• Система региональных хранилищ Единой Коллекции Цифровых образовательных Ресурсов http://school-collection.edu.ra;
• Система электронного хранилища новостной информации.
Апробация работы.
Основные положения диссертационной работы докладывались и обсуждались на научно-практических конференциях и семинарах, в том числе:
• XI Всероссийской научно-методической конференции "Телематика'2004" (г. Санкт-Петербург, 7-10 июня 2004 г.);
• Семинарах аспирантов и научных сотрудников ФГУ ГНИИ ИТТ "Информика" (Москва 2005 г., Москва 2006 г.);
• Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2005)" (Турция, Анталия, 15-22 мая 2005г.); и
• XII Всероссийской научно-методической конференции "Телематика'2005" (Санкт-Петербург, 6-9 июня 2005 г.);
• Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2006)" (Турция, Анталия, 19-26 мая 2006 г.);
• Научно-практической конференции "Инновации в условиях развития информационно-коммуникационных технологий (Сочи, 110 октября 2006 г.);
• Международной научной конференции "Информационные технологии и телекоммуникации в образовании и науке (IT&ES'2007)" (Турция, 18-25 мая 2007 г.);
• XIV Всероссийской научно-методической конференции "Телематика'2007" (Санкт-Петербург, 18-21 июня 2007 г.);
• Международном симпозиуме "Новые информационные технологии и менеджмент качества (NIT & MQ'2008)" (Турция, 16-23 мая 2008г.).
Публикации.
Основное содержание диссертационной работы было отражено автором в 10 печатных работах (в том числе 1 публикация в ведущем рецензируемом научном издании, рекомендованном ВАК, 1 публикация в сборнике научных статей, 7 публикаций в трудах научных конференций, 1 публикация в журнале).
Структура и объем диссертации.
Диссертация состоит из введения, четырех глав, заключения, приложений и списка литературы. Объем работы составляет 165 страниц. Работа содержит 62 рисунка, 15 таблиц, 2 приложения и список цитированной литературы из 118 наименований.
Заключение диссертация на тему "Исследование и разработка методов построения и кэширования веб-приложений"
Основные результаты диссертационной работы:
1. Рассмотрены методы построения веб-приложений, в первую очередь -с позиции разработчика. Сделан вывод о том, что для создания современных веб-приложений необходима комплексная архитектура, включающая в себя базу для создания веб-систем и систему кэширования для увеличения быстродействия динамических сайтов.
2. Проведен анализ методов кэширования веб-приложений. Разработана модель системы кэширования на базе теории массового обслуживания, показывающая, что разбиение страниц на фрагменты с различной интенсивностью обновления позволяет значительно снизить нагрузку на сервер.
3. Модифицирован алгоритм адаптивного кэширования динамических данных в веб-приложениях, учитывающий время получения динамических данных, хранящихся в кэше, и позволяющий снизить нагрузку на веб-сервер за счет удерживания в кэше записей с высоким временем получения.
4. Разработана архитектура веб-приложений, основанная на интеграции компонентного представления и модели веб-приложения на базе технологии объектно-реляционного отображения, включающая с целью снижения нагрузки на веб-сервер многоуровневое кэширование динамических данных.
3. На базе предложенной методики разработана система управления динамическим сайтом iPHPortal http://phportal.informika.ru. Система позиционируется как свободно распространяемая с открытым кодом. Система функционирует на платформе MS Windows или Unix с установленным системным программным обеспечением: Apache, РНР 5, MySQL. Система использована для реализации более 10 официальных сайтов и порталов федерального масштаба.
Резюмируя изложенное выше, можно констатировать, что представленные в настоящей работе методы построения и кэширования веб-приложений показали целесообразность и эффективность своего использования. Они удовлетворяют требованиям, которые были сформулированы при постановке задачи. Система управления контентом, созданная на базе этих методов, успешно применяется при создании различных сайтов, ориентированных в первую очередь на интеграцию информационных ресурсов сферы образования, и имеет все предпосылки для дальнейшего развития.
Заключение
Библиография Носов, Виктор Павлович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Авен И.О., Гурин Н.Н., Коган Я.А. Оценка качества и оптимизация вычислительных систем. М.: Наука, 1982.- 463с.
2. Антонов А.В. Системный анализ. Учебник для вузов. М.: Высшая школа, 2006,- 454с.
3. Быков М.Ю. Методы и средства разработки компонентного управления Web сайтом на основе динамической объектной модели: Диссертация на соискание ученой степени к.т.н. М., 2005.- 183с.
4. Валиков А. Технология XSLT. СПБ.: БХВ.2002.- 544с.
5. Вентцель Е. С., Овчаров JI. А. Теория вероятностей. М., 1969, 368 с.
6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования (пер. с англ.). СПб.: Питер.2001.- 368с.
7. Закас, Мак-Пик, Фосетт. Ajax для профессионалов. М.: Символ-Плюс, 2007.- 488с.
8. Запечинков С.В., Информационная безопасность открытых систем в 2-х томах. Том 1. Угрозы, уязвимости, атаки и подходы к защите. Учебник для вузов. М.: Горячая линия -Телеком, 2006.- 536с.
9. Интернет-порталы: содержание и технологии. Сборник научных статей. Выпуск 1. / Редкол.: А.Н. Тихонов (пред.) и др.; ГНИИ ИТТ "Информика". М.: Просвещение, 2003. 720с.
10. Интернет-порталы: содержание и технологии. Сборник научных статей. Выпуск 2. / Редкол.: А.Н. Тихонов (пред.) и др.; ГНИИ ИТТ "Информика". М.: Просвещение, 2004. 499с.
11. Интернет-порталы: содержание и технологии. Сборник научных статей. Выпуск 3. / Редкол.: А.Н. Тихонов (пред.) и др.; ФГУ ГНИИ ИТТ "Информика". М.: Просвещение, 2005. 590с.
12. Интернетско-русский разговорник http://slovari.yandex.ru/dictyinternety.
13. Клейнрок JI. Теория массового обслуживания. М.: Машиностроение, 1979.
14. Кришнамурти Б. , Рексфорд Дж. Web-протоколы. Теория и практика. HTTP/1.1, взаимодействие протоколов, кэширование, измерение трафика. М.: Бином, 2002 г.- 592с.
15. Кузнецов С. Д. Базы данных. Модели и языки. М.: Бином-Пресс, 2008.- 720с.
16. Кузнецов С.Д. Проектирование и разработка корпоративных информационных систем. Центр Информационных Технологий, 1998.
17. Ларман К. Применение UML и шаблонов проектирования. М.: Издательство Вильяме, 2001.- 485с.
18. Менаске Д., Алмейда В. Производительность Web-служб Анализ, оценка и планирование. СПб: ООО "ДиаСофтЮП", 2003. 480с.
19. Одинцов И.О. Профессиональное программирование. Системный подход. СПб.: БХВ, 2002.-512с.
20. Семенов В.А., Морозов С.В., Порох С.А. Стратегии объектно-реляционного отображения: систематизация и анализ на основе паттернов. Труды Института Системного Программирования РАН, 2004.
21. Таненбаум Э. Современные операционные системы. СПб: Питер, 2007.- 1040с.
22. Таха X. А. Введение в исследование операций. М.: Изд. Дом "Вильяме", 2001,- 910с.
23. Фаулер М. Архитектура корпоративных программных приложений. М.: Издательство Вильяме, 2006.- 540с.
24. Фаулер М. Рефакторинг. СПб: Символ, 2005.- 430с.
25. Флэнаган Д. JavaScript. Подробное руководство. 5-е издание. М.: Символ-Плюс, 2008.- 992с.
26. Хаггарти Р. Дискретная математика для программистов. М.: Техносфера, 2003.- 320с.
27. Холл. Сервлеты и Java Server Pages.Библиотека программиста. СПб.: Питер, 2001.- 496с.
28. Шлосснейгл Дж. Профессиональное программирование на РНР (пер. с англ.). М.: Изд. Дом "Вильяме", 2006.-624с.
29. Элиенс А. Принципы объектно-ориентированной разработки программ (пер. с англ.). М.: Изд. Дом "Вильяме", 2002.-496с.
30. Aguilar J. An Adaptive Coherence-Replacement Protocol for Web Proxy Cache Systems. 2004
31. Aho A.V., Denning P.J., Ullman J.D. Principles of Optimal Page Replacement. Journal of the ACM. -1971. Vol. 18, No. 1. -P. 80-93.
32. Akamai Technologies Inc. Akamai EdgeSuite. http://www.akamai.com/html/en/tc/core tech.html.
33. Ambler S.W. Mapping Objects to Relational Databases. Denver, 2000. -40 p.
34. Andersson M. , Cao J. , Kihl M. Performance Modeling of an Apache Web Server with Bursty Arrival Traffic. International Conference on Internet Computing (1С), 2003.
35. Apache Software Foundation. Apache HTTP Server ModRewrite. http://www.egoroff.spb.ru/portfolio/apache/modrewrite.html.
36. Apache Software Foundation. The Struts Web Application Framework. http://j akarta. apache .org/struts.
37. Apache Tapestry, http://tapestry.apache.org/.
38. Apache Web Server, http://www.apache.org/.
39. Arlitt M. ,Williamson C. Internet Web Servers: Workload Characterization and Performance Implications", IEEE/ACM Transactions on Networking, Vol. 5, No. 5, pp. 815-826, October 1997.
40. Barford P.,Crovella M. Generating Representative Web Workloads for Network and Server Performance Evaluation, Proc. 1998 ACM SIG-METRICS Int. Con/. Measurement and Modeling of Computer Systems, Madison, Wisconsin, June 22-26, 1998, pp. 151-160.
41. Belady L.A, A Study of Replacement Algorithms for Virtual-Storage Computer.- IBM Systems Journal. -1966. -Vol. 5, No. 2. -P. 78-101.
42. Bhide M., Deolasse P., Katker A., Panchgupte A., Ramamritham K., Shenoy P. Adaptive Push Pull: Disseminating Dynamic Web Data IEEE Trans. Computers, special issue on quality of service, 2002.
43. Bouchenak S., Mittal S. , Zwaenepoel W. Using Code Transformation for Consistent and Transparent Caching of Dynamic Web Content.
44. Bouras C., Konidaris A. Predictive Prefetching on the Web and its Potential Impact in the Wide Area World Wide Web: Internet and Web Information Systems, 7, 143-179, 2004.
45. Breslau L., Cao P., Fan L., Phillips G., Shenker S. Web Caching and Zipf-like Distributions: Evidence and Implications. In Proceedings of IEEE INFOCOM'99, New York, 1999.
46. Candan K. , Li W. , Luo Q. , Hsiung W. , Agrawal D. Enabling Dynamic Content Caching for Database-Driven Web Sites. In Proceedings of ACM SIGMOD 2001, Santa Barbara, California.
47. Candan K., Agrawal D., Li W., Po O. , Hsiung W. View Invalidation for Dynamic Content Caching in Multitiered Architectures. Proc. VLDB,2002.
48. Cao J., Andersson M., Nyberg C., Kihl M. Web server performance modeling using an M/G/1/K*PS queue. 10th International Conference on Telecommunications (ICT 2003.), 2003.
49. Cao P., Irani S. Greedydual-size: A cost-aware www proxy caching . algorithm, 2nd Web Caching Workshop, 1997.
50. Ceri S., Fraternali P. Designing data-intensive web applications. The Morgan Kaufmann Series in Data Management Systems, 2003, 575стр.
51. Challenger J., Dantzig P., Iyengar A. A Scalable System for Consistently Caching Dynamic Web Data.
52. Challenger J., Dantzig P., Iyengar A., Witting K. A fragment-based approach for efficiently creating dynamic web content. ACM Trans. Internet Technol., Vol. 5, No. 2. (May 2005), pp. 359-389.
53. Challenger J., Iyengar A., Witting К . A Publishing System for Efficiently Creating Dynamic Web Content.
54. Cho, J. and Garcia-Molina, H. 2000. The evolution of the web and implications for an incremental crawler. In Proceedings of the 26th International Conference on Very Large Databases.
55. Codd E. The relational model for database management. Addison-Wesley Longman Publishing, 1990. 567c.
56. Copeland G., McClain Matt.Web Caching With Dynamic Content.
57. Datta A., Dutta K., Thomas H., VanderMeer D., Ramamritham К. A Comparative Study of Alternative Middle Tier Caching Solutions to Support Dynamic Web Content Acceleration. In Proceedings of the 27th VLDB Conference, Roma, Italy, 2001.
58. Datta A., Dutta K., Thomas H., VanderMeer D., Ramamritham K. Accelerating dynamic web content generation. IEEE Internet Computing 6(5):26-35, 2002.
59. Davison B. The design and evaluation of web prefetching and caching techniques. Dissertation, New Brunswick, New Jersey, 2002.
60. Dlapka R., Rumetshofer H. ,Wagner R. Performance-optimized adaptation of personalized Web fragments.
61. Edge Side Includes, http://www.esi.org/.
62. Effelsberg W., Haerder T. Principles of Database Buffer Management.-ACM Trans, on Database Systems. -1984. -Vol. 9, No. 4. -P. 560-595.
63. ESI Language Specification 1.0, http://www.w3.org/TR/esi-lang.
64. Extensible Markup Language (XML) 1.0 (Fourth Edition). http://www.w3.org/TR/2006/REC-xml-20060816/.
65. Fontaine A., Truong A., Manley T. A Survey of Strategies for Object Persistence.
66. Fowler M. Inversion of Control Containers and the Dependency Injection pattern, 2004.
67. Henderson C. Building Scalable Web Sites.O'Reilly, 2006, 348c.
68. HyperText Transfer Protocol протокол обмена WWW - серверов. http://www.w3.org/Protocols/.
69. Jain R. The Art of Computer Systems Performance Analysis. John Wiley & Sons, 1991.70. Java http://java.sun.com.
70. Java Server Faces http://java.sun.com/javaee/javaserverfaces/.
71. Java Server Pages http://java.sun.com/products/jsp/.
72. Jiang S. CLOCK-Pro: An effective improvement of the clock replacement (2005), In Proceedings of USENIX Annual Technical Conference
73. Katsaros D. , Manolopoulos Y. Cache Management for Web-Powered Databases.
74. Keller W. Persistence Options for Object-Oriented Programs. http://www.objectarchitects.de
75. Labrinidis A. , Roussopoulos,N. Web View materialization. In: Proc. of the ACM SIGMOD Intl. Conf. on Management of Data, Dallas, Texas, USA, May 2000, pp. 367-378.
76. Labrinidis A., Roussopoulos N.Update Propagation Strategies for Improving the Quality of Data on theWeb. Department of Computer Science and Institute for Systems Research.
77. Larson P., Goldstein J., Guo H. MTCache: Mid-tier database caching for SQL server. Data Engineering, 27(2):27-33, 2004.
78. Li W., Hsuing W, Kalashnikov D., Sion R., Po O., Agrawal D., Candan K. Issues and evaluations of caching solutions for Web application acceleration. In: Proc. 28th Int. Conf. on Very Large Data Bases (VLDB), Hong Kong, China, 2002.
79. Li Y., Lu K, Performance Issues of a Web Database, In Proc. of 11 International Workshop on Database and Expert Systems Applications 4-8 September,2000, Greenwich, London, UK
80. Limb Project http://limb-project.com/.
81. Liu X.Modeling 3-Tiered Web Applications.University of Illinois, 2005
82. Lyul S., Bahn H.Efficient Cache Replacement for Non-uniform Objects in Web Caches.
83. Mahdavi M., Shepherd J., Benatallah B. A Collaborative Approach for Caching Dynamic Data in PortaLApplications. ADC 2004: 181-188
84. Manjhi A. , Gibbon P. Invalidation Clues for Database Scalability Services. Intel Research, Pittsburgh, 2005.
85. Manjhi A. Increasing the Scalability of Dynamic Web Applications, 2008.
86. McClanahan C. The State of Web Frameworks. JAX, 2006.
87. Microsoft ASP.NET. http://www.asp.net/.
88. Microsoft SQL Server, http://www.microsoft.com/sqlserver/.
89. Modha S. ARC: A self-tuning, low overhead replacement cache. USENIX File & Storage Technologies Conference (FAST), 2003.
90. Modha S. CAR: CLOCK with adaptive replacement. IBM Research, 2004
91. Mohan C. Caching Technologies for Web Applications.
92. MySQL AB. Mysql. http://www.mysql.com/.
93. MySQL. How the query cache operates. http://dev.mysql.eom/doc/refman/5.0/en/query-cache-how.html, 2006.
94. Nanopoulos A., Katsaros D. , Manolopoulos Y. A Data Mining Algorithm for Generalized Web Prefetching, IEEE Transactions on Knowledge and Data Engineering, vol. 15, no. 5, 2003
95. Nilsson J. Server-Side Caching or Buy Speed with Cache. http://www.vbxml.com/coiiference/wrox/2000vegas/text/jimmycache.pd f.
96. Oracle Corporation. Oracle9iAS Web Cache. http://otn.oracle.com/products/ias/webcache/content.html.
97. Oracle DB. http://www.oracle.com/database/.
98. Oracle9iAS. http://www.oracle.com/appserver/.
99. Parr T. Enforcing Strict Model View Separation in Template Engines. Proceedings of the 13th international conference on World Wide Web, 2004, c. 224 233 .
100. ParzychD. Caching Behavior of Web Browsers, 2004.
101. PHP Group. Php. http://www.php.net/.
102. Rabinovich M., Spatscheck O. Web Caching and Replication. Addison Wesley, 2003.
103. Ramaswamy L., Iyengar A. Automatic Detection of Fragments in Dynamically Generated Web Pages.
104. Ruby on Rails, http://rubyonrails.org/.
105. Symfony Framework, http://www.symfony-project.org/.
106. Tamer I, Cheng-zhong X. Prefetching to Tolerate WWW Latency in Proc. of the 20 th International Conference on Distributed Computing Systems Neural Nets based Predictive.
107. Vakali A. LRU-based algorithms for Web cache replacement. First International Conf. on Electronic Commerce and Web Technologies, Lecture Notes in Computer Science, Springer: New York, 2000, pp. 409418.
108. Venkata N. Padmanabhan. The Content and Access Dynamics of a Busy Web Site: Findings and Implications. Proceedings of ACM SIGCOMM 2000.
109. Web Application Component Toolkit http://www.phpwact.org/
110. Wessels D. Web Caching. O'Reilly & Associates, Inc., Sebastopol, CA 95472, 2001.
111. Wissen M.,Ziegler J.A Methodology for the Component-Based Development of Web Applications. In Proceedings of 10th International Conference on Human Computer Interaction, 2003.
112. Wooster R., Abrams M. Proxy caching that estimates page load delays. In Proceedings of the 6th InternationalWorldWideWeb Conference. 1997.
113. XSL Transformations (XSLT) Version 1.0. http://www.w3.org/TR/xslt
114. Yagoub K., Florescu D., Valduriez P., Issarny V. Caching strategies for dataintensive Web sites.- In: Proc. of the Int. Conf. on Very Large Data Bases (VLDB), Cairo, Egypt, 10-14 September, 2000.
115. Yaldiz S. Evaluation of Web Application Development Frameworks and Object-Relational Mappers: A Case Study.- Technical university Hamburg, 2004. 94c.
116. Zend Framework, http://framework.zend.com.118. Zend, http://zend.com.
-
Похожие работы
- Метод расчета и оптимизации параметров системы кэширования Интернет-трафика
- Упреждающее кэширование в подсистеме внешней памяти высокопроизводительных распределенных вычислительных систем
- Разработка методов и алгоритмов интеллектуального кэширования информационных объектов в системах управления промышленными предприятиями
- Оптимизация технической доступности сетевых ресурсов программными средствами
- Повышение эффективности методов и алгоритмов разработки, взаимодействия и хранения веб-приложений
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность