автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.01, диссертация на тему:Разработка методов и средств создания и модернизации автоматизированных систем управления и обработки информации

кандидата технических наук
Бабанин, Андрей Владимирович
город
Москва
год
2009
специальность ВАК РФ
05.13.01
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка методов и средств создания и модернизации автоматизированных систем управления и обработки информации»

Автореферат диссертации по теме "Разработка методов и средств создания и модернизации автоматизированных систем управления и обработки информации"

На правах рукописи

□03483002

Бабанин Андрей Владимирович

РАЗРАБОТКА МЕТОДОВ И СРЕДСТВ СОЗДАНИЯ И МОДЕРНИЗАЦИИ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ И ОБРАБОТКИ ИНФОРМАЦИИ (НА ПРИМЕРЕ МАШИНОСТРОИТЕЛЬНОГО ПРОИЗВОДСТВА)

Специальности: 05.13.01 - Системный анализ, управление и обработка

информации (технические системы)

1 2 [^оп ¿с:э

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

Москва - 2009

003483002

Работа выполнена в ГОУ ВПО Московском государственном технологическом университете «СТАНКИН»

Научный руководитель:

кандидат технических наук, профессор Чекменев Сергей Евгеньевич

Официальные оппоненты:

доктор технических наук, профессор Саксонов Евгений Александрович

кандидат технических наук Баранов Леонид Вячеславович

Ведущая организация:

Институт математического моделирования РАН (г. Москва)

Защита диссертации состоится «_ I » Pi, ! ¿.Sfïji. 2009 г. в /г часов на заседании диссертационного совета Д 212.142.03 в ГОУ ВПО Московском государственном технологическом университете «Станкин» по адресу: 127055, Москва, Вадковский пер., д. За.

С диссертацией можно ознакомиться в библиотеке ГОУ ВПО Московского государственного технологического университета «Станкин».

Автореферат разослан «_ 3Û .» ^Г^/ас 2009 г.

Ученый секретарь Совета Д 212.142.03, к.т.н., доцент

Е.Г. Семячкова

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы. В настоящее время автоматизированные системы (АС) используются повсеместно и являются центральным звеном в автоматизации процессов производства и процессов документооборота в государственных и коммерческих организациях. Таким образом, сегодня перед АС ставятся очень сложные задачи - обеспечить логику предметной задачи и параллельно быть технически реализуемой и эффективной. Разработка АС в той или иной предметной области требует больших временных и материальных затрат и, как правило, начинает функционировать еще не будучи оконченной. Таким образом, уже на этапе ввода в эксплуатацию АС подвергаются постоянной модернизации. И даже будучи законченной, изменения производственной среды или нормативной базы будут вносить коррективы в логику системы. Одной из главных проблем современных АС является отсутствие гибкого, логически целостного, экономически и технически эффективного подхода к модернизации АС, так как практически на протяжении всего жизненного цикла система будет подвержена изменениям логики и концептуальной структуры.

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

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

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

Целью диссертационной работы является повышение эффективности модернизации и разработки современных АС на основе разработки новых методов и средств реализации процессов модернизации и создания АС.

Для достижения поставленной цели были решены следующие научные и практические задачи:

- исследование методов и средств, применяемых при разработке и модернизации АС;

- исследование связей между языком программирования и возможностью проведения сетевой модернизации АС;

- разработка методов программной модернизации АС для предоставления функциональности сетевого распределения;

- реализация системы автоматизированного программирования для разработки и модернизации АС, на основе принципов вызова удаленного процедур (ВУП) и автоматизированного распараллеливания.

Методы исследования. Научные и методологические положения разработки программного обеспечения, теория языков программирования, методы трансляции, теория графов.

Научная новизна работы заключается в:

- установлении связей между типами данных, разрешенных языком программирования, на котором создана АС, и автоматизированной сетевой модернизацией АС;

- решении задачи под держки всех типов данных, разрешенных языком программирования, системой вызова удаленных процедур для обеспечения возможности сетевой модернизации существующих АС;

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

- разработке метода повышения эффективности функционирования

компилятора ВУП с использованием синтаксического анализатора

оригинальной конструкции.

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

Реализация работы. Разработанная система с 2006 года доступа в сети Интернет по адресу http://crpc.sf.net и свободно распространяется по лицензии РгееВБО. Регулярно выходят новые версии системы. О системе заявлено в различных Интернет сообществах разработчиков программного обеспечения. Система успешно используется несколькими организациями.

Апробация работы. По материалам работы были сделаны доклады на IX научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2006 г.; X научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2007 г.; Ежегодной студенческой научной конференции МГТУ «СТАНКИН», 2007 г. (первая премия); 2-ой Всероссийской конференции ученых, молодых специалистов и студентов «Информационные технологии в авиационной и космической технике-2009», МАИ, 20-24 апреля 2009 г.

Публикации. По теме диссертации было опубликовано 5 печатных работ.

Структура и объем работы. Диссертация состоит из введения, четырех глав и заключения, списка использованной литературы и приложения. Содержание диссертации изложено на 116 листах машинописного текста, список литературы содержит 48 наименований, количество иллюстраций 35, программных листингов 5, количество таблиц 4. В приложении приведены программные листинги.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность темы, формулируется основные задачи, и дается общая характеристика диссертационной работы.

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

Центральной проблемой работы является разработка эффективного метода модернизации АС на этапах ввода в действие и сопровождения системы.

На рисунке 1 приведена схема жизненного цикла АС согласно ГОСТ 34 и последствий возможных изменений в разрабатываемой АС. На этапах проектирования и разработки изменение требований приведет к повторному рассмотрению требований к системе и изменению рабочей документации проекта.

Безусловно, чем позже будет произведен пересмотр требований к системе, тем

дороже он обойдется, но повторное проектирование в любом случае менее

трудоемко, чем модернизация, так как является неотъемлемой часть процесса

6

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

Модернизация АС - это процесс усовершенствования, улучшения, обновления объекта, привидение его в соответствие с новыми техническими требованиями и нормами, техническими условиями, показателями качества. На рисунке 2 приведены возможные причины изменения требований.

Рис. 2. Причины изменения требований к АС

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

Предпосылки к модернизации АС

■ Изменения функциональных требований к АС

■ Изменения требований опереционный среды

■ Изменения внешних (сторонних) компонентов АС

Методы модернизации АС

• модернизация АС Без изменения логической схемы взаимодействия модулей, но изменением физических принципов функционирования

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

- модернизецмя АС с изменением логической и физической схемы взаимодействия и функционирования модулей

3

Средства обеспечения автоматизированной ■ модернизации АС

- системы

автоматизированной разработки ПО

■ системы

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

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

■ автоматизированные системы и модули рефакторинга программного кода

Рис. 3. Модернизация АС при изменении требований к компьютерной среде

В диссертационной работе рассматривается решение поставленной проблемы на уровне компьютерных технологий, поэтому изменения требований к компьютерной среде выделяются в отдельный класс требований. Для данного класса требований определяются методы и средства, обеспечивающие эффективную модернизацию АС (рис. 3).

Таким образом, для повышения эффективности модернизации АС ставиться задача усовершенствования средств автоматизированного программирования, позволяющих ускорить и упростить внесение изменений в АС. В диссертационной работе детально рассматриваются два класса систем - системы вызова удаленных процедур (СВУП) и системы автоматизированного распараллеливания (САР), при этом основные силы по исследованию и модернизации направлены именно на СВУП, исследование САР является второстепенным и необходимо для определения возможности слияния функциональности СВУП и САР.

Выбор СВУП определяется тем, что именно системы ВУП стали одними из первых систем автоматизированного программирования и к настоящему времени успели занять прочное место в автоматизации разработки и модернизации АС. Однако в процессе исследования устанавливается, что традиционные системы, в

первую очередь випЯРС и другие СВУП, использующие декларативный язык ГОЬ для описания функций, содержат ряд серьезных недостатков:

- в первую очередь, существующие системы автоматизируют

процесс разработки, а не модернизации АС;

- обладают слабой производительностью;

- используют устаревшие протоколы передачи данных;

- не обеспечивают поддержку многопроцессорных машин.

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

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

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

В работе устанавливается, что причина состоит в том, что традиционные

СВУП не интегрированы непосредственно в целевой язык программирования, они

9

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

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

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

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

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

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

Основные потери производительности системы ВУП происходят на этапе обработки текста программы, поэтому необходимо усовершенствовать именно процессы компиляции и ввода/вывода. Для обеспечения эффективной компиляции в работе предлагается оригинальная схема устройства конечного автомата и синтаксического анализатора для разбора конструкций целевого языка программирования. Для повышения скорости ввода и вывода предлагается использовать новый метод чтения и записи текста.

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

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

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

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

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

Дерево типов данных должно управляться непосредственно компилятором и представлять собой сложно-связный список, который содержит всю информацию о типе, а также об области видимости, которая определяется положением объявления (определения) переменной или функции в программе (рис. 4).

Рис. 4. Дерево имен типов данных

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

Для повышения гибкости передачи данных по сети был предложен алгоритм вычисления контрольный суммы, который позволяет автоматически рассчитывать идентификаторы сетевых функций, передавать данные адресованные через одинарные указатели и имеющие сложные типы данных. Формула суммы (3) заимствована из зарекомендовавших себя приложений сжатия данных и передачи данных по сети, что определяет устойчивые математические показатели данной суммы - низкую вероятность коллизии. Сумма, определяемая формулой (3) состоит из двух компонент (1) и (2). Первая компонента учитывает только сумму числовой последовательности, а вторая вводит в сумму весовой параметр, учитывающий порядок каждого числа, вместе они образуют итоговую

контрольную сумму. В формулах суммы за X принимается символьная последовательность, содержащая объявления прототипа функции, а М принято равным 216 (для того чтобы итоговое число не выходило за рамки в 32-разрядного регистра).

a(k,l) = (ÍXl)moáM (1)

1-1

b(kil) = (í(l-i + l)Xl)modM (2)

i-i

s(k,l) = a(k,l) + rb(k,l) (3)

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

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

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

В четвертой главе рассматривается реализация, описанных выше методов в виде собственной разработки - системы вызова удаленных процедур CRPC (С-

based remote procedure call). Главной отличительной чертой системы является поддержка языка программирования Си, что упрощает и ускоряет разработку

последовательность

вызовов процедур

Определить грантам

платформе woro базирования для последовательности

Выделить пгснмчкы*

(стыковые) процедуры

1 1

Создать массив

глобалок

дубликатов

переменных

Создать локальные аналога переменных

Использовать фрмрм атомарного доступа к переменным

Разделить стыковые процедуры по толпам иа основе платформенного Фазирования

Сформировать файлы

клиент скж и серверньк частей медут АС на основе вьшеленных груш процедур

Выделить гранишь» (стыковые) процедуры

Для мзедого процедуры

определить роль (исполняется на сервере, исполняется на клиенте)

Зафижировать роль процедуры при ломовр соответствующего

модификатора

Длятвдой Гфоцедуры выделить набор глредаваеюм параметр ое

Преобразовать все двойные указатели в одинарные указатели

Для гам ото параметра

определить роль (изменяемый на сервере, толы» для чтент)

Зафмсировать роль параметра при помощи соответствующего модифмштора

Скоммлпровать созданные файлы

Рис. 5. Технология модернизации АС с использованием усовершенствованной СВУП

распределенных приложений и обеспечивает возможность модернизации программного кода АС.

Система CRPC содержит два программных компонента:

- компилятор crpcc (CRPC wrapper-compiler),

- программную библиотеку (CRPC library).

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

Главной программой системы является программа сгрсс. Она представляет собой компилятор языка Си с ограниченной поддержкой синтаксиса, который

выступает оболочкой по отношению к обычному компилятору GCC-C. Программа сгрсс построена на основе синтаксического анализатора оригинальной конструкции, что необходимо для уменьшения времени работы оболочки по сравнению со временем работы основного компилятора. Стояла задача сделать оболочку почти «незаметной» во всем процессе компиляции (временная оценка эффективности работы компилятора приведена в главе).

Компилятор сгрсс расширяет синтаксис языка Си новыми модификаторами:

1. _remote - новый квалификатор класса памяти, используемый при

объявлении удаленных функций (удаленное исполнение);

2. _local - новый квалификатор класса памяти, используемый при объявлении

функций, которые будут вызываться по сети, и выполняться локально (серверное исполнение);

3. _attribute_

((_format_ptr (...) )) - новый атрибут функции, позволяющий связывать

параметры-указатели с соответствующими параметрами, содержащими размер;

4. _in - новый модификатор, который предписывает системе передавать

данные, адресованные отмеченным параметром, только на сервер и не получать их назад (применим только к параметрам функций);

5. _out - новый модификатор, который предписывает системе не передавать

данные, адресованные отмеченным параметром, а только получить их от сервера (применим только к параметрам функций);

6. _threaded - модификатор _threaded применим как к функциям с

модификатором _local, так и к обычным, несетевым функциям. При

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

Существует два возможных подхода к созданию распределенных приложений с помощью системы CRPC. Первый подход - это написание программы с нуля и

второй - это модернизация или рефакторинг уже существующего программного кода.

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

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

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

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

заполнение серверных переменных, а_out параметров обеспечивать считывание

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

Важно отметить, что атрибуты управления указателями задаются только на клиенте, сервер управляет передачей динамически, основываясь только на директивах протокола сетевой передачи. Если говорить о системах аналогах, то они не позволяют возвращать клиенту массивы переменной длины и не поддерживает_in/_out передачу данных.

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

рассматриваются наиболее общие случаи и рекомендации, необходимые для проведения корректной модернизации АС с использованием системы CRPC.

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

_remote, а во втором как_local. Если указатели используются как параметры

удаленной функции, то необходимо применить новый атрибут на клиентской стороне. Примерный вид прототипов приведен на рисунке б.

/ (Исходная функция:) int func( int n, double *«lata); \

(Клиентская часть:) Int_remote flmc( int, double * ) _attribute_((_fonnat_p tr( 1 [0]))); (Серверная часть:) _local int fiuic( Int n, double *data) { }

Рис. 6. Прототипы функций клиентской и серверной части

Также в главе выделяется ряд технических нововведений, реализованных в системе СЯРС и обеспечивающих решение проблем СВУП, поставленных в диссертации.

Разработанная система СКРС:

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

2. Позволяет передавать и получать данные адресованные через указатели;

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

4. Позволяет регулировать сетевой трафик непосредственно из программы;

5. Позволяет производить автоматизированное распараллеливание на уровне функций;

6. Использует собственный протокол упаковки и передачи данных;

7. Имеет дополнительные возможности для работы с терминалом;

8. Поддерживает передачу данных по зашифрованному каналу;

9. Для работы системе требуется только стандартная библиотека Си (+ POSIX Threads и OpenSSL);

10. Система не зависит от аппаратной части компьютера;

11. Система может быть легко интегрирована в среду графической разработки;

12. Система свободно распространяется в исходных кодах.

Именно в сумме технические нововведения системы CRPC позволяют значительно автоматизировать сетевую разработку и модернизацию в рамках современных АС. Традиционные системы ВУП, такие как SunRPC, не обеспечивали такой гибкости и интерфейсной целостности при разработке АС. А возможность модернизации или рефакторинга АС на уровне языка программирования была реализована впервые в рамках операционной среды Unix. Разработанная система CRPC распространяется с открытыми исходными кодами и свободно доступна в сети Интернет.

Для оценки производительности разработанной системы были произведены серии тестов. Первая серия тестов доказывает, что время работы компилятора-оболочки сгрсс практически не вносит дополнительных временных затрат при компиляции по сравнению с компиляцией обычным компилятором GCC-C. То есть время работы языкового расширения практически «не заметно» на фоне всего процесса компиляции. В таблице 1 показано время сборки трех проектов обычным компилятором и компилятором-оболочкой.

Табл. 1. Оценка времени компиляции

Тип теста Время сборки компилятором gee (секунды) Время сборки компилятором сгрсс (секунды)

Сборка исходных файлов утилит /usr/Ып (81 файл) 18,672 21,079

Сборка исходных файлов иктерпретатора csh (68 файлов) 22,838 24,306

Сборка исходных файлов CAD системы SagCAD (160 файлов) 35,224 42,101

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

18

использованием системы БипКРС, вторая с использованием разработанной системы СЯРС. Тесты показывают (табл. 2), что время работы двух программ практически одинаковое, при одинаковом режиме передачи (БипКРС

поддерживает только_т передачу, без возврата данных клиенту). Таким образом,

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

Табл. 2. Оценка времени выполнения сетевых вызовов

Количество элементов для сортировки (тип double) Время выполнения SunRPC Время выполнения CRPC

300 2393 мкс 3578 мкс

700 10293 мкс 11670 мкс

1400 42033 мкс 40581 мкс

5000 601678 мкс 506452 мкс

10000 2 с 168447 мкс 2 с 1220 мкс

20000 8 с 228258 мкс 8 с 56005 мкс

30000 18 с 608967 мкс 18 с 369988 мкс

Для оценки эффективности работы блока автоматизированного распараллеливания были созданы два варианта программ расчета суммы для большой последовательности чисел. Первая программа содержит последовательный вариант сетевой функции расчета суммы, вторая параллельный вариант такой же функции. Расчет производился для последовательностей чисел от нуля до соответствующего значения степени 2 (степени от 23 до 30). Тестирования производилось на двухпроцессорной машине, результаты приведены на рисунке 7. Приведенная оценка производительности показывает, что время выполнения расчета простой суммы в параллельном варианте практически в два раза меньше, чем в последовательном варианте, что соответствует ожидаемому результату для двухпроцессорной машины.

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

В качестве системы автоматизированного проектирования был выбран модуль системы Са1сиПХ. Са1сиИХ — открытый, свободный программный пакет,

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

Время выполнения (с)

I

о M

-25

À

10,651627 ä 0,388857

10,331075 0,227792

0,167029 0,145487

0,084993 0,066154

5,241304 5,173137

110,338779

Последовательный алгоритм Параллельный алгоритм

Рис. 7. Оценка производительности параллельного исполнения

Распространяется по лицензии GNU General Public License. Авторы программы Guido Dhondt (модуль CCX— решатель) и Klaus Wittig (модуль CGX— npe-, постпроцессор) работают в холдинге MTU Aero Engines, производящем авиационные двигатели.

Изначально создавался для Linux, в настоящее время существуют сборки для Windows и MacOS. Sun Microsystems предлагает использование CalculiX в своём коммерческом гриде Sun Grid.

Пакет Calculix состоит из двух модулей ССХ и CGX. Модуль CGX обеспечивает визуализацию объектов, а модуль ССХ позволяет производить расчеты на прочность, на воздействие сил, скорости и тепла, так как система используется в основном для проектирования узлов авиационных двигателей. Визуализатор CGX позволяет создавать и открывать файлы моделей, позволяет производить геометрические изменения объекта, просматривать его в разных режимах и проекциях (рис. 8). В данной работе рассматривается версия программы для операционной системы FreeBSD, полученная из официального репозитария операционной системы.

I

I

I

I

Рис. 8. Окно САПР Са1сиНХ

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

Проведение такой модернизации традиционными методами и средствами было бы связано со значительными трудностями. Для опытного программиста реализация такой функциональности в уже готовой системе, написанной другим программистом, в среднем займет от 1 до 2 недель, большая часть времени уйдет на отладку приложения. От программиста, не обладающего такой высокой квалификацией, такая задача потребует большего времени - от 2 до 3 недель -потребуется время для ознакомления с системой, для отладки и проверки принципов реализации сетевой передачи.

CalculiX 1.7

CalculiX 1.7 (модифицированный)

£3 ¿3

doc

examples

src ----

! Makefile ! INSTALL ¡README

je] parser.c Щ plotFunktions.c D re a tic ex. с ä readDuns.c ^ readEdges.c jej readFoam.c Ü readfhlc gjreadlsaac.c |c] readStdCmap.c

