Авторефераты по всем темам  >>  Авторефераты по техническим специальностям  

         На правах рукописи

Токарчук Андрей Михайлович

Повышение эффективности методов и алгоритмов разработки, взаимодействия и хранения веб-приложений

05.13.17 - Теоретические основы информатики

АВТОРЕФЕРАТ

диссертации на соискание ученой степени

кандидата технических наук

Москва - 2012

Работа выполнена в Федеральном государственном бюджетном образовательном учреждении высшего профессионального образования Московский государственный университет путей сообщения (МГУПС (МИИТ)) на кафедре Вычислительные системы и сети.

Научный руководитель:         доктор технических наук, профессор

                        Барский Аркадий Бенционович

                       

Официальные оппоненты: Ляпунцова Елена Вячеславовна - доктор

технических наук, профессор, МГУПС (МИИТ), профессор кафедры Математическое обеспечение автоматизированных систем управления

Терехов Алексей Андреевич кандидат технических наук, Рязанский государственный радиотехнический университет (ФГБОУ ВПО РГРТУ), ассистент кафедры Вычислительная и прикладная математика

Ведущая организация - Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых (ВГУ).

Защита диссертации состоится л03 октября 2012 г. в 13 час. 00 мин. на заседании диссертационного совета Д218.005.04 в Московском государственном университете путей сообщения (МИИТ) по адресу: 127994, ГСП-4, г. Москва, ул. Образцова, 9, стр. 9, ауд. 2505.

С диссертацией можно ознакомиться в библиотеке МИИТа.

Автореферат разослан  л03 сентября  2012 года.

Ученый секретарь

диссертационного совета Д218.005.04,

д.т.н., доцент                                 Сидоренко Валентина Геннадьевна

Общая характеристика работы

Актуальность темы: В последнее время в связи со стремительным развитием информационных систем и сетей пакетной коммутации возрастает роль информационных технологий в жизни общества, информатизации и создания глобального информационного пространства (сети Интернет). На данный момент сеть Интернет представляет собой совокупность веб-приложений (ВП). ВП - это клиент-серверное приложение, в котором клиентом выступает браузер (программное средство (ПС) для просмотра веб-сайтов) или другое ВП, а обслуживающим сервером - веб-сервер. В апреле 2012 года количество доменных имён индивидуальных пользователей и компаний по данным аналитической компании Netcraft составляет уже 676а919а707.

       Самой распространённой платформой для разработки ВП на данный момент является LAMP - комплекс технологий в составе: операционной системы (ОС) Linux; веб-сервера Apache; реляционной базы данных (БД) MySQL и языка программирования (ЯП) PHP. PHP, входящий в состав платформы, обладает низким порогом вхождения (легкостью первоначального освоения), что также увеличивает распространённость платформы, однако именно это является причиной создания программного кода, не удовлетворяющего требованиям качества (согласно ISO 9126/ГОСТ 28195). Вместе с тем на данной платформе разрабатываются многокомпонентные программные решения с участием многих десятков разработчиков. ВП начинают оперировать огромными объемами данных, в том числе и персональными данными (такими как номера кредитных карт), что предъявляет высокие требования к программному коду (п.1.3 стандарта ISO 19759:2005/SWEEBOK). ВП развиваются чрезвычайно быстрыми темпами. В то же время, большая длительность разработки, согласования и утверждения международных и национальных стандартов приводит к их консерватизму, а также к хроническому отставанию требований и рекомендаций этих документов от современной практики и технологии создания сложных систем. Проблемам, связанным с созданием методов разработки ПС, их унификации и стандартизации, были посвящены работы В. В. Липаева, И. Катца, М. Фаулера, Э. Таненбаума, М. Стеена, Л. Торвальдса, Э. Д. Брауде, А.К.Кэя, В.Н. Агафонова, Г. Буча, Э. Йордана, Н.П. Бусленко, Е.Ф. Кодда, Б. Страуструпа, В. Ройса  и многих других. Однако они не в полной мере учитывают специфику разработки на платформе LAMP с использованием свободных интернет-технологий. В этих условиях создание методов разработки ВП является актуальной задачей.

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

  1. Формулирование критериев качества веб-приложений, и проведение критического анализа существующих методов разработки, хранения и взаимодействия веб-приложений.
  2. Постановка и решение задачи оптимизации процесса разработки веб-приложений.
  3. Синтез эффективной архитектуры и алгоритмов функционирования веб-приложений. Определение уровней абстракции в ВП, их взаимодействия и жизненного цикла.
  4. Разработка метода взаимного объектно-реляционного преобразования (ОРП) для организации взаимодействия ВП с БД и хранения данных, а также шаблона проектирования на его основе.
  5. Решения практических задач разработки ВП на базе предлагаемых методов,  в том числе методов взаимодействия ВП  друг с другом и пользователями. Определение конкретных путей повышения эффективности разработки, хранения и взаимодействия веб-приложений. Реализация новой архитектуры, алгоритмов функционирования и ОРП-метода в конкретном веб-приложении.

