Программная реализация среды исполнения мультиверсионного программного обеспечения

Функциональное назначение продукта, область применения, его ограничения. Взаимодействие с исполняемыми версиями. Посылка команд от программ-версий к среде NVX. Условия передачи программной документации или ее продажи. Сохранение данных в базу данных.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 06.01.2020
Размер файла 578,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1

Размещено на http://www.allbest.ru/

Красноярск

2006

Программная реализация среды исполнения мультиверсионного программного обеспечения

1. Функциональное назначение продукта, область применения, его ограничения

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

· Некоторый модуль (или модули) реализован несколькими идентичными версиями, которые выполняются параллельно. Результат работы модуля определяется по завершении работы всех версий (или в контрольной точке) на основе анализа выходных данных всех версий. При этом алгоритмы работы и средства разработки всех версий должны быть различными (для исключения дублирования ошибок, то есть если одна версия дала ошибочный результат, то есть шанс что остальные версии дадут корректный результат).

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

· Имеется среда исполнения (NVX-среда) которая реализует алгоритм голосования и управление работой всех версий.

Программа NVX представляет собой вариант реализации среды исполнения для мультиверсионных систем. Программа реализует параллельное исполнение версий мультиверсионной системы и контроль их работы.

Программа реализует следующие функции:

1. Создание процессов версий модуля и управление ими (задача приоритета процесса, останов процесса, перезапуск)

2. Взаимодействие с процессами версий

· Сбор статусов работы всех версий

· Реагирование на сигналы версий (реализация алгоритмов голосования и коррекция данных в контрольных точках и по завершении работы версий)

· Посылка управляющих сигналов версиям (продолжать работу после голосования и коррекции данных)

3. Выбор корректных данных из всего множества выходных значений версий. Выбор производится после завершения работы всех версий (когда статус всех версий равен «done»), либо в контрольных точках (когда статус всех версий равен «check»). После принятия решения о том, какие версии сработали корректно, данные версий, которые сработали не корректно, автоматически заменяются на верные.

К программе прилагаются три тестовых программы-версии.

1.1 Особенности программы

Программа NVX обладает следующими особенностями

1.1. Программа разработана с ориентацией на универсальность решаемых задач. То есть программа создаёт среду для исполняемых версий. Сами же версии разрабатываются независимо и могут быть направлены на решение любых вычислительных задач (предполагается, что выходы версий - числа).

1.2. Программа и все компоненты, необходимые для её работы (включая СУБД и драйвер взаимодействия с СУБД) бесплатны; К программе прилагаются исходные коды тестовых модулей

1.3. Программой поддерживаются три алгоритма голосования

- Алгоритм голосования абсолютным большинством (NVP-MV)

- Алгоритм голосования согласованным большинством (NVP-СV)

- Модифицированный алгоритм голосования согласованным большинством, разработанный автором программы (алгоритм вероятностного NVP-СV голосования). Ознакомиться со схемой работы модифицированного алгоритма можно в статье «Модификация алгоритма голосования согласованным большинством». Статья находится в файле modifiedCV.pdf и прилагается к документации программы.

1.4. В программе реализована поддержка контрольных точек. Предполагается, что версии в процессе вычислений останавливаются на некоторых «точках» и передают для NVX текущие результаты вычислений. В этом случае NVX принимает решение о том, какие «выходы» корректны с помощью выбранного алгоритма голосования. После голосования данные тех версий, которые сработали «некорректно» заменяются «корректными» - происходи коррекция данных.

1.5. Имеется возможность динамически изменять приоритет процесса самой программы

1.6. В качестве источников данных могут выступать текстовые файлы либо таблицы базы данных СУБД MySQL (то есть, версии должны сохранять результаты вычислений либо в текстовые файлы, либо в базу данных MySQL).