126 исходных файлов

cgxjseiv doc

examples src

Makefile

INSTALL

README

¡11 Makefile

* Liil^iy:?___

gj pais er. с ¡и plotFimktions.c [cj readccx.c Цс) readDuns.c Щ readEdges.c readFoam.c ® readfrd.c iejreadlsaac.c |c] readStdCmap.c

126 исходных файлов

Рис. 9. Схема внесения изменений в программный код САПР

Соответственно пример показывает, что при использовании системы С11РС данная задача решается значительно проще и быстрее, опытный программист выполнит ее за 2 - 3 часа, при этом основное время уйдет на ознакомление с устройством исходного кода, само программирование сетевых функций теперь тривиально, достаточно добавить нужный модификатор при объявлении прототипа сетевой функции. На рисунке 9 приведена схема изменений, внесенных в систему САПР. Точные изменения в исходных файлах приведены в листингах в главе и в приложении к диссертации.

Проведение модернизации сводится:

- к изменению прототипов соответствующих функций в исходном файле, отвечающем за чтение файлов чертежей геас}/гс1.с;

- к созданию серверных частей выделенных функций и переносу в них логики из первоначальных функций.

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

22

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

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

- для добавления распределенной функциональности была модернизирована двумерная система автоматизированного проектирования SagCAD;