Объектом исследований являются веб-приложения на платформе LAMP.

Предметом исследований являются методы разработки ВП.

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

Научная новизна:

  1. Проведён критический анализ существующих методов разработки, хранения и взаимодействия веб-приложений.
  2. С помощью применения СКР-функции (среднестатистические колебания работоспособности) к определению дневного фокус-фактора (КПД) разработчика автор вычислил значение фокус-фактора (FFD)  для новых команд, равное 0.72640625. Это значение может использоваться при планировании итерации новой команды, или индивидуальном планировании для нового члена команды разработки. Автором поставлена  и решена оптимизационная задача по определению такого распределения задач по программистам, которое приведёт к максимизации показателя производительности (P разр) всей команды.
  3. Разработаны новая архитектура и алгоритмы функционирования ВП. Определены уровни абстракции ВП и их жизненный цикл. Метрический анализ разработанного ВП показал, что значение целевой функции метрик на 13% превосходит максимальное значение этой функции для других ВП. Применение предлагаемых методов позволяет увеличить количество повторно используемого кода на 16%. Как следствие, могут быть сокращены объем работ, бюджет, а также увеличена скорость разработки ВП. Качественные характеристики ВП (по ISO/IEC 9126) по данным экспертного анализа увеличиваются на 19% по сравнению с максимальным значением среди других ВП.
  4. Создан новый метод объектно-реляционного преобразования Активная модель, позволяющий взаимно преобразовывать объекты ЯП PHP в таблицы сервера баз данных. По результатам проведённых тестов можно заключить, что скорость работы на тестовой выборке увеличилась на 19 - 27% для объектовозвращающего преобразования и на 16 - 25% для векторовозвращающего преобразования. Объем занимаемой памяти сократился на 16 - 24% для объектовозвращающего преобразования, и на 18 - 32% для векторовозвращающего преобразования по сравнению с системой Doctrine.
  5. Разработаны методы решения практических задач синтеза ВП: методы загрузки ВП, методика работы со сторонними библиотеками, метод разграничения доступа к ВП, интернационализации данных и интерфейса, методика организации кэширования, методика аутентификации пользователя и взаимодействия со сторонними ВП. В результате тестирования было определено, что применение предлагаемых методов позволяет увеличить скорость обработки запросов ВП от 7% (при λ = 15 и 35) до 35% (при λ = 5).
  6. Предлагаемая архитектура, алгоритмы функционирования ВП и ОРП-метод реализованы при создании нескольких ВП: системы публикации контента в сфере образования, визуального конструктора сайтов, системы управления сайтом, а также ВП, реализующего информационные процессы и структуры модели взаимодействия потребителя и производителя  товаров и услуг (модель customer-supplier).

Практическая значимость. Сформулирован комплекс рекомендаций по разработке ВП, а также практических методик, позволяющих рационализировать информационную структуру ВП, его внутренних и внешних  информационных процессов для унификации программного кода и улучшения качественных показателей (ISO 9126/ГОСТ 28195-89), а именно понятности, изучаемости, изменяемости и удобства для анализа.

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

