Объектно-ориентированные технологии в информационно- аналитической системе управления транспортировкой газа

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

5. Выводы

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

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

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

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

Литература: 1. Путятин Е.П., Аверин С.И. Обработка изображений в робототехнике. М.: Машиностроение, 1990. 320 с. 2. Гороховатский А.В., Путятин Е.П. Применение преобразования Радона для нормализации изображений. // Бионика интеллекта. 2005, №1(62). С. 3-9. 3. Путятин Е.П., Гороховатский А.В. Построение инвариантных моментных признаков изображений с использованием одномерных проекций // Вестник НТУ ХПИ. «Системный анализ, управление и информационные технологии». 2006. №39. С. 125-132. 4. ТрипольськаВ.В. Класифікація підписів на основі інваріантних моментів простору ознак перетворення Радона // Прикладная геометрия и компьютерная графика. 2002. №71. С. 235-239. 5. Форсайт Д., Понс Ж. Компьютерное зрение. Современный подход. Пер. с англ. Москва: «Вильямс», 2004. 928 с. 6. Вентцель Е.С., Овчаров Л.А. Прикладные задачи теории вероятностей. М.: Радио и связь, 1983. 416с. 7. Coetzer J., Herbst B.M., Du Preez J.A. Offline signature verification using the discrete Radon transform and a hidden Markov model//EURASIP Journal on applied signal processing. 2004(4). Р.559-571. 8. Дуда Р., Харт П. Распознавание образов и анализ сцен. М.: Мир, 1976. 512с.

Поступила в редколлегию 20.10.2007

Рецензент: д-р физ.-мат.наук, с.н.с. Сытник О.В.

Гороховатский Алексей Владимирович, аспирант ХНУРЭ. Научные интересы: анализ, обработка и распознавание изображений. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 702-14-19.

УДК681.5:681.518

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ТЕХНОЛОГИИ В ИНФОРМАЦИОННОАНАЛИТИЧЕСКОЙ СИСТЕМЕ УПРАВЛЕНИЯ ТРАНСПОРТИРОВКОЙ ГАЗА

ПЕЛЕШЕНКО Д.С._________________________

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

Введение

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

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

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

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

- экономное распределение нагрузки на все объекты управления;

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

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

Целью данной работы является анализ особенностей использов ания различных информацио нных технологий для решения задач, возникающих при построении информационно-аналитической системы управления (ИАСУ) ГТС.

Одной из основных особенностей ИАСУ ГТС, рассмотренной в работах [1-3], является использование

100

РИ, 2007, № 4

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

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

Задачей исследования является анализ использования языков программирования, компилируемых в машинный код, языков программирования, транслируемых в промежуточные языки (байт код), и языков сценариев для описания иерархии классов технологических элементов ГТС.

Рассмотрим современные информационные техноло -гии, используемые в построении информационных систем.

1. Языки программирования, компилируемые в машинный код

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

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

Существуют некоторые способы частично получить информацию о классах, известную во время разработки программы. Во время ее выполнения такая информация называется Runtime Type Information (RTTI). Реализация механизмов RTTI существует в таких библиотеках классов, как MFC, wxWidgets, VCL др. Однако этой информации явно недостаточно для автоматической генерации структуры БД для хр а-нения объектов. Кроме того, могут возникать проблемы при изменении отдельных компонентов приложений, из-за механизмов раннего связывания.

Решением такой проблемы может быть технология Component Object Model (COM), однако она является достаточно громоздкой и реализация каждого класса технологического элемента ГТС в виде COM объекта является трудоемкой задачей.

Требования к системе оперативно-диспетчерского управления «Сигма», рассмотренной в работе [1], обуславливали использование языка С++ и СУБД Oracle. Эта система может служить примером реализации основных принципов хранения ИГМ в реляционных СУБД.

В системе «Сигма» метаданные (данные о структуре классов) хранятся в БД в специализированных таблицах, а при запуске системы в памяти ее ядра создаются структуры, описывающие иерархию классов. Каждый объект при загрузке из БД или при создании также создается в памяти ядр а системы и связывается с соответствующими структурами метаданных (рис 1). Стили отображения определяют, каким образом элемент будет отобр ажен на технологических схемах, и представляют собой бинарное отношение элементов множества предикатов, заданных на множестве атрибутов объекта и элементов множества изображений.

Рис. 1. Класс и объект в памяти ядра системы «Сигма»

РИ, 2007, № 4

101

Каждый раз при отображении элемента на технологической схеме выбирается изображение, соответствующее предикату, принявшему значение «истина». При этом сами изображения хранятся в БД в виде р астровых изо бр ажений.

Методы объектов задают поведение при действиях пользователя и других событиях, возникающих в системе. Методы реализованы с помощью языка сценариев Lua [5].

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

2. Языки сценариев как средство описания методов

При использовании языка сценариев реализуют некоторую библиотеку функций на этом языке, связанную с функциями системы, в рамках которой этот язык используется. Применение языка сценариев предполагает, что набор полезных в контексте решаемой задачи компонентов уже существует и остается должным образом их скомбинировать. Например, Tcl и Visual Basic могут служить для размещения на экране набора управляющих элементов пользовательского интерфейса. Хотя языки сценариев часто используются для расширения свойств компонентов, они малопригодны для программирования сложных алгоритмов и структур данных, обычно обеспечиваемых компонентами.

