В возможных военных конфликтах армия США решающее значение отводит информационным технологиям. В ходе реального сражения активно взаимодействовать друг с другом будут сотни и тысячи всевозможных программных систем. Однако малейшее несоответствие в протоколах передачи данных программ, разработанных разными подразделениями, способно вызвать как небольшие сбои в работе, так и полный паралич всего военно-информационного комплекса и привести к поражению в войне. Поэтому при проектировании подобных систем во главу угла должна быть поставлена концепция их полной открытости.
Именно таким путем пытаются идти разработчики МО США. Свои системы они строят в соответствии с моделью Windows for Department of Defense (к фирме Microsoft никакого отношения не имеющей). Слово “Windows” здесь означает распахнутое окно, символ открытости. Эта модель воплощает идею построения военной информационной инфраструктуры (Defense Information Infrastructure, DII) на базе единых стандартов, которые определяют требования к ПО и оборудованию. Гарантируется, что программы, отвечающие этим стандартам, смогут взаимодействовать друг с другом на любых уровнях управления системами в гетерогенных сетях произвольных конфигураций. Набор этих стандартов называется Общим операционным окружением (Common Operating Environment - COE). В нем определены базовые принципы создания открытых систем (рекомендована клиент-серверная архитектура) и программные интерфейсы (API). Формализованы также требования к представлению данных в языках программирования, на физическом и логическом уровнях, в распределенном виде и т. д. Созданные в соответствии с COE программные комплексы можно будет при необходимости интегрировать друг с другом без малейших проблем.
Что касается конкретных технологических решений DII, то разрабатываемые Пентагоном в настоящее время Глобальная система контроля и управления и Глобальная система поддержки боя базируются на мэйнфреймах фирм IBM и Unisys, применяемых в качестве серверов. Интеграция различных программных систем происходит на основе технологии CORBA и брокеров объектных запросов.
Несмотря на официальное одобрение МО США языка программирования Си++, COE при создании прикладных программ допускает использование только Ады 95. Для быстрой интеграции приложений с Internet для Ады разработан компилятор в байт-код. Этот код способен исполняться на Java Virtual Machine. Интерфейс между объектами разных систем описывается с помощью языка IDL (Interface Definition Language), который в значительной степени ориентирован на внутренние соглашения о вызове процедур, написанных на Аде.
Подобный подход к созданию сверхкрупных информационных систем кажется близким к идеальному, но только на первый взгляд. В реальности возникает множество проблем. Например, надо как-то использовать уже действующие системы, которые по разным причинам не отвечают требованиям COE. Только приведение данных к единому формату требует титанических усилий. Пока старые программы предполагается рассматривать как “черные ящики” - законченные внешние модули, а их объединению должны помочь брокеры запросов, которые смогут использовать объекты, написанные на различных языках программирования. Создание прикладных программ и средств разработки для DII также непростая задача. Это ПО должно полностью соответствовать требованиям COE - не меньше, но и не больше. В противном случае может возникнуть нестыковка, когда одна программа в системе не поддерживает возможности, реализованные в другой программе.
Однако DII, выполненная в соответствии с COE, в перспективе будет обладать невероятно высокой эффективностью. Поэтому американские военные не смущаются трудностями и пока разработали систему оценки соответствия ПО стандартам COE. Всего определено 8 уровней соответствия. Уровни с 1-го по 4-й предусматривают, что программа, по крайней мере, не вызовет разрушительных последствий, когда будет работать в среде COE. Уровень 5 гарантирует минимальное соответствие COE при совместном использовании аппаратных ресурсов, а последующие уровни (с 6-го по 8-й) характеризуют увеличивающуюся способность программ работать совместно, как единое целое.
COE представляет собой прекрасный пример продуманного подхода к стандартизации проектирования очень больших программных комплексов. В военной области сегодня реализуются наиболее масштабные и не имеющие аналогов компьютерные проекты, определяющие развитие самых передовых технологий программной индустрии, и тем, кто хочет занимать лидирующие позиции среди компаний-разработчиков ПО, просто необходимо следить за развитием современных военных технологий.
P. S. Кстати, остались ли еще в России программисты, разрабатывающие коммерческие проекты на Аде? Напишите мне по адресу: softart@postman.ru.
Сергей Бобровский