Апробация работы. Основные результаты диссертации докладывались и обсуждались на ежегодных научных конференциях МИИТа (Неделя науки Наука МИИТа - транспорту в 2008, 2010, 2011 гг.); на 12-м национальном форуме информационной безопасности Информационная безопасность России в условиях глобального информационного общества (2010 г.); на 7-й международной научно-практической конференции Ключевые вопросы в современной науке (2011г.); 8-й международной научно-практической конференции Стратегические вопросы мировой науки (2012г.); научно-технических семинарах и заседаниях кафедры Вычислительные системы и сети МИИТа в 2009-2011гг., а также на научных семинарах кафедры МО АСУ МИИТа в 2011г.

Реализация результатов работы. Методика разработки ВП и система ОРП использованы при реализации ВП -  системы публикации контента в сфере образования в Научно исследовательском институте инновационных стратегий развития общего образования (НИИ ИСРОО), ВП, моделирующего информационные процессы и структуры модели взаимодействия потребителя и производителя товаров и услуг в ООО Рубэй, а также при подготовке курсов Информатика и Компьютерная графика кафедры ВСС МИИТа.  Результаты внедрения подтверждены соответствующими актами.

Публикации. По теме диссертации опубликованы 9 работ, из них 4 работы - в ведущих изданиях из перечня, определенного ВАК России для опубликования основных результатов диссертаций.

Структура и объем диссертационной работы. Диссертация состоит из введения, списка условных сокращений, четырех глав, заключения, списка цитируемой литературы (82 источника).  Работа изложена на 152 страницах машинописного текста, включая 64 рисунка, 15 таблиц и 142 формулы, 5 приложений на 7 страницах.

Основные научные положения, выносимые на защиту:

  1. Оптимизация процесса разработки веб-приложений.
  2. Архитектура и алгоритмы функционирования ВП. Модель уровней абстракции в ВП, алгоритмы их взаимодействия и жизненный цикл.
  3. Метод взаимного ОРП Активная модель для организации взаимодействия ВП с БД и шаблон проектирования на его основе.
  4. Методы решения практических задач разработки ВП,  в том числе методик взаимодействия ВП друг с другом и пользователями. Реализация предлагаемой архитектуры, алгоритмов функционирования и ОРП-метода в конкретных ВП.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность темы диссертации, её научная новизна, сформулированы цели работы, задачи и практическая значимость исследования.

В первой главе диссертационной работы подробно формулируется задача создания методов разработки ВП (рис. 1).

Рисунок 1 Методы разработки ВП

Автор рассмотрел существующие методы разработки ВП и наиболее распространённую архитектуру - Модель-Вид-Контроллер (МВК), созданную в 1979г. Тригве Реенскаугом. Исходный код ПС, разрабатываемой по данной методике, делится на три части: классы-контроллеры, реализующие взаимодействие с пользователем; классы-модели, представляющие знания и методы работы с ними, и классы-представления, реализующие пользовательский интерфейс. Однако связи между частями ПС были описаны без конкретизации. Кроме того на момент создания архитектуры такие ПС, как ВП отсутствовали в принципе. В связи с этим распространённым явлением стала неверная трактовка архитектуры, что вкупе с низким порогом вхождения привело к появлению большого количества неунифицированного программного кода, не удовлетворяющего требованиям качества. Проблема состоит в отсутствии чётких рекомендаций по разработке файлов исходного кода ВП-уровня контроллеров (К-уровня), моделей (М-уровня) и видов (В-уровня) и спецификации их взаимосвязей. В первой главе автором создана классификация ВП относительно МВК архитектуры, описаны недостатки существующих трактовок и реализаций, формализована и решена задача оптимизации процесса разработки веб-приложений.

