автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Модели и методы разработки крупномасштабных веб-приложений

кандидата технических наук
Валиков, Алексей Николаевич
город
Уфа
год
2003
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Модели и методы разработки крупномасштабных веб-приложений»

Автореферат диссертации по теме "Модели и методы разработки крупномасштабных веб-приложений"

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

ВАЛИКОВ Алексей Николаевич

Модели и методы разработки крупномасштабных веб-приложений

обязатеяьныи

Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Уфа - 2003

Работа выполнена на кафедре вычислительной математики и кибернетики Уфимского государственного авиационного технического университета

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

профессор Юсупова Нафиса Исламовна

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

профессор Куликов Геннадий Григорьевич

доктор технических наук,

профессор Мельников Андрей Витальевич

Ведущее предприятие - Совместное российско-немецкое предприятие

по разработке программного обеспечения «Винпик Интернешнл»

Защита состоится 19 декабря 2003 года в 10.00 часов на заседании диссертационного совета К-212.288.01 Уфимского государственного авиационного технического университета по адресу: 450000, Уфа-центр, ул. К.Маркса, 12, УГАТУ.

С диссертацией можно ознакомиться в библиотеке Уфимского государственного авиационного технического университета.

Автореферат разослан 14 ноября 2003 г.

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

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

кандидат физико-математических наук,

доцент Р. А. Гараев

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. Существенной особенностью современных процессов глобализации является экспоненциальный рост применения новых информационных технологий. Особая роль в этом процессе принадлежит глобальной компьютерной сети Интернет.

Одной из главных служб Интернет является WWW-служба (World Wide Web - Всемирная паутина), которая используется для доставки гипертекстовых документов. Одним из основных технологических направлений Интернет является особый класс программ, получивший название "веб-приложения", работа с которыми происходит посредством WWW. Веб-приложения относятся к классу систем "клиент-сервер", в которых в качестве клиентского программного обеспечения используется веб-браузер, а в роли сервера выступает веб-сервер.

Разработка веб-приложений сталкивается с определенными трудностями:

- веб-приложения обязаны следовать стандартам и протоколам Интернет и WWW, многие из которых устарели и часто не удовлетворяют требованиям функциональных приложений;

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

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

Одним из главных факторов, влияющих на успех и трудоемкость реализации информационных проектов, является применяемая методология разработки. Большинство современных подходов не учитывает специфики веб-приложений среднего и большого объема. Несмотря на то, что вопросами разработки веб-приложений разного масштаба активно занимаются различные научные коллективы у нас в стране (Вендров A.M., Зыков C.B., Жоголев Е.А., Мельников A.B., Хол-чева A.B.,) и за рубежом (М. Fernandez, D. Florescu, A. Levy, Р. Lockemann, D. Suciu), большинство решений в этой области носит эвристический характер; в настоящее время отсутствует научно-обоснованный подход к созданию крупномасштабных веб-приложений.

В связи с этим разработка моделей и методов для создания масштабных веб-приложений является актуальным направлением исследований.

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

Для достижения данной цели должны быть решены следующие задачи:

- разработка общей архитектуры масштабных веб-приложений, формализация жизненных процессов, в них протекающих;

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

- разработка лингвистического подхода к клиент-серверной коммуникации, создание и обоснование лингвистического обеспечения;

- разработка методики проектирования и реализации масштабных веб-приложений на основе предложенных моделей и методов, включая разработку программного обеспечения;

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

Методика исследования. Для решения поставленных в диссертационной работе задач были применены методы системного анализа, методологии БАЭТ и ГОЕБ, аппарат сетей Петри, методы объектно-ориентированного анализа и проектирования, методы аспектно-ори-ентированного программирования, лингвистический подход, теория построения компиляторов, элементы функционального программирования и лямбда-исчисления, методика оценки трудоемкости разработки программного обеспечения при помощи функциональных точек.

Результаты, выносимые на защиту:

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

- компонентная модель веб-приложения, построенная с применением аспектно-ориентированной методологии и учетом специфических требований компонент веб-систем;

- лингвистическая концепция и лингвистическое обеспечение клиент-серверной коммуникации;

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

Научная новизна. Новыми являются следующие разработки и исследования автора:

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

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

других методов уменьшить затраты на разработку, поддержку и возможный в будущем реинжиниринг и рефакторинг веб-приложений;

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

Практическая значимость и внедрение результатов. Практическую значимость имеют предложенные и разработанные автором:

- формализация жизненных процессов веб-приложений; модель описания жизненных циклов приложений;

- лингвистическое обеспечение коммуникации для систем, построенных на основе архитектуры «клиент-сервер»;

- программное обеспечение для использования предложенных моделей и методов в веб-приложениях.