1.7. При условии, что версии модуля сохраняют информацию в базу данных MySQL, для работы программы необходимо наличие драйвера mysql-connector-odbc-3.51.12. Драйвер можно бесплатно загрузить с сайта разработчиков СУБД MySQL (www.mysql.org).

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

1.9. Программа предъявляет ряд требований к разрабатываемым версиям и к реагированию версий на оконные сообщения. Эти требования необходимо учитывать перед разработкой программ-версий. С требованиями можно ознакомиться в пунктах 2 и 3 данного руководства.

1.10. Предусмотрена возможность голосования «по имеющимся данным» - без наличия исполняемых версий (смотри приложение 2)

1.11. Поддерживается одновременное исполнение до 30 версий

1.12. Программа ориентирована на специалистов знающих принципы работы мультиверсионного ПО и алгоритмов голосования в мультиверсионном ПО.

1.2 Общая схема работы программы

Программа NVX работает по следующей схеме

1

Размещено на http://www.allbest.ru/

Красноярск

2006

Рис 1 Общая схема работы программы NVX

1.3 Взаимодействие с исполняемыми версиями

1.3.1 Адресация данных

Взаимодействие с процессами исполняемых версий (обмен командами) осуществляется с использованием оконных сообщений. То есть при посылке сигнала от среды к версии в качестве адреса назначения выступает заголовок окна версии. Поэтому к программам-версиям предъявляется следующее требование: заголовок окна версии должен иметь фиксированный вид - version[номер версии]. Например, если используется три версии, то заголовки окон программ-версий должны быть version1, version2, version3. Программы-версии также должны посылать данные программе NVX через оконный интерфейс. Отсюда другое требование к программам-версиям - все сигналы (running, check, done) должны посылаться в адрес процесса с заголовком окна «NVX».

1.3.2 Поддерживаемые команды

Программа NVX реагирует на три сигнала: «running», «check», «done»

Команда

Назначение команды

Действия программы NVX

running

-установить статус версии «running»

-для программы-версии, которая «прислала» сигнал устанавливается статус «running»

check

-установить статус версии «check»

-проверить необходимость голосования и коррекции данных (необходимость возникает когда статус всех версий равен «check»)

-для программы-версии, которая «прислала» сигнал устанавливается статус «check»

-проверяется статус всех версий. Если статус всех версий равен «check», то производится голосование и коррекция неверных данных

-всем исполняемым программам-версиям направляется сигнал «resume»

(«продолжать выполнение»)

done

-установить статус версии «done»

-проверить необходимость голосования и коррекции данных (необходимость возникает когда статус всех версий равен «done»)

-для программы-версии, которая «прислала» сигнал устанавливается статус «done»

-проверяется статус всех версий. Если статус всех версий равен «done», то

- производится голосование и

коррекция неверных данных

- выводится сообщение о том, что

работа всех версий завершена и

можно смотреть результат

-всем исполняемым программам-версиям направляется сигнал «resume»

(«продолжать выполнение»)

Программы-версии должны иметь способность посылать три команды «running», «check», «done» и реагировать на единственную команду «resume». Посылка команд должна осуществляться по следующим принципам

· Посылка команды «running» - означает, что программа выполняется

· Посылка команды «check» - означает, что программа доработала до контрольной точки и находится в ожидании что остальные версии тоже «дойдут» до контрольной точки (как только у всех версий статус «check» происходит голосование и коррекция данных)

· Посылка команды «done» - означает, что программа завершила все вычисления и находится в ожидании что остальные версии тоже завершат вычисления (как только все версии завершили вычисление происходит голосование, коррекция данных и NVX сообщает о готовности предоставления результатов)

1.3.3 Обобщенная схема работы версии

Независимо от задачи, которую решает мультиверсионный модуль, логика работы каждой версии должна быть следующей

1

Размещено на http://www.allbest.ru/

Красноярск

2006

Рис 2 Обобщённая схема работы версии

1.3.4 Посылка команд от программ-версий к среде NVX (реализация)