С помощью применения СКР-функции (среднестатистические колебания работоспособности) к определению дневного фокус-фактора (КПД) разработчика автор вычислил значение фокус-фактора (FFD)  для новых команд, равное 0.72640625. Это значение может использоваться при планировании итерации новой команды, или индивидуальном планировании для нового члена команды разработки. Автором решена оптимизационная задача по определению такого распределения задач по программистам, которое приведёт к максимизации показателя производительности (Pразр) всей команды.

Во второй главе диссертационной работы автором предложена новая модель архитектуры ВП (рис. 2), основанная на архитектуре с выделенной конфигурацией и двухэтапной загрузкой исходного кода. В созданной архитектуре проведена декомпозиция всех компонентов МВК ПС (моделей, видов, контроллеров). Уровень контроллеров (К) разделяется на три

Рисунок 2 Предлагаемая модель архитектуры ВП

подуровня: собственно К-подуровень, на котором остаются тонкие контроллеры; С-подуровень, в котором помещаются классы-сервисы; СА-подуровень, в котором располагаются так называемые сервис-адаптеры. М-уровень разделяется на подуровни концептуальных (МК) и логических (МЛ) моделей. В-уровень разделяется на подуровни шаблонов (ВШ), непосредственных видов (ВН), циклических (ВЦ) и частичных (ВЧ) представлений. Исходный код, реализующий инициализацию минимально необходимого окружения, автор предлагает отделить в предзагрузчик (З1), а реализующий полную инициализацию окружения с помощью конфигурации ВП (Конф.) - в основной загрузчик (З2).

Создание ВП включает разработчика в процесс абстрагирования от низкоуровневых структур в сторону более высокоуровневых с помощью определения  их существенных деталей. Тем самым формируются различные уровни восприятия. Основная проблема создания ПС в общем и ВП, в частности, состоит в том, что интерпретатор ЯП  выполняет программный код последовательно (для однопоточных ВП) и поэтому самым простым способом организации исходного кода является  его последовательная запись разработчиком. При этом для уменьшения трудоёмкости и увеличения количества повторно используемого кода применение абстракций и декомпозиция исходного кода на уровни являются неизбежными. В этих условиях возникает необходимость использования на ранних этапах разработки такой модели архитектуры (рис. 3), которая позволит безболезненно расширять её дедуктивно (реализуя частные случаи абстракции с помощью нисходящего программирования) и индуктивно (создавая новые абстракции). Разработанная автором архитектура предполагает использование ряда рекомендаций в соответствии с существующим принципом примата соглашения над конфигурацией.

Рисунок 3 Уровни абстракции в ВП

В строгой форме он выражается так. Аспект программной системы нуждается в конфигурации тогда и только тогда, когда этот аспект не удовлетворяет некоторой спецификации. Основным преимуществом предлагаемой автором модели архитектуры является минимизация количества таких аспектов, достигаемая за счёт унификации интерфейсов уровней абстракции и широкого использования шаблонов проектирования (design patterns).

Для анализа существующего ВП и визуализации его характеристик автором предложен новый метод графического анализа ВП.

К-уровень ВП состоит из функций-действий классов-контроллеров модулей. Для визуализации (рис. 4) К-уровня предлагается следующий алгоритм:

1. Проводится кодирование названий модулей посредством присвоения каждому модулю последовательного уникального числового идентификатора.

2. Проводится циклическая обработка всех контроллеров в модуле i.

Рисунок 4 МВК-график ВП

Осуществляется кодирование имён контроллеров аналогично п.1. В случае нахождения контроллера с именем, код которого уже известен, ему в соответствие ставится найденный код (без генерации нового).

3. Проводится циклическая обработка всех функций-действий (публичных функций) класса контроллера с кодированием аналогично п.1, 2.

4. Составляется ассоциативный массив глубины 3, в который записывается соответствие кодов модулей, контроллеров и их действий.

5. По полученным данным строится трехмерный точечный график (рис.4).