- была добавлена поддержка работы удаленной консоли управления для трехмерной системы автоматизированного проектирования ВШ^-САБ, являющейся одной из основных систем расчета и проектирования военной техники в США (система свободно распространяется и доступна для проведения модернизации);

- система СЯРС использовалась при разработке системы сложной высоконагруженной системы обработки сетевых запросов (clx.ru, adman.com). Система значительно сэкономила время при разработке подсистемы перераспределения сетевой нагрузки, при этом разработанная система обеспечила, относительно высокий уровень производительности.

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ:

1. В диссертации решена задача, имеющая существенное значение для развития информатики, заключающаяся в разработке методов и средств модернизации автоматизированных систем (АС) управления и обработки информации за счет применения систем вызова удаленных процедур (СВУП). Применение подобных систем позволяет существенно (более чем в 5 раз) сократить время на сетевую модернизацию автоматизированных систем и обеспечить экономию средств, затрачиваемых на модернизацию и разработку новых автоматизированных систем.

2. Установлены связи между типами данных, разрешенных языком программирования, на котором создана АС, и автоматизированной сетевой

модернизацией АС; доказана возможность проведения сетевой модернизации автоматизированной системы с использованием СВУП.

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

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

5. Разработан метод повышения эффективности функционирования компилятора СВУП с использованием синтаксического анализатора оригинальной конструкции, что позволяет повысить уровень автоматизации при создании и модернизации АС.

