Межведомственная бригада разработки, внедрения и эксплуатации системы «Сбор-В» и ЕЦУ. Сидят (слева направо): п/п-к Жуков Евгений, руководитель разработки к.т.н. Николаев Андрей, вед. программист Середа Валентина, программист Карпушенко Елена; стоят: вед. программист Косов Алексей, майор Гаврилов Владимир, руководитель эксплуатации системы «Сбор-В» и «ЕЦУ» п/п-к Юсупов Алим, руководитель разработки подсистемы хранения Аксюта Геннадий. ВЦ космодрома Плесецк, 1998 год
Создание программного обеспечения систем «Сбор-В» и «Управления из единого центра» (ЕЦУ) наземным измерительным комплексом космодрома Плесецк 90-х годов.
Введение
Цель статьи — приоткрыть завесу тайны разработки программного обеспечения, использовавшегося для испытания баллистических ракет стратегического назначения. В статье кратко показана преемственность поколений советских разработчиков из так называемых шарашек и разработчиков 1990-х годов, работавших на оборону и космос. По тексту будут даны ссылки как известных разработчиков программного обеспечения Запада, так и на «неизвестных солдат» облагороженных шарашек нового облика, отличающихся от сталинских полной свободой расконвоированных заключённых во внерабочее время, которым зарплату задерживали месяцами и не кормили на работе, как в «шарашках». В статье показан ход рассуждений при создании ПО, а также впервые показаны отдельные слои, которые дают представление о превосходстве программного обеспечения военного назначения России и Украины 1990-х над ширпотребовским программным обеспечением Запада того времени.
Итак, в 1991 году ещё не были написаны книги о шаблонах интеграции корпоративных приложений, появившиеся позднее, через четверть века [1]. Опираться пришлось на понимание того, что самым важным для интеграции должны стать разнородные сообщения, передаваемые по телеграфным и телефонным линиям связи, защищённым криптографической аппаратурой. Построение, как теперь принято говорить, стека протоколов выполнялось на основе эталонной модели взаимодействия открытых систем применительно к концентратору информации.
В процессе модификации ЭМВОС коммутирующий элемент, в силу упрощения ИВС и переноса сложности на универсальный элемент — концентратор информации, потребовал усложнения своей архитектуры, что и ожидалось с самого начала. ПО КИ был нагружен дополнительными уровнями: прикладным, представительным, сеансовым и транспортным, как показано на рисунке.
Уровни программного обеспечения концентратора информации для интеграции измерительными системами (ИС) с разнородными сетями передачи и обработки информации
Описание того, как разработан каждый из 7 уровней концентратора информации, вероятно, не поместится ни в одну статью, поэтому стоит показать самые интересные уровни.
Итак, о физическом уровне упрощённо можно сказать, что это разъемы и кабели. Например, между ВЦ космодрома Плесецк и ИС «Вега» Воркуты была криптографическая линия связи, по которой в 1993 году удалось впервые провести обмен информацией между двумя концентраторами. Закрытая линия связи обеспечивалась аппаратурой «Интерьер» в качестве аппаратуры окончания канала данных (АКД).
НИИ связи (Марфино):
Узнать о том, как работали узники, создавая секретную телефонию, можно в увлекательном романе Солженицына «В круге первом». Экранизация романа есть на YouTube [5]. При дефиците времени рекомендую посмотреть наиболее характерные моменты научной организации труда инженеров «шарашки» [6-10].
Нам предстояло прикоснуться к этой трагической работе советских заключённых шарашки. Нам не разрешено было даже знать, что это за аппаратура и как она работает. Мы могли только отдать свой кабель, чтобы его присоединили к аппаратуре без нашего участия. Если будет работать, то у нас получилось, а если не будет работать, то не судьба — проект провалится.
Задача усложнялась многими факторами. Однако в Плесецке Михаилу Мокринскому и Игорю Шипше удалось передать «тихо-мирно» кабели, соединить два концентратора и методом проб и ошибок найти способ передачи данных по закрытой линии, а Николаев разработал специальный «следящий протокол», который на транспортном уровне заставлял аппаратуру закрытой линии связи восстанавливаться при сбоях и потере синхронизации между двумя концентраторами. Но не всё проходило так мирно и гладко. В Норильске солдат, как теперь помню, Зайцев, никак не мог воткнуть куда следует кабель в аппаратуру закрытия информации. Тогда Николаев Андрей и Кравченко Анатолий постучались в секретную комнату, и, когда дверь приоткрылась, ворвались в комнату, оттеснив бойца, и сами присоединили кабель к аппаратуре секретной телефонии. Всё заработало. Это был успех. А на следующий день пришлось писать объяснительную в ФСБ. Но, оказалось, уже было не то время, чтобы отправлять провинившихся за решётку в Марфино. И слава богу!
Аппаратура секретной телефонии «Интерьер» [11]
Впоследствии был разработан адаптер, который удешевлял концентратор ввиду того, что не везде требовался полный набор адаптеров. Это уже была личная инициатива Николаева, Мокринского и Шипши.
Алгоритм реализации ПО «Сбор-В» сеансового уровня
Всё описать в рамках статьи невозможно, поэтому имеет смысл написать нечто такое, что может удивить читателя.
Три верхних уровня базовой эталонной модели взаимосвязи открытых систем (пятый – сеансовый, шестой – представительный, седьмой – прикладной) принято считать уровнями, ориентированными на приложения.
Взяв любую книгу, мы увидим, что сеансовый уровень практически не описан. Сеансовый уровень в литературе был описан наиболее противоречиво. С одной стороны, складывается впечатление, что авторам нечего сказать; например, В.Г. Олифер и Н.А. Олифер [13] отвели этому неполных 8 строк! С другой стороны, описание сеансного уровня носит явно схоластический характер [14]: у Ф. Халсалла отсутствует дуплексность в передаче данных, концепция «жетона» не позволяет реализовать ПО в разумный интервал времени из-за отсутствия реальных механизмов обмена данными, реализованными в ОС. Советов Б.Я. и Яковлев С.А. считают, что практически эти уровни не реализованы в силу их сложности [15].
Отсутствие методологии привело к тому, что программисты, работающие только в пределах Интернета, нашли выход из этой сложной ситуации в том, что все три уровня (сеансовый, представлений и прикладной) объединили в один прикладной уровень [16]. Хотя какой там в СССР Интернет в далёкий 1991 год!? Сеансовый уровень системы «Сбор-В» и ПАС управления системами «Вега» из ЕЦУ был разработан как отдельный уровень, отражающий конкретный сеанс работы по испытуемому изделию. Метод реализации сеансового уровня в системе «Сбор-В» базируется на создании примитивов — особых конвертах для содержательной траекторной информации.
Традиционно сеансовый уровень локализует все обращения к сетевому программному обеспечению внутри себя, представляя для остальных программ набор примитивов, позволяющих обмениваться информацией, не вникая в подробности функционирования сети. К атрибутам примитивов следует отнести такие атрибуты, которые позволяют идентифицировать испытания по типу баллистической ракеты (номеру изделия), по порядковому номеру пуска ракеты в течение суток, дате и времени испытания, уникальному номеру измерительного средства. Использование примитивов сеансового уровня позволяет предоставлять целостную информацию сеанса внешнетраекторных измерений.
Для реализации сеансового уровня была организована библиотека примитивов. Сюда был включен следующий минимальный набор примитивов: а) установить сеанс; б) послать блок данных; в) закрыть сеанс.
В системе «Сбор-В» эти три примитива позволяют производить передачу информации от периферии к центру сбора. Все они выполнены в виде библиотеки на языке «С» и в процессе трансляции присоединяются к программам передачи данных в сеть. Таким образом, для выполнения передачи программа вначале выполняет открытие сеанса примитивом OPEN. Затем каждый блок данных инкапсулируется в конверт и посылается в сеть. По окончании передачи информации в центре сбора производится закрытие сеанса путём посылки примитива CLOSE.
Методика административного управления ПО КИ на сеансовом уровне
Административное управление использует возможности операционной системы UNIX, а именно очереди сообщений, виртуальный канал и fifo-файлы, являющиеся особенностью ОС UNIX. Примитив «установить сеанс» обеспечивает организацию fifo-файлов на двух концах сети и виртуальной линии между ними для передачи сообщений. Запуск производится оператором и контролируется им. Для установления сеанса (под испытание баллистической ракеты) первоначально производится проверка функционирования протоколов TCP/IP путём тестирования программой ping. Далее примитив передачи блоков данных записывается в fifo-файл так же, как и в любой другой файл. А сетевые средства UNIX на другом конце передачи предоставит эту информацию в спаренный fifo-файл машины получателя. Восстановление канала производится посредством операции разъединения и повторного установления канала. Выяснение вопроса отсутствия канала производится путём сквозного квитирования тестовых посылок, задействующих два канала (туда и оттуда). Прекращение сеанса разрушает связь между fifo-файлами, размещёнными по разные стороны сети. Все процедуры выполняются программой, предназначенной для административного управления и отделённой от коммуникационных программ прикладного и представительного уровня. ПО сеансового уровня системы «Сбор-В» и ПО управления комплексом систем «Вега» из ЕЦУ представлены на схемах ниже. Под административное управление сеансовым уровнем выделен отдельный виртуальный терминал – дисплей ПЭВМ из состава АРМ ЕЦУ. APM ЕЦУ использует полный набор межпроцессных механизмов обмена: очереди, fifo-файлы, сигналы, разделённые области памяти, что особенно полезно для отображения на экране в режиме одностраничности.
ПО удалённых концентраторов информации системы «Сбор-В»
ПО ВЦ Космодрома Плесецк системы «Сбор-В» — сеансовый уровень
ПО центра сбора, ПО АРМ ЕЦУ — сеансовый уровень
Методика обеспечения срочности передачи сообщений
Система «Сбор-В» передаёт данные траекторных измерений. В параллель с этим используются команды управления системы «ЕЦУ». Поэтому возникла необходимость разделения сообщений по уровню срочности. В 1993 году ещё не было создано STL библиотеки Степановым и Менгом Ли (Meng Lee), поэтому в расчёте только на свои силы Андрей Николаев предложил и реализовал совместно с Валентиной Гордиенко схему использования общего тракта, в котором создаются механизмы, позволяющие выполнять селекцию сообщений разной срочности и промежуточное накопление информационных сообщений. При этом всё наработанное должно было остаться внутри предприятия-изготовителя и эксплуатационной организации. Выполнением селекции сообщений обеспечивалась передача сообщений в соответствии со срочностью. Срочные блоки данных всегда идут впереди менее срочных. Рассмотрим, как это было обеспечено.
Система «Сбор-В» и ПАС управления ИС «Вега» из ЕЦУ в процессе сеанса обмена блоками данных используют два класса срочности. К первому классу срочности относятся так называемые «срочные данные». Они включают в себя, в основном, команды управления и квитанции на эти команды. Для них определена максимально допустимая задержка передачи. За пределами диапазона допуска задержки команда считается опоздавшей и потерявшей актуальность, следовательно, должна удаляться из сети. Кроме срочных данных, имеется также и второй класс сообщений – бессрочные (нормальные) данные. Они не должны теряться, но и не должны мешать прохождению срочных, которым должны «уступать дорогу». Использование механизма кольцевого буфера на входе к точке доступа к услугам транспортного уровня позволяет выполнить виртуальное разделение тракта передачи на тракт нормальных данных и тракт сигналов управления. На выходе из транспортного уровня кольцевой буфер необходим в точке, где сходятся потоки от разных источников информации, т. е. в центре сбора внешнетраекторной информации, в той ЭВМ, которая поднимает информационные блоки с транспортного уровня на уровень сеанса данных с целью дальнейшей маршрутизации и/или обработки.
Кольцевой буфер образует очередь сообщений, построенную по принципу «первый пришёл — первый ушёл». Для улучшения понимания принципа работы кольцевого буфера упростим ситуацию, предположив, что длина блоков одинаковая. Тогда работа буфера определяется двумя индексирующими переменными: in — указывает позицию, куда пишется элемент, out — указывает позицию, из которой он извлекается. Идеально было бы, если бы у этого массива индексация не имела ограничений. Однако вполне подходит и любой конечный массив: ведь однажды считанный блок больше уже не используется. Поэтому его место можно повторно использовать.
Предложенный и реализованный метод одностороннего взаимодействия сеансовых объектов
Кольцевой буфер используется для временного хранения бессрочных блоков данных до тех пор, пока не появится «окно» в потоке срочных данных. Глубина буфера должна быть такой, которая позволит при необходимости вместить «нормальную» информацию одного сеанса. В связи с тем, что объём буфера может быть значительным, его можно разместить в файле и хранить на дисковом накопителе. Это позволяет организовать последовательное группирование потоков срочных и «нормальных» данных в общем тракте, отдавая преимущество срочным данным. Алгоритм работы процесса сортировки данных. В документации по системе «Сбор-В» и ЕЦУ алгоритмы описаны в форме псевдокода. Поэтому здесь тоже приводится алгоритм работы с сообщениями разной срочности на псевдокоде.
Псевдокод процесса селекции срочных и бессрочных сообщений сети: n — число элементов, находящихся в данный момент в буфере; N — размер буфера; X — содержимое сообщения[/center]
Заключение
Работа над системами «Сбор-В» и ЕЦУ была выполнена успешно. Десятки испытаний ракет были своевременно обеспечены информационно. Построены траектории полёта ракет, это позволило оперативно докладывать о результатах пусков баллистических ракет стратегического назначения как наземного, так и морского базирования, докладывать о траекториях пусков ракетоносителей космических аппаратов.
Система ЕЦУ функционировала успешно как в части обеспечения подготовки ИС «Вега» к проведению испытаний, так и в части адаптивного управления наземным измерительным комплексом.
Разработанные системы успешно эксплуатировались на космодроме Плесецк, что облегчило заточку ядерного меча. Измерительные системы, входящие в ИВС систем «Сбор-В» и ЕЦУ, на момент 1998 года приведены на рисунке:
Измерительные пункты, работающие в интересах космодрома Плесецк и интегрированные в систему «Сбор-В» и ЕЦУ
Разработка систем «Сбор-В» и ЕЦУ позволила распространить новые методики на создание и внедрение информационных систем Украины. К ним относятся системы сбора в гидрометеорологии, наблюдения за сейсмическими датчиками, «Система навигационного и временного обеспечения Украины», интеграция разнородных коммутаторов сотовой сети Life и т. д.
«Холодная война» официально закончилась капитуляцией Горбачёва на Мальте и развалом СССР. Но оставались ещё «партизаны» холодной войны, которые, так сказать, держались до подхода основных сил. В то время всё висело на волоске, но мы справились.
Источники
1. Хоп Г., Вульф Б. Шаблоны интеграции корпоративных приложений. Проектирование, создание и развёртывание решений, основанных на обмене сообщениями. М.: Вильямс, 2016.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12. Патент Украины №25664 А, G06f13/00. Пристрiй сполучення / Мокринський М.О, Николаев А.В., Шипша І.М. — №97052331; Заявл. 21.05.1997; опубл. 30.10.1998, бюл. №6.