Разработанный программный комплекс применяется для эффективного решения задачи прогнозирования различных временных рядов. Интеграция комплекса с учетной системой автодилера позволила руководству предприятия решить сразу несколько управленческих задач, таких как получение достаточно полной информации о сбытовой деятельности автодилера, получение перспективного прогноза продаж, возможность гибкого формирования заявок на автомобили.
Литература
1. Лукашин Ю.П. Адаптивные методы краткосрочного прогнозирования временных рядов: учеб. пособие. М.: Финансы и статистика, 2003. 416 с.
2. Пятковский О.И. Интеллектуальные компоненты автоматизированных информационных систем управления предприятием. Барнаул: Изд-во АлтГТУ, 1999. 355 с.
3. Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. Новосибирск: Наука. Сибирская издат. фирма РАН, 1996. 276 с.
РЕАЛИЗАЦИЯ WEB-ПРИЛОЖЕНИЯ ДЛЯ ИНФОРМАЦИОННО-ИССЛЕДОВАТЕЛЬСКОЙ СИСТЕМЫ «ШЛАКОВЫЕ РАСПЛАВЫ»
М.А. Григорьева; Л.И. Воронова, д.ф.-ж.н.
(Российский государственный гуманитарный университет, г. Москва, [email protected], [email protected])
В статье рассматриваются методы реализации web-приложения для информационно-исследовательской системы «Шлаковые расплавы». Описаны основные технологии среды Apache Cocoon для разработки web-приложений и способы их применения в данной системе.
Ключевые слова: web-приложение, Apache Cocoon, Cocoon Forms, модальный метод, продолжения, конвейер.
В Российском государственном гуманитарном университете (г. Москва) разработана информационно-исследовательская система (ИИС) «Шлаковые расплавы», которая обеспечивает реализацию комплексных компьютерных экспериментов для моделей многокомпонентных шлаковых расплавов большого размера (104-105 частиц). В рамках единой интегрированной среды распределенной ИИС реализуются компьютерные эксперименты квантово-химическим, молекулярно-динамичес-ким и статистико-геометрическим методами на основе комплексной модели многочастичной системы с сильным взаимодействием. ИИС имеет как научную, так и образовательную направленность. В ее проектировании и оптимизации активное участие принимают аспиранты и студенты, с их помощью реализовано большое количество модулей (Подсистема распределенного молекулярно-дина-мического моделирования информационно-исследовательской системы «Шлаковые расплавы» (Рыжов Н.А., Воронов В.И., Тен Э.А., Гусев А.И., Тетерин С.А., Суд-ников А.В., Середа Д.В., Трофимова Л.А.) зарегистрирована в ОФАП 04.02.2004, свид. № 3158).
ИИС является системой с удаленным доступом, позволяющей проводить компьютерное моделирование на ресурсах разработчика через Интернет. Удаленный доступ реализуется с помощью новейших технологий, обеспечивающих модульность, масштабируемость, удобство поддержки и модификации web-приложения. Для обеспечения удаленного доступа к ИИС, управления ходом компьютерного эксперимента и работой с БД разработано web-приложение на основе среды Apache Cocoon 2.1, которая архитектурно располагается
между БД и сервером приложений J2EE (Java 2 Enterprise Edition) Apache Tomcat и представляет собой среду для публикации динамического web-контента на основе технологии конвейерной обработки данных [1].
На рисунке 1 схематично изображен принцип конвейерной обработки XML-данных.
Трансформация
Сериализация
Рис. 1. Принцип конвейерной обработки XML-данных
По конвейеру последовательно в виде потока событий SAX (Simple API for XML - способ последовательного чтения/записи XML-файлов) перемещаются XML-данные. При этом происходит преобразование XML-данных от исходной формы к требуемой. Схема обработки данных находится в файле sitemap.xmap. Он представляет собой XML-документ со специальным синтаксисом, позволяющим указывать генераторы, трансформаторы и сериализаторы для различных ресурсов [2].
Описание конфигурационного файла проекта (SITEMAP)
Основная цель SITEMAP состоит в том, чтобы позволить разработчикам, не являющимся специалистами в области программного обеспечения, создавать web-сайты и weft-приложения из логических компонентов и XML-документов.
Генерация
В SITEMAP определяются генераторы, трансформаторы, сериализаторы и многие другие компоненты конвейера (рис. 2). В данном файле также могут осуществляться вызов внешних процедур, перенаправление на другой URL и определение дополнительных параметров обработки XML-до-кументов.
• Генератор (generator) - начальная точка XML-конвейера. Он генерирует XML-документ как SAX-события и инициализирует начало конвейерной обработки.
• Трансформаторы (transformer) инициализируются между генератором и сериализатором и выполняют преобразование XML-документа. Результатом его также является SAX-поток.
• Сериализатор (serializer) является конечной точкой конвейерной обработки документа. Он прерывает SAX-поток и выдает результат преобразования в требуемом формате (HTML, SVG, PDF, XML, WML, VRML и др.).
• Обнаружитель совпадений (matcher) - центральный компонент SITEMAP. Он позволяет Cocoon ассоциировать URI с заданным набором инструкций, найденных в SITEMAP, и используется для определения последовательности обработки запросов [3].
В web-приложении для ИИС «Шлаковые расплавы» были использованы новейшие технологии среды Apache Cocoon - FlowScript в качестве средства модальной разработки приложений и Cocoon Forms для реализации пользовательских форм.
Применение технологии FlowScript для реализации web-приложения
При выборе технологии для реализации web-приложения были исследованы современные методы разработки: MVC (Model-View-Controller) и модальный метод.
При анализе метода MVC выявлены следующие недостатки.
- Зависимость сложности логики web-прило-жения от количества данных, требуемых для поддержки текущего состояния клиентской сессии.
- Нажатие кнопки Back в окне браузера, клонирование окна могут привести к дублированию уже переданных данных.
Их причина заключается в отсутствии средств сохранения данных о состоянии при работе с протоколом HTTP. До сих пор для хранения состояния web-приложения использовались сессии, представляющие собой просто наборы данных. И, чем их больше, тем сложнее поддерживать web-приложение. Разработка ИИС «Шлаковые расплавы» требует от пользователя ввода больших объемов сложно-структурированных и разнородных математических данных для создания модели. Потому для реализации web-приложения выбрана технология модальной разработки с применением продолжений с серверной стороны (web continuations), основная идея которой заключается в предоставлении интегрированной среде программирования возможности загружать состояние приложения перед клиентским запросом и сохранять состояние после каждого запроса. Продолжение -это сохраненный снимок выполняемого состояния программы в любой момент. Использование технологии продолжений в ИИС «Шлаковые расплавы» обеспечит реализацию web-приложения как целостного и последовательного программного кода, легкого для понимания и поддержки.
В среде Apache Cocoon 2.1 принципы технологии продолжений реализованы с помощью Cocoon-контроллеров. Использование Apache Cocoon с контроллером означает необходимость создавать все приложения как отдельную программу и регистрировать ее в конфигурационном файле SITE-MAP.XMAP. В среде Apache Cocoon доступны два типа контроллеров: JavaFlow (на основе языка Java) и FlowScript (на основе языка JavaScript). Для ИИС «Шлаковые расплавы 8.0» была выбрана технология FlowScript.
Технология работы web-приложения ИИС «Шлаковые расплавы 8.0» на основе среды Apache Cocoon заключается в следующем. Web-сервер получает запрос и передает его в конфигурационный файл среды Apache Cocoon (SITEMAP.XMAP), где управление передается на уровень Control Flow (управляющего потока). При этом запускается функция FlowScript, инициализирующая обработку логически сгруппированной последовательности web-страниц. Обработка кода функции останавливается в том месте, где происходит отсылка web-страницы обратно клиенту, после чего HTTP-запрос завершается. В объекте продолжения сохраняется состояние выполнения программы. Каждое продолжение имеет уникальный идентификатор, встраиваемый в сгенерированную web-страницу, что обеспечивает возможность перезапуска сохраненного продолжения для последующего использования.
В скриптах контроллера FlowScript осуществляются запуск бизнес-логики для реализации дос-
<map:match pattern="*.html">
<map:generate type="jx" src="pages/{1}.xml"/>
<map:transform src="resources/page-styling.xsl"/>
<map:serialize type="html"/> </map:match>
Рис. 2. Структура работы файла конфигурации SITEMAP
тупа к БД и перевод системы в режим модели [4]. Когда выполнение данной бизнес-логики завершается, управление возвращается обратно к управляющему потоку для определения web-страницы, возвращаемой клиенту.
Применение технологии Cocoon Forms для создания пользовательских форм
Apache Cocoon, начиная с версии 2.1, предоставляет технологию Cocoon Forms для обработки интерактивных web-форм. Объединяя такие технологии, как Flow и JXTemplates, Cocoon Forms (CForms), проект Apache Cocoon предлагает фундаментальный метод создания и обработки интерактивных web-приложений, который целесообразно применить при разработке web-серверного приложения ИИС «Шлаковые расплавы».
Для создания формы в Cocoon Forms необходимо определить два компонента:
• модель формы (XML-документ, описывающий структуру формы);
• шаблон формы (обработчик представления формы).
Модель формы описывается XML-документом (определение формы - form definition), содержащим структуру формы с описанием ее элементов (widgets). Данный файл не содержит никакой презентационной информации. На основе модели формы создается экземпляр формы (form instance), в котором хранятся текущие данные. Описание модели формы XML-файлом позволяет создавать пользовательские формы без программирования логики их работы на языке Java.
Отображение формы обычно обрабатывается шаблоном формы (form template). Шаблон формы представляет собой XML-файл. В том месте, где необходимо разместить элемент формы, нужно вставить специальный тэг, ссылающийся на этот элемент. После обработки преобразователем шаблонов форм (Forms Template Transformer) эти тэги будут замещены XML-представлением элемента, которое содержит всю информацию об этом элементе (значение, перечень возможных ошибок ва-лидации и др.).
Пример работы преобразователя шаблонов форм показан на рисунке 3 [4].
На рисунке 4 приведена структура web-прило-жения ИИС «Шлаковые расплавы 8.0», созданного с применением технологий Cocoon Forms и web continuations.
1. Создание экземпляра формы.
Процедура контроллера (FlowScript) запрашивает компонент FormManager (менеджер форм) для создания экземпляра формы, основываясь на модели формы (модель формы кэшируется, поэтому создание экземпляра формы проходит очень быстро). Форма заполняется данными из БД. Пройдя через конвейер публикации, форма появляется в окне браузера.
Шаблон ETML
<;-itml>
<fccdy>
<tt: fcrm-terrplate acticn=F,JF : bccntinuäticn. id; ■ met ho d=" POS T " / >
<tt:widget id=Fr±irs tríame"/>
<f t: widget ^^ id="le3tnane"/>
</ ft: f crm-template^-^4^^ </bcdy>
После
щзеобраьова-ния XSLT
< inp U 3
r_ame = " f ir stnarcie" ""ñlu5="Maria" >
/
/
После
преобразования Forms Template
-"it : widget id=Frf ir st name ">
XML-списакне элемента фсрнь: ... </ft:widget>
Рис. 3. Принцип генерации HTML-кода формы с помощью Forms Template Transformer
2. Обработка запроса и проверка данных на правильность ввода.
Перед отправкой заполненной формы на сервер контроллер позволяет объекту экземпляра формы обработать запрос, поэтому все элементы формы (widgets) считывают собственное значение из параметров запроса. Все элементы формы проводят собственную валидацию на основе данных из модели формы. Если обнаружены ошибки ва-лидации, форма вновь будет отображена в окне браузера. В противном случае контроллер перейдет к следующему шагу.
3. Выполнение конвейерной обработки [4].
Подытоживая, отметим, что в статье предложен метод реализации web-приложения для ИИС «Шлаковые расплавы», основанный на современных принципах построения интерактивных web-систем. Выбранные технологии - модальная разработка web-приложений (FlowScript), Cocoon Forms - способствуют повышению производительности работы web-приложения ИИС «Шлако-
Рис. 4. Структура web-приложения ИИС «Шлаковые расплавы 8.0»
вые расплавы», а использование технологии ¥1о^$,спрХ делает приложение легким для понимания, дальнейшей модификации и поддержки.
Литература
1. Григорьева М.А., Воронова Л.И. Интеграция ХМЬ-данных и вычислительных Богйтап-приложений в ИИС «Шла-
ковые расплавы 9.0» // Информационные технологии моделирования и управления. 2009. № 1 (53). С. 106-110.
2. Оптимизация информационного и программного обеспечения информационно-исследовательской системы «Шлаковые расплавы» / Л.И. Воронова [и др.]. М.: РГГУ, 2009. 45 с.
3. Matthew Langham, Carsten Ziegeler «Cocoon: Building XML Applications», New Riders Publishing, 2002.
4. URL: http://cocoon.apache.org/2.1/userdocs/basics/index.html (дата обращения: 11.09.2009).
ПРИМЕНЕНИЕ АРХИТЕКТУРЫ ОДНОРАНГОВЫХ СЕТЕЙ В СИСТЕМАХ ВИДЕОНАБЛЮДЕНИЯ
Р.Х. Альмухамедов (Санкт-Петербургский государственный университет аэрокосмического приборостроения, [email protected]); М.А. Поляничко (Петербургский государственный университет путей сообщения,
m ark_po lyanichko@bk. ш)
В данной работе описаны основные характеристики поточных систем Р2Р для нахождения значений параметров, при которых обеспечивается устойчивая работа системы с небольшим количеством узлов. В расчете учитываются изменение количества узлов сети и разнородность скоростных показателей и вычисляется достижимая максимальная скорость видеопотока для каждого множества параметров.
Ключевые слова: система Р2Р, одноранговая сеть, система видеонаблюдения, стационарный поток, режим вырожденного сервиса.
Система Р2Р (Реег-То-Реег) - это одноранговая компьютерная сеть, каждый узел которой является как клиентом, так и сервером. Такая организация позволяет сохранять работоспособность сети практически при любом количестве и сочетании доступных узлов.
В связи с расширением сферы применения систем видеоконтроля с последующей трансляцией данных в режиме прямого эфира появляется необходимость определения критических пределов, за границами которых система выходит из стабильного рабочего состояния.
Основной сервер системы Р2Р получает видеоданные и поставляет их в сеть со скоростью и8 для последующего распределения между узлами. В сети имеются узлы двух типов. Количество узлов первого типа обозначим через пх, а второго типа через п2 [1]. Узлы этих типов отличаются тем, что позволяют другим участникам скачивать данные со скоростями их и и2 соответственно. Скорость скачивания данных каждым узлом г удовлетворяет условию и2<г<их [2]. Большим преимуществом систем такого рода являются гибкость и адаптируемость при реализации конкретно поставленной задачи. Это обусловлено большей зависимостью системы Р2Р от программной части, чем от аппаратной, что дает дополнительные возможности при ее разработке. Помимо этого, существует ряд известных технологических решений, позволяющих улучшить показатели работы системы без внедрения дополнительных аппаратных ресурсов.
В сетях Р2Р необходимо учитывать постоянное изменение количества узлов системы, так как узлы могут отключаться и подключаться к системе случайно. Предполагается также, что узлы подключаются к системе и отключаются с интен-сивностями А,х, Я,2 и их, и2 соответственно.
Состояние системы, в котором все узлы получают видеоданные со скоростью г, определяется как состояние стационарного потока. Состояние, когда система не способна поддерживать режим стационарного потока, определяется как режим вырожденного сервиса [3].
Допускается, что в любой случайный момент способность системы работать в режиме стационарного потока со скоростью г определяется в основном соотношением количества узлов первого и второго типов.
Таким образом, чем меньше в сети активных узлов второго типа, тем больше вероятность того, что система будет работать в режиме стационарного потока.
В работе [4] показано, что для любой скорости видео г, такой, что и2<г<их, режим стационарного потока обеспечивается, если
г < min ^ u
(1)
Количество узлов первого и второго типов в системе принято рассматривать как два независимых пуассоновских процесса [5], то есть количество узлов 1-го типа можно считать случайными величинами Р1, распределенными по законам Пу-
Us + niU1 + n2u2
n, + n,