Содержание к диссертации
Введение
1 Инструменты разработки и проектирования 13
1.1 Обзор существующих решений 14
1.2 Платформа разработки 17
1.3 Система управления вычислительным порталом 19
1.4 Сервер базы данных 23
1.5 Компоненты доступа к данным 25
1.6 Объектно—ориентированный анализ и унифицированный процесс 28
2 Анализ требований и построение модели 33
2.1 Анализ требований 33
2.2 Сопутствующие цели и требования 36
2.3 Функции системы 36
2.4 Подсистема размещения и мониторинга заданий 38
2.4.1 Прецеденты системы 38
2.4.2 Диаграмма прецедентов 42
2.5 Диаграммы последовательностей 43
2.6 Модель предметной области (концептуальная модель) 46
2.7 Описание системных операций 52
4 Содержание
2.7.1 Системные операции для основных прецедентов 54
2.8 Пример тестовой модели 61
3 Архитектура прототипа системы 65
3.1 Структура базы данных 66
3.2 Компоненты доступа к базе данных 71
3.3 Архитектура модуля Quasar 75
3.4 Установка модуля и настройка Quasar 75
3.5 Подсистема размещения и мониторинга заданий 76
3.5.1 Функции по управлению данными пользователя 79
3.5.2 Функции, связанные с размещением заданий 84
3.5.3 Функции, связанные с мониторингом заданий 87
3.6 Вычислительная подсистема 87
3.6.1 Разработка вычислительного алгоритма 87
3.6.2 Архитектура вычислительного алгоритма 92
3.6.3 Создание вычислительного компонента Quasar 92
3.6.4 Служба обработки заданий 97
3.6.5 Регистрация нового вычислительного алгоритма в базе данных Quasar . 101
Заключение 105
3.7 Новые направления развития проекта «КВАЗАР-Офлайн» 107
Литература 111
- Система управления вычислительным порталом
- Объектно—ориентированный анализ и унифицированный процесс
- Подсистема размещения и мониторинга заданий
- Подсистема размещения и мониторинга заданий
Введение к работе
Диссертационная работа посвящена анализу и моделированию предметной области в рамках унифицированного процесса, с использованием универсального языка моделирования UML, построению универсальной модели для описания задачи распознавания образов, описанию нескольких конкретных алгоритмов распознавания в терминах модели, и разработке прототипа подсистемы размещения и мониторинга заданий «КВАЗАР-Офлайн».
Актуальность темы
Исторически отделы математического программирования и исследования операций Института математики и механики (ИММ) УрО РАН известны пакетами прикладных программ, среди которых выделялся пакет «КВАЗАР», разработанный B.C. Казанцевым [2] и базировавшийся, в основном, на созданных Вл.Д. Мазуровым комитетных алгоритмах распознавания образов [10].
В свое время (80-е г.г.) появилось несколько версий пакета, ориентированных на различные вычислительные платформы (БЭСМ-6, ЕС, IBM PC) и операционные системы.
Введение
Позднее, в 1995-97 г.г. М.Ю.Хачаем, А.И.Рыбиным и А.Н.Тютиным был создан программный комплекс «КВА-ЗАР-Ь» для MS Windows. Несмотря на то, что алгоритмическая база новой программы в большинстве своем осталась прежней, все алгоритмы [15], по ряду причин, были реализованы заново. Кроме того, более тщательно были проработаны вопросы хранения и обработки данных.
В 2000г. А.В.Качалков, М.Ю.Хачай и А.И.Рыбин продолжили развитие известного пакета. Результатом работы стал вычислительный портал «КВАЗАР—Онлайн», который предоставил Web—доступ к алгоритмам распознавания образов. Были реализованы следующие алгоритмы: алгоритм поиска информативной подсистемы признаков [9, 1], алгоритм опорных векторов (классический и со штрафными коэффициентами) [31], а также алгоритм аффинных разделяющих комитетов [26].
С использованием «КВАЗАР—Онлайн» было решено несколько прикладных задач в области медицины, экономики и геофизики [11]. В ходе решения задач было выявлено несколько проблем. Основная проблема состояла в том, что при решении реальных задач с большими объемами данных время отклика системы на запросы пользователей могло быть довольно большим. В связи с этим решение задач большой размерности средствами сайта «КВАЗАР—Онлайн» было затруднительным. Для решения этой и ряда других проблем в 2003 г. были начаты работы по проекту «КВАЗАР—Офлайн».
Разработка концепции реализации вычислительных алгоритмов является актуальной задачей, так как позволяет облегчить задачу создателей алгоритмов за счет использования рекомендаций по разработке, а так же поддержка всей необ-
Введение
ходимой инфраструктуры. Расширяемость системы не ограничивается пополнением алгоритмической базы. Использование технологии с открытой модульной архитектурой позволяет расширять как функциональность, так и наполнение вычислительного портала, предоставляющего Web—интерфейс для доступа к системе.
Актуальной задачей является коммерциализация предоставления вычислительных услуг за счет популяризации алгоритмов распознавания образов и развития сервиса «удаленных» вычислений, а также «хостинга» вычислительных алгоритмов сторонних разработчиков.
Алгоритмы распознавания образов находят применение в различных областях, таких как: экономика, медицина, геофизика и позволяют решать неформализованные задачи. Поэтому предоставление возможности «удаленных» вычислений с помощью алгоритмов распознавания образов в удобной форме для пользователей является актуальной задачей.
Цель работы
Создать систему управления пакетными вычислениями на удаленном сервере в конкретной предметной области — распознавании образов. Создаваемая система должна предоставлять возможность удаленному пользователю через Web—интерфейс размещать вычислительные задания, связанные с распознаванием образов и анализом эмпирических данных, а также проводить мониторинг активных заданий.
Введение
Научная новизна
В рамках диссертации разработан оригинальный вычислительный модуль на базе системы управления контентом DotNetNuke, который, используя алгоритмическую базу и предложенную вычислительную инфраструктуру «КВАЗАР— Офлайн», позволяет различным пользователям удаленно решать задачи распознавания образов с помощью любого Web—браузера. В ходе работы, проведен полный цикл разработки, используя методологию унифицированного процесса. Реализация прототипа системы выполнена с помощью современных технологий.
На защиту выносятся следующие положения
Разработана новая методология создания распределенных вычислительных порталов для различных предметных областей. В рамках разработанной методологии построена универсальная модель подсистемы размещения и мониторинга заданий, с использованием унифицированного процесса разработки и языка моделирования UML.
В соответствии с предложенной методологией, реализован оригинальный распределенный вычислительный комплекс для решения задач распознавания образов, который включает в себя:
(а) подсистему размещения и мониторинга заданий, реализованную на базе системы управления контентом DotNetNuke:
Введение
оригинальный специализированный модуль Quasar, реализующий доступ к системе;
база данных Quasar в соответствии с построенной концептуальной моделью, хранимые процедуры и функции;
компоненты доступа к базе данных Quasar.
(b) вычислительную подсистему:
оригинальный базовый асинхронный вычислительный компонент, в рамках подхода основанного на событиях, облегчающий доступ к инфраструктуре вычислительного портала;
вычислительная служба, отвечающая за инициализацию и запуск текущих заданий на счет, используя подключаемую технологию загрузки вычислительных алгоритмов.
3. Разработаны новая концепция и рекомендации реализации вычислительных алгоритмов, используя вычислительную библиотеку численного анализа dnAnalytics на базе платформы .NET Framework 2.0.
Методы исследования
При решении поставленных задач в работе использован унифицированный язык моделирования (UML) в рамках унифицированного процесса (Unified Process), а также методы и средства проектирования баз данных и объектно—ориентированного программирования.
Введение
Практическая значимость
Основным результатом работы является распределенный вычислительный комплекс, предоставляющий «удаленными» пользователям возможности для решения различных вычислительных задач распознавания образов с использованием алгоритмической базы вычислительного портала «КВАЗАР-Офлайн».
Апробация работы
Результаты работы обсуждались на семинаре «Математическое программирование» ИММ УрО РАН под руководством академика И.И. Еремина, докладывались на международных и всероссийских конференциях:
Международных конференциях «Распознавание образов и анализ изображений РОАИ» (2002, Новгород), (2004, Санкт-Петербург).
Всероссийской конференции «Математическое программирование и приложения» (2003, Екатеринбург).
Международной конференции «Интеллектуализация обработки информации (ИОИ-2006)» (2006, Алушта).
Публикации
Основные результаты диссертации опубликованы в работах [6Ц13], [4], [5], [25], [7], [231, [241, [3], [22]
Введение
Структура и объем работы
Диссертационная работа состоит из введения, трех глав, содержащих 3 таблицы, 34 рисунка, заключения и списка литературы из 32 наименований. Объем работы составляет 115 страниц.
Краткое содержание работы
Первая глава является обзорной и содержит изложение методов и средств, которые лежат в основе разработок, описанных в работе. Дается обзор основных понятий, необходимых для изложения последующего материала. Рассматриваются существующие подходы разработки распределенных вычислительных комплексов. Обсуждаются имеющиеся проблемы для существующих подходов и способы их решения. Рассматриваются вопросы выбора платформы разработки. Описывается система управления вычислительным порталом. Обсуждается сервер базы данных системы и компоненты доступа к базе данных. Описываются инструменты анализа и проектирования системы.
Во второй главе проводится анализ требований системы. Формулируются предпосылки и цели создания. Перечисляются основные функции и прецеденты системы. Строится концептуальный и логический планы. Описываются основные системные операции. Приводятся примеры описания некоторых конкретных алгоритмов в рамках предложенной модели.
Третья глава посвящена рассмотрению архитектурных вопросов и решений построения прототипа распределенного вы-
Введение
числительного комплекса «КВАЗАР—Офлайн». Проводится анализ структуры базы данных, компонентов доступа к данным. Описывается архитектура модуля Quasar. Приводятся принципы работы подсистемы размещения и мониторинга заданий. Описывается вычислительная подсистема Quasar. Рассматриваются вопросы разработка вычислительного алгоритма, создания вычислительного компонента, а также принципы работы вычислительной службы обработки заданий. В заключении описывается процедура регистрации нового вычислительного алгоритма в базе данных Quasar.
Диссертация выполнена на основе исследований, проводимых в отделе математического программирования Институте математики и механики УрО РАН по государственной бюджетной теме №01.2.00102387, программам РФФИ1 и президента РФ по поддержке ведущих научных школ2.
Автор признателен своему научному руководителю, Михаилу Юрьевичу Хачаю, за внимание и интерес к работе.
Гранты № 04-01-00108,04-01-96104 2гранты № НШ-792.2003.1, НШ-5595.2006.1
Система управления вычислительным порталом
Исходя из требований, предъявляемых к Web—интерфейсу прототипа, было предложено реализовать функции системы в виде собственного модуля Quasar для Web— прилооїсения с открытым исходным кодом DotNetNuke8. DotNetNuke [29] является системой управления контентом (Content Management System) [16]. DotNetNuke построен на основе ASP.NET/VB.NET9. Модуль Quasar является независимым компонентом, который может быть загружен и установлен в систему DotNetNuke. Сервер базы данных является ключевым компонентом любого современного приложения.
В качестве сервера базы данных DotNetNuke использует версию Microsoft SQL Server 2005 Express Edition10. Данная версия является свободно распространяемой и поддерживает большинство функций полной версии Microsoft SQL Server 2005.
Microsoft SQL Server 2005 представляет новое поколение масштабируемых решений в области систем управления базами и хранилищ данных для задач, требующих быстрого получения и анализа информации.
Преимущества Microsoft SQL Server 2005: Масштабируемость и надежность SQL Server 2005 обеспечивает практически неограниченный рост объемов хранения данных за счет увеличения надежности и масштабируемости системы, используя все преимущества мультипроцессорной обработки данных. Скорость построения решений 10http://msdn.microsoft.com/sql/express SQL Server 2005 уменьшает время создания, развертывания и выхода на рынок современных приложений для задач бизнеса, электронной коммерции, использует встроенный отладчик T-SQL. Совершенствует и ускоряет процесс поиска данных, упрощает управление, позволяет использовать создаваемые пользователем функции в других приложениях, предоставляет широкие возможности для создания Web приложений. Полная Web ориентированность
Осуществление запросов, анализ и управление данными через Web. Использование языка XML для обмена данными между удаленными системами. Простой и безопасный доступ к данным с помощью Web — браузеров, быстрый поиск необходимых документов. Анализ потоков данных и получение информации о пользователях, в том числе и через Web.
Для того, чтобы разделить данные системы DotNetNuke и данные пользователей системы Quasar, было решено использовать отдельную базу данных. Это позволяет производить оперативное резервное копирование данных, а также распределить нагрузку.
Доступ к данным является существенным компонентом большинства современных приложений. Несмотря на то, что программная модель ADO.NET стала существенно богаче, по сравнению с «классическим» ADO, программисты по-прежнему решают одни и те же задачи из проекта в проект. Предлагаемый блок Data Access Application Block, который является одним из компонентов библиотеки Enterprise Library 200611, призван упростить некоторые рутинные операции при работе с Microsoft SQL Server и предоставляет в распоряжение разработчиков набор повторно используемых компонентов, выполненных в виде дополнительного пространства имен, подключаемого к приложению (см. рис. 1.5.4). Использование Data Access Application Block облегчает следующие задачи: Вызов хранимых процедур и выполнение SQL-запросов. Задание параметров запросов. Получение объектов SqlDataReader, DataSet и XmlReader. 11http://practices, gotdotnet.com/projects/entlib
Объектно—ориентированный анализ и унифицированный процесс
В настоящее время при разработке проектов применяются различные подходы. Довольно популярным для разработки и планирования цикла разработки является унифицированный процесс UP (Unified Process)15. Унифицированный процесс предполагает постоянный анализ требований. Успех программной системы определяется тем, насколько она соответствует требованиям пользователей. Признанным стандартом для описания объектно—ориентированных систем является язык UML (Unified Modeling Language)1 [14].
Процесс разработки программного обеспечения включает в себя построение, развертывание и, возможно, поддержку системы. Унифицированный процесс — это широко используемый процесс разработки объектно—ориентированных систем. Анализ и проектирование обычно выполняется в контексте некоторого процесса разработки. Существует несколько технологий, позволяющих структурировать процесс разработки: Водопадный цикл17. Экстремальное программирование (ХР)18 [17]. Унифицированный процесс.
Унифицированный процесс выбран по той причине, что на его примере хорошо прослеживаются этапы анализа требований.
В основу унифицированного процесса положена идея итеративной разработки, т.е. разработка осуществляется в виде нескольких краткосрочных мини-проектов фиксированной длительности, называемых итерациями. Каждая итерация включает свои собственные этапы анализа требований, проектирования, реализации и завершается тестированием, интеграцией, созданием работающей системы [14].
Еще одна ключевая идея UP — использование объектных технологий, в том числе ООА и объектно—ориентированного программирования (ООП) [21]. В рамках унифицированного процесса работа над проектом включает четыре основных фазы: 1. Начало (inception) — определение начального видения проблемы, прецедентов, оценка сложности задачи. 2. Развитие (elaboration) — формирование более полного видения проблемы, итеративная реализация базовой архитектуры, создание наиболее критичных компонентов (разрешение высоких рисков), идентификация основных требований, получение более реалистичных оценок. 3. Конструирование (construction) — итеративная реализация менее критичных и простых элементов, подготовка к развертыванию. 4. Передача (transition) — бета-тестирование и развертывание.
Унифицированный процесс предполагает выполнение различных видов деятельности, например, описание прецедентов в рамках определенных дисциплин. Дисциплина — это набор видов деятельности в рамках одного этапа, например, в рамках анализа требований. В контексте унифицированного процесса артефактом называется любой результат работы: код, графическое изображение, схема базы данных, текстовые документы, диаграммы, модели и т.д. В рамках UP существует несколько дисциплин. Основными дисциплинами являются: 1. Бизнес—моделирование (Business Modeling). В эту дисциплину входят принципы моделирования объектов предметной области. 2. Требования (Requirements). Это анализ требований для данного приложения, в том числе описание прецедентов и определение нефункциональных требований. 3. Проектирование (Design). Сюда относятся все аспекты проектирования, включая разработку общей архитектуры, объектов, баз данных и т.д.
Подсистема размещения и мониторинга заданий
Основной составляющей объектно-ориентированного анализа или исследования является разделение проблемы на отдельные классы понятий (концептуальные классы) [14]. Модель предметной области — это визуальное представление концептуальных классов или объектов реального мира в терминах предметной области. Такие модели также называются концептуальными моделями, моделями предметной области или объектными моделями анализа.
На языке UML модель предметной области представляется виде набора диаграмм классов, на которых не определены никакие операции. Модель предметной области может отображать следующее: Объекты предметной области или концептуальные классы Ассоциации между концептуальными классами Атрибуты концептуальных классов
Модель предметной области — это результат визуализации понятий реального мира в терминах предметной области, а не программных элементов. Модель предметной области иллюстрирует концептуальные классы или словарь предметной области. Неформально, концептуальный класс — это представление идеи или объекта.
При итеративной разработке модель предметной области строится в течение нескольких итераций фазы развития. Зачастую, на начальной стадии идентификации некоторые концептуальные классы упускаются из виду, а появляются позднее, при рассмотрении атрибутов и ассоциаций. Как правило, модель предметной области строится на основании описания прецедентов.
Один из приемов идентификации концептуальных классов — выделение существительных в описании. Из нашего описания прецедентов можно выделить 3 претендента на роль концептуальных классов: пользователь, подсистема, задача. Чтобы понять, что такое задача, рассмотрим пример задачи, которую пользователь может разместить с использованием системы, и на основании него попробуем идентифицировать необходимые концептуальные классы.
Пример задачи, решаемой системой: Задача двуклассового распознавания с оценкой вероятности ошибочной классификации методом скользящего контроля. Дано: выборки из ml и тгй элементов генеральной совокупности векторов, измерений объектов двух классов алгоритм обучения (SVM, разделяющий комитет и т.п.) Требуется:
Построить решающее правило указанным алгоритмом и дать оценку вероятности его ошибочной классификации, применив метод скользящего контроля. Метод заключается в следующем: весь эмпирический материал всевозможными способами делится на обучающую выборку и проверочную. Как правило, в проверочную выборку выбирается 1 элемент. Такое разбиение может быть произведено М способами при М = ml + га2. Для каждого варианта проводится обучение и проверка, после чего в качестве оценки неизвестной вероятности берется число неправильных ответов на проверочных выборках, усредненное по всем вариантам.
В данном примере концептуальным классом является сама задача, размещенная пользователем, назовем ее Task Задача может содержать одну или несколько подзадач. В данном примере роль подзадач играют алгоритмы обучения и оценки. Назовем подзадачу данной задачи SubTask Следовательно, объект Task содержит несколько объектов SubTask
Для каждого алгоритма определяются исходные параметры, такие как, например, точность вычисления или максимальное число итераций. Введем концептуальный класс Parameter, предназначенный для описания параметров. Параметры, разделяются по типам данных. Каждой задаче и ее подзадачам соответствуют исходные данные. В нашем примере исходными данными являются выборки, представленные таблицами «объект-признак».
Важная идея состоит в том, что подзадачи данной задачи, также как ее параметры и исходные данные, представляют собой необходимые составляющие элементы задачи, поэтому вместо 3-х концептуальных классов «параметр», «выборка» и «подзадача» вводится один класс TaskLineltem, содержащий атрибут «тип», принимающий конечный набор значений: выборка, параметр или подзадача. Задаче соответствует результат, получаемый в итоге вычислений. По аналогии с объектом Task, для описания концептуального класса UserResult введем концептуальный класс ResultLineltem.
Подсистема размещения и мониторинга заданий
Система управления контентом DotNetNuke является полностью модульной, вплоть до того, что сама система состоит из модулей. Модуль представляет из себя набор пользовательский элементом управления (ASP.NET User Control9), наследованных от специального элемента управления DotNetNuke — PortalModuleBase. Данный базовый элемент управления предоставляет доступ к инфраструктуре системы DotNetNuke, в частности, информацию о текущем пользователе (идентификационный номер, имя, группа и т.д.), доступ к файловой подсистеме сервера. Кроме PortalModuleBase, существует еще один базовый управляемый элемент для реализации настроек пользовательского модуля — ModuleSettingsBase.
Поддержка дополнительной функциональности предоставляемой системой DotNetNuke реализуется с помощью специальных интерфейсов. Система DotNetNuke содержит специальные методы обеспечивающие навигацию между представлениями модуля, а также страницами портала.
Преимущество модульности DotNetNuke заключается в том, что пользовательский модуль может быть удаленно 9http://msdn2.microsoft.com/en-gb/library/fb3w5b53.aspx установлен в систему, посредством загрузки на сервер, где установлена система DotNetNuke.
После установки модуля Quasar в систему, администратор может разместить модуль на любой странице портала, а также настроить представление модуля по своему усмотрению (см. рис. 3.4.6). Система DotNetNuke позволяет задать тип для каждого элемента управления модуля (см. рис. 3.4.6).
Отметим, что все элементы управления на рисунке рис. 3.4.7, кроме Tasks View имеют значение в колонке Control. Значению в колонке Control соответствует значение поля key. Это сделано для того, чтобы указать системе DotNetNuke какой элемент управления отображать для пользователей в первую очередь. Для того, чтобы отобразить несколько представлений модуля Quasar, необходимо создать дополнительное описание с помощью кнопки Add Definition, расположенной на странице редактирования описаний модуля.
Задача разработчика системы в значительной степени облегчается, когда в ходе предварительного исследования стро-ются концептуальная модель и диаграммы прецедентов, которые непосредственно вытекают из функций системы. Таким образом, опираясь на диаграммы прецедентов, модуль для
DotNetNuke должен реализовывать следующее: Функции по управлению данными пользователя. Функции, связанные с размещением заданий. Функции, связанные с мониторингом заданий. Остановимся подробней на реализации каждой из функций. Импорт данных в таблицу «объект-признак»
Идея импорта данных пользователя в систему возникла в ходе эксплуатации предыдущей версии системы. Пользователю приходилось каждый раз пересылать данные, чтобы запустить задачу на вычисление. Это оказалось не совсем удобно и не эффективно с точки зрения нагрузки на сервер и расхода трафика пользователя. Кроме этого, для большинства задач требовалась работать с различными выборками из имеющихся данных.
Формат исходных данных, как правило, несколько отличался для разных задач и был не совсем удобен для конечного пользователя. Новая версия системы включает модуль импорта данных и решает все выше перечисленные проблемы. В частности, теперь пользователю предоставляется возможность загрузить его данные на сервер.
Модуль загрузки данных в текущей реализации поддерживает несколько форматов данных. Пользователь может загрузить данные в следующих форматах: Microsoft Office Excel ( .xls). Comma Separated Values ( .csv)10.
Данные могут быть загружены на сервер в упакованном формате Zip11, чтобы снизить время загрузки и трафик пользователя в случае больших файлов. Файл с данными является обычной таблицей (см. рис. 3.5.8).
Процедура импорта данных проходит в 4 этапа: 1. Загрузка файла данных на сервер и распаковка (если необходимо). 2. Извлечение данных, описаний объектов и признаков и преобразование в 3 временных файлов в формате CSV. 3. Загрузка данных из временных файлов в соответствующие таблицы базы данных, используя функцию Bulk Insert12. 4. Удаление временных файлов.
Для того чтобы воспользоваться модулем импорта, пользователю необходимо зарегистрироваться в системе и пройти аутентификацию и авторизацию с помощью имени пользователя и пароля. Вновь зарегистрированному пользователю, будет предложено загрузить данные на сервер (см. рис. 3.5.9).
Загрузка данных реализована с помощью нового удобного элемента управления ASP.NET 2.0 — Мастер (Wizard)13. Мастер позволяет пользователю выбрать существующий файл на сервере или загрузить новый (см. рис. 3.5.10).
В текущей реализации не предусмотрено хранение нескольких таблиц данных в таблице «объект-признак» из соображений снижения нагрузки на сервер базы данных. Пользователю предоставляется квота на сервере, которую он может L2nttp: //msdn2. microsoft. com/en-us/library/msl8836S. aspx 13http://msdn.microsoft.cora/msdnniag/is3ues/04/H/CuttingEdge