Предложенные модели и методы внедрены в отделе информационных технологий Государственного ведомства водных путей Германии в качестве опытного программного обеспечения в совокупности с методикой использования. Результаты работы использованы в виде веб-приложений в рамках проекта Европейской Комиссии ЕТЖО-81(Ж в системах управления метаданными.

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

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

Исследования выполнялись в рамках федеральной целевой программы «Интеграция науки и высшего образования Российской Федерации на 2002-2006 гг.» по проекту П0039 «Фундаментальные исследования и новые технологии проектирования сложных технических систем» и частично поддержаны грантом РФФИ 03-07-90242 «Интернет-комплекс поддержки выполнения проектов фундаментальных исследований сложных систем с применением интеллектуальных технологий на базе экспертных систем» (2003-2005 гг.)

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

Апробация работы. Основные положения и результаты работы докладывались на следующих научно-технических конференциях: 2-й Международной конференции по проблемам информатики и информационных технологий С81Т'2000 (18-22 сентября 2000 г., Янган-тау, Россия); 13-й Международной конференции по проблемам сис-

темных исследований, информатики и кибернетики InterSymp-2001 (30 июля - 4 августа 2001 г., Баден-Баден, Германия); 3-й Международной конференции по проблемам технологий для электронных сервисов VLDB TES'2002 (23-24 августа 2002 г., Гонконг, Китай); 4-й Международной конференции по проблемам информатики и информационных технологий CSIT'2002 (18-20 сентября 2002 г., Патрас, Греция); 13-й Международной конференции "Информатика в защите окружающей среды" Envirolnfo'2002 (25-27 сентября 2002 г., Вена, Австрия); 5-й Международной конференции по проблемам информатики и информационных технологий CSIT'2003 (16-18 сентября 2003 г., Уфа, Россия); 14-й Международной конференции "Информатика в защите окружающей среды" Envirolnfo'2003 (24-26 сентября 2003 г., Коттбус, Германия).

Публикации. Основные материалы диссертационной работы опубликованы в 14 научных трудах, в том числе в виде монографии и научных статей в 7-ми международных и 4-х всероссийских научных изданиях.

Структура работы. Диссертационная работа состоит из 141-й страницы машинописного текста, включающего в себя введение, пять глав, заключение, рисунки, таблицы и список литературы из 110-и наименований, в том числе 84 - на иностранном языке.

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

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

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

Одним из наиболее популярных подходов к разработке является использование препроцессинга, или предварительной обработки гипертекста. В соответствии с этим подходом в документы, хранящиеся на сервере, внедряются специальные инструкции на определенном языке программирования. При обработке запроса сервер исполняет внедренные инструкции, заменяя их в тексте документа на результат выполнения. Сгенерированный документ, отсылается клиенту. Основной технологией гипертекстового препроцессинга является широко распространенная технология РНР (от англ. hypertext preprocessor-

препроцессор гипертекста), поддержка которой встроена в 80% использующихся в настоящее время веб-серверов. Использование PHP в масштабных и крупномасштабных проектах связано с определенными трудностями. Например, PHP не обладает достаточными средствами для декомпозиции функциональности сложных приложений, не предлагается приемлемого уровня объектной абстракции, что делает невозможным использование современных методов проектирования. Помимо этого, внедрение инструкций в текст документов приводит к высокому уровню сцепленности между уровнем отображения приложения и его функциональностью, что неприемлемо для больших проектов.

Другим популярным подходом является применение шаблонных технологий, основанных на использовании специальных языков шаблонов для отображения и изменения состояния приложения. К шаблонным технологиям относятся такие разработки, как JSP, Turbine, Velocity. Основной недостаток шаблонных технологий в применении к разработке масштабных и крупномасштабных приложений заключается в том, что они не включают средств декомпозиции и модульной организации функциональности веб-приложений.

Еще одним подходом к реализации веб-приложений является использование серверных модулей, создаваемых в соответствии с определенными интерфейсами, такими как CGI, NSAPI, ISAPI, Java Servlet Technology и другими. Эти спецификации определяют протоколы обмена данными между веб-сервером и программной частью веб-приложений, однако модульной организации функциональности внимание в них не уделяется.

Поскольку веб-приложения являются интерактивными приложениями, в них часто применяется парадигма Модель-Вид-Контроллер (МВК - MVC, англ. Model-View-Controller), разработанная в конце 80-х годов Краснером и Поупом для пользовательских систем, реализуемых в языковой среде Smalltalk.

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

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

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

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

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

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

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

Повышение сложности функциональности приложения также ска-

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

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

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

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

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

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

фолмопами!: ввод

ЯВНО ОПИС4И действий

!НЫЦи

МИ

сервсрн

Клиеиг.

Униаерсавышй контроллер

Вия - набор программ » декларативных языках

преобразований ег 1нШ

Веб-приложение

Сервер

Исполняемый кол, изменяющий состояние модели

Модель, организованная в виде набора компонент йЗл^л

Информация о состоянии |: ииде унифицировании* древовидных структур

Рис. 1. Общая архитектура веб-приложения.

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

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

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

Чтобы работа системы, использующей контрактный механизм,

была полностью детерминирована, помимо набора контрактов важна также и последовательность их выполнения.

Для моделирования последовательностей выполнения контрактов предлагается использовать аппарат сетей Петри. В качестве инструмента описания жизненного процесса приложения вводится понятие сети процесса Р, которое определяется как набор (8, Т, Б, С, 8В, бе), где:

-Б = {$[, ..., 8П} - множество позиций;

-Т = {1[, г2, ..., 1т} - множество переходов;

-8 п Т = 0;

-Б с (8хТ) и (Тх8) - множество ориентированных дуг;

-С с 8 - множество управляющий позиций;

-8В е 8 - начальная позиция;

-5е е 8 - конечная позиция.

Сеть процесса в терминах жизненного процесса приложения интерпретируется следующим образом:

- маркировка сети М: 8 -П (I = {0, 1, 2, ...}) соответствует определенному состоянию приложения;

- срабатывание перехода переводящее маркировку Мр в маркировку Мч, соответствует некоторому этапу жизненного процесса приложения, которое переводит его из состояния, соответствующего Мр в состояние соответствующее Мч;

- возможность срабатывания перехода (, определяемая условием Уб е 8:Р(8,0<М(в) соответствует возможности осуществления этапа, соответствующего переходу I (в случае если при некоторой маркировке М возможно срабатывание двух различных переходов ^ и

причем 1 < то по соглашению сработает переход I);

- маркировки М, в которых М(зв )>0 считаются начинающими процесс;

- маркировки М, в которых М(зЕ)>0 считаются заканчивающими процесс;

- управляющие позиции С соответствуют внешним событиям приложения (например, входящие для обработки данные, сигналы к остановке, продолжению или завершению работы);

- последовательность срабатывания переходов соответствует последовательности осуществления этапов жизненного процесса приложения.

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

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

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

- жизненный процесс приложения моделируется сетью процесса Р= (S, Т, F, С, sB, sE);

- выбирается этап жизненного процесса приложения и соответствующий ему переход t;;

- производится анализ хронологии контрактов, соответствующих (согласно логике предметной области приложения) данному этапу, и определяется сеть контрактного подпроцесса P'=(S', Т', F1, С', Sb, se'), в которой переходам множества Т' соответствуют контракты;

- синтезируется новая сеть процесса Р' = (S', Т', F', С', sB', sE'), в которой выбранный переход tj заменяется на два перехода t,B, t,E, объединяющие сеть Р с сетью Р' : S' = S' и S, Т'=Т и ТЦ и {t,B, t,E}, F'= F1 и {(x, y)e F | x^tiAy^t,)} и {(b, t?) | (b, t;) € F} u{(tE, e) | (t„ e) e F} kj {(tf, sg1), (se', tF>>, C'= Ci и С, sB' = sB, sE' = sF;

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

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

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

В четвертой главе разрабатывается лингвистическое обеспечение клиент-серверной коммуникации.

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

Главным из них является выраженная асимметричность: сервер может посылать клиенту данные произвольной сложности в то время как клиентские запросы имеют примитивную структуру. Учитывая то, что комплексные веб-приложения нуждаются в адекватно слож-

Старт приложения

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

При анализе процесса обработки запроса в веб-приложениях выяснено, что основной составляющей клиентского запроса в веб-приложениях является множество параметров Р={(п, v) | neS (fe veUj, где S - множество строк, a U - множество объектов. Поскольку имена параметров могут повторяться, адекватным функциональным представлением этого множества будет функция значений параметра р, отображающая имена параметров на множества объектов: p:S—>Pow(U). В случае статического содержимого запрос определяет адрес документа, который должен быть отправлен клиенту. В более сложном случае запрос идентифицирует серверную процедуру, которая должна использоваться при генерации ответа.

Задача обработки пользовательского ввода формализуется как преобразование множества параметров Р во множество действий А. Действием называется формально описанная процедура, выполняющая определенные операции в контексте связанных переменных. Действие можно записать в виде кортежа (е, {(гаг,, valuej), (var2, value2), ... , (vark, valuek)}), где e - шаблон действия (программа на интерпретируемом языке программирования), а (var„ value) - переменная с именем var„ связанная со значением valueг Таким образом, задача разработки лингвистического обеспечения клиент-серверной коммуникации состоит в создании языка, который позволил бы описывать действия в виде множества параметров, и интерпретатора этого языка.

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

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

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

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

си

Разделитель Отделитель

предложений суффикса

Рис. 3. Основные синтаксические диаграммы метаязыка определения действий в параметрах.

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

При использовании лингвистического подхода рекомендуется поэтапный метод определения действий: создание прототипа интерфейса, группировка управляющих элементов по семантике, оформление »> семантики каждой группы в виде программы на языке действий, со-

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

Помимо этого даются рекомендации по совместному использованию предлагаемой компонентной архитектуры и лингвистического подхода.

В качестве метода оценки эффективности предлагаемых подходов и методов рассматривается методология оценки трудоемкости программного обеспечения при помощи функциональных точек. Основой

Им* параметра

Предложение

с

Предложение !-

Разделитель Предложений

11ред||ожение

Выражение

Отделитель суффикса

Суффикс

Суффикс

а-г, А-У.

в.-г,А-7.

0-9

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

Предложенные в данной работе подходы разрабатывались и были впервые применены в проекте NOKIS (Nord See Ost See Kusteninforma-zionsystemme - нем. береговая информационная система Северного и Восточного морей), выполнявшемся в 2001-2003 гг. в Исследовательском Центре Информатики по заказу Государственного управления ( водных путей Германии. Информационная часть проекта NOKIS заключалась в разработке информационной системы управления метаданными, описывающими различные геоинформационные продукты (картографические продукты, продукты спутниковой и аэрофото- и ви- 3 деосъемки и т.д.). Метаданные в системе NOKIS должны были удовлетворять международным подстандартам группы ISO 191. Техническое задание определяло NOKIS как масштабное многофункциональное веб-приложение, трудоемкость разработки которого с применением существовавших методов оценивалась в 3,5-4,5 человеко-года. Применение предложенных подходов позволило снизить трудоемкость по сравнению с расчетной на 30-40 %.

Другим проектом в области управления метаданными был проект Eurosion, выполнявшийся в Исследовательском Центре Информатики по заказу Европейской Комиссии в 2002-2003 гг. Основные требования проекта Eurosion совпадали с требованиями проекта NOKIS за исключением того, что Eurosion является системой управления документами сразу в нескольких международных стандартах (ISO 19115, Coastbase, Dublin Core). С предметной точки зрения, Eurosion - это система управления метаинформацией о береговой эрозии в Европе. Опыт применения в NOKIS компонентной архитектуры позволил повторно использовать разработанные для этой системы компоненты в проекте Eurosion. Объем повторно использованного в Eurosion кода составил 59%. Таким образом, проект с начальными оценками трудоемкости в 2-2,5 человеко-года был выполнен за 1,7 человеко-лет, что по- ' казывает 15-25% эффективность применения предложенных методов.

Эффективность применения предложенных методов исследовалась на основе проекта Postal Cards, который выполнялся по заказу ,

Cineplex Odeon Inc. совместно с канадской компанией Accent Marketing Inc. Суть проекта Postal Cards заключалась в создании интернет-службы, которая позволила бы пользователям создавать, персонализировать и рассылать почтовые документы. В рамках проекта Postal Cards требовалось разработать масштабное в смысле функциональности веб-приложение, которое можно впоследствии наращивать в соответствии с новыми идеями и требованиями. Было предложено разрабатывать данное веб-приложение на основе компонентной моде-

ли и лингвистического подхода. На этапе проектирования было выделено 15 основных компонент системы, из которых 5 компонент (компоненты доступа к базе данных, отправки сообщений по электронной почте, хранения объектов в сессии веб-приложения, авторизации и аутентификации и преобразований полуструктурированных документов) уже были созданы ранее. В дальнейшем число компонент выросло до 27. Некоторые из созданных компонент (например, компонент для проведения транзакций по кредитным картам) будут повторно использоваться в других проектах. По полученным оценкам использование компонентной модели снизило трудоемкость проекта на 10-25%.

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

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ РАБОТЫ

1. Разработана общая архитектура масштабных веб-приложений, основанная на использовании парадигмы Модель-Вид-Контроллер, применении компонентной архитектуры, лингвистического подхода к клиент-серверной коммуникации и декларативных языков структурных преобразований, которая позволяет снизить трудоемкость разработки масштабных веб-приложений; разработан жизненный цикл компонентов веб-систем.

2. Разработана новая компонентная архитектура веб-приложения, позволяющая за счет изоляции различных модулей системы, возможности повторного использования кода, применения аспектно-ориенти-рованного подхода и других методов уменьшить затраты на разработку, поддержку, реинжиниринг и рефакторинг веб-приложений. Её внедрение в реальных проектах позволило снизить трудоемкость проектирования и реализации модельных частей веб-систем на 10-25%.

3. Впервые предложен лингвистический подход к организации клиент-серверной коммуникации, позволяющий многократно сократить усилия разработчиков по созданию модулей обработки пользовательского ввода в веб-приложениях; разработано лингвистическое обеспечение коммуникации для систем, построенных на основе архитектуры "клиент-сервер", позволившее снизить трудозатраты по разработке контроллеров веб-систем на 20-25% в рассмтренных реальных проектах.

4. Разработана методика проектирования, реализации и тестирования масштабных веб-приложений на основе предложенной компонентной архитектуры и лингвистического подхода. Разработано программное обеспечение для использования предложенных моделей и методов в веб-приложениях; результаты работы апробированы в реальных проектах. Анализ применения предложенных моделей, подходов и методов в проектах N0X15, Еигояюп и Роз1а1Сагс18 показал среднее снижение трудоемкости на 20-30% по сравнению с расчетной.

Публикации по теме диссертации

1. Валиков А., Казакос В. Подходы к разработке структурно-ориентированного хранения XML-документов в реляционных базах данных (на англ.) / Forschungszentrum Informatik - Уфа, УГАТУ, 2001,- С.79.

2. Валиков А., Казакос В., Шмидт А. Построение обновляемых XML- представлений реляционных баз данных (на англ.) / Тез. 13-й Международной конференции по проблемам системных исследований информатики и кибернетики (INTERSYMP 2001).- Баден-Баден, 2001. С. VII-1 - VII-8.

3. Валиков А.Н. Технология XSLT. СПб.: БХВ-Петербург, 2002. - 544 с.

4. Валиков А., Казакос В., Лефельд Р., Шмидт А. Автоматизация разработки реттозиториев метаданных посредством XML-систем (на англ.) / Тез. 16-й Международной конференции: Информатика в защите окружающей среды. - Envirolnfo'2002.- С.400-407.

5. Ахунов А.Н., Валиков А.Н. Визуализация географических карт на основе масштабируемых пространственных запросов / Сб.: Принятие решений в условиях неопределенности,- Уфа, 2002,- С.298-308.

6. Ахунов А., Валиков А. Интеграция информационных систем с базами данных посредством XML (на англ.) / Тез. 4-й Международной конференции по проблемам информатики и информационных технологий. CSIT'2002.- Уфа, УГАТУ, 2002,- С.25.

7. Ахунов А., Валиков А., Казакос В. Удаленный вызов методов для веб-приложений (на англ.) / Тез. 4-й Международной конференции по проблемам информатики и информационных технологий. CSIT'2002.- Уфа, УГАТУ, 2002,- С.65.

8. Ахунов А., Валиков А., Шмидт А. Архитектура модель-преобразования для веб-приложений (на англ.) / Тез. 3-й Международной конференции по проблемам технологий для электронных сервисов,- VLDB TES'2002.-С.29-37.

9. Ахунов А., Валиков А. Методика декомпозиции систем в рамках компонентно-ориентированной архитектуры (на англ.) / Тез. 5-й Международной конференции по проблемам информатики и информационных технологий CSIT'2003.- Уфа, УГАТУ, 2003,- Т.-1.- С.69-73.

10. Валиков А. Стратегии неявного кеширования XSL-преобразований для технологии JAXP (на анг.). - JavaWorld, May 2003. URL: http://www.javaworld.com/javaworld/ jw-05-2003/jw-0502-xsl.html.

11. Валиков A.H., Ахунов А. H. Программа для ЭВМ: Библиотека WebModels. // Код программы по ЕСПД .03524577.00457-01 ОФАП, 2003.

12. Валиков А.Н., Ахунов А. Н. Программа для ЭВМ: Библиотека xml.trans-form. // Код программы по ЕСПД .03524577.00458-01 ОФАП, 2003.

13. Валиков А.Н., Ахунов А. Н. Программа для ЭВМ: Библиотека WebAc-tions. // Код программы по ЕСПД .03524577.00456-01 ОФАП, 2003.

14. Валиков А., Казакос В., Лефельд Р., Михл С., Хайдман К. Репозитории метаданных в государственных информационных системах приближенных регионов Германии (на англ.) / Тез. 17-й Международной конференции: Информатика в защите окружающей среды. -Envirolnfo'2003.-С.315-318.

Диссертант_А.Н. Валиков

ВАЛИКОВ Алексей Николаевич

МОДЕЛИ И МЕТОДЫ РАЗРАБОТКИ КРУПНОМАСШТАБНЫХ ВЕБ-ПРИЛОЖЕНИЙ

Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Лицензия № 020258 от 08.01.98 Отпечатано в ГУП ГРИ "Башкортостан". Подписано в печать 13.11.03. Формат 60x84'/i6. Бумага писчая № 1. Печать плоская. Гарнитура Тайме. Усл. печ. л. 1.0. Уч.-изд. л. 0,9. Тираж 200 экз. Заказ № Г1132.

»20703

Оглавление автор диссертации — кандидата технических наук Валиков, Алексей Николаевич

Введение.

1. Анализ предметной области разработки веб-приложений.

1.1 Анализ веб-систем и процесса разработки веб-приложений как объекта исследования.

1.2 Анализ существующих подходов к разработке веб-систем.

1.3 Анализ основных трудностей в разработке веб-приложений.

1.4 Выводы.

2. Разработка общей архитектуры масштабных веб-приложений с использованием компонентных моделей и лингвистического 23 подхода к клиент-серверной коммуникации.

2.1 Формализация веб-приложений и протекающих в них 23 процессов.

2.2 Подходы к снижению трудоемкости разработки веб

Введение 2003 год, диссертация по информатике, вычислительной технике и управлению, Валиков, Алексей Николаевич

Актуальность темы. Существенной особенностью современных процессов глобализации является экспоненциальный рост применения новых информационных технологий. Особая роль в этом процессе принадлежит глобальной компьютерной сети Интернет.

Одной из главных служб Интернет является WWW-служба (World • Wide Web - Всемирная паутина), которая используется для доставки гипертекстовых документов. Одним из основных технологических направлений Интернет является особый класс программ, получивший название "веб-приложения", работа с которыми происходит посредством WWW. Веб-приложения относятся к классу систем "клиент-сервер", в которых в качестве клиентского программного обеспечения используется веб-браузер, а в роли сервера выступает веб-сервер.

Разработка веб-приложений сталкивается с определенными трудностями:

- веб-приложения обязаны следовать стандартам и протоколам Интернет и WWW, многие из которых устарели и часто не удовлетворяют требованиям функциональных приложений;

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

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

Одним из главных факторов, влияющих на успех и трудоемкость реализации информационных проектов, является применяемая методология разработки. Большинство современных подходов не учитывает специфики веб-приложений среднего и большого объема. Несмотря на то, что вопросами разработки веб-приложений разного масштаба активно занимаются различные научные коллективы у нас в стране (A.B. Мельников, A.M. Вендров, C.B. Зыков, Е.А. Жоголев, A.B. Холчева) и за рубежом (М. Fernandez, D. Florescu, A. Levy, Р. Lockemann, D. Suciu), большинство решений в этой области носит эвристический характер; в настоящее время отсутствует научно-обоснованный подход к созданию крупномасштабных веб-приложений.

В связи с этим разработка моделей и методов для создания масштабных веб-приложений является актуальным направлением исследований.

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

Для достижения данной цели должны быть решены следующие задачи:

- разработка общей архитектуры масштабных веб-приложений, формализация жизненных процессов, в них протекающих;

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

- разработка лингвистического подхода к клиент-серверной коммуникации, создание и обоснование лингвистического обеспечения;

- разработка методики проектирования и реализации масштабных веб-приложений на основе предложенных моделей и методов, включая разработку программного обеспечения;

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

Методика исследования. Для решения поставленных в диссертационной работе задач были применены методы системного анализа, методологии SADT и IDEF, аппарат сетей Петри, методы объектноориентированного анализа и проектирования, методы аспектно-ориентированного программирования, лингвистический подход, теория построения компиляторов, элементы функционального программирования и лямбда-исчисления, методика оценки трудоемкости разработки программного обеспечения при помощи функциональных точек.

Результаты, выносимые на защиту:

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

- компонентная модель веб-приложения, построенная с применением аспектно-ориентированной методологии и учетом специфических требований компонентов веб-систем;

- лингвистическая концепция и лингвистическое обеспечение клиент-серверной коммуникации;

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

Научная новизна. Новыми являются следующие разработки и исследования автора:

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

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

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

Практическая значимость и внедрение результатов. Практическую значимость имеют предложенные и разработанные автором:

- формализация жизненных процессов веб-приложений; методика описания жизненных циклов приложений; жизненный цикл веб-приложений;

- лингвистическое обеспечение коммуникации для систем, построенных на основе архитектуры «клиент-сервер»;

- программное обеспечение для использования предложенных моделей и методов в веб-приложениях.

Предложенные модели и методы внедрены в отделе информационных технологий Государственного Ведомства Водных Путей Германии в качестве опытного программного обеспечения в совокупности с методикой использования. Результаты работы использованы в виде веб-приложений в рамках проекта Европейской Комиссии ЕШЮБКЖ в системах управления метаданными. Результаты использования предложенных моделей и методов в реальных проектах показали эффективность разработанных решений.

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

Исследования выполнялись в рамках федеральной целевой программы «Интеграция науки и высшего образования Российской Федерации на 20022006 гг.» по проекту П0039 «Фундаментальные исследования и новые технологии проектирования сложных технических систем» и частично поддержаны грантом РФФИ 03-07-90242 «Интернет-комплекс поддержки выполнения проектов фундаментальных исследований сложных систем с применением интеллектуальных технологий на базе экспертных систем» (2003-2005 гг.)

Разработанное автором программное обеспечение для реализации компонентов веб-приложений, автоматической обработки клиентского ввода в веб-приложениях и создания модулей отображения компонентов зарегистрировано в Отраслевом Фонде Алгоритмов и Программ Государственного Координационного Центра.

Апробация работы. Основные положения и результаты работы докладывались на следующих научно-технических конференциях: 13-й Международной конференции по проблемам системных исследований, информатики и кибернетики 1п1ег8ушр-2001 (30 июля - 4 августа 2001 г., Баден-Баден, Германия); 3-й Международной конференции по проблемам технологий для электронных сервисов УЫЭВ ТЕ8'2002 (23-24 августа 2002 г., Гонконг, Китай); 4-й Международной конференции по проблемам информатики и информационных технологий С81Т'2002 (18-20 сентября 2002 г., Патрас, Греция); 16-й Международной конференции "Информатика в защите окружающей среды" Егмго1пГо'2002 (25-27 сентября 2002 г., Вена, Австрия); 5-й Международной конференции по проблемам информатики и информационных технологий С81Т'2003 (16-18 сентября 2003 г., Уфа, Россия); 17-й Международной конференции "Информатика в защите окружающей среды" Егтго1пйУ2003 (24-26 сентября 2003 г., Коттбус, Германия).

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

Структура работы. Диссертационная работа состоит из 140 страниц машинописного текста, включающего в себя введение, пять глав, заключение рисунки, таблицы и список литературы из 110-и наименований, в том числе 88 - на иностранном языке.

Содержание работы

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

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

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

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

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

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

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

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

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

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

Описывается практический опыт использования компонентной архитектуры и лингвистического подхода в проектах ЖИЖ», Еигозюп и Ро81а1Сагёз, показавший 15-25% экономию трудозатрат.

В завершении главы рассматриваются перспективы дальнейшего развития разработанных подходов.

Заключение диссертация на тему "Модели и методы разработки крупномасштабных веб-приложений"

5.6 Выводы

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

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

Выбранный метод исследования применен для оценки эффективности применения разработанных подходов в реальных проектах N0X18, ЕигоБюп и Ро81а1Сагс18. В среднем достигнута экономия трудозатрат в 15-25% в то время. Процент повторно использованного кода в отдельных проектах превысил 50%.

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

ЗАКЛЮЧЕНИЕ

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

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

Исследован и формализован жизненный цикл веб-систем. С использованием элементов теории аспектно-ориентрованного программирования разработана компонентная модель веб-приложений, внедрение которой в реальных проектах позволило снизить трудоемкость проектирования и реализации модельных частей веб-систем на 10-25%.

Разработан лингвистический подход к клиент-серверной коммуникации в веб-приложениях и сопутствующее информационное обеспечение (язык описания действий в параметрах), позволившее снизить трудозатраты по разработке контроллеров веб-систем на 20-25%.

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

Исследована эффективность применения предложенных моделей, подходов и методов в проектах NOKIS, Eurosion и Postal Cards. Анализ внедрения показал среднее снижение трудоемкости на 20-30% по сравнению с расчетной.

Библиография Валиков, Алексей Николаевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты (пер. с англ.). М.: Изд. дом "Вильяме", 2001. - 768 с.

2. Ахунов А.Н., Валиков А.Н. Визуализация географических карт на основе масштабируемых пространственных запросов / Сб.: Принятие решений в условиях неопределенности.- Уфа, 2000.- С.298-308.

3. Бен Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2000. - 366 с.

4. Валиков А. Технология XSLT. СПб.; БХВ, 2002. - 544 с.

5. Вендров A.M. Проектирование программного обеспечения экономических информационных систем.- М.: Финансы и статистика.- 2000.-е. 352.

6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования (пер. с англ.). -СПб.: Питер, 2001.-368 с.

7. Даконта М., Саганич А. XML и Java 2. Библиотека программиста (+CD). -СПб.: Питер, 2001 . 384 с.

8. Жоголев Е.А. Объективная Организация системы гиперпрограммирования // Программирование.- 1997.- № 5.

9. Йордон Э. Путь камикадзе. Как разработчику программного обеспечениея выжить в безнадежном проекте (пер. с англ.). -М.: ЛОРИ, 2001.-255 с.

10. Ю.Липаев В.В. Документирование и управление конфигурацией программных средств. Методы и стандарты / Серия : Россия на пороге XXI века. М.: СИНТЕГ, 1998. - 220 с.

11. П.Мельников A.B. Система обработки информации и управления: архитектура и программное обеспечение / Сб.науч. тр. Юж.-Уральского гор.ун-та.- Челябинск, Изд. ун-та, 1998.- 147 с.

12. Михайловский Н.Э. Сравнение методов оценки стоимости проектов по разработке информационных систем. URL:http://www.ntrlab.ru/rus/method/fpates.php

13. Одинцов И.О. Профессиональное программирование. Системный подход. СПб.: БХВ, 2002. - 512 с.

14. Пероун, Чаганти. Создание корпоративных систем на основе Java 2 Enterprise Edition. Руководство разработчика. М.: Изд. дом "Вильяме", 2001.- 1184 с.

15. Программа для ЭВМ: Библиотека WebModels. // Валиков А.Н., Ахунов А. Н. Код программы по ЕСПД .03524577.00457-01 ОФАП, 2003.

16. Программа для ЭВМ: Библиотека xml.transform. // Валиков А.Н., Ахунов А. Н. Код программы по ЕСПД .03524577.00458-01 ОФАП, 2003.

17. Программа для ЭВМ: Библиотека WebActions. // Валиков А.Н., Ахунов А. Н. Код программы по ЕСПД .03524577.00456-01 ОФАП, 2003.

18. Себеста Роберт У. Основные концепции языков программирования. М.: Изд. дом "Вильяме", 2001. Изд.5. - 672 с.

19. Холл. Сервлеты и JavaServer Pages. Библиотека программиста. СПб.: Питер, 2001.-496 с.

20. Цейтин Г.С. На пути к сборочному программированию. // Программирование. 1990. - № 1.- С. 78-92.

21. Элиенс А. Принципы объектно-ориентированной разработки программ (пер. с англ.). М.: Изд. дом "Вильяме", 2002. - 496 с.

22. Abadi М., Cardelli L. A theory of objects. Springer. 1996. - 396 p.

23. Albrecht A.J. "Measuring application development productivity", in Proceedings IBM Applications Development Symposium, SHARE-Guide, 1979,- PP. 83-92.

24. Akhounov A., Valikov A. Connecting Frameworks to Databases with XML // Book of Abstracts of the 4th International Workshop on Computer Science and Information Technologies CSIT'2002, p. 25.

25. Akhounov A., Valikov A. Guidelines for System Decomposition within the Component-Oriented Architecture // Proceedings of the 5th International Workshop on Computer Science and Information technologies CSIT'2003. pp. 69-73.

26. Apache Software Foundation. The Velocity Template Engine. URL: http://jakarta.apache.org/velocity/.

27. Apache Software Foundation. The Struts Web Application Framework. URL: http://jakarta.apache.org/struts/.

28. Apache Software Foundation. Jakarta Turbine. URL: http ://j akarta. apache .org/turbine/.

29. Assmann U. Meta-programming composers in second-generation component. -1997. URL: http://citeseer.nj.nec.com/article/ assmann97metaprogramming.html.

30. Assman U. Language concepts and design patterns. Karlsruhe: Univ., Fak. ft>r Informatik.-2001.-29 p.

31. Barron D.W. The world of scripting languages. Wiley. 2000. - 492 p.

32. Berin Loritsch and Leo Simons Avalon Framework Configuration. URL: http: // avalon. apache. Org /framework /api /org /apache /Avalon /framework /configuration/ package-frame.html/.

33. Best E. and Fernandez C. Nonsequential processes: a Petri net view. SpringerVerlag. 1988. - 110 p.

34. Bien A. J2EE Patterns : Entwurfsmuster fbr die J2EE. Addison-Wesley. 2003. -244 p.

35. Billington J., Diaz M. and Rozenberg G. (Eds.). Application of Petri Nets to communication networks: advances in Petri nets. Springer. 1999. - 302 p.

36. Boehm B.W. Software engineering economics. Prentice Hall, NJ.- 1981 .-767 p.

37. Bray T., Paoli J., Sperberg-McQueen C. M. and Maler E. Extensible Markup Language (XML) 1 .0 (Second Edition). W3C Recommendation, 2000. URL: http://www.w3.org/TR/REC-xml.

38. Brian Foote. Inversion of Control. URL: http://www.laputan.org/drc/drc.html/.

39. Brown W.J., Malveau R.C., McCormick III H.W. and Mowbray T.J. AntiPatterns: Refactoring Software, Architectures and projects in Crisis. Wiley Computer Publishing.- NY, 1998.- 309 p.

40. Brown A.W. Large scale component based development. Prentice Hall PTR. -2000. 286 p.

41. Cavaness C. Programming Jakarta Struts. O'Reilly. 2003. - 441 p.

42. Clark J. Document Style Semantics and Specification Language URL: http://www.jclark.com/dsssl/

43. Clark J. XSL transformations (XSLT). URL: http://www.w3.org/TR/xslt

44. Cleaveland J.C., Uzgalis R. C. Grammars for programming languages. Elsevier North-Holland, NY. 1977. - 154 p.

45. Crystal D. Language and the Internet. Cambridge Univ. Press. -2001. -272 p.

46. Czarnecki C. (Ed.). Generative and component based software engineering. Springer. 2000. - 224 p.

47. Davidson D„ Blanshard L. About OGNL. URL: http://www.ognl.org/about.html.

48. Demarco T. Controlling software projects: management, measurement & estimation. Yourdon Press. 1982. - 284 p.

49. Desel J. Validation of information systems by analyzing partially ordered Petri net processes. Karlsruhe: Inst, fbr Angewandte Informatik und Formale Besch.- 1998.- 18 p.

50. Dittrich K.R. (Ed.). Component database systems. Morgan Kaufmann. 2001. -249 p.

51. Eilebrecht L. Apache Webserver : Installation, Konfiguration, Administration, mitp-Verlag. 2002. - 814 p.

52. Fernandez M., Florescu D., Levy A., Suciu D. A Query Language for a WebSite Management System. 1997. URL: http :// citeseer. nj .nec.com/article/ fernandez97query.html.

53. Fielding R., Gettys J., Mogul J., Nielsen H. F., Masinter L., Leach P. and Berners-Lee T. Hypertext Transfer Protocol HTTP/1 . URL: http://www.ietf.org/rfc/rfc26 6.txt.

54. Fiels D.K. Web development with JavaServer pages. Greenwich, CT: Manning.- 2002. 759 p.

55. Florescu D., Yagoub K., Issrny V. and Valduriez P. WEAVE: A Data-Intensive Web Site Management System. 2000. URL: http://citeseer.nj .nec.com/301285 .html.

56. Franksen O. I., Falster P. and Evans F. J. Qualitative aspects of large scale systems. Springer. 1979. - 119 p.

57. Gulcu C. Short introduction to log4j. URL: http://jakarta.apache.org/log4j/docs/manual.html

58. Gradecki J.D. and Lesiecki N. Mastering AspectJ: aspect-oriented programming in Java. Wiley. 2003. - 434 p.l.Haiges, S. Struts: Java Framework fuer Webanwendungen. Frankfurt am Main: Software & Support Verlag. 2003. - 509 p.

59. Hall M. Core servlets and JavaServer pages. Upper Saddle River, NJ: Prentice Hall PTR. 2000. - 575 p.

60. Herzum P. Business component factory: a comprehensive overview of component-based development for the enterprise. Wiley. 1999. - 579 p.

61. Hug K. Module, Klassen, Verträge: ein Lehrbuch zur komponentenorientierten Softwarekonstruktion. Vieweg. 2000. - 446 p.

62. Johnson, M. Script JavaBeans with the Bean Scripting Framework. JavaWorld.com, 2000-03. URL: http://www.javaworld.com/javaworld/jw-03-2000/j w-03 -beans .html/.

63. Joyner I. Objects unencapsulated. Prentice Hall PTR. 1999. - 386 p.

64. Kazakos W., Valikov A., Schmidt A., Lehfeldt R. Automation of Metadata Repository Development with XML Schema // Proceedings of the 16th International Conference "Informatics for Environmental Protection", pp. 400407.

65. Khare R. (Ed.). Scripting languages: automating the Web. O'Reilly. 1997. - 219 p.

66. Krasner G. Smalltalk-80: bits of history, words of advice. Addison-Wesley. -1983.-344 p.

67. Kumar D.R. Professional PHP Web development solutions. Wrox Press. -2002.-613 p.

68. Levy A., Florescu D., Mendelzon A. Database Techniques for the World Wide Web: A Survey. 1998. URL: http://citeseer.nj.nec.com/ florescu98database.html.

69. Lindemann С. Internet Intern. Dbsseldorf: Data-Becker. 1999. - 1209 p.

70. Lockemann P.C. Vorlesung Kommunikation und Datenhaltung. Karlsruhe: University. 1998. - 176 p.

71. Loewe W. and Noga M.L. Component communication and data adaptation. Karlsruhe : Univ., Fak. fuerr Informatik. 2001. - 15 p.

72. Loewe W. and Noga M.L. Metaprogramming applied to web component deployment. Karlsruhe : Univ., Fak. fbr Informatik. 2001. -8 p.

73. Loritsch B. Developing with Apache Avalon. URL: http://jakarta.apache.org/avalon

74. Macromedia Inc. Macromedia Flash MX. URL: http://www.macromedia.com/software/flash.

75. Microsoft Corp. Active Server Pages, http: / msdn. Microsoft com/ library/default.asp?url=/nhp/default.asp?contentid=28000 522.

76. Microsoft Corp. Internet Server API (IS API) Extensions. URL: http://msdn.microsoft.com/library/default.asp ?url=/library/en-us/. vccore/ html/coreInternetServerAPI.28.ISAPI.29.Extensions.asp.

77. National Center for Supercomputing Applications. The Common Gateway Interface. URL: http://hoohoo.ncsa.uiuc.edu/cgi/.

78. Object Management Group. Interface Definition Language. URL: http://www.omg.org/gettingstarted/omgidl.htm.

79. Pagan F.G. Formal specification of programming languages. Prentice Hall, NJ. -1981 .-235 p.

80. Perry W.E. Software testen, mitp-Verlag. 2003. - 976 p.

81. Peterson J. L. Petri net theory and the modeling of systems. Engelwood Cliffs, NJ: Prentice-Hall. 1981. - 290 p.

82. Putnam L.H. Quantitative management, software cost estimation. IEEE. 1977. - 326 p.

83. Putnam L.H. and Myers W. Industrial strength software: effective management using measurement. IEEE Computer Society Press. 1997. - 309 p.

84. Raggett D., le Hors A. and Jacobs I (eds.). HTML. 4.0 Specification. URL: http://www.w3.org/TR/html4/.

85. Riesig W. A primer in Petri net design. Springer-Verlag. -1992. 120 p. 91.Shlaer S., Mellor S.J. Object lifecucles: modeling the world in states. Prentice

86. URL: http://citeseer.nj.nec.com/334403.html. 97.Szyperski C. Component software : beyond object-oriented programming. Addison-Wesley. 1999. - 411 p.

87. The PHP Group/ PHP: Hypertext Preprocessor. URL: http://www.php.net/

88. Tobias J.M. (Ed.). Language design and programming methodology. Springer.-1980.-255 p.

89. Turner J. and Bedell, K. Struts : JSP-Applikationen mit Jakarta Struts, JBoss und Apache Axis. Mbnchen: Addison Wesley. 2003. - 478 p.

90. United Kingdom Software Metrics Association. MK II Function Point Analysis Counting Practices Manual. URL: http://www.uksma.co.uk/public/mkIIrl 31 .pdf

91. Valikov A. Transparently cache XSL transformations with JAXP // JavaWorld, May 2003. URL: http://www.javaworld.com/javaworld/jw-05-2003/jw-0502-xsl.html.

92. Valikov, A., Akhounov A. and Schmidt, A. A Model-Transformers Architecture for Web Applications. Proc. of the Third International VLDB Workshop on Technologies for E-Services, Hong-Kong, 2002. PP.29-37.

93. Valikov A., Akhounov A., Kazakos W. Remote method invocation for web applications // Book of Abstracts of the 4th International Workshop on Computer Science and Information technologies CSIT'2002, p. 65.

94. Valikov A., Kazakos W. Design approaches to structure-based XML. Storage in relational data bases // Forschungszentrum Informatik Ufa, USATU, 2001.- p.79.

95. Valikov A., Kazakos W., Schmidt A. Building updateable XML views on top of relational databases // Proceedings of the International Symposium on Systems Integration (INTERSYMP 2001), eds. Lasker E., Dahanayake A. Aug 2001. pp. VII-1 -VII-8.

96. Watt D.A. and Brown D. F. Programming language processors in Java : compilers and interpreters. Prentice Hall. 2000. - 436 p.

97. Watt D.A. Programming language syntax and semantics. Prentice-Hall. -1991.-389 p.

98. Wirfs-Brock R., Wilkerson R and Wiener L. Designing Object-Oriented Software. Prentice Hall, New Jersey, 1990. p.

99. Woodman M. (Ed.). Programming language choice: practice and experience. International Thomson Computer Press. 1996. - 384 p.