6. Реализована СВУП для создания и модернизации АС, обеспечивающая более высокую преемственность программного кода АС по сравнению с существующими СВУП; разработана технология процесса модернизации АС с использованием разработанной СВУП.

7. Результаты, полученные в диссертации, рекомендуется использовать для создания и модернизации АС управления и обработки информации, в частности машиностроительного производства, а также в учебном процессе при подготовке специалистов по специальностям 230104.65 и 230105.65.

СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ:

1. Бабанин A.B. Разработка оболочки компилятора языка Си GCC-C и его программная реализация для операционной системы FreeBSD 5.4-Release// Тез. Докл. IX научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2006 г.;

2. Бабанин A.B. Разработка системы вызова удаленных процедур и анализ особенностей ее реализации// Тез. Докл. X научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2007 г.;

3. Бабанин A.B. Разработка системы вызова удаленных процедур и анализ ее применимости в области автоматизированного проектирования// Тез. Докл. Ежегодная студенческая научная конференция МГТУ «СТАНКИН», 2007 г.;

4. Бабанин A.B. Система вызова удаленных процедур и автоматизированного распараллеливания для POSIX-совместимых операционных систем, интегрированная в язык программирования Си// Тез. Докл. 2-я Всероссийская конференция ученых, молодых специалистов и студентов «Информационные технологии в авиационной и космической технике-2009», МАИ, 2009 г.