На графике по оси абсцисс откладываются коды модулей, по оси ординат - коды контроллеров, а по оси аппликат - коды действий. Каждому действию контроллера соответствует точка на графике. Данный график позволяет провести визуальный анализ ВП. Анализ может производиться на основании ряда определений и замечаний.

Опр.1. ВП на МВК и производной от неё архитектуре называется такое ВП, которое характеризуется распределением функций-действий по модулям и классам-контроллерам, а также тремя параметрами:

  • |Mu| - мощностью множества уникальных имен модулей, которое соответствует общему числу модулей, так как название модуля должно быть уникальным;
  • |Ku| - мощностью множества уникальных имен классов-контроллеров;
  • |Au| - мощностью множества уникальных имен функций-действий.

Опр.2. Унификацией имён действий разных контроллеров называется процесс уменьшения мощности множества |Au|. Ряды точек вдоль оси ординат свидетельствуют об унификации имён действий среди разных контроллеров одного модуля. Это косвенно свидетельствует о стремлении разработчика сократить разнообразие методов доступа, т.е. о формировании системы команд (прикладного языка) К-уровня.

Опр.3. Ядром МВК-структуры ВП будет называться скопление точек на графике. Такая ситуация свидетельствует о необходимости улучшения программного кода ВП (рефакторинге), для чего следует применять методы вынесение функций, фасад и др.

Опр.4. Мощностью множества уникальных контроллеров (|Ku|) является максимальное значение кода контроллера или самой удалённой точки по оси ординат. Большое значение |Ku| свидетельствует о принадлежности ВП к REST или ресурсному типу.

Опр.5. Унификацией имён контроллеров называется уменьшение мощности множества |Ku|. Вертикальные ряды точек вдоль оси аппликат свидетельствуют об унификации имён контроллеров. Как следствие, ВП имеет некоторое множество названий ресурсов, одинаковых в разных модулях, что свидетельствует о его принадлежности к REST-типу.

Опр.6. Мощностью множества уникальных действий (|Au|) является максимальное значение кода действия или самой удалённой точки по оси аппликат. Большое значение |Au| свидетельствует о низкой степени унификации К-уровня ВП.

В результате применения метода анализа графика получены новые метрики ВП |Au|, |Mu|, |Cu|, а также проведены определения структур МВК-графика и их смысловая нагрузка. Данные результаты могут использоваться при интерпретации МВК-графика существующих ВП и при разработке новых. Автором также предложен метод модульного анализа и классификация модулей МВК ВП (таблица 1). Алгоритм модульного анализа состоит в получении объема программного кода, занимаемого каждым из уровней ВП в соответствующем модуле и последующего построения графиков (рис. 5) распределения кода. Возможны варианты абсолютного и относительного распределения программного кода.

В диссертационной работе формализована задача модельной трансформации для сопряжения реляционной базы данных и ВП. На основе формальных определений моделей сформулированы определения типов схем отношений: TC - обычная (таблица 2), TP - схема дополнительных полей (таблица 3), TF - схема флагов (таблица 4) и TFT - схема флагов (таблица 5) c темпоральной валидацией.

Рисунок 5 График относительного распределения программного кода

Опр.8. ТР-схемой называется схема отношения, в которой значения домена DR2 отражаются в названия атрибутов AOi, а значения домена DR3 отражаются в значения атрибутов AOi. Таблица дополнительных полей состоит из трех столбцов: A1 Ч первичный ключ, A2 Ч имя свойства (название виртуальной колонки), A3 Ч значение виртуальной колонки (таблица 3).

Опр.9. TF схемой называется схема отношения, в которой значения домена DR2 отображаются  в названия атрибутов AOi а значениям атрибутов AOi соответствует логическая константа листина (true) при наличии названия атрибута объектной модели (DO2) в множестве DR2. В случае его отсутствия значению атрибута присваивается значение логической константы ложь  (false) (таблица 4). Домен объектной модели определяется в её описании.

