title: Программируемо ли непрограммируемое?
Creators: name: ., С.В. Кулешов – д.т.н., гл. науч. сотрудник, зам. директора по научной работе,  Санкт-Петербургский институт информатики и автоматизации РАН E-mail: kuleshov@iias.spb.su
Publisher: name: Издательство Радиотехника
Year: 2019

description: Настоящий выпуск журнала посвящен актуальным вопросам создания киберфизических систем, их динамического реконфигурирования (в том числе программно-определяемого реконфигурирования), а также элементам искусственного интеллекта и сервисам поддержки принятия решений в социокиберфизических системах. Описанные подходы направлены на совершенствование киберфизических систем, отличающихся тесной интеграцией информационных ресурсов и физических сущностей любого вида, включая биологические и рукотворные технические объекты.
Многие научные проблемы, затронутые в статьях, лежат в той области информационных технологий, задачи которой сформулированы в рамках научной школы «Алгоритмические модели программируемой технологии развивающихся инфокоммуникационных систем», созданной выдающимся ученым СПИИРАН доктором технических наук, профессором Виктором Васильевичем Александровым.
Направление, изначально обозначенное как «цифровая программируемая технология» [1−4], находя свое практическое воплощение во всех сферах деятельности современного «цифрового общества», постепенно трансформировалось в «цифровые программно-определяемые системы» [5, 6].
Кроме этого, в рамках созданной им научной школы Виктор Васильевич развил новые научные направления: теорию развивающихся систем, инфологический подход к построению интеллектуальных систем, NBICS-технологии.
Именно В.В. Александров более 15 лет назад заложил понятие «цифровых программируемых технологий» и сформулировал вопросы «Можно ли программировать то, что изначально не предназначалось для того, чтобы быть запрограммированным? Какая разница между программно-управляемыми и программно-определяемыми системами? Где находятся физические границы программы?».
Первыми с понятием «программа» исторически были связаны «программируемые» или «программно-управляемые» устройства. Характерным признаком таких систем является то, что их архитектура задается в процессе проектирования и производства (Design-time реконфигурация). Последующие модификации (в том числе переориентация на другую задачу) требуют изменения аппаратного обеспечения, а технология реконфигурации предполагает возможность перекоммутации и перенастройки блоков и т.п.
Революционной идеей, значение которой трудно переоценить, является принцип «хранимой программы». Первоначально программа задавалась установкой перемычек на специальной коммутационной панели, что является весьма трудоемким занятием. Однако программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа.
Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами обработки данных [7]. К этой программируемой парадигме относятся методы и алгоритмы, использующие классическую программную реализацию – программное управление процессом обработки данных.
Несмотря на то, что традиционно процесс вычисления на ЭВМ предполагает наличие входных данных для программы, которые интерпретируются как аргументы для вычисляемой функции, преобразуемые в результат (набор выходных данных), входные данные можно понимать и несколько шире – как модификатор для выполняемой программы, отвечающий за вариативность выполнения программой процесса и влияющий на конечный результат. Последнее породило парадигму программирования, при которой программная реализация построена так, что логика программы определяется входными данными. Под такую парадигму попадают многочисленные системы: экспертные, рекомендательные, использующие машинное и глубокое обучение.
Следующим ключевым моментом в понимании «программируемых систем» стал этап, когда программно-управляемые системы (информационно-управляющие или вычислительные системы с жесткой архитектурой) были дополнены аппаратной средой, допускающей изменение своей структуры под воздействием этих программно-управляемых устройств. Последнее стало основой программно-конфигурируемых (программно-определяемых) устройств, реконфигурируемых прямо в процессе своей работы (Run-time реконфигурация). Такие системы обладают новым качеством – возможностью изменения собственных свойств под влиянием этих данных.
Не стоит забывать и про такой феномен, как «программно-управляемые программы». Здесь имеются в виду технологии виртуализации, когда программа-гипервизор управляет выполнением целевой программы, имитируя для нее среду выполнения. При этом данные программы могут как ничего не знать друг про друга, так и работать в паре, повышая гибкость программируемой системы.
Устойчиво наметившиеся тенденции цифровой трансформации, методологическое обеспечение разработки цифровых технологий, и самое главное – самоощущение человеком себя как элемента виртуального коммуникационного пространства – уверенно позволяют говорить о концепции, которую можно назвать «Программно-определяемое все» [8].
Программно-управляемая программа, работающая в программно-определяемом окружении, – вот современная реальность цифрового мира.
Рассмотренный пример увеличивающейся сложности разрабатываемых киберфизических программно-определяемых систем делает суперактуальными вопросы их информационной безопасности как с точки зрения защиты данных, так и с точки зрения экологической безопасности их пользователей. Данный аспект комплексной междисциплинарной проблемы функционирования социокиберфизических систем в современном цифровом обществе также будет подробно освещен в настоящем выпуске журнала.