5. Бабанин A.B. Система вызова удаленных процедур с функционалом системы автоматического распараллеливания, ориентированная на язык программирования Си// Вестник компьютерных и информационных технологий; Машиностроение; М. - 07.2009, №7. - с. 38-48.

Отпечатано в ООО «Компания Спутник+» ПД № 1-00007 от 25.09.2000 г. Подписано в печать 27.10.2009 Тираж 100 экз. Усл. пл. 1,6 Печать авторефератов: 730-47-74,778-45-60

Оглавление автор диссертации — кандидата технических наук Бабанин, Андрей Владимирович

Введение.

Глава 1. Исследование автоматизированных систем программирования, их классификация, принцип работы, преимущества и недостатки.

1.1. Постановка задачи модернизации программного кода автоматизированных систем.

1.2. Классификация автоматизированных систем программирования

1.3. Анализирующие системы.

1.4. Генерирующие системы.

1.5. Гибридные системы.

1.6. Сравнительный анализ систем вызова удаленных процедур (СВУП).

1.7. Сравнительный анализ систем автоматизированного распараллеливания (САР).

Выводы.

Глава 2. Подходы к автоматизации процесса модернизации автоматизированных систем (АС) с использованием систем вызова удаленных процедур (СВУП).

2.1 Решение проблемы отсутствия поддержки сетевой модернизации автоматизированных систем (АС) в существующих системах вызова удаленных процедур (СВУП).