Опр.10. ТFT схема аналогична схеме TF, но значения атрибутов AOi соответствует булева константа листина (true) при наличии названия атрибута объектной модели (DO2) в множестве DR2 и A3 now() A4, где now() - текущее время на момент начала ОР-преобразования. В случае его отсутствия значению атрибута присваивается значение булевой константы ложь (false) (таблица 5). Домен объектной модели определяется в её описании.

Таблица 1. Типы модулей и их признаки

Тип модуля

№ на рис.5

Признаки модуля данного типа.

В-модуль

1,2,9

Преобладает программный код В-уровня: формы, шаблоны и виды.

М-модуль

3

Преобладает программный код моделей и операции с ними.

ВК-модуль

6,10

Преобладает программный код В- и К-уровня. Модуль реализует пользовательский интерфейс.

CK-модуль

7

Преобладает программный код сервисов и контроллеров. Модуль в основном содержит логику предметной области.

С-модуль

8

Модуль содержит в основном программный код сервисов, разделяемых другими модулями ВП.

НК-модуль

4,5

Неклассифицируемый модуль. Нет явного преобладания программного кода определённого уровня.

Таблица 2. ТС схема отношения

A1

A2

A3

A4

and77

Andrey

my@mail.ru

222333444

ivan22

Ivan

ivan@mail.ru

11223344

Таблица 3. ТР схема отношения

A1

A2

A3

and77

name

Andrey

and77

email

my@mail.ru

Таблица 4. TF схема отношения

A1

A2

andy77

active

Таблица 5. TFT схема отношения

A1

A2

A3

A4

and77

active

11111

33333

Пусть TSQL - множество базовых типов данных БД, а TPHP - множество базовых типов данных ВП, причем | TPHP | < | TSQL |. В преобразовании не нуждаются типы данных, состоящие в обоих множествах, а именно: integer, char, float. Остальные типы данных нуждаются в преобразовании:

,

(1)

где ТП - множество типов данных, нуждающихся в преобразовании (отображении).

Отображением TSQL  на TPHP является операция применения функции прямого отображения fОТОБР над множеством TSQL.

,

(2)

.

(3)

Функция fОТОБР определяет множество упорядоченных пар соответствия типов данных языка SQL и PHP. Аналогичным образом определяется функция обратного отражения fТОТОБР типов данных множества TPHP во множество TSQL.

Пусть существуют имена типов данных (n 0), необязательно все различные. Результат сопоставления имени атрибута (название столбца) Ti с типом данных  Ai называется атрибутом, т.е. атрибут - это пара (имя, тип) данных. Множество атрибутов определяет мета-данные отношения (таблицы) базы данных M и является областью определения для функции прямого отображения. Мета-данные отношения определены в структуре БД, а функция отражения - в программном коде.

Как только определены операции преобразования типов данных, появляется возможность определить операции преобразования множеств. Разработанная автором система объектно-реляционного отражения преобразует множество кортежей (записей, строк) данных, составляющих совокупность значений атрибутов, в такую форму, с которой могут взаимодействовать функции ЯП PHP. В разработанной методике (и ОРП системе Активная модель) множество кортежей отображается на экземпляр класса. Объект класса Активная модель представляет собой совокупность отношения, полученного в результате операции естественного соединения, применённой к множествам кортежей (обязательно по одному на каждое отношение), и набора функций (поведения) над совокупностью отношений, наследуемого от программного класса. Естественное соединение  -  операция NATURAL JOIN языка SQL, возвращающая отношение, содержащие все возможные кортежи (К), которые представляют собой комбинации двух (и более) кортежей, принадлежащих двум (и более) заданным отношениям, при условии, что в комбинируемых кортежах присутствуют одинаковые значения в одном (или нескольких) общих для исходных отношений атрибутах (причем эти общие значения появляются в результирующем кортеже ровно один).

Пусть, a - объект класса Активная модель, тогда:

,

(4)

где  а - объект класса Активная модель, n - число отношений, входящих в модель (n 1), MОТНОШЕНИЯ - множество мета-данных отношений, A - множество атрибутов отношений, B - набор функций над объектами класса.