Посылка всех команд от программ-версий к среде (программе NVX) должна осуществляться с помощью оконных сообщений. При этом формат сообщений должен быть следующий:

[номер версии]+[пробел]+[команда].

Например, если версия номер 1 завершила вычисления и сохранила результат, то посылаемое сообщение должно быть:

«01 done».

Для языка программирования Delphi послать такую команду можно с помощью кода, который представлен в приложении 1, листинг 1.

1.3.5 Сохранение и обработка данных

Программа NVX поддерживает обработку данных из двух источников: текстовый файл и таблица базы данных MySQL. Поэтому версии должны сохранять результаты вычислений либо в текстовый файл, либо в таблицу базы данных MySQL.

программа база данные программный

1.3.5.1 Сохранение данных в текстовый файл

Текстовый файл с выходными данными версии должен содержать только числа. Если чисел несколько они должны отделяться друг от друга пробелом. Дробные части от целых отделяются запятыми.

1.3.5.2 Сохранение данных в базу данных

В случае если версии сохраняют данные в таблицы базы данных MySQL, необходимо:

· На сервере СУБД

- создать базу данных для хранения «выходов»

- в созданной базе данных создать таблицы для хранения «выходов» версий

- задать необходимые права на доступ к таблицам

Пример реализации базы данных с выходами приведён в приложении 1, листинг 2.

· На компьютере где выполняется программа NVX:

- Установить драйвер mysql-connector-odbc-3.51.12. Дистрибутив можно загрузить с сайта разработчиков СУБД MySQL www.mysql.org.

- Добавить драйвер в «ODBC Data Source», во вкладку System DSN (рис 3) «mysql ODBC 3.51 Driver» и произвести настройку драйвера.

Рис 3 Добавление драйвера mysql ODBC 3.51 Driver в ODBC Data Source

Структура таблицы может быть произвольной. Программа NVX обрабатывает числовые поля таблиц. То есть в программе NVX явно задаются поля с числовыми значениями для каждой версии.

1.4 Требования к разработке версий

Программы-версии должны разрабатываться таким образом, чтобы они удовлетворяли требованиям:

1. Обеспечение взаимодействия с программой NVX в соответствии с пунктом 2 «Взаимодействие с исполняемыми версиями» руководства.

- поддержка всех команд (running, check, done, resume) в соответствии со схемой работы мультиверсионной системы (рис 1) и с обобщенной схемой работы версии (рис 2)

- заголовок окна версии должен иметь фиксированный вид - version[номер версии]. Например, если используется три версии, то заголовки окон программ-версий должны быть version1, version2, version3

- все сигналы (running, check, done) должны посылаться в адрес процесса с заголовком окна «NVX». При этом формат сообщений должен быть следующий [номер версии]+[пробел]+[команда].

2. Число контрольных точек для всех версий должно быть одинаково.

3. Если в качестве выходных данных версия возвращает массив и записывает его в текстовый файл, то элементы массива должны быть разделены пробелами.

4. Текстовый файл с выходными данными версии должен содержать только числа.

5. Если в качестве выходных данных версия возвращает нецелые числа и сохраняет их в текстовый файл, то целая часть от дробной должна отделяться запятой.

6. Если версия сохраняет данные в текстовый файл, то должна быть обеспечена возможность перезаписи этих файлов программой NVX (при коррекции данных) - у файлов должны быть соответствующие разрешения.

7. Если версия сохраняет выходные числовые данные в таблицу базы данных MySQL, то они должны храниться в таблице в формате real (выборка типа float реализуется ODBC-драйвером не корректно)

2. Интерфейс программной системы

2.1 Вкладка «Начальные установки»

Программа NVX представляет собой оконное Windows приложение. При работе в программе пользователь перемещается по пяти вкладкам: «Начальные установки», «Подключение к СУБД», «Управление версиями», «NVP-MV / NVP-CV», «Вероятностное NVP-CV голосование».