2.2 Решение проблемы негибкого механизма вызова удаленных процедур в существующих системах вызова удаленных процедур (СВУП).

2.3 Решение проблемы низкой эффективности средств языкового расширения в существующих системах вызова удаленных процедур (СВУП).

Выводы.

Глава 3. Методы повышения эффективности систем вызова удаленных процедур (СВУП) и обеспечения в них возможности сетевой модернизации автоматизированных систем (АС).

3.1 Метод обеспечения поддержки всех типов данных, разрешенных языком программирования, для обеспечения возможности сетевой модернизации автоматизированных систем.

3.2 Метод повышения гибкости сетевой передачи в системах вызова удаленных процедур (СВУП).

3.3 Метод повышения производительности компилятора языкового расширения в системах вызова удаленных процедур (СВУП).

3.4 Технология сетевой модернизации автоматизированных систем на основе предложенных методов.

Выводы.

Глава 4. Реализация системы вызова удаленных процедур (СВУП), оценка производительности и пример ее использования.77 *

4.1. Разработанная система с точки зрения использующего ее программиста.

4.2. Принцип работы разработанной системы вызова удаленных процедур (СВУП).

4.3. Оценка эффективности разработанной системы вызова удаленных процедур (СВУП).

4.4. Пример автоматизированного рефакторинга системы автоматизированного проектирования (САПР) с использованием разработанной системы вызова удаленных процедур (СВУП).

