ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННО-ТЕХНИЧЕСКОГО СОПРЯЖЕНИЯ АВТОМАТИЗИРОВАННЫХ СИСТЕМ НА ПРОГРАММНОМ УРОВНЕ С ПОМОЩЬЮ МОДУЛЬНЫХ ТРАНСПОРТНЫХ ШЛЮЗОВ
Королев
Александр Сергеевич,
главный специалист Акционерного общества «Научно-исследовательский институт точных приборов», г. Москва, Россия, alexander.s.korolev@yandex.ru
Ключевые слова:
автоматизированная система; информационно-техническое взаимодействие; модульные программные средства; обмен электронными документами; транспортный протокол.
£
О л л С
Рассмотрена задача информационно-технического взаимодействия автоматизированных систем на программном уровне в части, касающейся транспортного сопряжения. Показано различие между информационными и транспортными протоколами передачи данных, являющихся априорной информацией для решения данной задачи, а также предложен подход, при котором сопряжение существующих автоматизированных систем осуществляется без их модификации, но с использованием новой автоматизированной системы сопряжения, представленной распределенным комплексом программных и аппаратных средств.
Кратко описана внутренняя структура автоматизированной системы сопряжения, перечислены основные ее подсистемы. Введено понятие шлюза транспортного сопряжения, являющегося программной реализацией транспортного протокола передачи данных. Показан алгоритм функционирования шлюза и его место среди других компонентов. Обоснован выбор модульной архитектуры для построения таких шлюзов.
Предложен новый подход к организации модульных программных средств, в основе которого лежит снятие ограничений на входные и выходные параметры программ, содержащиеся в этих модулях, что позволяет автоматически формировать межмодульные каналы передачи данных. Введено понятие микроядра, дано его математическое описание и разработана программа реализация, позволяющая создавать модульные программные средства в рамках предложенного подхода.
Для управления модульными приложениями в ручном и автоматическом режимах разработан программный комплекс контроля и управления функционированием микроядра, позволяющий изменять структуру этих приложений в режиме реального времени. Разработанный комплекс обладает универсальностью: он может быть использован для интеграции процесса управления любыми программными средствами.
Рассмотрен алгоритм автоматического формирования и изменения шлюзов на уровне отдельных модулей в зависимости от состояния транспортных систем и команд системного администратора на изменение графа подключений автоматизированных систем между собой.
Таким образом, применение микроядра для построения транспортных шлюзов позволяет повысить отказоустойчивость и адаптивность автоматизированной системы сопряжения в целом, а также сделать процесс разработки новых шлюзов более эффективным, что подтверждено в ходе испытаний. Результаты работы позволили обеспечить обмен электронными документами между автоматизированными системами, которые не имеют общих информационных и транспортных протоколов взаимодействия.
Введение
Для решения различных прикладных задач, работа над которыми ведется в Акционерном обществе «Научно-исследовательский институт точных приборов» и других организациях, было создано и внедрено множество автоматизированных систем (АС) специального назначения. В качестве результатов работы таких систем нередко выступают документы, представленные в электронной форме, при этом в процессе эксплуатации часто возникает необходимость обмена документами между системами.
Поскольку автоматизированные системы создавались в разное время различными коллективами разработчиков, перед которыми не ставилась задача сопряжения систем между собой, электронные документы зачастую имеют несовместимые форматы как с точки зрения их содержания, так и формы их представления. Например, в одной автоматизированной системе документы могут быть представлены в формате на основе языка разметки XML [1], а в другой -в бинарном формате собственной разработки.
Ситуацию осложняет тот факт, что до настоящего времени нет единого общепринятого способа доставки данных на прикладном сетевом уровне из одной автоматизированной системы в другую. Например, одна система может принимать и отправлять электронные документы только по электронной почте, а другая - только через сервер файлового обмена FTP.
Не исключена также ситуация, при которой сопрягаемые системы подключены к независимым сетям передачи данных, не имеющим общих межсетевых шлюзов, что исключает возможность прямого подключения по протоколам семейства TCP/IP.
Актуальность темы обусловлена тем, что решение задачи сопряжения автоматизированных систем требует соз-
дания дополнительных программных средств, способных учитывать особенности сопрягаемых АС на логическом и системном уровнях.
1. Автоматизированная система сопряжения
Логический и системныйуровни взаимодействия АС можно иначе формулировать как информационное и транспортное сопряжение соответственно. Информационное сопряжение с некоторой автоматизированной системой определяется информационным протоколом (ИП) функционирования этой системы - совокупностью принятых в ней формализованных правил формирования и обработки электронных документов.
Технические вопросы приема и передачи документов через какое-либо программное средство объединим в понятие транспортного протокола (ТП) функционирования автоматизированной системы, который описывает транспортное сопряжение с этой системой.
Блоки данных, передаваемые по транспортному протоколу, будем называть транспортными пакетами. Например, транспортный пакет, передаваемый по электронной почте представляет собой электронное письмо, у которого адреса отправителя и получателя указаны в формате электронной почты, а передаваемый документ оформлен в виде вложения. При этом в документе могут быть указаны, например, фамилии отправителя и получателя уже в соответствии с информационным протоколом передачи.
На рис. 1 изображены две автоматизированные системы АС1 и АС2, которые работают по разным информационным и транспортным протоколам. Эти протоколы являются априорной информацией в задаче сопряжения систем и не подлежат изменению. Мы не имеем права и возможности изменять эти системы и вмешиваться в их работу, т. к. они сданы в эксплуатацию и находятся на дежурстве.
Рис. 1. Алгоритм работы шлюзов транспортного сопряжения
Поскольку при заданных условиях передача данных между системами напрямую невозможна, необходимо добавить новый элемент структуры - автоматизированную систему сопряжения (АСС), которая, используя только информацию о протоколах сопрягаемых систем, способна обеспечить информационное и транспортное сопряжение. Другими словами, если информационные и транспортные протоколы задают соответственно множества электронных документов и транспортных пакетов, то АСС отображает множество документов и транспортных пакетов одной системы во множество документов и транспортных пакетов другой.
Если сопрягаемые автоматизированные системы подключены к независимым каналам передачи данных, то может потребоваться несколько экземпляров АСС. В таких случаях АСС становится распределенной и должна обеспечивать транзитную передачу данных.
2. Элементы внутренней структуры АСС
АСС включает в себя ряд подсистем, которые обеспечивают обработку, промежуточное хранение, маршрутизацию и передачу электронных документов, ведение журнала сбоев и нештатных ситуаций, контроль и управление функционированием комплекса в целом и др.
Структура связей между всеми сопрягаемыми автоматизированными системами представлена в виде графа, который хранится в базе управляющих данных, являющейся частью АСС. В случае наличия нескольких маршрутов передачи электронных документов внутри распределенного комплекса АСС используется алгоритм Дейкстры [2] для поиска кратчайшего пути. Подсистема АСС, реализующая этот алгоритм с учетом специфики каналов связи, названа сервером маршрутизации. Наконец, обмен данными между подсистемами осуществляется средствами системы локального транспорта (СЛТ), которая позволяет использовать для адресации логические адреса, которые не привязаны явно к сетевым адресам.
Перечисленные подсистемы не могут быть эффективно реализованы в рамках единого программного приложения в силу специфики предметной области. Для взаимодействия с сопрягаемыми системами элементы АСС нередко работают на нескольких физических и виртуальных серверах, находящихся под управлением различных операционных систем, а также подключенных к независимым сетям передачи данных.
Таким образом, мы приходим к необходимости создания программных средств сопряжения в виде распределенной системы [3], в которой отдельные подсистемы становятся самостоятельными программными приложениями, взаимодействующими между собой посредством локальной вычислительной сети. Такая архитектура позволяет повысить адаптивность и отказоустойчивость комплекса в целом, так как замена или выход из строя одного из элементов не нарушит работу других.
С другой стороны, важно избежать многократной разработки и дублирования программного кода, отвечающего за одни и те же функции в нескольких подсистемах [4]. Например, реализацию сетевого взаимодействия подсистем
между собой следует представить в виде программной библиотеки или подключаемого модуля [5].
3. Модульные шлюзы и микроядро
Традиционные способы разбиения программных средств на модули, как правило, предполагают выделение центральной части приложения - ядра, которое обладает априорной информацией о том, какие модули могут быть к нему подключены и как они могут взаимодействовать между собой.
В ходе исследования было установлено, что если ядро приложения вместо использования априорной информации о модулях может вычислить все необходимые параметры модулей автоматически в процессе работы, то получаемые при этом программные средства обладают новыми свойствами, имеющими практическую и теоретическую значимость. По аналогии с терминами, принятыми в теории операционных систем, указанную центральную часть модульных программ предложено назвать микроядром.
Проиллюстрируем данный подход на примере подсистем приема, передачи и преобразования транспортных пакетов, которые будем называть шлюзами транспортного сопряжения или просто шлюзами. Заметим, что шлюз сопряжения с некоторой автоматизированной системой должен быть реализован в соответствии с транспортным протоколом этой системы, т. е. именно внутри шлюза должно быть реализовано транспортное сопряжение.
Перед разбиением шлюза на модули покажем упрощенный алгоритм передачи документа из АС1 в АС2 (рис. 1). На первом этапе осуществляется прием транспортного пакета из АС[; после чего производится его регистрация в очереди обработки. Когда очередь обработки доходит до этого сообщения, происходит преобразование во внутренний формат транспортного пакета АСС, а также передача полученного в ходе преобразования транспортного пакета другим компонентам АСС, которые выполняют промежуточное хранение, маршрутизацию и преобразование информационной части. Шаги с первого по четвертый образуют шлюз сопряжения с АС1.
После преобразования информационной части документа начнется отправка в систему АС2, т. е. произойдет зеркальная последовательность действий, подготавливающих и отправляющих данный документ через шлюз сопряжения с АС2. В разных шлюзах присутствуют как одинаковые компоненты, так и специальные, учитывающие особенности информационного и транспортного протоколов той системы, с которой осуществляется сопряжение. Все эти компоненты, которые выделены в отдельные модули, состоят из подпрограмм, каждая из которых выполняется в ответ на какое-либо событие. Например, передача транспортного пакета начинается в тот момент, когда его преобразование завершено.
Таким образом, для разбиения шлюза на модули необходимо определить все необходимые подпрограммы и события и разделить их по модулям таким образом, чтобы при возникновении события в одном модуле подпрограмма в другом модуле начинала бы свое выполнение.
Опишем данный принцип более строго. Пусть Р - это множество всех возможных подпрограмм, которые могут выполняться в шлюзе сопряжения, а Е - множество всех событий, которые могут приводить к выполнению этих подпрограмм. Тогда модуль шлюзаМ-это набор элементов (Р1, Е, р0), где Р и Е - подмножества множеств Р и Е соответственно, ар0~ стартовая подпрограмма модуля (р е Р').
Введем также множество^ - алфавит такой, чтоХ= {а, Ъ,..., 2, Л, Б,..., 1, (,), [, ], *, _, &}. Символом алфавитах называют любой его элемент, а цепочкой над алфавитом - произвольную последовательность символов. Множество всех цепочек над алфавитомХобозначают символомХ* [6].
Два отображения sige: Е ^ X* и sigp: Р ^Х* позволяют получить из элементов множества событий и элементов множества подпрограмм соответственно их сигнатуры -цепочки над алфавитом X, которые однозначно идентифицируют каждое событие и каждую подпрограмму, а также их входные параметры.
Если шлюз сопряжения состоит из модулей М1 = (Р1,
Е1> РоЛ М = Р Е2' Рю). - К= Р М Роз)' Т0 ИМееТ Ме"
сто отношение К подключения подпрограмм и событий, которое является подмножеством декартова произведения объединения множеств подпрограмм и объединения множества событий:
Кс(Р,и Р2и...иРп) х (Е1 и Е2 и...и Еи), Я = {(р, е)}|8щ(р) = 8щ(е)}.(1)
(1)
Таким образом, микроядро, являясь программной реализацией отношения (1) для набора подключенных модулей способно обеспечивать связи между ними, получая множества событий и подпрограмм каждого модуля уже в процессе работы.
В рамках данного исследования такое микроядро было разработано на языке программирования С++ с применением средств мета-объектной системы, входящей в состав набора библиотек Qt [7]. Данное микроядро способно выполнять только анализ подключаемых к нему модулей и построение соответствующей матрицы для отношения К как в начальный момент времени после запуска, так и в каждый последующий момент времени, позволяя добавлять новые или удалять имеющиеся модули. Важным свойством разработанной программы является возможность неявного выполнения подпрограмм в нескольких модулях параллельно в отдельных вычислительных потоках [8].
Теперь покажем структуру модульного шлюза (рис. 2), построенного на основе синтеза тех данных, которые хранятся в модулях. При этом алгоритм работы остался прежним. Полученный документ извлекается из транспортного пакета и сохраняется на жестком диске, после чего документ регистрируется в очереди.
Заметим, что транспортный пакет во внутреннем формате АСС, который должен сформировать шлюз, состоит из передаваемого документа и транспортного файла, внутри которого указан ряд параметров, таких как код документа, адреса отправителя и получателя в различных форматах, идентификаторы взаимодействующих автоматизированных систем и другие данные.
Когда очередь обработки доходит до полученного сообщения, модуль обработки транспортных пакетов заполняет необходимые поля транспортного файла, после чего происходит отправка пакета в другие компоненты АСС.
4. Адаптивные модульные шлюзы
Возможность составлять шлюзы и другие программные средства из отдельных модулей позволяет более эф-
Рис. 2. Алгоритм работы шлюзов транспортного сопряжения
фекгивно разделять задачи между разработчиками АСС, что приводит к сокращению времени, необходимого на их разработку. Однако более важным преимуществом предложенного подхода является тот факт, что набор модулей, из которых состоит та или иная программа, можно изменять прямо во время ее работы, а, значит, дает возможность создавать адаптивные программные средства, способные изменять свою функциональность в зависимости от условий эксплуатации.
Для внесения изменений в модульную структуру программ на основе микроядра необходима система управления ими. В рамках исследования такая система была разработана. В ее состав вошел веб-сервер администрирования, который предоставляет администратору системы веб-интерфейс для создания и изменения модульных приложений. Кроме этого, на каждом компьютере, где запускаются модульные шлюзы, в фоновом режиме должен работать диспетчер - программное средство, которое способно принимать и выполнять команды из различных источников (в т. ч. от веб-сервера) на создание, удаление и модификацию этих шлюзов.
Следует заметить, что программная реализация модулей допускает наличие набора структурированных параметров в формате [1]. Веб-сервер, получая от диспетчеров информацию о структуре этих параметров, автоматически формирует графический интерфейс для их отображения и редактирования. Поэтому совокупность вебсервера и всех подключенных к нему диспетчеров можно рассматривать в качестве системы контроля и управления функционированием (КУФ) модульных приложений.
Из предложенной структуры КУФ следует, что допускается создание модульных программ на основе микроядра, которые транслируют свои собственные параметры
в параметры какого-либо другого программного комплекса. Это позволяет связать в одно целое процесс просмотра и изменения настроечных параметров произвольных программных средств в едином интегрированном веб-интерфейсе администрирования.
В тех случаях, когда связь между автоматизированными системами может осуществляться с использованием нескольких транспортных систем одновременно, реализация всех соответствующих транспортных протоколов может быть объединена в едином многоканальном шлюзе (рис. 3). На рисунке изображен пример четырехканального шлюза, состоящего из микроядра и нескольких одновременно функционирующих модулей. Внешние адаптеры являются группой модулей, отвечающих за отправку и прием транспортных пакетов в формате сопрягаемой автоматизированной системы АС1. Соответствующие им модули-обработчики производят преобразование транспортных пакетов из формата сопрягаемой системы во внутренний формат АСС и обратно. Внутренние адаптеры подключаются к системе локального транспорта, предоставляя четыре адреса в терминах СЛТ, на которые сервер маршрутизации может высылать сообщения. Очередь на обработку представлена модулем, который регистрирует все проходящие через шлюз электронные документы и следит за тем, чтобы в каждый момент времени адаптеры и обработчики были заняты передачей одного сообщения.
Отправка документа через любую из транспортных систем должна сопровождаться получением квитанции -отчета об успешной доставке документа в АС получателя. Анализируя размер переданного документа и время, прошедшее от начала передачи до получения квитанции, модуль, обслуживающий очередь обработки, может сформировать технологическое сообщение для сервера маршру-
Рис. 3. Многоканальный шлюз сопряжения
Рис. 4. Алгоритм управления шлюзами
тизации, которое будет доставлено через систему локального транспорта. Технологический пакет будет отправлен и в том случае, если квитанции об успешной доставке перестали поступать, либо внешний адаптер получил сигнал о потере связи с транспортной системой.
Получив вспомогательное сообщение, сервер маршрутизации должен внести изменения в базу управляющих данных, устанавливая коэффициент пропускной способности для соответствующей транспортной системы, который может оказаться равным нулю при потере связи. При построении маршрутов передачи последующих электронных документов сервер маршрутизации будет учитывать данные коэффициенты каждой транспортной системы.
Сервер маршрутизации АСС может выслать диспетчеру через СЛТ специальное сообщение с командой на удаление модулей, отвечающих за транспортную систему, которая перестала функционировать. Если же администратором системы в базу управляющих данных добавляется информация о новых транспортных системах, то аналогичным образом сервер маршрутизации отправит сообщение для добавления модулей в существующий шлюз, либо на создание нового шлюза, изменяя, тем самым, граф связей автоматизированных систем и динамически перестраивая маршруты передачи документов.
Автоматическая адаптация шлюзов под текущее состояние каналов и программных средств связи (рис. 4) стала возможной именно благодаря предложенной модульной структуре, основанной на микроядре. Такой подход позволяет повысить среднюю пропускную способность и отказоустойчивость сопрягающей автоматизированной
системы АСС, в т. ч. при деградации взаимодействующих систем и каналов связи.
Выводы
Предложенный подход к построению модульных программных средств отличается от известных тем, что используется микроядро - программа, которая служит для создания межмодульных связей в режиме реального времени. Данная система позволяет управлять потоками сообщений, перенаправляя и дублируя потоки, изменяя набор подключенных модулей без остановки и перезапуска микроядра.
На основе предложенного микроядра получен способ формирования модульных адаптивных шлюзов транспортного сопряжения, которые способны обеспечивать передачу электронных документов между автоматизированными системами, которые не имеют общих транспортных протоколов. При этом построение маршрута передачи каждого документа осуществляется с учетом текущего состояния каналов передачи данных.
Литература
1. Садаладж П.Дж., Фаулер М. NoSQL: новая методология разработки нереляционных баз данных: пер. с англ. М.: Вильяме. 2013. 192 р.
2. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ: пер. с англ. 2-е изд. М.: Вильяме. 2005. 1293 с.
3. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования : пер. с англ. СПб.: Питер. 2013. 368 с.
4. Брукс Ф. Проектирование процесса проектирования: записки компьютерного эксперта: пер. с англ. М.: Вильяме. 2013. 464 с.
5. Пайлон Д., Майлз Р. Управление разработкой ПО: пер. с англ. СПб.: Питер. 2014. 464 с.
6. Ахо A.B., Лам М.С., Сети Р., Ульман Д.Д. Компиляторы: принципы, технологии и инструментарий: пер. с англ.
М.: Вильяме. 2011. 1184 с.
7. Саммерфилд М. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++: пер. с англ. СПб.: Символ-Плюс. 2011. 560 с.
8. Уильяме Э. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ: пер. с англ. М.: ДМК Пресс. 2012. 672 с.
Для цитирования:
Королев А.С. Обеспечение информационно-технического сопряжения автоматизированных систем на программном уровне с помощью модульных транспортных шлюзов // Наукоемкие технологии в космических исследованиях Земли. 2016. Т. 8. № 5. С. 63-69.
PROVIDING INFORMATION AND TECHNICAL INTERFACE OF AUTOMATED SYSTEMS AT SOFTWARE LEVEL USING THE MODULAR MEDIA GATEWAYS
Alexander S. Korolev,
Moscow, Russia, alexander.s.korolev@yandex.ru Abstrae
In this paper we consider the problem of information-technical interaction of automated systems at the program level in respect of the transport interface. Firstly, we highlight the difference between information and transport data protocols, which are a priori information for solving this problem. Secondly, there is an approach suggested, whereby the interface of existing automated systems is carried out without modifying them using a new interface automated system provided by the distributed set of software and hardware means. Besides, the internal structure of the interface automated system is briefly described and its main subsystems are enumerated. The introduced term is a transport interface gateway, which is a software implementation of the transport data protocol. The algorithm of the functioning of the gateway and its place among other components are shown. Moreover, the choice of a modular architecture for building such gateways is justified.
Furthermore, we suggest a new approach to the organization of modular software means, which is based on the removal of restrictions on the input and output parameters of the programs contained in these modules, allowing to automatically generate inter-module data channels. The paper also introduces the notion of a microkernel and gives its mathematical interpretation. What is more, a software implementation allowing to create modular software within the proposed approach is received.
To manage modular applications in manual and automatic modes software system of operation management and control has been developed. It allows to change the structure of these applications even while they work. The obtained system is versatile and can be used for integration of management process of any software means. We have considered an algorithm of the automatic generation and
change of gateways at the level of individual modules depending on the state of transport systems and the system administrator's commands for the change of the graph of connections of automated systems among each other.
During the investigation it is predicted and confirmed that the use of the microkernel for building transport gateways lets heighten resilience and adaptability of the interface automated system as a whole, as well as make the process of developing new gateways more efficient. The results of work have enabled the exchange of electronic documents between automated systems, which do not have common information and transport protocols of interaction. Keywords: automated system; electronic documents exchange; information-technical interaction; modular software means; transport interface.
References
1. Sadalage P.J., Fowler M. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot . Addison-Wesley, 2012. 362 p.
2. Cormen T.H., Leiserson C.E., Rivest R.L., Stein C. Introduction to Algorithms. The Mit Press, 2001. 1202 p.
3. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. 416 p.
4. Brooks F. The Design of Design: Essays from a Computer Scientist. Addison-Wesley, 2010. 448 p.
5. Pilone D., Miles R. Head First Software Development. O'Reilly, 2008. 477 p.
6. Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: principles, techniques, and tools. 2nd edition. Pearson, 2007. 1038 p.
7. Summerfield M. Advanced Qt Programming: Creating Great Software with C++ and Qt. Addison-Wesley, 2010. 554 p.
8. Williams A. C++ concurrency in Action. Practical multithreading. 2012. 672 p. Manning Publications, 2009. 337 p.
Information about authors:
Korolev A.S., chief specialist, Joint-Stock Company "Research Institute of Precision Instruments".
For citation:
Korolev A.S. Providing information and technical interface of automated systems at software level using the modular media gateways. H&ES Research. 2016. Vol. 8. No. 5. Pp. 63-69.