огическая модель данных МЛ определяется следующим образом:

,

(5)

где - это множество декларативных описаний схем отношений, входящих в модель; - множество связей с другими отношениями. Таким образом всё множество связей делится на связи отношений внутри модели и вне её.

Основное отличие методики Активная модель от других методик в том, что n (количество отношений, используемых для отображения) может быть больше 1), тогда как для существующих методик объектно-реляционного отражения на платформе LAMP (имеются в виду методики Doctrine, Propel, Yii Active Record) n = 1. Из этого следует, что реализация модели данных, подобной Активной модели, потребует создания n моделей в них. Соответственно возрастет расход памяти, необходимой для хранения моделей данных за счёт увеличения числа экземпляров классов.

По результатам проведённых тестов можно заключить, что скорость работы на тестовой выборке при использовании предлагаемой автором ОРП-системы увеличилась на 19 - 27% для объектовозвращающего преобразования и на 16 - 25% для векторовозвращающего преобразования. Объем занимаемой памяти сократился на 16 - 24% для объектовозвращающего преобразования, и на 18 - 32% для векторовозвращающего преобразования по сравнению с системой Doctrine.

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

В диссертационной работе автором предлагается новая методика инвалидации с помощью автоматического вытеснения и версионности отношений (таблиц). Она состоит в формализации зависимости ключа элемента КЭШа от версий отношений, информация которых входит в его значение. Версия запроса к БД (Q), рассчитывается на основе множества отношений (T), от которых он зависит:

(6)

где V(Q) - функция получения версии запроса, а V(ti) - функция получения версии отношения. В качестве значения версии данных можно использовать время последнего изменения. На платформе LAMP в БД MySQL механизм хранения InnoDB не позволяет получить время последней записи в таблицу, поэтому необходимо использовать возможности триггеров БД. В БД создается специальная таблица versions, состоящая из двух столбцов (table_name, version). В кортежах отношения будут содержаться версии других отношений. Отношение versions модифицируют триггеры других отношений, само же отношение versions триггеров не имеет, так как это привело бы к бесконечному циклу обновления отношения. При изменении данных автоматически меняется версия и резко сокращается количество операций чтения по данному ключу. По истечении, равного интервалу включения периодической операции очистки КЭШа (garbage collection),  элемент КЭШа удаляется из памяти.

В третьей главе также описаны и другие практические методики, направленные на повышение производительности разработчика путём сокращения объема разрабатываемого объема исходного кода: методика организации загрузки ВП; методика работы со сторонними библиотеками; методика аутентификация пользователя брокер-провайдер, интернационализации данных и интерфейса, а также методика интеграции со сторонними ВП.

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

Метрический анализ позволил увидеть, что показатель повторно используемого кода на 16% превосходит аналогичную метрику других ВП. Это позволяет сократить объем работ, бюджет и увеличить скорость разработки ВП.

Рисунок 6 Ц График значений целевой функции

Экспертный анализ показал, что использование методов, предлагаемых в данной диссертации, способствует увеличению качественных характеристик ВП (по ISO/IEC 9126) на 19% по сравнению с ВП pimcore.  Максимальная оценка качества ВП соответствует ЭТП ВП (рис.6), разработанного по предлагаемым в данной работе методам.

Рисунок 7 Ц Зависимость скорости обработки запросов различных ВП от плотности потока запросов

В результате тестирования было определено, что предлагаемые в данной диссертации методы позволяют увеличить скорость обработки запросов ВП от 7% (при λ = 15 и 35) до 28% (при λ = 5).

В Заключении приведены следующие основные результаты:

1. Проведён сравнительный анализ существующих архитектур ВП и их классификация. Осуществлён структурный синтез новой архитектуры и алгоритмов функционирования ВП. Определены уровни абстракции в ВП, их жизненный цикл  и взаимодействия.