Выводы.

Введение 2009 год, диссертация по информатике, вычислительной технике и управлению, Бабанин, Андрей Владимирович

Актуальность работы. В настоящее время автоматизированные системы (АС) используются повсеместно й являются центральным звеном в автоматизации процессов производства и процессов документооборота в государственных и коммерческих организациях. Таким образом, сегодня перед АС ставятся очень сложные задачи - обеспечить логику предметной задачи и параллельно быть технически реализуемой и эффективной. Разработка АС в той или иной предметной области требует больших временных и материальных затрат и, как правило, начинает функционировать еще не будучи оконченной. Таким образом, уже на этапе ввода в эксплуатацию-АС подвергаются постоянной модернизации. И даже будучи законченной, изменения производственной среды или нормативной базы будут вносить коррективы в логику системы. Одной из главных проблем современных АС является отсутствие гибкого, логически целостного, экономически и технически эффективного подхода к модернизации АС, так как практически на протяжении всего жизненного цикла система будет подвержена изменениям логики и концептуальной структуры.

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

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

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

Целью диссертационной работы является повышение эффективности модернизации и разработки современных АС на основе разработки новых методов и средств реализации процессов модернизации и создания АС.

Для достижения поставленной цели были решены следующие научные и практические задачи:

- исследование методов и средств, применяемых при разработке и модернизации АС;

- исследование связей между языком программирования и возможностью проведения сетевой модернизации АС;

- разработка методов программной модернизации АС для предоставления функциональности сетевого распределения;

- реализация системы автоматизированного программирования для разработки и модернизации АС, на основе принципов вызова удаленного процедур (ВУП) и автоматизированного распараллеливания.

Методы исследования. Научные и методологические положения разработки программного обеспечения, теория языков программирования, методы трансляции, теория графов.

Научная новизна работы заключается в:

- установлении связей между типами данных, разрешенных языком программирования, на котором создана АС, и автоматизированной сетевой модернизацией АС;

- решении задачи поддержки всех типов данных, разрешенных языком программирования, системой вызова удаленных процедур для обеспечения возможности сетевой модернизации существующих АС;

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

- разработке метода повышения эффективности функционирования компилятора ВУП с использованием синтаксического анализатора оригинальной конструкции.

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

Реализация работы. Разработанная система с 2006 года доступна в сети Интернет по адресу http://crpc.sf.net и свободно распространяется по лицензии FreeBSD. Регулярно выходят новые версии системы. О системе заявлено в различных Интернет сообществах разработчиков программного обеспечения. Система успешно используется несколькими организациями.

Апробация работы. По материалам работы были сделаны доклады на IX научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2006 г.; X научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2007 г.; Ежегодной студенческой научной конференции МГТУ «СТАНКИН», 2007 г. (первая премия); 2-ой Всероссийской конференции ученых, молодых специалистов и студентов «Информационные технологии в авиационной и космической технике-2009», МАИ, 20-24 апреля 2009 г.

Публикации. По теме диссертации было опубликовано 5 печатных работ.

Структура и объем работы. Диссертация состоит из введения, четырех глав и заключения, списка использованной литературы и приложения. Содержание диссертации изложено на 116 листах машинописного текста, список литературы содержит 48 наименований, количество иллюстраций 35, программных листингов 5, количество таблиц 4. В приложении приведены программные листинги.

Заключение диссертация на тему "Разработка методов и средств создания и модернизации автоматизированных систем управления и обработки информации"

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ:

1. В диссертации решена задача, имеющая существенное значение для развития информатики, заключающаяся в разработке методов и средств модернизации автоматизированных систем (АС) управления и обработки информации за счет применения систем вызова удаленных процедур (СВУП). Применение подобных систем позволяет существенно (более чем в 5 раз) сократить время на сетевую модернизацию автоматизированных систем и обеспечить экономию средств, затрачиваемых на модернизацию и разработку новых автоматизированных систем.