Рис 4 Вид вкладки «Начальные установки»

Здесь задаются общие настройки для всей системы и индивидуальные настройки для всех версий

2.1.1 Настройка общих параметров

Параметр

Назначение

Количество версий

Указать количество версий, которые будут исполняться параллельно

Приоритет процесса

Изменить приоритет самой программы NVX

Допустимое отклонение

Указать допустимое отклонение. Допустимое отклонение - число на которые могут отличаться «выходы» версий, что бы они считались эквивалентными. Если разница в «выходах» двух версий меньше либо равна допустимому отклонению, то такие две версии считаются эквивалентными. Определение эквивалентных версий необходимо для построения матрицы согласования

Тип выходных данных

Указать тип данных. Тип данных - способ хранения данных, который используют версии для сохранения результатов работы. Сохранённые данные используются программой NVX при голосовании и коррекции данных в контрольных точках и после завершения всех вычислений

Значения выходных данных

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

2.1.2 Индивидуальные настройки версий

Настройка каждой версии реализуется в отдельной вкладке: «Версия 1», «Версия 2», … Для версий задаются следующие параметры

Параметр

Назначение

Исполняемый файл

Указать исполняемый файл программы-версии

Выходные данные

Указать текстовый файл, в который программа-версия будет сохранять результаты вычислений. Параметр может быть установлен только если тип выходных данных равен «текстовый файл». Результаты вычислений сохраняются для голосования и коррекции данных в контрольных точках и после завершения всех вычислений.

Приоритет процесса

Установить приоритет процесса программы-версии в операционной системе. Параметр должен устанавливаться до запуска процесса версии.

2.2 Вкладка «Подключение к СУБД»

Рис 5 Вид вкладки «Подключение к СУБД»

Настройки этой вкладки следует изменять только в случае, если версии сохраняют результаты вычислений в таблицы базы данных MySQL. Здесь можно установить следующие параметры

Параметр

Назначение

Имя драйвера

Указать имя драйвера в ODBC system DSN (смотри пункт 2.5.2)

IP адрес сервера баз данных

Указать IP-адрес машины, на которой запущен mysqld и хранятся таблицы с «выходами» версий

Название базы данных

Указать имя базы данных, которая содержит таблицы с «выходами» версий

Порт

Указать порт подключения (по умолчанию MySQL работает через порт 3306)

Авторизация

Указать имя и пароль пользователя, от имени которого программа NVX будет подключаться к базе данных, которая содержит таблицы с «выходами» версий. Этот пользователь должен иметь все привилегии на доступ к базе данных, хранящей «выходы» версий. Пример скрипта, задающего привилегии приведён приложении 1, листинг 2.

Выборка информации из базы данных для каждой версии

1. Указать какая версия в какую таблицу базы данных сохраняет результаты своих вычислений (выходы)

2. Указать какие поля из таблиц с «выходами» версий выбирать для анализа, голосования (поля которые содержат числа)

Примечание. Нажатие на «зелёную звёздочку» рядом с надписью «Поля» указывает программе выбирать из таблиц все поля (для этого все поля в таблицах должны быть числовыми)

2.3 Вкладка «Управление версиями»

Рис 6 Вид вкладки «Управление версиями»

На этой вкладке можно выбрать алгоритм голосования, который должен использоваться в контрольных точках и после завершения работы версий. То есть алгоритм голосования, выбранный здесь, сработает в двух случаях:

1. статус всех версий равен «check». Все версии «доработали» до контрольной точки, прислали NVX команду «check» и находятся в ожидании, когда NVX проведёт голосование и коррекцию ошибочных данных,

2. статус всех версий равен «done». Все версии завершили вычисления, прислали NVX команду «done» и находятся в ожидании, когда NVX проведёт голосование и коррекцию ошибочных данных.

2.4 Просмотр результатов голосования

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

1. В контрольных точках (когда каждая версия прислала команду «check»)

