х : х х: х : х Х ‘ Расширения программного модулядля oi казоустойчивого исполнения Рисунок L.8. Модель мультиверсионного программного средства при N=3. Все три элемента NVP объединены целью независимой и конкурентной генерации функционально эквивалентных программных компонент (версий), которые будут исполнены и будет принято решение о правильности функционирования ПО. В этих элементах совершенно нет необходимости в случае использования одной версии программы. Таким образом, концепция мультиверсионного программирования (как подход к созданию отказоустойчивого ПО) вводит такие новые направления исследований в области инжиниринга программного обеспечения, как NVP, NVS, NVX, определения которых рассмотрены выше. Первые предложения по применению множественных версий ]1C появлялись по мере развития компьютерной техники и эволюции методов и средств обнаружения и исправления ошибок еще в начале 1970-х годов [15]. Первоначально появился термин ’’избыточное программирование” (redundant programming) [16] с решающей функцией, аналогичной мажоритарной схеме голосования в технических системах, и лишь позднее при систематизации модель была выделена в мультиверсионное программирование. 39 |
независимости и функциональной эквивалентности N индивидуальных процессов программирования. 2. Результат (мультиверсионное программное обеспечение NVS, Inversion software) процесса мультиверсионного программирования, для которого имеются в наличии средства конкурентного исполнения со специфическими точками контроля и "с-векторами". 3. Внешние средства поддержки исполнения версий ПО (N-version executive или NVX), которые обеспечивают выполнение NVS и предусматривают алгоритмы принятия решений (decision algorithms) в контрольных точках. си х; х* X е А j-й модуль мультиверсионного по Версия 1 Среда исполнения (СИ) Функция поддержки исполнения Версия 2 Версия 3 Алгоритмы решения х? х: х . Расширения программного модуля для отказоустойчивого исполнения Рис. 5. Модель мультиверсионного IIC при п=3. Все три элемента NVP объединены целью независимой и конкурентной генерации функционально эквивалентных программных компонент (версий), которые будут исполнены и будет принято решение о правильности функционирования ПО. В этих элементах совершенно нет необходимости в случае использования одной версии программы. Таким образом, концепция мультиверсионного программирования (как подход к созданию отказоустойчивого ПО) вводит такие новые направления исследований в 45 области инжиниринга программного обеспечения, как NVP, NVS, NVX, определения которых рассмотрены выше. Первые предложения по применению множественных версий ПС появлялись по мере развития компьютерной техники и эволюции методов и средств обнаружения и исправления ошибок еще в начале 1970-х годов [71, 72, 74, 77]. Первоначально появился термин "избыточное программирование" (redundant programming) [61] с решающей функцией, аналогичной мажоритарной схеме голосования в технических системах, и лишь позднее при систематизации метод был переименован в NVP мультиверсионное программирование. Среда исполнения (СИ) j -Ймодуль программного комплекса с блоком восстановления Кэш восстановления х--------/ * Версия 1 Версия 2 Функции поддержки исполнения Расширения программного модуля для отказоустойчивого исполнения Рис. 6. Модель схемы с восстановительным блоком. Другое, не менее известное направление развития отказоустойчивого ПО, использование блока восстановления (Recovery Block Approach RB), который явился результатом долговременных исследований в области вычислительных систем высокой надежности, инициированных Б. Ранделлом [95]. Схема с восстановительным блоком (рис. 6) соответствует методу динамической избыточности в технике и подразумевает наличие М > 2 альтернатив и приемочного теста ( |