2. Установлены связи между типами данных, разрешенных языком программирования, на котором создана АС, и автоматизированной сетевой модернизацией АС; доказана возможность проведения сетевой модернизации автоматизированной системы с использованием СВУП.

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

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

5. Разработан метод повышения эффективности функционирования компилятора СВУП с использованием синтаксического анализатора оригинальной конструкции, что позволяет повысить уровень автоматизации при создании и модернизации АС.

6. Реализована СВУП для создания и модернизации АС, обеспечивающая более высокую преемственность программного кода АС по сравнению с существующими СВУП; разработана технология процесса модернизации АС с использованием разработанной СВУП.

7. Результаты, полученные в диссертации, рекомендуется использовать для создания и модернизации АС управления и обработки информации, в частности машиностроительного производства, а также в учебном процессе при подготовке специалистов по специальностям 230104.65 и 230105.65.

Библиография Бабанин, Андрей Владимирович, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Макконнелл С. «Совершенный код. Практическое руководство по разработке программного обеспечения», Русская редакция, 2009 г., 896 стр.

2. Соломенцев Ю.М., Митрофанов В.Г., Павлов В.В., Рыбаков А.В. «Информационно-вычислительные системы в машиностроении: CALS-технологии», Наука, 2003 г.

3. Ковшов А.Н., Назаров Ю.Ф., Ибрагимов И.М., Никифоров А.Д. «Информационная поддержка жизненного цикла изделий машиностроения. Принципы, системы и технологии CALS/ИПИ», Машиностроение, 2007, г. 304 стр.

4. Dunn М. "Software defect removal", NY, 1984

5. Шалыто А., Поликарпова H. «Автоматное программирование», Питер, 2009 г., 176 стр.

6. Молчанов А. «Системное программное обеспечение», Питер, 2009 г., 400 стр.

7. Физерс М. «Эффективная работа с унаследованным кодом», Вильяме, 2009 г., 400 стр.

8. Хантер Р. «Основные концепции компиляторов», Вильяме, 2002 г., 256 стр.

9. Ахо А., Сети Р., Ульман Д. Компиляторы. Принципы, технологии, инструменты. -М.: Вильяме, 2003 г., 768 стр.18. http://rus-linux.net/lib.php?name=MyLDP/algol/lex-yacc-howto.html Электронный ресурс., 10.2008

10. Корнеев В.В. "Параллельные вычислительные системы", Издательство "Нолидж", 1999 г.20. http://cmm.univer.omsk.su/sbornik/jrnl7/efimov.pdf Электронный ресурс., -05.200921. http://www.parallel.ru/tech/techdev/openmp.html Электронный ресурс., -05.2009

11. Стивене У.Р. «Unix. Разработка сетевых приложений», Питер, 2007 г., 1040 стр.

12. Bloomer J. «Power Programming with RPC», 1992, 518 p.

13. Lehey G. "The complete FreeBSD", O'Reilly, 2003, 714 p.

14. Triebel W. A. "Itanium Architecture for Software Developers", 2000, 308 p.

15. Фаулер M., Бек К., Брант Д., Роберте Д., Апдайк У. «Рефакторинг: улучшение существующего кода», Символ-Плюс, 2009 г., 432 стр.

16. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л. «Алгоритмы: построение и анализ», Вильяме, 2001 г., 1296 стр.

17. Кнут Д. Э. «Искусство программирования, том 2. Получисленные алгоритмы», 2-е издание, Вильяме, 2001 г., 832 стр.

18. Хопкрофт Д., Мотвани Р., Ульман Д. «Введение в теорию автоматов, языков и вычислений. Второе издание», Вильяме, 2007 г., 528 стр.

19. Керниган Б., Ритчи Д. «Язык программирования С», Вильяме, 2006 г., 304 стр.34. http://www.opengroup.org/onlinepubs/009695399/ Электронный ресурс., -06.2009

20. Кагарлицкий Ю.В. «Разработка документации пользователя программного продукта», Философт, 2008 г., 210 стр.

21. Lucas М. "Absolute BSD", No Starch Press, 2002 г., 612 p.41. http://dspace.dsto.defence.gov.au/dspace/bitstream/1947/4331/1/DSTO-TR-0627.pdf Электронный ресурс., 10.2008

22. Левин М.П. "Параллельное программирование с использованием ОрепМР", 2008 г., 118 стр.

23. Брукс Ф. «Мифический человеко-месяц или как создаются программные системы», Символ-Плюс, 2001 г., 304 стр.