Начата работа по созданию саморазвивающегося программного обеспечения

0 View

Адаптация компонентов программного обеспечения


Одна из проблем современности заключается в том, что используемое программное обеспечение достаточно быстро и с угнетающей регулярностью становится устаревшим, его функциональность перестает соответствовать уровню развития аппаратных средств вычислительных систем и все возрастающим потребностям его пользователей. И если большинство простых пользователей еще может как-то смирится с использованием устаревшего программного обеспечения, то для больших организаций и государственных структур, таких, как вооруженные силы, это является достаточно серьезной проблемой. Принимая это во внимание, Управление перспективных исследовательских программ Пентагона DARPA начало выполнение новой программы BRASS (Building Resource Adaptive Software Systems), целью которой является создание систем программного обеспечения, способных постоянно саморазвиваться, поддерживая свою функциональность в актуальном состоянии в течение минимум ста лет.

Поскольку программно-технические системы становятся все более сложными, то проблемы устаревания и совместимости с системами предыдущих поколений становятся все глубже и глубже. В результате проблем несовместимости нынешние устройства не могут использоваться совместно со старыми устройствами, коммуникации между ними не могут быть установлены, что иногда может привести к потере жизненно важных данных. Наглядным примером этому является проект BBC Domesday Project, который реализовывался в 1980-х годах. В ходе этого проекта в цифровую форму были переведены данные Нормандской переписи 11-го столетия, а данные были записаны на оптические диски стандарта LaserVision. Эти диски хранились в забвении до 2002 года, но когда они снова потребовались, оказалось, что стандарт LaserVision не совместим с нынешними устройствами для чтения лазерных дисков и считывание данных превратилось в достаточно серьезную проблему.

Подобные проблемы, если рассматривать их с точки зрения вооруженных сил, только усугубляются со временем и в некоторых случаях он могут сыграть неблагоприятную роль в деле обеспечения безопасности стран. С каждым обновлением программного обеспечения, которое часто требует пререформатирования систем хранения данных, требующего значительных затрат времени и средств, совместимость систем с более старыми средствами постоянно ухудшается, что иногда приводит к невозможности взаимодействия узлов различных поколений, которые встречаются в составе военных систем.

В ходе проекта BRASS, реализация которого рассчитана на четыре года, будут разработаны аппаратные средства вычислительных систем и соответствующие им алгоритмические решения, которые станут основой систем программного обеспечения, способных самостоятельно поддерживать свою функциональность в течение столетий. Эта возможность будет реализована за счет придания этим системам возможности адаптироваться к изменениям их компьютерной "окружающей среды", а это, в свою очередь потребует разработки новых базовых уровней лингвистических абстракций, при помощи которых программы сами смогут оценивать доступные им ресурсы, наблюдать за изменениями в окружающей их среде и реагировать на эти изменения соответствующим образом.

В настоящее время все компьютерные приложения представляют собой стек программного обеспечения, состоящий из нескольких "слоев" абстракций. Перемещение данных через эти слои позволяет оптимально использовать различные интерфейсы и возможности различных узлов аппаратных средств. Но такая многослойная структура делает понимание функционирования сложных систем достаточно трудным делом, которое становится буквально "неподъемным" при превышении некоторого уровня сложности этих систем.

Подходы, которые будут реализованы в программе BRASS, затронут самые основы процессов создания программного обеспечения, технологии анализа программного обеспечения и методы анализа его работы, что позволит определить, сколько вычислительных и других ресурсов может потребоваться программе при разных подходах к ее построению. Это в свою очередь, позволит приспосабливать программу по мере изменения ее окружающей среды, к примеру, позволит использовать дополнительную память или вычислительные ядра по мере их появления в системе. И, стоит заметить, что это все будет происходить без участия в этом программистов и других специалистов.

"Современные технологии развиваются огромными темпами, но очень часто изменения в библиотеках, форматах хранения данных, протоколах и других компонентов "экосистемы" программного обеспечения делаются в ущерб совместимости с программным обеспечением предыдущих поколений" - рассказывает Суреш Джейгэннэзэн (Suresh Jagannathan), один из руководителей программы BRASS, - "А смена поколений программного обеспечения обуславливается тем, что программы не могут самостоятельно приспосабливаться к изменениям в режимах их эксплуатации. Это приводит к несовместимости, препятствует поддержке соответствующего уровня безопасности и многое другое. Новые программы, основанные на разрабатываемых нами принципах, будут всегда находиться в актуальном режиме, по максимуму используя возможности аппаратных средств вычислительных систем. При этом они никогда не утеряют связи с предыдущими поколениями, оставаясь способными работать с данными и интерпретировать их содержание согласно новым принципам".