Универсальная система диспетчеризации. Подход, структура системы, адаптация для конкретной задачи

Николай Одинцев, ЗАО «НВК ВИСТ», Москва, Тел.: (095) 975-3394, (095) 975-22-17, Факс: (095) 975-18-46, E-mail: odintsev@nvkvist.ru, Web: www.nvkvist.ru

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

Переход от специализированных систем к универсальной

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


Рис. 1.
Структура программного обеспечения.

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

Настройка пользовательского программного обеспечения

Универсальной клиентской программой является XRTL Explorer, обрабатывающий xrtl-файлы. В этих файлах определяются запросы к базе данных, внешний вид окон приложения, их функциональность, используемые модули и формат отчетов. Содержимое xrtl-файла представляет собой текст на подмножестве языка XML, он имеет интуитивно понятную структуру и обеспечивает удобное редактирование.
Для каждого запроса на выборку данных можно указать его параметры и соответствующие ему запросы на добавление, изменение и удаление, а также (до некоторой степени) ограничения на вносимые изменения.
При проектировании окна (формы) в нем можно расположить различные элементы управления (поля ввода текста, кнопки, списки, комбинированные списки, метки, и т.д.), используя их в различных комбинациях. Например, можно создать в окне программы закладки, на одной из которых данные доступны в табличной форме (рис. 2), а на другой информация отображается с помощью карты. Аналогичным способом определяется формат отчетов.


Рис. 2.
Окно приложения, описанное в xrtl-файле.

Xrtl-файлы размещаются на выделенном компьютере, который в принципе может быть совмещен с сервером базы данных. XRTL Explorer обращается к этим файлам через специальную программу — сервер приложений, выполненный в виде COM-объекта. Он позволяет клиентским программам получить список доступных баз данных и список доступных (для конкретного пользователя) xrtl-файлов. Также через него осуществляется выполнение SQL-запросов. Подобная трехзвенная архитектура (сервер базы данных — сервер приложений — клиентское программное обеспечение) позволяет изменять источники данных и их местонахождение без изменения конфигурации экземпляров пользовательского ПО, достаточно лишь модифицировать настройки сервера приложений.
Таким образом, не переписывая ни единой строчки программного кода, можно адаптировать систему для решения практически любой задачи, связанной с работой с данными.
Для решения специальных прикладных задач можно использовать отдельные программные модули, являющиеся объектами COM и ActiveX. Например, наш картографический модуль является ActiveX-объектом. Если таким модулям требуется взаимодействовать с XRTL Explorer (например, получать сообщения), то они должны реализовывать определенные интерфейсы.
Картографический модуль
Картографический модуль служит средством отображения информации из базы данных на карте и работы с этой информацией. Модуль создан на основе пакета разработки приложений MapObjects от компании ESRI и, как и MapObjects, представляет собой ActiveX-объект, который можно встраивать в любое приложение, даже в MS Word. Структура и использование картографического модуля показаны на рис. 3.


Рис. 3.
Структура и использование картографического модуля.

Картографический модуль может использовать объекты, описанные в xrtl-файлах, получая к ним доступ посредством XRTL Explorer и сервера приложений. Базовые возможности модуля позволяют показывать текущее положение мобильных объектов, историю их движения, и т.д. (рис. 4).


Рис. 4.
Внешний вид картографического модуля.

Кроме того, картографический модуль можно использовать для отображения информации, специфичной для предметной области. Например, в системе диспетчеризации горно-транспортного оборудования модуль отображает рейсы самосвалов, их остановки, превышения скорости и исчезновения из зоны видимости. Для реализации таких функций в качестве источника информации указываются соответствующие SQL-запросы.
Кроме источников информации в xrtl-файле можно указать характеристики отображаемых объектов, такие как шрифт, символы которого служат для отображения точечных объектов (например, транспортных средств), и формат подписей к ним.
Используя указанный шрифт, каждому классу объектов (а при желании, и каждому объекту) можно приписать специальный символ, с помощью которого он будет отображаться на карте.
Подпись к точечному объекту может быть доступна в двух вариантах — сокращенном и расширенном. Сокращенной подписью для самосвала может, например, являться его номер, а в расширенную подпись может входить вес груза, объем топлива на борту и другая информация. Объем этой информации определяется, в первую очередь, удобством ее восприятия человеком при том количестве объектов, для работы с которыми предназначено данное окно. Для подписей также можно задавать шрифты и источники в базе данных.
Модуль снабжается собственной панелью управления, кнопки которой соответствуют основным операциям с картами — увеличение и уменьшение масштаба, передвижение карты, возврат к предыдущему состоянию. Есть два инструмента, применимые к мобильным объектам — изменение варианта подписи к мобильному объекту и его передвижение с помощью мышки. При передвижении изменяется и информация в базе данных, относящаяся к объекту, если в xrtl-файле указаны соответствующие SQL-запросы на изменение данных.
Импорт картографических данных и формирование проекта, описывающего состав и внешний вид отображаемых слоев, осуществляются средствами ArcView. Проект, как и сами данные, хранится на сервере приложений.
Таким образом, при создании системы диспетчеризации для новой предметной области требуется разработать структуру базы данных (или адаптировать существующую) и создать базовый набор xrtl-файлов. В дальнейшем специалисты предприятия-заказчика могут самостоятельно добавлять и изменять xrtl-файлы, если возникнет потребность добавить новый отчет,изменить способ ввода информации или подключить новый модуль. В результате пользователи получают систему, которая полностью удовлетворяет их потребности.