Содержание к диссертации
Введение
Глава 1. Обзор существующих методов и средств создания приложений серверной стороны. Постановка задачи исследования 13
1.1. Требования к платформам приложений серверной стороны 17
1.2. Классификация платформ приложений серверной стороны 20
1.2.1. Фильтры Web - сервера 21
1.2.2. Обработчики запросов 22
1.2.3. Модель шаблонов страниц (Модель 1) 27
1.3. Сравнительный анализ существующих платформ 33
1.4. Системы создания и управления сайтами 36
1.4.1. Интерактивные формы 37
1.4.2. Системы оперативного управления сайтом 37
1.4.3. Системы типа Модель - Вид - Управление (Модель 2) 40
1.5. Требования к системам создания и управления сайтами 45
Глава 2. Исследование и разработка компонентной модели управления сайтами, формализация процесса обработки запросов 52
2.1. Компонентная модель управления сайтами 52
2.2. Реализация архитектуры Модель - Вид - Управление 57
2.3. Инструментальные средства визуализации управления сайтом 58
2.4. Задачи оптимизации кода, кластеризации, кэширования 62
2.5. Формализация процесса обработки запросов. Модель системы частичного кэширования динамических страниц 72
2.5.1. Формализация процесса обработки запросов системой управления сайтами 72
2.5.2. Математическая модель системы частичного кэширования динамических страниц. Оценка эффективности частичного кэширования 79
Глава 3. Аспекты практической реализации программного комплекса управления сайтами (ПКУС) 90
3.1. Архитектура системы управления сайтами 90
3.1.1. Структура системы управления сайтами. Определение базовых сущностей 90
3.1.2. Разработка динамической модели управления сайтами. Алгоритм генерации страниц. Использование и настройка компонент 93
3.1.3. Взаимодействие компонент. Общий контекст исполнения 99
3.1.4. Взаимодействие страниц. Вложенные формы 101
3.1.5. Перенос и обновление сайтов 102
3.1.6. Расширения ПКУС. Встраиваемые модули 105
3.2. Аспекты безопасности. Разграничение прав доступа пользователей 106
3.3. Уровень абстракции по поддержке СУБД 109
3.4. Подсистемы кэширования ПКУС 111
3.5. Визуальное редактирование страниц. Среда администрирования 115
Глава 4. Верификация полученных решений и практическая реализация ПКУС . 121
4.1. Портируемость решения 121
4.2. Анализ производительности системы. Тестовая конфигурация 125
4.2.1. Аппаратная тестовая конфигурация 125
4.2.2. Операционные системы, использованные при тестировании 126
4.2.3. Тестируемые платформы Web - приложений 126
4.2.4. Проведенные тесты производительности 127
4.3. Результаты тестирования платформ и ПКУС 130
Выводы по главе 4 138
Заключение 140
Список литературы 142
Приложение
- Требования к платформам приложений серверной стороны
- Компонентная модель управления сайтами
- Архитектура системы управления сайтами
- Портируемость решения
Введение к работе
Стремительное развитие глобальной компьютерной сети Интернет за последние годы привело к тому, что технологиям построения и управления Web - сайтами уделяется большое внимание. Для того чтобы выяснить причины такого внимания необходимо рассмотреть, что сегодня представляет собой Интернет, какие возможности он предлагает, и какие задачи ставит перед разработчиками программного обеспечения.
Интернет - это глобальная компьютерная сеть, объединяющая в единое информационное пространство подсети, постоянные сервера, динамически подключаемых пользователей. Наиболее популярными и востребованными Интернет - технологиями изначально являлись и до сих пор остаются электронная почта (Е-mail), и Web - сайты [23]. Этими применениями возможности Интернет не ограничиваются. Сейчас активно развиваются такие направления, как мгновенная передача сообщений (Instant Messaging), распределенные вычисления, прямой обмен файлами между компьютерами пользователей (сети Peer-to-Peer), и другие. В данной диссертации рассматриваются технологии создания и управления Web - сайтами.
Web - сайт представляет собой набор статических или динамических страниц информации, предоставляемых по сетевому протоколу HTTP (Hyper Text Transfer Protocol [104], [22]) и представленных обычно в формате данных HTML (Hyper Text Markup Language [57], [103], [68]), который содержит сами данные и информацию по способу их отображения для получателя [25]. При современном быстром развитии технологий помимо HTML и HTTP сейчас уже разработаны другие протоколы и языки разметки [29], например HTTPS - протокол передачи данных, обеспечивающий шифрование, XML (Extensible Markup Language [67]) - универсальный формат передачи данных, XSLT (Extensible Stylesheet Language Transformation [74]), но HTML, или его расширение до XML грамматики - XHTML [14], являются основой для большинства сайтов. Все основные стандарты сетевых протоколов, языков разметки разрабатываются международным консорциумом World Wide Web Consortium (W3C) и могут быть найдены на Web - сайте консорциума. Страницы
располагаются на сервере Интернет, также называемом Web - сервером. Web - сервер
представляет из себя один или несколько компьютеров, находящихся под управлением программы, также называемой Web - сервером, предоставляющих доступ к своим данным по сетевым протоколам и имеющим уникальный постоянный адрес в сети Интернет. Для доступа к Web - сайтам, помимо подключения к сети, Интернет пользователю необходимо специальное программное обеспечение - Web -браузер. Web - браузер является программой, позволяющей устанавливать соединение с Web - серверам посредством стандартных протоколов соединения (HTTP, HTTPS, FTP), поддерживающей язык разметки HTML, язык исполнения программ на стороне клиента JavaScript и ряд других функций, таких как поддержка конфигурационных файлов данных стороны клиента (cookies), сертификаты шифрования данных по протоколу SSL, и т.д. Web - браузер преобразует данные, полученные от Web -сервера в вид, удобный для пользователя, и на основе действий пользователя формирует и отправляет новые запросы к серверу.
Популярность Web - сайтов объясняется такими важными факторами как простота использования, доступность, эффективность представления информации, безопасность доступа. В России широкое использование Интернет началось позднее, чем в США и Европе, но сейчас уже насчитывается 12,1 миллиона пользователей Интернет (данные Интерфакс на лето 2003 года [98]), что заставляет компании задуматься о том, какие конкурентные преимущества должен иметь их сайт. Помимо привлекательного дизайна и удобства использования, которые заслуживают отдельного изучения, главную роль играет информационное наполнение сайта. Пользователи приходят на сайты в поисках информации, и, если они ее не находят, то покидают сайт. Актуальность данной проблемы подтверждается исследованиями и разработками в области пользовательского интерфейса, дизайна и наполнения сайта, современных компаний и специалистов по Web - интерфейсу, таких как Якоб Нильсен [26], [27]. Для привлечения пользователей на сайтах стараются размещать как можно больше полезной информации, но и этого недостаточно. Сейчас пользователи Интернет ищут динамическую информацию, такую как котировки акций, курсы валют, рабочие вакансии, политические новости, прогноз погоды. Именно предоставление динамического, и даже персонифицированного содержимого
способно привлечь посетителей на сайт, заставить их возвращаться на него снова и снова. Таким образом, обеспечение динамического наполнения - один из ключей к успеху Web - сайта. При этом сайт становится полнофункциональным приложением, имеющим Web - интерфейс, т.е. фактически Web - приложением [19].
Существует два типа Web - приложений: приложения серверной стороны, и приложения клиентской стороны. Приложения серверной стороны - это программное обеспечение, установленное и выполняющееся на Web - сервере при получении запроса пользователя для генерации страниц с динамическим содержанием. Клиентское приложение или приложение стороны клиента - это программное обеспечение, код которого передается клиенту с Web - сервера и выполняется на машине клиента. Подходы, используемые приложениями клиентской и серверной стороны различны, и зачастую необходимо применять комбинированный подход, т.е. использовать оба вида приложений. Однако все виды технологий клиентской стороны обладают однотипными недостатками: ограничениями по безопасности (ActiveX [88]), производительности (Java Applets, JavaScript) [36], либо платформе функционирования (Macromedia Flash, ActiveX), поэтому предпочтение при создании сложных систем отдается приложениям серверной стороны.
Создание Web - приложений серверной стороны связано со значительными трудностями, обусловленными распределенной природой приложений [15], работой в режиме запрос-ответ. Для облегчения создания таких приложений создаются платформы приложений серверной стороны. Они реализовывают типовые задачи и предоставляют разработчикам расширенные возможности. Однако для дальнейшего развития Web - систем нужны более высокоуровневые средства разработки, выполняющие роль конструктора сайтов, самостоятельной единицы управления сайтом, и внешней оболочки Web - приложений, т.е. системы управления сайтами.
На данный момент ведутся активные исследования и разработки подобных систем отечественными и зарубежными учеными и компаниями, однако существующие разработки лишь частично удовлетворяют современным требованиям, таким как компонентная архитектура, визуальное управление, масштабируемость, удаленное управление многоязыковая поддержка.
Цель работы. Целью диссертационной работы является разработка методов и средств управления сайтами на основе объединения компонентного подхода и шаблонов дизайна, а также полная программная реализация, отвечающая современным требованиям к системам управления сайтами по архитектуре, производительности, переносимости, масштабируемости.
Фундаментом научного подхода к разработке методов и средств, представленных в данной работе, является современная теория построения динамических объектных систем.
Объекты и задачи работы.
1 Платформы приложений серверной стороны
Основные задачи:
- исследование на основе анализа существующих платформ, определение
недостатков;
2 Системы управления Web - сайтами
Основные задачи:
анализ существующих систем, классификация, определение недостатков;
выработка требований к системе управления сайтами;
3 Архитектура системы управления сайтами
Основные задачи:
разработка модели системы на основе компонентного подхода;
адаптация архитектуры Модель - Вид - Управление для Web - приложений;
4 Производительность Web - приложений
Основные задачи:
разработка алгоритма обработки запросов Web - приложением;
разработка модели и алгоритма частичного кэширования динамических страниц, оценка эффективности модели;
реализация систем кэширования, сравнительное тестирование производительности системы управления сайтом, сбор статистических данных;
5 Программные средства реализации системы управления сайтами
Основные задачи:
разработка программной реализации системы управления сайтами и сопутствующих подсистем;
внедрение разработанного программного комплекса управления сайтами (ПКУС);
Методы исследования. Решение задач диссертационной работы основано на фундаментальных положениях теории информации, теории массового обслуживания, теории динамических систем, теории баз данных. Экспериментальные исследования проведены на ЭВМ платформы Intel различной конфигурации, с использованием операционных систем семейств Windows и UNIX, как в сети Интранет, так и в Интернет. Обработка результатов экспериментальных исследований выполнялась с использованием ЭВМ и методов математической статистики.
Научная новизна работы состоит в создании методов, алгоритмов и совокупности научно обоснованных решений, обеспечивающих создание средств управления сайтами на компонентной основе. В процессе исследований и разработок получены новые научные результаты, а именно:
проведен сравнительный анализ существующих платформ Web - приложений и систем управления сайтами и осуществлена их классификация;
разработан автоматизированный метод генерации страниц сайтов на основе компонентно - шаблонной модели;
разработана модифицированная архитектура Модель - Вид - Управление для Web - приложений;
разработан алгоритм частичного кэширования динамических страниц;
разработан комплекс программных средств для построения Web - сайтов на компонентной основе с визуальным Web - управлением (ПКУС Visibricks);
Практическая ценность работы. Разработанные средства программно-алгоритмической реализации компонентной системы управления Web - сайтом позволяют создавать Web - системы любого уровня сложности на основе повторно используемых компонент, осуществлять управление отдельными компонентами, модулями и сайтами целиком.
Архитектура, созданная на основе структуры Модель - Вид - Управление для Web - приложений и компонентного подхода может быть использована для разработки других подобных систем, поскольку не накладывает ограничений на используемые средства разработки или платформу. Созданный комплекс программных средств является независимым как от операционной системы, так и от СУБД, что значительно расширяет спектр программно-аппаратных платформ применения.
Визуальная среда управления, пакетная структура сайтов, компонентная модель сборки страниц снижают время и затраты, необходимые на разработку и поддержку программного продукта, эффективно разделяют работы разработчиков и верстальщиков, снижают требования к квалификации персонала, что приводит к значительному экономическому эффекту.
Разработанные алгоритмы обработки запросов, однопроходного анализа кода шаблонов позволяют минимизировать затраты процессорного времени на работу самой системы, довести производительность системы до уровня базовых платформ приложений серверной стороны. Модель и алгоритм частичного кэширования динамических страниц позволили значительно снизить время генерации страниц в сравнении со стандартным подходом кэширования страниц целиком. Благодаря этим мерам была достигнута производительность системы на 38-78% выше ближайших конкурентов как на Windows, так и на Linux платформе по результатам тестирования.
Комплекс тестов производительности, созданный для 5 платформ приложений серверной стороны, позволил провести сравнительную оценку самих платформ, производительности для определенной аппаратной конфигурации, и может использоваться для тестирования других систем или программно-аппаратных конфигураций.
По результатам внедрения программных решений в ПКУС Visibricks и сайтах, созданных на его основе, в компании Software Experts были решены проблемы эффективного построения и управления Web - системами, что позволило снизить затраты на разработку, внедрение и обслуживание.
Реализация и внедрение результатов исследования. Программная реализация комплекса управления сайтами была внедрена в компании Software Experts при разработке продукта Visibricks, что подтверждено соответствующим актом о внедрении.
Все полученные в работе результаты доведены до уровня инженерных методов, алгоритмов и ПО. Все работы по реализации и внедрению проводились под руководством и при непосредственном участии автора как руководителя и ответственного исполнителя.
На защиту выносятся следующие основные научные результаты:
алгоритм частичного кэширования динамических страниц с формализацией модели и определением вероятности попадания байта запроса в кэш;
метод генерации страниц сайтов на основе компонентно - шаблонной модели;
комплекс программных средств для построения Web - сайтов на компонентной основе с визуальным Web - управлением (ПКУС Visibricks);
модифицированная архитектура Модель - Вид - Управления для Web-приложений;
Апробация работы. Основные положения и результаты диссертации докладывались и обсуждались на следующих научных конференциях:
8-й Всероссийской межвузовской научно-технической конференции студентов и аспирантов «Микроэлектроника и информатика - 2001» (Москва, МИЭТ, 2001).
9-й Всероссийской межвузовской научно-технической конференции студентов и аспирантов «Микроэлектроника и информатика - 2002» (Москва, МИЭТ, 2002).
Ежегодная студенческая школа-семинар "Новые информационные технологии" (Судак, Крым, 2002)
10-й Всероссийской международной научно-технической конференции студентов и аспирантов «Микроэлектроника и информатика - 2003» (Москва, МИЭТ, 2003).
Публикации. По материалам диссертации опубликовано 6 статей и тезисы 4 выступлений.
Работа над диссертацией проводилась в плане решения задач согласно «Приоритетным направлениям развития науки, технологии и техники Российской Федерации» и в соответствии с «Перечнем критических технологий Российской Федерации».
Структура и объем работы. Диссертационная работа изложена на 181 странице машинописного текста, иллюстрирована 38 рисунками и 7 таблицами. Она состоит из введения, четырех глав, заключения, списка литературы из 107 наименований и двух приложений.
В первой главе проведен анализ аспектов разработки приложений серверной стороны, даны определения основных понятий, а также проанализированы существующие платформы приложений серверной стороны, подходы к разработке систем управления сайтами, сформулированы требования к подобной системе.
Во второй главе представлена концепция предлагаемого решения, даны описания компонентно - шаблонного подхода к генерации страниц, адаптации архитектуры Модель - Вид - Управление, формализованные модели обработки запросов и предлагаемой системы кэширования.
В третьей главе рассмотрены аспекты реализации ПКУС, архитектура системы управления сайтами, даны определения базовых сущностей, описание взаимодействия компонент, подсистем переноса пакетов, расширений системы, безопасности, кэширования. Также описаны решения, примененные при разработке визуальных средств управления страницами и блоками.
В четвертой главе проведен анализ разработанной реализации ПКУС с точки зрения переносимости на различные программно - аппаратные конфигурации и тесты производительности.
В заключении сформулированы основные выводы и результаты диссертационной работы.
В приложениях приведены результаты моделирования системы частичного кэширования, результаты испытаний ПКУС Visibricks и платформ приложений серверной стороны для Windows и Linux, а также акты внедрения результатов работы.
Требования к платформам приложений серверной стороны
На сегодняшний день существует ряд популярных платформ приложений серверной стороны. Для их качественного сравнения, анализа, выявления недостатков и преимуществ необходимо сформулировать требования к таким платформам. Эти же требования могут применяться и к следующему уровню разработки - системам управления сайтами, которые будут рассмотрены позднее. Требования одинаковы, поскольку определяются исходя из потребностей конечного продукта - Web -системы, а платформы и системы управления сайтами служат средством создания и поддержки Web - систем. Поэтому, если платформа Web - приложений не отвечает требованиям, изложенным ниже, построение на ее основе Web - системы, отвечающей этим требованиям будет значительно затруднено и потребует дополнительных усилий разработки.
При построении конкретной Web - системы требования могут существенно отличаться и накладывать дополнительные ограничения на платформу Web -приложений. Тем не менее, можно выделить наиболее существенные требования, предъявляемые на данный момент к платформам Web приложений:
Независимость от операционной системы (многоплатформенность). Платформы Web приложений в свою очередь базируются на операционных системах, таких как Microsoft Windows, Solaris, Linux, FreeBSD. Web - приложения редко являются обособленными, им необходимо взаимодействовать с другими подсистемами, интегрироваться с существующими приложениями, либо соответствовать стандартам организации разработчика в части операционной системы. Поэтому ограничения по выбору операционной системы являются нежелательными, поскольку ограничивают потенциальный спектр решений и делают перенос приложения при смене платформы невозможным. Во многих случаях при разработке заранее известно, что операционная система жестко зафиксирована и не будет меняться. При этом можно отказаться от условия независимости от операционной системы. Но в общем случае независимость требуется, например, при разработке систем крупного масштаба, которые должны интегрироваться с существующими системами.
Язык реализации. В каждой из платформ Web - приложений используется определенный язык программирования. В большинстве случаев это один язык, однако, есть и исключения, например ASP поддерживает два языка, a CGI или .NET вообще не ограничены определенными языками. При этом все достоинства и недостатки применяемого языка программирования становятся достоинствами и недостатками платформы Web - приложений. Современные условия разработки диктуют определенные требования, такие как поддержку объектно-ориентированного подхода, компонентных технологий, удобство в использовании, существование достаточного количества сторонних библиотек. Поэтому при рассмотрении платформ реализации необходимо учитывать язык разработки.
Производительность, масштабируемость. При построении мощных Web -систем, поддерживающих тысячи пользователей, недостаточно оптимизировать код. Необходимо иметь дополнительные средства платформы приложений серверной стороны. Желательно иметь встроенные системы кэширования, балансировки нагрузки, кластеризации. Наличие таких средств необязательно для небольших Web - систем, посещаемость которых невысока. Поэтому при выборе платформы разработки должна учитываться прогнозируемая нагрузка.
Возможности расширения и интеграции. Любая разрабатываемая система должна быть рассчитана на перспективу. При успехе проекта и развитии приложения потребуется создавать новый код, разрабатывать новые страницы, изменять уже существующие. Поэтому возможность развития систем является критичной. Стандартными средствами поддержки такого развития является использование компонентных технологий, стандартных протоколов обмена информации. Частично такие возможности могут быть разработаны в самой системе, но гораздо эффективнее иметь их в платформе Web - приложений.
Компонентная модель управления сайтами
На основе анализа существующих базовых технологий и систем построения сайтов, для реализации была выбрана технология Java Servlets. Эта технология обладает достаточно высокой производительностью, благодаря запуску обработки запросов на один обработчик (сервлет) в одном процессе. Для того чтобы полностью воспользоваться преимуществами данного механизма, и совместить его с компонентным подходом, предлагается использование одного сервлета для всех запросов (ядро системы) приведенного на Рис. 2-1. Запрос передается ядру - сервлету обработчику. Он производит анализ запроса, после чего совершает необходимые действия - либо специфические (обработка формы, передача запроса на другой адрес, выдача сообщения об ошибке), либо, в общем случае, производит сборку страницы из составляющих ее компонент, отвечающих за отдельные участки кода, и передает результат клиенту. Для описания страниц используется совмещение шаблонного подхода с компонентным. Страница использует шаблон представления, который может использоваться многократно. Шаблон содержит статическую часть и обозначения зон, в которые могут помещаться компоненты. Зона помечается специальным тэгом и уникальным для страницы именем, что позволяет легко хранить структуру страниц, указывая ссылки на вхождения компонентов в страницы по зонам. Ниже приводится пример шаблона страницы: table border=0width=100% tr td img border=0 src= "/images/logo. gif /td /tr tr td {%information%} /td /tr tr td Copyright 2003 Software Experts /td /tr /table Из листинга видно, что шаблон включает в себя разметку страницы на три горизонтальные части, две из которых статические, а средняя - information, позволяет вставлять код из динамических компонент. В каждую зону может быть включено любое количество компонент с индивидуальными для данной страницы параметрами. Страницы собираются из кода шаблонов и кода, генерируемого программными компонентами. Компоненты поддерживают единый стандартизованный интерфейс, позволяя компоновать их на странице любым способом, использовать повторно, передавать и распространять. Таким образом, для генерации страниц предлагается полноценный компонентный подход, что отличает систему от обычных шаблонных. Тем не менее, шаблоны отличаются большим удобством использования и наглядностью для разработчика, поэтому в ядро системы встраивается возможность использования шаблонов, как на уровне страницы, так и на уровне отдельных компонент. При этом шаблоны содержат не обращения к каким-либо внешним ресурсам, а к другим компонентам. Иллюстрация такого совместного применения шаблонов и компонентного подхода приведена на и Рис. 2-2 и Рис. 2-3. Как видно из Рис. 2-2 страница строится на основе шаблона, содержащего как статический текст, так и вызовы к компонентам. Это позволяет выработать единый шаблон дизайна для раздела сайта или для сайта в целом, и вызывать различные компоненты на разных страницах. Такая возможность значительно сокращает время разработки, исключает дублирование работ и уменьшает возможность ошибки. Повторно использоваться на сайте могут такие блоки, как блок аутентификации. При этом для вызываемых компонент также имеется возможность использования шаблонов. Рис. 2-3 показывает вариант такого использования. Повторно используемые компоненты, вызываемые из других компонент, могут содержать часто используемые участки кода оформления, например обрамление информационных блоков, а также небольшие, часто используемые элементы данных, например текущее время. Такая схема работы сайта, основанная на компонентном подходе, предоставляет массу преимуществ, по сравнению с классической схемой, когда страницы сайта хранятся целиком, в виде отдельных файлов. Многие из этих преимуществ проявляются при рассмотрении различных аспектов и будут рассмотрены в соответствующих разделах, однако сейчас остановимся на непосредственных архитектурных преимуществах. Компонентная система дает возможность распределять исполняемые компоненты по их функциям. Так, компонент, ответственный за работу с защищенной подсистемой может находиться внутри системы и не иметь отдельного доступа извне. Это позволит повысить уровень безопасности. Компонент, отвечающий за обработку больших массивов данных, может размещаться на отдельной мощной машине, в то время как запросы, не требующие таких ресурсов, могут выполняться на обычных компьютерах. Дополнительным преимуществом компонентной системы является единообразие обработки. При этом сбои в работе отдельных компонент могут обрабатываться соответствующим образом и не влиять на работу системы в целом. Повторное использование компонент, особенно при возможности их автоматического внесения на все страницы раздела или целого сайта сокращает время разработки, упрощает взаимодействие внутри команды разработчиков, уменьшает вероятность ошибок. Примером такого сокращения может служить компонент, отвечающий за проверку прав пользователя на страницы. При его автоматической установке на все страницы сайта пропадает необходимость в дополнительных проверках, поскольку возможность показа страницы определяется этим компонентом.
Архитектура системы управления сайтами
В данном разделе мы рассмотрим структурную основу системы - опишем основные объекты, их взаимосвязь, назначение и отношения. Для точного описания архитектуры системы, дадим определения ее основным сущностям, и рассмотрим их взаимосвязь. Базовые структурные сущности и их отношения проиллюстрированы диаграммой на Рис. 3-1 (использована нотация UML [6]). Секция (Section) - структура, объединяющая набор страниц по общей функциональности, административным правам доступам, или иным соображениям. Имя секции присутствует в адресе страницы, поэтому должно быть уникальным в системе. Разметка (Layout) - шаблон страницы, описывающий визуальную конфигурацию всех функциональных и оформительских участков страницы. Для обычных сайтов разметка описывается на языке HTML (в общем случае это может быть любой язык разметки, например XML для построения XML документов, или WML для WAP сайтов). В описание включены специальные тэги, отмечающие зоны страницы, куда могут быть помещены блоки. Разметка может быть повторно использована любой страницей на любой секции. Зона (Zone) - место для помещения блоков на страницу. Зона определяется внутри разметки. Порядок генерации блоков в зоне определяется специальным свойством блоков. Зоны имеют собственные имена, уникальные внутри страницы. Имена описывают либо визуальное расположение зоны (центр, верх, низ), либо предполагаемую функциональность помещаемых в зону блоков (меню, логотип, примечания). Совпадение имен зон для разных разметок может быть использовано при сквозном включении блоков (см. ниже). Язык (Language) - язык, или языковая кодировка, поддерживаемая системой (например русская кодировка Ср1251, латинская ISO-8895-1, и т.д.). Имя языка присутствует в адресной строке, поэтому каждый блок страницы или вся разметка могут быть выбраны для конкретного языка. Вид (View Туре) - поддерживаемый вид просмотра страницы. Используется аналогично языку и применяется для разделения шаблонов одних и тех же страниц для разных условий, например печати, просмотра в графическом браузере, текстовом браузере, различных экранных разрешениях. Также применяется для генерации страниц, отличных от HTML, например WML (при этом необходимые заголовки форматов генерируются автоматически). Виды, как и языки, поддерживаются блоками и разметками. Страница (Page) - представляет страницу сайта. Страница строится на основе разметки, и состоит из кода разметки и блоков, размещенных в зонах разметки. Страница является конечной сборкой всех сущностей и ее код отсылается непосредственно пользователю. Блок (Brick) - реализация шаблона, помещенная на страницу. Блок наследуется от одного из шаблонов со специфическими параметрами. Параметры определяются базовым классом Java (см. объект привязки). Блок может быть помещен как на конкретную страницу сайта, так и на все страницы секции или всего сайта (сквозное размещение). При сквозном размещении блок попадает на все страницы секции или сайта, на которых он размещен, и на которых присутствует зона на которую блок ссылается. Это позволяет гибко управлять появлением блока на странице с помощью нескольких шаблонов, включающих, или не включающих предназначенную для блока зону. Блок привязан к конкретному языку или виду, или универсален. Шаблон (Stencil) — описывает шаблон генерации блоков. Шаблон не зависит от страницы, языка, или вида и может быть использован для разных блоков-наследников на различных страницах. Функциональность шаблона зависит от базового класса Java, описываемого объектом привязки. Таким образом шаблон является наследником сущности привязки. Обычно шаблон является кодом, предназначенным для повторного использования во множестве мест как без изменений, так и специфицированным параметрами блока. Однако конкретная функциональность зависит от реализации Java класса привязки. Привязка (Binder) - сущность, связывающая класс Java с его шаблоном. Используется для наследования шаблонами. Папка (Folder) - контейнер для логических сущностей, не имеющих визуального представления (шаблон и привязка). Используется для структурирования объектов системы, фильтрации и повышения скорости работы.
Портируемость решения
Поскольку система разрабатывалась для использования в различных технических условиях важным фактором рассмотрения является портируемость решения, то есть возможность перенесения на другую операционную систему, Web -сервер и т.д. без существенных затрат на доработку или индивидуальную настройку. Для оценки возможностей по переносимости системы необходимо проанализировать возможные конфигурации внедрения ПКУС. Программная конфигурация внедрения представлена на Рис. 4-1. Основными внешними компонентами конфигурации, имеющими различные реализации и используемыми в различных комбинациях, являются следующие: Операционная система; Виртуальная Java машина (JVM); Web сервер; Сервлет контейнер; СУБД. Рассмотрим каждую из компонент по отдельности, а затем их различные комбинации. Различия в операционных системах имеют значение даже не смотря на использование межплатформенной технологии Java. Несмотря на независимость исполняемого байт-кода от операционной системы существуют различные отклонения от одинаковой работы. В частности это может быть связано с использованием технологий, зависимых от операционных систем (например Java Native Interface, библиотеках связи с объектами СОМ). По этой причине для каждой из используемых Java технологий проводился анализ ее независимости от конкретной операционной системы. В ПКУС Visibricks платформо - зависимые операции не использовались, а интерфейс пользователя был полностью осуществлен на основе Web. Таким образом была достигнута максимальная степень совместимости с различными операционными системами, возможная на Java (т.н. Pure Java). Из серверных операционных систем в последнее время наиболее широко распространены Windows, FreeBSD, Linux. ПКУС был установлен и опробован на всех упомянутых операционных системах (использовались следующие версии систем: Microsoft Windows 2000 Professional, Microsoft Windows 2000 Advanced Server, Microsoft Windows XP Professional, FreeBSD 4.7, Mandrake Linux 8.2, Linux Red Hat 7.3). Функциональное тестирование не показало сбоев или ошибок, вызванных различиями в ОС, что позволяет сделать вывод, что портируемость для различных ОС была достигнута. Поскольку ПКУС основывается на Java технологии, присутствует зависимость от конкретной версии Java. Различные версии JVM от компании Sun Microsystems обладают различным набором функций. При выборе минимальной версии для поддержки необходимо учитывать следующие факторы: распространенность версии среди серверов размещения Web - сайтов, преимущества определенной версии. При выборе базовой версии JVM для сочетания наилучшей функциональности и совместимости была выбрана версия 1.3.1. На момент разработки последней версией является 1.4.1, но, несмотря на уже достаточный опыт использования, данная версия еще не достаточно распространена. Однако совместимость этих версий достаточна для успешной работы ПКУС как на базовой, так и на более новой JVM. Тестирование проводилось на обеих версиях и показало полную функциональность. Результаты проверок на совместимость с различными версиями JVM показывают, что ПКУС работает на версиях 1.3.1, 1.4.1, что является достаточным на настоящий момент и, сможет использоваться на ближайших будущих версиях JVM. Привязка к конкретному Web - серверу ведет к ограничению сферы использования ПКУС. Благодаря работе в сервлет контейнере прямых обращений к серверу удается избежать, возложив задачу совместимости на сервлет контейнер. Visibricks не использует прямых вызовов сервера, поэтому может функционировать на любом Web сервере, для которого существует один из поддерживаемых сервлет контейнеров. Проверка практического использования проводилась на наиболее популярном в данный момент Web - сервере Apache [1], [72] (версия 1.3.27), а также на встроенном в ОС Windows сервере IIS (версия 5.0). Проверка сервера Apache осуществлялась на операционных системах Windows, Linux, FreeBSD, сервер IIS работает только на ОС Windows. Результаты использования показали полную функциональность ПКУС на указанных серверах, что обеспечивает применимость на большинстве платформ размещения Web - сайтов и позволяет надеяться на возможность успешного внедрения на других Web - серверах. Взаимодействие с запросами и ответами протокола HTTP ПКУС осуществляет с помощью сервлет контейнера. Необходимость проверки работоспособности на всех сервлет контейнерах мала, поскольку они основаны на стандартном протоколе взаимодействия Servlet API от компании Sun Microsystems, a Visibricks не использует индивидуальных особенностей контейнеров. Разница состоит в версиях Servlet API, а также возможном использовании особенностей конкретного контейнера.