Языки сценариев значительно облегчают задачу “ сцепления” компонентов. Компоненты, спроектированные для одной цели, могут в дальнейшем применяться для совершенно других целей, о которых не было известно на момент создания этих компонентов.

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

В системе «Сигма» для создания методов классов технологических элементов был использован язык сценариев Lua [5]. Методы в этой системе использованы в качестве обработчиков событий, например, при двойном щелчке мыши на изображении объекта вызывается метод «OnDoubleClick». При запуске ме-

тода в его окружении создается объект «this», который заполняется значениями атрибутов объекта, в контексте которого выполняется метод. После завершения работы метода значения полей этого объекта присваиваются атрибутам объекта, в контексте которого выполняется метод. Таким образом, например, может быть организовано изменение состояния крана (открыт или закрыт) при двойном щелчке мыши. Методы-обработчики событий вызываются при создании объекта, загрузке из БД, удалении объекта, измени его атрибутов и других событиях системы. Кроме того, объект может иметь и другие методы, которые можно вызвать из методов-обработчиков событий или из других программ на Lua. Такой подход позволяет инкапсулировать большую часть логики, связанной с объектом, внутрь этого объекта. Также, использование языка сценариев позволяет настраивать работу системы без перекомпиляции ее модулей и даже без перезапуска системы.

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

3. Управляемые языки программирования

Использование таких технологий, как .Net Framework и Java, связано с понятием управляемых (Managed) [4] языков программирования и виртуальных машин. Программа на таком языке программирования компилируется не в машинный код целевой аппаратной платформы, а в некоторый промежуточный язык, называемый байт-кодом. Перед запуском сборки в среде исполнения байт-код преобразуется встроенным в среду JIT-компилятором [4] в машинные коды целевого процессора. Изначально такой подход разрабатывался для запуска программ на разных платформах без перекомпиляции. Однако у него есть и другое немаловажное преимущество: байт-код содержит больше информации об исходной программе, чем машинные коды, получаемые из неуправляемых языков. Байт-код или в терминах .Net Framework промежуточный язык (Intermediate Language - IL) является объектно-ориентированным языком и сохраняет исходную структуру программы. Таким образом, на этапе выполнения программы можно проанализировать код и получить информацию об иерархии классов.

В технологиях .Net Framework и Java существует специальный инструментарий, называемый механизмом отражения (Reflection) [4], реализованный в виде библиотеки классов и предназначенный для анализа структуры классов в момент выполнения программы.

Другой подход был реализован в системе «NetMS», построенной с помощью технологии .Net Framework.

102

РИ, 2007, № 4

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

Основным модулем этой системы является модуль обработки запросов. Этот модуль отвечает за загрузку всех необходимых сборок (модулей) системы, содержащих иерархию классов, которые соответствуют технологическим элементам ГТС. Структура этого модуля приведена на рис. 2.

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

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

При построении системы «NetMS», рассмотренной в работе [3], был использован метод табличного ORM и реализован механизм, позволяющий автоматически вносить изменения в структуру таблиц при изменении структуры классов. При этом изменение структуры таблиц происходило с сохранением данных (кроме данных, содержащихся в удаляемых полях).

РИ, 2007, № 4

При организации реляционной БД для хр анения ИГМ не было использовано никаких специальных средств хранения метаданных. Для получения списка таблиц и их полей, применяемых для хранения объектов, использованы встроенные средства СУБД.

Использование механизма отражения позволяет реализовать поведение объектов не на языке сценариев, а на том же языке и с использованием тех же технологий, что и ИАСУ ГТС. Такая реализация объектов работает быстр ее и обладает болыпейустой-чивостью к сбоям. Одно из преимуществ использования механизма отражения заключается в возможности написания программы, обрабатывающей объект, не зная заранее его точной структуры.

Выводы

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

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

Практическая значимость. Результаты проведенных исследований были использованы при разработке системы оперативно-диспетчерского управления «Сигма», которая находится в опытной эксплуатации в УМГ «Харьковтрансгаз».

Литература: 1. Пелешенко Д. С. Об одном классе информационных моделей газотранспортных систем // Вестник ХГТУ. 2007 № 3. С.221-228 2. Пелешенко Д. С. Связь атрибутов элементов разных уровней иерархической графовой модели // Вестник НТУ “ХПИ”. 2007. № 42. С. 77-82.

3. Пелешенко Д. С., Тевяшева О. А. Об одном подходе к интеграции информационно-аналитических и геоинформационных систем // Восточно-Европейский журнал передовых информационных технологий. 2007. № 25. С. 49. 4. David S. Platt Introducing Microsoft .NET, Third Edition - Microsoft Press - 2003. 352c. 5. Roberto Ierusalimschy Programming in Lua, Second Edition - Lua.Org. 2006. 328c.

Поступила в редколлегию 16.12.2007

Рецензент: д-р техн. наук, проф. Удовенко С.Г.

Пелешенко Дмитрий Сергеевич, аспирант каф. прикладной математики ХНУРЭ. Научные интересы: информационные модели и технологии. Увлечения и хобби: горные лыжи. Адрес: Украина, 61000, Харьков, ул. Дербентская, 17, тел. (057)342-22-16

Рис. 2. Структура модуля обработки запросов

103