2. Когда все версии завершили вычисления (когда каждая версия прислала команду «done»)

То есть, если программа не вывела сообщение «Работа всех версий завершена. Откройте нужную вкладку для просмотра результатов», то отображаемые результаты являются промежуточными - результаты голосования в контрольных точках. Если же программы выдала такое сообщение, то результаты голосования являются окончательными. Для того, чтобы посмотреть результаты голосования необходимо перейти либо на вкладку «NVP-MV / NVP-CV», либо на вкладку «Вероятностное NVP-CV голосование»

Далее приведён пример результатов работы программы (рис 7).

Рис 7 Пример результатов работы программы (результатов голосования)

3. Используемые технические средства

Программа NVX предъявляет следующие требования к платформе

Техническое устройство

Требование

Процессор

Intel Pentium III 733 Mhz и выше

Оперативная память

256 MB и выше

Монитор и видео карта

Работа в режиме 800х600х256 и выше

Жесткий диск

300 Mb свободного дискового пространства

Сетевой адаптер

10 Мбит/с и выше

Операционная система

Windows 2000, Windows XP

Системные требования приведены без учёта ресурсоёмкости исполняемых программных версий. В случае если не предполагается использование СУБД, сетевой адаптер не нужен.

4. Специальные условия применения и требования организационного, технического и технологического характера - не предусмотрены.

5. Условия передачи программной документации или ее продажи - программа и вся документация к ней распространяются свободно. Материалы доступны для загрузки по адресу nvx2007.narod.ru

Общий объем программной системы составляет 3 Мб.

Размещено на Allbest.ru


Подобные документы

  • Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.

    дипломная работа [1,4 M], добавлен 03.06.2014

  • Исследование особенностей работы с динамическими структурами данных, обработки строк. Реализация работоспособного программного обеспечения, которое должно поддерживать информационную базу пользователей компьютеров. Метод пирамидальной сортировки данных.

    курсовая работа [364,1 K], добавлен 06.04.2014

  • Назначение и область применения программного продукта. Построение ER-диаграммы. Получение наборов отношений. Реализация SQL-запросов в Access. Порядок следования строк и столбцов. Обработка информации в базах данных. Системы управления базами данных.

    курсовая работа [1,2 M], добавлен 19.05.2014

  • Назначение и область применения базы данных "Филателист". Описание предметной области, предполагаемые пользователи и цель проекта. Входные и выходные документы и сообщения. Реализация базы данных в среде MS Access 2007. Руководство пользователя.

    курсовая работа [1,6 M], добавлен 20.03.2017

  • Понятие программной инженерии как применения определенного систематического измеримого подхода при разработке, эксплуатации и поддержке программного обеспечения. Модели процесса разработки программного обеспечения. Управление программными проектами.

    презентация [870,6 K], добавлен 12.11.2014

  • Сущность программной и эксплуатационной документации, требования к их надежности. Особенности разработки программного обеспечения, а именно базы данных "Список владельцев гаражного кооператива", анализ его программной и эксплуатационной документации.

    курсовая работа [32,3 K], добавлен 20.10.2009

  • Основное функциональное назначение электронного учебника. Основные требования к программной документации. Разработка алгоритма решения задачи. Требования к эргономике и технической эстетике. Назначение и условия применения программного средства.

    курсовая работа [2,1 M], добавлен 09.08.2011

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Общие сведения о платформе Microsoft NET Framework. Разработка приложения "Поставка и реализация программного обеспечения", содержащего базу данных о каталогах адресов в Internet. Описание логической структуры. Требования к техническому обеспечению.

    курсовая работа [2,4 M], добавлен 28.06.2011

  • Разработка системы управления базами данных предприятия и удобного быстрого доступа к информации, программного продукта с использованием объектно-ориентированной методологии, программной и эксплуатационной документации в соответствии с ГОСТ-19 ЕСПД.

    курсовая работа [30,6 K], добавлен 17.04.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.