Содержание к диссертации
Введение
1 Анализ существующих технологий и систем построения web-приложений . 10
1.1 Типовые требования к системам, функционирующим на основе сетевых технологий.. 10
1.2 Классификация существующих web-технологий, анализ достоинств и недостатков 12
1.3 Анализ технологий, используемых для построения распределенной системы, осуществляющей функционирование web-приложений 18
1.4 Выводы 25
2. Разработка универсальной технологии высокоэффективного построения web-приложений 27
2.1 Математический аппарат для описания функционирования web-приложений 27
2.2 Структура распределенного приложения 39
2.3 Выводы.:..: 47
3. Методы корпоративного построения web-приложений 48
3.1 Разработка механизма внутреннего функционирования web-приложений 48
3.2 Структуры объектов web-приложений 56
3.3 Алгоритм построения web-приложения на базе универсальной платформы 67
3.4 Выводы... 73
4. Реализация web-приложений, разработанных с использованием методов корпоративной разработки 75
4.1 Практическое сравнение классического подхода к построению web-приложений и подхода, основанного на использовании корпоративной технологии 75
4.2 Исследование эффективности применения методики проектирования web-приложений с использованием корпоративных технологий 98
4.3 Выводы 111
Заключение 110
Список литературы 112
Приложение 121
- Классификация существующих web-технологий, анализ достоинств и недостатков
- Анализ технологий, используемых для построения распределенной системы, осуществляющей функционирование web-приложений
- Структура распределенного приложения
- Алгоритм построения web-приложения на базе универсальной платформы
Введение к работе
Актуальность темы
Широкое использование сети Интернет как среды для передачи информации и технологии World-Wide-Web как средства для ее обработки и отображения на экране пользователей, в последнее время приводит к увеличению разработок web-приложений (программ, для работы в глобальной сети передачи данных) [29]. В первую очередь, это связано с обеспечением возможности их использования широким кругом пользователей, не ограниченным какими-либо территориальными рамками, а также тем, что значительно сокращаются требования к ресурсам персонального компьютера пользователя и программному обеспечению, установленному на нем. Иначе говоря, достаточно иметь лишь компьютер, подключенный к сети Интернет, и любую свободно-распространяемую программу для просмотра Интернет-страниц, установленную на нем [61,70].
Однако разработка таких информационных систем требует проектирования и использования дополнительных модулей для обеспечения их функционирования. Указанное обстоятельство обусловило выбор объекта исследования диссертации, который может быть охарактеризован, как программный комплекс для разработки и сопровождения интерактивных информационных систем в среде Интернет на базе web-технологий.
Изначально. WWW создавался только как средство, предоставляющее графический интерфейс в Интернет и упрощающее доступ к информации, распределенной - по миллионам компьютеров по всему миру. При этом основными компонентами являлись страницы, узлы, браузеры и сервера Web [5]. Основой для навигации по Интернет стало использование технологии гипертекста, поддерживаемой протоколом HTTP [75] (Hypertext Transfer Protocol) и стандартом языка HTML [55] (Hypertext Markup Language). Однако возможности данной технологии обеспечивают много большую функциональность, чем просто навигация, в ней имеются практически все необходимые свойства и элементы для создания полноценного, графического пользовательского интерфейса.
Появление технологии CGI (Common Gateway Interface) решило проблему обмена информацией между сервером Web [22] и такими программами, как базы данных, которые не могут непосредственно обмениваться данными с web-браузерами.- В результате появилась возможность реализации интерактивного' взаимодействия конечного пользователя с программами, работающими на стороне Web-сервера, которые обрабатывали информацию, введенную пользователем в браузере, и в качестве результата возвращали сформированную HTML-страницу. Практически все такие программы (web-приложения) требуют использования базы данных, а существующие решения доступа к БД в среде Интернет основаны именно на данном подходе.
Появление і языка Java предоставило разработчикам информационных систем абсолютно новые технологические решения построения приложений в среде Internet/Intranet, при этом технологии WWW, базирующиеся на языке HTML, протоколе HTTP и CGI, не являются приоритетным направлением языка Java, позволяющим решать задачи гораздо более широкого класса [30]. ' Было разработано множество способов создания алгоритмов web-программ и методов организации вычислительных процессов [10, 27, 41]. Но все они имеют ряд недостатков. Во-первых, разработка практически любого web-приложения требует от программиста специальных знаний по всем задействованным в работе программным продуктам. Во-вторых, при проектировании алгоритма существует ряд операций, которые являются рутинными, но их приходится разрабатывать заново. В-третьих, текст jl программы получается громоздким и трудночитаемым, что обусловлено необходимостью использования функций, отвечающих за представление результатов в формате языка HTML. Это влечет за собой значительное повышение трудности задачи модификации приложения. Но самое главное - это сложность обеспечения возможности корпоративной разработки, т.е совместной работы нескольких разработчиков, т.к. все модули настолько тесно связаны между-собой, а каждая такая связь настолько индивидуальна, что определить четкий набор и структуру данных, пересылаемых из одного модуля в другой, становится возможным только по окончании проектирования модуля. ! - w і < Указанное обстоятельство обусловило выбор предмета исследований диссертации, который может быть охарактеризован, как методы корпоративной разработки алгоритмов приложений на основе Web-технологий, сводимые к определению взаимодействия между компонентами.
Целью диссертационной работы является сокращение времени проектирования интерактивных web-приложений за счет распараллеливания процесса разработки между несколькими программистами и универсализации программного кода. >
В соответствии с поставленной целью автором решены следующие задачи: (.>'> і :.: - разработана методика построения web-приложении, упрощающая создание программ за счет распараллеливания работы между несколькими разработчиками; предложен механизм внутреннего функционирования web-приложений, поддерживающий взаимодействие компонент и комплексов, задействованных в работе web-приложения; созданы методы построения web-приложений в соответствии с разработанным алгоритмом их внутреннего функционирования; разработан комплекс алгоритмов и программных средств для создания и администрирования web-приложений; проведены : экспериментальные исследования, подтверждающие эффективность' разработанной методики.
Методы исследования. Проведенные исследования основаны на методах теории алгоритмов и теории графов. Разработка алгоритмов и программ осуществлялась на основе объектно-ориентированного подхода к организации данных и алгоритмов с учетом специфики построения сервер-ориентированных клиент-серверных систем.
Научная новизна работы заключается в следующем: на основе анализа особенностей технологии программирования в глобальной сети передачи данных разработана методика проектирования web-приложений с использованием объектно-ориентированного подхода; разработан математический аппарат для описания функционирования web-приложений, позволяющий разделять программу на отдельные части, что обеспечивает корпоративность разработки, а, соответственно, и сокращение сроков проектирования web-приложений; - решена задача эффективного поиска компонент приложений, используемого при их разработке; ж - определены структуры и методы основных базовых классов, необходимых для реализации алгоритмов web-приложений
Практическая ценность работы заключается в разработке алгоритмического и программного обеспечения, осуществляющих взаимосвязь между комплексами и компонентами, используемых при разработке и модификации web-приложений.
Реализация результатов диссертационной работы. Прикладные результаты диссертационной работы использовались при выполнении гранта
РФФИ: №03-07-96395 "Создание информационно-справочной системы в '&' рамках региональной компьютерной сети TPNet" и сотрудничестве с компаниями ЗАО ''Тульские Ай-Ти Лаборатории" и ЗАО ИПП "Гриф и К".
Теоретические результаты работы используются при изучении в дисциплинах "Системы и сети передачи информации" и "Сети ЭВМ и телекоммуникации" кафедры ЭВМ Тульского государственного университета.
Апробация работы. Основные положения диссертационной работы докладывались на следующих конференциях. 1. IV Конференция ассоциации научных и учебных' организаций-пользователей сетей передачи данных Relarn IV (Нижний Новгород, 1997); 2. V Международная научно-методическая конференция "Телематика - 1997" (Санкт-Петербург, 1997); 3. Конференция ассоциации научных и учебных организаций-пользователей сетей передачи данных Relara V (Самара, 1998); 4. VI Международная научно-методическая конференция "Телематика -1998" (Санкт-Петербург, 1998); 5. Международная конференция ИОЛ-99 (Санкт-Петербург , 1999); 5. VII Международная научно-методическая конференция "Телематика - 1999" (Санкт-Петербург, 1999); 6. VIII Международная научно-методическая конференция "Телематика - 2000 (Санкт-Петербург, 2000); 7. X Всероссийская научно-методическая конференция "Телематика 2003"; 8. Международная молодежная научная конференция "XXVII Гагаринские чтения" (г. Москва, МАТИ, 2001 г.); 9. Международная молодежная научная конференция "XXVIII Гагаринские чтения" (г. Москва, МАТИ, 2002 г.); 10. Научно-практические конференции профессорско-преподавательского состава ТулГУ (г.Тула 2000-2003).
Публикации. По результатам исследований опубликовано 10 работ из них 5 статей и 5 тезисов докладов.
Характеристика работы. Диссертационная работа состоит из введения, четырех, разделов .;и , заключения, изложенных на 120 страницах машинописного, текста, содержит 23 рисунка, 1 таблицу и список использованной литературы из 85 наименований. іВо введении обоснована актуальность выбора темы диссертационной работы, охарактеризован объект исследования, сформулированы цель и задачи диссертационной работы, дано краткое изложение результатов по основным разделам.
В первом разделе исследованы особенности существующих технологий построения программных средств для создания сетевых приложений. .'.;.:.. ''..!.
Обусловлен выбор технологий, положенных в основу разработанных методов для обеспечения корпоративности при разработки web-приложений.
Во втором разделе разработан способ описания процесса проектирования web-приложений. Построен математический аппарат для описания функционирования web-приложений, позволяющий разделять программу на отдельные части, что обеспечивает сокращение сроков проектирования web-приложений.
В третьем разделе предложены методы разработки web-приложений, отличающиеся от существующих местоположением обработчика пользовательского, . запроса. Показана методика проектирования web-приложений при использовании предложенных методов их внутреннего функционирования.
В четвертом разделе содержится описание алгоритмического и программного обеспечения среды, осуществляющей функционирование web-приложений, разработанных на основе предложенных методов. Произведена оценка разработанных методов, подтвердившая целесообразность их і ' і .::' . і использования для разработки сложных и многофункциональных web-приложений несколькими разработчиками.
, , В заключении сделаны выводы по работе.
В приложении приводятся копии актов внедрения результатов диссертации в промышленности.
Г г-."і Г- ' . >' ;. г:fi . . : :.: v : . . ; v,v-,:-: і :.:
Классификация существующих web-технологий, анализ достоинств и недостатков
На. сегодняшний день можно выделить три различные технологии, поддерживающие концепцию распределенных объектных систем: RMI, CORBA и DCOM [35,38].
Архитектура RMI[49] (Remote Method Invocation, т.е. вызов удаленного метода), которая интегрирована с JDK1.1, является продуктом компании JavaSoft и реализует распределенную модель вычислений. RMI позволяет клиентским и серверным приложениям через сеть вызывать методы клиентов/серверов, выполняющихся в Java Virtual Machine. Хотя RMI считается легковесной и менее мощной, чем CORBA и DCOM, она, тем не менее, обладает рядом уникальных свойств, таких как распределенное, автоматическое управление объектами и возможность пересылать сами объекты от машины к машине. На рисунке 1.2 показаны основные компоненты архитектуры RMI.
Client Stub (переходник для клиента) и Server Stub (переходник для сервера) порождены от общего интерфейса, но различие между ними в том, что client stub служит просто для подсоединения к RMI Registry, a server stub используется для связи непосредственно с функциями сервера.
Технология CORBA [48, 65](Common Object Request Broker Architecture, т.е. архитектура брокера общих объектных запросов), разрабатываемая OMG (Object Managment Group) с 1990 года, позволяет вызывать методы у объектов, находящихся в сети где угодно, так, как если бы все они были локальными объектами. На рисунке 1.3 показана основная структура CORBA 2.0 ORB, из которого следует, что для обеспечения функционирования приложений, необходимо разработать и описать следующие модули:
Интерфейс динамического обращения (DII) позволяет клиенту находить сервера и вызывать их методы во время работы системы; Описания интерфейсов (IDL Stubs) определяют, каким образом клиент производит вызов сервера; Общие сервис — это общие как для клиента, так и для сервера сервисы системы; .. . ; . Статические интерфейсы для объектов (IDL Skeleton) обеспечивают статические интерфейсы для объектов определенного типа. Общие интерфейсы для объектов - это общие интерфейсы для объектов (независимо от их типа), которые не были определены в статических интерфейсах для объектов;
Коммуникатор осуществляет коммуникационное взаимодействие между объектом и брокером объектных запросов; Основными достоинствами и недостатками использования технологии CORBA являются: CORBA является одной из наиболее эффективных, современных и пригодных для крупных проектов технологией распределенных объектов. CORBA и DCOM чрезвычайно схожи по своей функциональности и своим возможностям (многоязыковая поддержка, динамический вызов, масштабируемость и др.), но у DCOM отсутствует важный критический элемент мультиплатформная поддержка. Одного факта, что в настоящий момент DCOM не поддерживает целиком межплатформенную переносимость, вполне достаточно, чтобы не рассматривать его как полноценное, законченное решение.
Анализ технологий, используемых для построения распределенной системы, осуществляющей функционирование web-приложений
Корпорация World Wide Web Consortium (W3C) проводит научные исследования, определяет решения и технологии, большинство из которых становятся стандартами в области Интернет и, в частности, в области Web. Среди таких стандартов наиболее ярко выделен язык XML, предназначенный для передачи и хранения информации в сети на уровне приложений [4,39,43,51]. Нижеперечисленные концепции и цели, заявленные в официальной спецификации W3C, достигаются при использовании данной технологии 1. Основным назначением языка XML является непосредственное использование в Internet. XML был разработан главным образом для : хранения и распространения информации в Web. ! 2}XML: поЪдерживает большое количество приложений.
Хотя основним его назначением является распространение информации ! в Web через серверы и программы-браузеры, XML также разработан для ; использования его другими программами. Например, XML применяется для обмена информацией между финансовыми программами, для распространения и обновления программных продуктов, а также написания голосовых сценариев при доставке информации по телефону. 3. XML совместим с SGML. XML является специализированной ветвью SGML[56]. Преимущество здесь заключается в простоте адаптации программных средств SGML для работы с HTML. 4. Упрощается написание программ, обрабатывающих XML-документы. Для практического использования XML необходимо, чтобы было достаточно просто писать браузеры и другие программы, обрабатывающие XML-документы. На деле основной причиной выделения XML из SGML была доступность написания программ для обработки XML-документов. Все перечисленные далее свойства являются в той или иной степени производными этой основной концепции. 5. Минимальное количество дополнительных функций. Минимальное число дополнительных функций в XML упрощает написание программ для обработки XML-документов. Изобилие дополнительных подключаемых., функций в SGML стало основной причиной, обусловившей,; его практическую непригодность для представления Web-документов. Дополнительные функции SGML требуют переопределения символов-разделителей для тегов (обычно ) и пропуск конечного тега с целью обнаружения процессором конца элемента.
При строгом, написании программы обработки SGML-документов необходимо учитывать возможность появления всех дополнительных функций, даже если они редко встречаются. 6. Простотаt XML-документов обеспечивает ясность при чтении его пользователем. XML призван стать lingua franca (универсальным языком) для. обмена информацией среди пользователей и программ по всему миру. В соответствии с этой концепцией пользователи, а также специализированные программы должны иметь возможность создавать и прочитывать XML-документы. Доступность и прозрачность для пользователя выделяют XML из большинства других форматов, применяемых при построении баз данных и текстовых документов. Пользователь может легко прочесть XML-документ, поскольку он описан простым текстом и имеет логичную иерархическую структуру в виде дерева. Вы можете упростить XML-документы, назначив информативные имена для элементов, атрибутов и объектов, а также добавив полезные комментарии. 7. Язык XML обеспечивает формальность и краткость. Спецификация XML написана на формальном языке, используемом для представления компьютерных языков, с нотацией, известной как расширенная форма Бакус-Наура (Extended Backus-Naur Form (EBNF)). Этот формальный язык хотя и достаточно сложен для восприятия, лишен двусмысленности и существенно облегчает написание XML-документов, а в особенности программ для их обработки. 8. Сложность создания XML-документов сведена к минимуму. /Три практическом использовании XML как языка разметки для Web-документов упрощается не только написание обрабатывающих программ, но и процесс создания самих XML-документов. Таким образом,! основой для будущей методики построения web-приложений должен быть XML и его производные, например, преобразование XML-документов в html-форму посредством XSL-таблицы и механизма XSLT[57]. Для полноценного функционирования любой системы, основанной на XML, является база данных для хранения XML-документов. Существует несколько вариантов таких БД. XML-ориентированные БД. XML-ориентированной называется база данных, которая в качестве модели данных использует графовую модель данных.
Следует отличать XML-ориентированные БД (рисунок 1.5) от реляционных БД, поддерживающих обмен данными на языке XML (рисунок 1.6) - в основе вторых лежит реляционная модель. Среди наиболее известных БД можно выделить СУБД Tamino и САСНЕ[14]. . К реляционным СУБД, поддерживающим обмен данными на XML, относятся Oracle [2,7,16,17,31], MS SQL-Server и др. Основное отличие заключается в типе передаваемых данных. , ,. Развитие, ХМЬ:ориентированных баз, обусловлено тем, что еще задолго до появления XML они использовали в качестве физического представления данных верхнего уровня структуры, аналогичные структурам XML-документов. Естественно, что и методы манипулирования ненормализованными деревьями в основном совпадают с низкоуровневыми логическими операциями над XML-документами. Что касается высокоуровневых методов, то их скорее следует считать не строгими, а прагматическими. Данные и метаданные в XML-ориентированных БД. XML-документы, имеющие одинаковые уникальные имена тегов и порядок их вложенности друг в друга, и не зависимо от количества вложенных одноименных тегов, относятся к одному классу документов и являются его экземплярами. Внутри класса экземпляры документов и их узлы различаются по уникальному идентификатору ID. Говоря языком документооборота, класс - это описание бланка документа (где и какие поля, как называются, какими чернилами заполнять, на основании чего именно, кому и когда передать документ после заполнения и т.п.), а экземпляр - один заполненный бланк. Класс описывается одним или несколькими XML-метадокументами, которые являются экземплярами соответствующих метаклассов. Сам метакласс имеет описание в виде таких же XML-метадокументов, являющихся тоже экземплярами этих же метаклассов. Таким образом, XML БД является описанной на самой себе, что удобно по ряду причин, в частности, позволяет использовать одно и то же ПО как для работы с данными, так и для работы с метаданными.
Структура распределенного приложения
В настоящее время наиболее интенсивно развиваются и широко используются приложения, работающие в сети Интернет и основанные на web-технологиях. Проанализировав все многообразие таких приложений, их структуру, можно сделать вывод о том, что все они объединены общей идеологией построения программного кода. Практически во всех приложениях можно выделить идентичные, выполняющие одинаковые функции модули и части, причем как служебного (формирование html-документа, обращение к СУБД и др.), так и алгоритмического назначения (процедура аутентификации пользователя, обработка данных форм и др.). Все эти неотъемлемые шаги любого более или менее сложного приложения связываются в единое целое механизмом, называемым бизнес — логикой, осуществляющим непосредственно реализацию алгоритма приложения. Таким образом, все они.образуют единое неделимое целое.
Именно.данный, факт и является причиной трудностей, возникающих в случае необходимости внесения изменений либо в дизайн динамически-формирующихся html-документов, либо непосредственно в бизнес-логику. Поэтому для ликвидации вышеуказанного недостатка требуется разработка принципиально нового подхода к созданию web-приложений.
Проанализировав структуру web-приложений, построенных по традиционным правилам, а также существующие internet-технологии, можно выделить ряд аспектов, подвигающих на использовании определенных комбинаций современных ресурсов для достижения поставленной цели [28].
Наиболее прогрессивной комбинацией является использование XML-технологии на, базе. Java [30]. Парадигма объектного программирования предполагает повторное использование модулей, вследствие чего не требуется повторная разработка отдельных элементов алгоритма для разных приложений. XML хорош уже тем, что позволяет отделить данные от их представления и тем самым преодолеть хаотичность HTML; упорядочить данные в деревья и списки, структурировать их и порождать из них объектные модели; описывать метаданные на метаязыке таким образом, чтобы программные модули стали абсолютно универсальными, поскольку они будут иметь дело только с XML-документами и больше ни с чем другим. Таким образом, с помощью XML можно реализовать принцип: "Данные должны управлять программами, а не наоборот".
Технология, построенная на комбинировании XML и Java, связывает воедино существующие технологии (СУБД + Web) и позволяет создать некую универсальную модель для любой программной разработки, способствующую значительному, увеличению темпов производительности труда программиста [3]. В данной технологии можно выделить три основных уровня: уровень приложений, написанных на объектно-ориентированном языке программирования , Java (2); уровень интерпретации содержимого XML-объектов (XML-Parser); уровень информационного хранилища (так называемые persistence engines. -7- объектные и реляционные базы данных, файловые системы, Web-сайты). Информацию, находящуюся в этих универсальных хранилищах, легко преобразовать в XML и наоборот, используя объектную модель, построенную на основе Java-классов и получившую название DOM (Document Object Model).
На, первом уровне разработчик создает программные модули, полностью абстрагированные, от всякой , конкретики, связанной с данными и с их представлениями, т. , е. внешними интерфейсами. Все это выносится на уровень универсального описания метаданных на метаязыке — XML. На этом уровне, также могут существовать две стратегии: клиент- и сервер-ориентированные приложения. t информация . сохраняется в XML-документах (файлах). В этом случае создается свой собственный формат описания и представления данных в XML. Данный подход ничем не будет хуже других, таких как хранение данных в объектной или реляционной базах, т.к. все операции над данными, включая их поиск и различные выборки по заданным критериям, также будут доступны через объектную модель XML.
Классический пример — адресная книга, которая может размещаться не в СУБД, а непосредственно в XML-файле (рисунок 2.3). В отличие от простейшего клиентского приложения, изображенного на рисунке 2.2, где
Java-программа отображала данные из XML-файла, используя собственные графические средства и объектную XML-модель данных, сервер ориентированные программы выполняются на сервере. На стороне клиента должен быть лишь обыкновенный браузер, обменивающийся по сети только XML-описаниями, ; существующими в виде объектов. Сами данные и связанные с ними представления в виде списков, структур, иерархий, а также описания способа их отображения могут быть получены по сети из самых разнообразных источников (рисунок 2.4).
Поскольку XML-документы позволяют хранить в себе или описывать структурированные данные, любую информацию из СУБД можно представить в виде XML-файла. Именно этой цели и служит DOM [50]. Рисунок 2.5 иллюстрирует процесс прохождения и преобразования объектной информации. Эта модель предоставляет доступ к информации, сохраненной в документе XML, в виде иерархической объектной модели.
Алгоритм построения web-приложения на базе универсальной платформы
На . представленной схеме (рисунок 3.7) вводится понятие Сессии (Session). Сессия - это своего рода временной срез, содержащий информацию . о текущем состоянии приложения во время работы с ним пользователя. Сессия является! также объектом системы и, соответственно, имеет оба представления: Java и XML. В нее в ходе работы приложения помещаются все необходимые на/данный момент структуры данных и объекты. И когда необходимо обработать какой-то элемент, он извлекается именно из сессии. Сессия создается, в і момент подключения пользователя к приложению и Л, J сохраняется вплоть до его отключения, т.е. закрытия всех окон браузера, работающих с приложением или переключением на другие ресурсы Интернета. Другая важная, особенность данной системы — это принцип реализации бизнес-логики, .Тот факт, что Java - язык объектно-ориентированный, означает, что, программирование основано на разработке классов объектов. Особенность заключается в том, что все классы web-приложения делятся на два типа: классы; поддержки страниц - page classes и поддержки бизнес-объектов business object support class (BOSC). Классы поддержки страниц реализуют логику в контексте сессии, тогда как классы поддержки бизнес-объектов реализуют ее в контексте одного бизнес-объекта. Иными словами, все, что требует оперирования двумя или более бизнес-объектами, выносится в первую группу классов, а все, что может быть выполнено в пределах одного объекта, реализуется в классах, принадлежащих ко второй группе. Корнем или основой всех классов приложения является класс верхнего уровня AppSession, содержащего именованный список активных бизнес-объектов, находящихся в сессии, а также ряд другой служебной информации. Рассмотрим общий алгоритм работы модулей платформы [62]. Пользователь набрал интернет-адрес web-приложения.
В этот момент всё управление передается главному модулю системы - контроллеру страниц. Контроллер, в свою очередь, генерирует структуру данных - сессию, в которую помещает информацию в соответствии с алгоритмом приложения. Обычно эта информация состоит из шаблона текущей страницы, в котором ссылки на поля данных и другие объекты автоматически заменяются полноценными элементами со всей необходимой внутренней подструктурой. Если же пользователь на данный момент уже подключен к серверу, т.е. приложение уже і запущено и создана сессия, а он, например, в другом окне браузера введет вновь адрес этого ресурса, то контроллер страниц оценит состояние сессии, и произведет либо сам необходимые действия, либо передаступравление необходимому модулю [59]. Как правило, приложение имеет ряд страниц, на которые возможно попасть либо только после авторизации, либо с передачей определенных параметров, либо после того и другого. Для оценки возможности вызова конкретной страницы, управление передается классу "Базовая страница (Base Page)". В нем, разработчик описывает все необходимые условия для выполнения пользовательского запроса, а также те действия, которые должны быть произведены вне зависимости от вызываемой страницы, т.е., например, в случае, если в сессии нет данных о пользователе, то система автоматически загружает для пользователя страницу с формой авторизации. .,..,Загрузка,страницы происходит следующим образом. Контроллер страниц пом введенному, адресу вычисляет название web-страницы и обращается с соответствующим запросом в СУБД [60,63,64], в специальный раздел Page, в котором хранятся, прототипы всех страниц приложения. Если такого прототипа не обнаружено, пользователю выдается сообщение об ошибке. Обработка прототипа начинается с преобразования ссылок на шаблоны (template-link) бизнес-объектов. Каждая ссылка должна иметь следующий синтаксис: storage:link storage:template "tl" docType= "USER " name-in- session="user"/ где storageilink— указание на то, что данный элемент является ссылкой на шаблон; storage:template- имя шаблона, под которым он хранится в базе; docType- название XML-схемы, к которой принадлежит шаблон; name-in-session - имя документа, под которым шаблон будет помещен в сессию. После такого преобразования ссылка заменяется непосредственно на шаблон, в который автоматически подставляется дополнительный атрибут DB:InputName,no которому разработчик может получить доступ к полям шаблона из html-формы. Данный атрибут подставляется во все элементы сессии, связанные с бизнес-объектами.