2. Разработан новый метод взаимного объектно-реляционного преобразования Активная модель для организации взаимодействия ВП с БД и хранения данных, а также шаблона проектирования на его основе. По результатам проведённых тестов можно заключить, что скорость работы на тестовой выборке увеличилась на 19 - 27% для объектовозвращающего преобразования и на 16 - 25% для векторовозвращающего преобразования. Объем занимаемой памяти сократился на 16 - 24% для объектовозвращающего преобразования, и на 18 - 32% для векторовозвращающего преобразования по сравнению с системой Doctrine.

3. Созданы методы повышающие эффективность решения практических задач разработки ВП: методы загрузки и конфигурирования, управление ресурсами, методы работы со сторонними библиотеками, интернационализации данных и интерфейса ВП, организации кэширования и методы аутентификации пользователя.

4. Предлагаемые более эффективные методы реализованы в конкретных ВП: модели электронной торговой площадки, конструктора сайтов, интернет-магазина и системы управления содержимым.

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

ОСНОВНЫЕ ПОЛОЖЕНИЯ ДИССЕРТАЦИИ ОПУБЛИКОВАНЫ

В СЛЕДУЮЩИХ РАБОТАХ:

Публикации в изданиях из перечня ВАК

  1. Токарчук А.М. Разработка паттерна ActiveModel для программирования интернет-приложения методом объектно-реляционного отражения // Информационные технологии, 2010, №9. - С.37-43.
  2. Токарчук А.М. Паттерн для отражения бизнес-логики // Мир транспорта, 2010, №2. - C.114-118.
  3. Токарчук А.М. Применение средств ORM для разработки безопасных веб-приложений // Безопасность информационных технологий, 2010, №1. - C.113-115.
  4. Токарчук А.М. Применение грид-систем при развертывании web-сайта // Информационно-управляющие системы, 2010, №3(46). - C. 51-55.

Прочие публикации

  1. Токарчук А.М. Сетевые распределённые вычисления. Достижения, области применения // Научно-практическая конференция Неделя науки -2008 Наука МИИТа - транспорту: тезисы докл. Всерос. Конф. (Москва, 8-9 апреля 2008г.). - М.: 2008. - С. V-52 - V-53.
  2. Токарчук А.М. Стратегии использования MVC-архитектуры в веб-приложениях // Научно-практическая конференция Неделя науки -2010 Наука МИИТа - транспорту: тезисы докл. Всерос. Конф. (Москва, 18-19 мая 2010г.). - М.: 2010. - С. VII-7.
  3. Токарчук А.М. Оптимизация разработки, хранения и взаимодействия веб-приложений на платформе LAMP // Научно-практическая конференция Неделя науки-2011 Наука МИИТа - транспорту: тезисы докл. Всерос. Конф. (Москва, 18-21 апреля 2011г.). - М.: 2011. - С. IV-22 - IV-23.
  4. Токарчук А.М. Методика обеспечения безопасности веб-приложений. // Материали за VII международна научна практична конференция Ключови въпроси в съвременната наука-2011. Том 37 Съвременни технологии на информации. - Белград: Изд. София, 2011.
  5. Токарчук А.М. Фокус-фактор и эффективность командной разработки. // MATERIAY VIII MIDZYNARODOWEJ NAUKOWI-PRAKTYCZNEJ KONFERENCJI STRATEGICZNE PYTANIA WIATOWEJ NAUKI - 2012 Volume 29 Matematyka Nowoczesne informacyjne technologie. - Перемишль: Изд. Nauka i studia, 2012.

Токарчук Андрей Михайлович

Повышение эффективности методов и алгоритмов разработки, взаимодействия и хранения веб-приложений

05.13.17 - Теоретические основы информатики

Автореферат диссертации на соискание ученой

степени кандидата технических наук.

Подписано к печати ____________                        Объем 1,5 п.л.

                                                       Формат 60х84/16

Тираж 80 экз. Заказ № ___________

УП - ГИ МИИТ, Москва, 127994, ул. Образцова, д. 9, стр. 9

Авторефераты по всем темам  >>  Авторефераты по техническим специальностям