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

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

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

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

Нечаев Павел Дмитриевич ОО34ЬСЮ03

РАЗРАБОТКА КОМПОНЕНТНОГО БАЗОВОГО ПРОГРАММНО-ИНСТРУМЕНТАЛЬНОГО СРЕДСТВА ДЛЯ ПОСТРОЕНИЯ АНТИВИРУСНЫХ ПРОГРАММНЫХ КОМПЛЕКСОВ

05 13 11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

1 6 онт 2003

Москва - 2008

003450003

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

Научный руководитель доктор технических наук, профессор

Кораблин Юрий Прокофьевич

Официальные оппоненты доктор технических наук, профессор

Абросимов Леонид Иванович

кандидат технических наук, доцент Хорев Павел Борисович

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

Институт программных систем РАН

Защита состоится «31 » октября 2008 г в И_ час 00_ мин на заседании диссертационного совета Д 212 341 07 при Российском государственном социальном университете по адресу г Москва, ул Вильгельма Пика, 4, зал заседания Ученого совета.

С диссертацией можно ознакомиться в библиотеке Российского государственного социального университета

Автореферат разослан «30 » сентября 2008 г

Ученый секретарь диссертационного совета к ф -м н, доцент

Е В Чумакова

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

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

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

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

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

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

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

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

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

разработано и реализовано расширение компонентной технологии СОМ, позволяющее повысить скорость выполнения и снизить использование системных ресурсов при работе построенных на ее основе программных комплексов,

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

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

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

Научная новизна. К новым результатам проведенных исследований по теме диссертации относятся

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

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

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

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

Достоверность основных результатов подтверждается сравнительным тестированием на модельных примерах производительности и объема занимаемых ресурсов расширенной и существующих технологий,

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

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

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

разработаны технические средства поддержки операционной независимости компонент,

Реализация результатов работы. Расширенная компонентная технология СОМ и инструментальные средства обработки данных использованы при создании антивирусного программного комплекса Kaspersky Internet Security 6 О компании Лаборатория Касперского, при этом продемонстрировано успешное внедрение разработанных технологических решений, подтвержденное соответствующим актом

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

государственного социального университета, на собрании кафедры Вычислительных машин систем и сетей Института автоматики и вычислительной техники, на семинаре Исследовательского центра Института программных систем РАН, на международном форуме информатизации, на ХШ социологических чтениях РГСУ (г Москва, 2006), на зимних научных чтениях факультета социологии и информационных технологий РГСУ (г Москва, 2006), на V Международном социальном конгрессе «Социально-информационные аспекты модернизации Российского общества инновационные подходы» (г Москва, 2005), на IV Международном социальном конгрессе «Развитие информационных технологий в социальной сфере проблемы и перспективы» (г Москва, 2004), на собраниях в Департаменте инновационных технологий компании Лаборатория Касперского Антивирусный программный комплекс Kaspcrsky Internet Security 6 0, б котором использоьаны предложенные разработки, получил многочисленные награды и высокие места в тестах, проведенных различными независимыми экспертными группами

Публикации. По теме диссертации опубликовано 8 работ, из них 3 в изданиях, входящих в список рекомендованный ВАК

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы и трех приложений Общий объем основного текста составляет 110 страниц, в том числе 7 рисунков, 2 диаграммы, 6 таблиц и 6 графиков Список литературы состоит из 96 наименований

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ Во введении обоснована актуальность проблемы, научная новизна, практическая ценность, апробация и достоверность полученных результатов, приводится краткое содержание работы по главам

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

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

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

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

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

Создание экземпляров классов на сторонней предоставляемой памяти и явное указывание модуля реализации Необходимо для увеличения скорости создания экземпляров и уменьшения размера используемой памяти

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

«Горячая» замена модулей Подразумевается обеспечение возможности обновлять модули приложения без остановки его работы (hot update) Например, антивирусное приложение для сетевого экрана останавливать нельзя, иначе часть трафика пройдет мимо, что потенциально влечет возможность проникновения и активации вирусов, а также недопустимый в некоторых случаях простой информационных шлюзов

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

Форматные объекты представления данных Служат для представления, хранения и обработки данных, представляющих собой объединение в логическую группу набора элементов данных, имеющих идентификатор (строка и число) и тип (целочисленное, дробное, строковое, потоковое, структурированное), описание (формат) которого определяется заранее Т е форматом является описание следующего вида F = {[В = {F [, F, ]}], Т ml [, Т ш2, ]}, Т = {s | 1 | d | stm | F}, где F - имя описателя формата, В - базовые форматы, Т - тип данных, s - строка, i - целое число, d - дробное число, stm -поток, ml, m2 - имена полей, Ы, Ь2 - имена полей

Повышение скорости обработки потоковых данных Под потоковыми данными в работе понимается потоковый ввод-вывод, т е когда осуществляется запись и чтение последовательности байтов куда-либо с помощью специальных функций, или, более формально, заданы пара функций чтения и записи, т е stm = {r(d), w(d)}, где d - буфер бинарных данных Служит для унификации методов чтения и записи потоковой информации и позволяющий не зависеть от способа хранения Существующие реализации не оптимальны по скорости

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

не достаточно эффективно происходит создание экземпляра класса (временные расходы на поиск модуля, выделение памяти под экземпляр, в CORBA еще и создание объектной ссылки),

в CORBA при вызове метода интерфейса происходит затрата времени на обработку ORB редиректора,

в обеих архитектурах отсутствуют механизмы обеспечения «горячей» замены компонент,

в СОМ недостаточно эффективно реализованы средства потокового ввода-вывода,

в обеих архитектурах отсутствует поддержка иерархии экземпляров, в CORBA слишком велик расход памяти на поддержку ее инфраструктуры Сводные результаты отражены в таблице 1

Технология\ Свойство СОМ СОКВА

Создание экземпляра треб\ет оптимизации требует оптимизации

Вызов метода интерфейса вызов через виртуальную табчицу вызов через редиректоры

«Горячая» замена компонент огс}тств>ет отсучствуег

Обработка потоковой информации требует оптимизации отсутствует

Поддержка иерархии экземпляров требует доработки требует доработки

Объем занимаемой памяти приемлем Расход памяти на поддержку инфраструктуры

Таблица 1 Наличие требуемых для разработки антивирусных комплексов свойству компонентных технологий

Выявлена необходимость разработки нового инструментального средства, удовлетворяющего поставленным требованиям

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

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

Расширена компонентная технология СОМ, которая позволяет ускорить выполнение и минимизировать использование системных ресурсов при работе построенных на ее основе программных комплексов Она обладает следующими свойствами

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

При разработке компонентной модели были унаследованы все преимущества компонентной модели СОМ Как и в СОМ есть объекты классов, у классов есть список поддерживаемых интерфейсов На каждый интерфейс объекта есть счетчик ссылок Все интерфейсы наследуются от Щпкпош! Реализация классов осуществляется аналогично компонентной модели СОМ, т е в одном модуле могут быть реализованы один или более классов На рисунке 1 представлена структура модуля

Загрузчик

(^1ргКегпе1

011103.1 \

01Юе1С1а»0Ые^ > РИСеИМ \

ПШоаа

011Ред^ег8е'\ег ; Ониигедг'егЗе^ег /

Модуль

Рас 1 Структура модуля

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

Класс

о о о-

Статическая реализация

-\JEntryPoint_ >

Ф*

1Му31аИсАР1

Динамическая реализация

(^1рЮЬ]есГ^>--

( 1МуАР1

О

Рис 2 Структура класса 8

Приведен сравнительный анализ расширенной компонентной технологии и компонентных технологий СОМ и СОЮЗА Показано преимущество применения предложенной технологии для построения на ее основе высокопроизводительных комплексов антивирусной защиты по сравнению с существующими компонентными технологиями

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

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

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

Показано гибкое управление временем жизни экземпляров, различные способы создания экземпляров и включения в программные комплексы

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

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

инструмент для манипуляции строковыми данными

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

Методика тестирования скорости состояла в замере времени выполнения создания и уничтожения сначала 1 экземпляра 100000 раз, затем одновременное создание 500 экземпляров и их уничтожение 200 раз, затем создания и уничтожения 1000 экземпляров 100 раз, и т д до создания и уничтожения 20000 экземпляров 5 раз, т е во всех итерациях общее количество экземпляров почти всегда было 100000 Для анализа поведения при параллельном выполнении, тестирование последовательно выполнялась сначала на одном потоке, затем на двух и на четырех Создание в СОМ было осуществлено стандартным способом с помощью функции СоСгеа1е1пБ1апсе Тестирование в модели СОЮЗА было произведено путем создания экземпляра серванта и его

регистрации/дерегистрации в объектном адаптере, причем экземпляр был локальным, чтобы избежать потерь на сетевом уровне Данная методика теста была выбрана для того, чтобы оценить скорость создания при влиянии распределения памяти при разном количестве одновременно создаваемых экземпляров Выполнялась эта процедура 12 раз для последующего усреднения результатов и сглаживания погрешностей, поскольку компьютеры целевого назначения не являются вычислительными системами реального времени Все тесты производились под управлением операционной системы Windows ХР Sp2

Первый набор тестов производился на персональном компьютере с процессором AMD Athlon семейства х86 тактовой частотой 1 6 ГТц, объемом внутреннего кэша процессора 512 КБ, оперативной памятью объемом 1 ГБ, жестким диском объемом 200 ГБ АТА100 В таблице ниже приведены полученные в результате тестирования времена созданий экземпляров классов в миллисекундах, а также соответствия параметров тестирования с условными номерами, на которые ссылаются горизонтальные оси приводимых ниже графиков

Номер теста Кол-во одновреме НПО создаваем ых экземпляр ов Типы тестов, время создания экземпляра класса, мс

Сравнение разных технологий Сравнение режимов создания в Разработке

CORBA СОМ Разработка Собственная память Сторонняя память

1 1 400 518 236 134 138

2 500 460 504 236 138 105

3 1000 893 513 237 141 107

4 2000 870 544 238 148 107

5 3030 906 562 241 164 108

6 4000 903 572 237 171 109

7 5000 1031 590 245 180 111

8 10000 1293 613 288 216 148

9 20000 1151 628 288 221 151

10 25000 1445 627 285 223 152

11 33333 1159 622 285 230 151

12 50000 1192 624 288 237 150

13 100000 1115 640 285 242 151

Таблица 2 Сводная таблица результатов первого набора тестов

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

1500 1300

0 1100

« 900

1 700 о

500 300 100

а/ ^

. .

г—■в— - - (2)

__—

(3)

I

1 2 3 4 5 6 7

8 9 10 11 12 13

номер теста

-в-(1) ССЖВА

(2) СОМ -в- (3) Разработка

График 1 Сравнение времени создания экземпляров с помощью разработанной компонентной технологии, техно чогий СОМ и СОКВА

Из полученных результатов видно, что разработанный подход к оптимизации создания экземпляров дает преимущество по времени по сравнению с технологиями СОМ и СОЮЗА, т е экземпляры класса при использовании расширенной технологии можно создавать более эффективным образом, используя заранее выделенную память или память стека, или (и) заранее зная модуль реализации Кроме того, дополнительная эффективность разработанного подхода проявляется и при росте одновременно созданных экземпляров, так как с их ростом увеличивается время выделения памяти в моделях СОМ и СОЮЗА, что не наблюдается в применении расширенной технологии Данный показатель достаточно важен, так как, например, при разборе составных (контейнерных) данных количество одновременно создаваемых экземпляров может быть велико и преимущество предложенных подходов существенно скажется на повышении скорости данного процесса

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

номер теста

(1) Собственная память

(2) Сторонняя память

График 2 Сравнение времени создания экземпляров с помощью разработанной компонентной технологии, используя стороннюю и собственную память

Из полученных результатов видно, что создание экземпляров на сторонней памяти гораздо быстрее, нежели создание с использованием собственной процедуры выделения памяти На оси X располагается количество одновременно созданных экземпляров, по оси У идет время создания Графики иллюстрируют рост времени создания при росте количества одновременно созданных экземпляров, причем в случае собственного выделения памяти время сильно растет, поскольку, чем больше одновременных выделений памяти, тем больше времени тратится на новое выделение Время же создания с использованием сторонней памяти практически не меняется с ростом одновременного количества экземпляров Резкий скачек времени в середине обоих графиках обусловлен тем, что процессор исчерпал внутренний кэш для операций с памятью В тесте размер каждого экземпляра составлял около 100 байт, количество одновременных созданных экземпляров на момент, предшествующий скачку, составляет 5000 и на момент скачка 10000, те соответственно 5000*100=500 КБ и 10000*100=1 МБ Размер внутреннего кэша процессора, на котором производился тест, составлял 512 КБ, тем самым объясняя скачек времени

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

Также было произведено сравнительное тестирование занимаемой памяти экземпляров минимальных по реализации классов для расширенной технологии, а также технологий СОМ и СОГША. Создавалось 100000 экземпляров классов каждой из технологий и производился замер реальной выделенной памяти до их создания и после. На основании разницы этих двух значений делался вывод о размере занимаемой экземплярами памяти. Экземпляры для всех технологий создавались на собственной памяти. Сравнительные результаты приведены в диаграмме ниже.

- - -

0 5 10 15 20 25

□ СОЯВА 23

■ СОМ 3

■ Разработка 3

размер, Мб

Диаграмма 1. Сравнение объема занимаемой памяти экземпляров, создаваемых с помощью разработанной компонентной технологии, технологии СОМ и ССЖВА.

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

Номер теста Кол-во одновременно создаваемых экземпляров Типы тестов, время создания экземпляра класса, мс

1 поток 2 потока 4 потока

ССЖВА СОМ Разр ССЖВА СОМ Разр СОЯВА СОМ Разр

1 1 242 354 194 484 207 174 534 207 173

2 500 292 361 190 553 212 175 560 210 176

3 1000 334 368 190 626 220 174 632 212 175

4 2000 356 371 190 673 226 176 734 220 175

5 3030 382 382 191 718 229 173 748 223 171

6 4000 395 382 191 728 229 175 765 229 173

7 5000 414 376 191 737 231 174 779 228 175

8 10000 454 384 191 792 240 173 862 236 175

9 20000 440 386 193 785 256 167 881 243 178

10 25000 482 386 193 814 262 171 901 248 178

11 33333 446 385 193 782 265 174 892 257 176

12 50000 459 385 192 807 273 174 943 259 175

13 100000 457 386 192 812 281 172 971 276 176

Таблица 3 Сводная табпща результатов второго набора тестов

Тесты производились на персональном компьютере с 2-х ядерным процессором Intel Core 2 Duo семейства х64 с тактовой частотой 2 13 ГГц, объемом внутреннего кэша процессора 2 МБ, оперативной памятью объемом 2 ГБ, жестким диском объемом 400 ГБ SATA-П Результаты тестирования на двух потоках приведены в графике 3

номер теста

(1) ССЖВА —*—(2) СОМ —(3) Разработка

График 3 Сравнение времени создания экземпляров на двух потоках на 2-у;с ядерном процессоре с использованием технологий разработанной, СОМ и

СОЯВА

При тестировании на 2-ух потоках выявилось резкое увеличение скорости создания по сравнению с 1-им потоком экземпляров классов с использованием СОМ, те для этой технологии положительно сказалось распараллеливание -увеличение скорости примерно в 1,7 раза Результаты СОМ в начале почти совпадают с расширенной технологией, но, все равно, график продолжает возрастать с ростом количества одновременно создаваемых экземпляров Для разработанной технологии скорость увеличилась не значительно, всего в 1 1

14

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

В четвертой главе рассмотрено применение разработанных технологий в технологических процессах Лаборатории Касперского Расширенная компонентная технология СОМ и вспомогательные средства обработки данных внедрены в технологические процессы Лаборатории Касперского и использованы при построении антивирусного программного комплекса Kaspersky Internet Security 6 О

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

Проведен сравнительный анализ ресурсоемкости, скорости работы и функциональности представленных продуктов и антивирусного комплекса Kaspersky Internet Security 6 0, показывающий превосходство последнего над характеристиками продуктов, разработанных конкурирующими компаниями Наиболее значительными из них являются скорость проверки,

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

Приведены результаты тестов, проведенные независимыми экспертными группами, подтверждающие эффективность разработанного антивирусного комплекса

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

1 Разработано расширение компонентной технологии СОМ, основанное на использовании сторонней предоставляемой памяти для создания экземпляров классов, которое позволяет ускорить выполнение программ

2 Разработан и реализован инструментальный комплекс, поддерживающий расширенную компонентную технологию СОМ, основу которого составляет набор С++ классов и функций

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

4 Разработаны технические средства для поддержки операционной независимости компонент

5 Расширенная компонентная технология СОМ и вспомогательные средства обработки данных внедрены в технологические процессы Лаборатории

ч

Касперского и на их основе построен антивирусный программный комплекс Kaspersky Internet Security 6 О

СПИСОК ОПУБЛИКОВАННЫХ РАБОТ

1 Нечаев ПД "Компонентная модель на основе оптимизации и расширения СОМ" - "Программные продукты и системы", №1 - журнал - Тверь Hill "Фактор", 2008 - С 37-39

2 Кораблин Ю П, Нечаев П Д "Повышение эффективности создания экземпляров классов при использовании компонентной технологии проектирования" - "Программные продукты и системы", №4 - журнал -Тверь НТП "Фактор", 2008 - С 16-20

3 Нечаев ПД "Оптимизация интерфейса потокового ввода-вывода IStream в СОМ' - "Ученые записки", №5 - М Издательство РГСУ "Союз", 2008 - С 98-100

4 Нечаев ПД "Программно-инструментальное средство для разработки компонентных приложений" - "Инновации в науке и образовании", №12 - М Спутник, 2007 - С 42

5 Нечаев ПД "Программно-инструментальное средство для разработки компонентных приложений" - "Национальный информационный фонд неопубликованных документов", №50200800114 - М ВНТИЦ, 2008 - 6 с

6 Нечаев П Д "Архитектурное и визуальное построение программного комплекса антивирусной защиты" - "Социальная модернизация России итоги, уроки, перспективы Материалы V Международного социального конгресса, 25-26 ноября 2005" - В 2-х томах - М Издательство РГСУ "Союз", 2005 - Т 1 -412 с - С 247-248

7 Нечаев П Д "Компонентная технология как основа разработки антивирусных программных комплексов" - "Качество социальной жизни в изменяющейся России Материалы зимних научных чтений факультета социологии и информационных технологий и XIII социологических чтений Российского государственного социального университета, 1-4 февраля 2006 года" - М Логос, 2008 - 248 с С 219-221

8 . Нечаев П Д "Способы защиты от вирусов, несанкционированных действий и

почтового спама" - "Социальные процессы и социальные отношения в современной России тезисы выступлений 25-26 ноября 2004 года (IV Международный социальный конгресс)" - В 3-х томах - М Издательство РГСУ "Союз", 2004 ТЗ -351 с - С 341-343

Оглавление автор диссертации — кандидата технических наук Нечаев, Павел Дмитриевич

Введение.

Глава 1. Анализ потребностей антивирусных программных комплексов и существующих инструментальных средств.

1.1. Компонентный подход при построении программ.

1.1.1. Комгюнентная модель COM (Component Object Model).

1.1.2. Компонентная модель CORBA (Common Object Request Broker Architecture).

1.2. Недостатки существующих технологий и средств. Постановка задачи

1.2.1. Требования к компонентной модели и их обоснования.

1.2.2. Требования к инструментам обработки данных.

1.3. Выводы по главе 1.

Глава 2. Архитектура компонентного программно-инструментального средства.

2.1. Расширение компонентной технологии СОМ.

2.2. Структура модуля.

2.3. Структура класса.

2.4. Подсистема регистрации модулей и обеспечение «горячей» замены.

2.5. Механизм сообщений.

2.6. Сравнение функциональности расширенной и существующих компонентных технологий.

2.7. Средства представления и преобразования структурированных, потоковых, контейнерных и строковых данных.

2.8. Выводы по главе 2.

Глава 3. Программно-инструментальные средства поддержки разработанных технологических решений.

3.1. Программный инструментарий для создания модуля.

3.2. Загрузчик операционно-независимых модулей.

3.3. Форматные объекты представления данных.

3.4. Интерфейс перебора иерархичных именованных объектов.

3.5. Интерфейс потокового ввода-вывода.

3.6. Инструмент для манипуляции строковыми данными.

3.7. Тестирование производительности и ресурсоёмкости разработанной компонентной модели.

3.8. Выводы по главе 3.

Глава 4. Внедрение разработанных программно-инструментальных средств в промышленное производство и методика их применения.

4.1. Внедрение разработанной расширенной компонентной технологии.

4.1.1. Применение предложенного подхода создания экземпляров на сторонней памяти.

4.1.2. Применение разработанного подхода операционной независимости компонент.

4.1.3. Применение замены модулей в реальном времени.

4.1.4. Применение возможности иерархии объектов.

4.2. Внедрение разработанных инструментов обработки данных.

4.2.1. Применение форматных объектов представления данных.

4.2.2. Использование интерфейса перебора иерархичных именованных объектов.

4.2.3. Использование интерфейса потокового ввода-вывода.

4.2.4. Применение инструмента для манипуляции строковыми данными.

4.3. Функциональность реализованного комплекса.

4.4. Сравнение ресурсных характеристик разработанного антивирусного комплекса с аналогичными продуктами других производителей.

4.5. Выводы по главе 4.

Введение 2008 год, диссертация по информатике, вычислительной технике и управлению, Нечаев, Павел Дмитриевич

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

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

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

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

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

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

• проведен анализ существующих компонентных технологий и инструментальных средств с точки зрения применения их для создания высокопроизводительных программных комплексов антивирусной защиты;

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

• разработано и реализовано расширение компонентной технологии СОМ, позволяющее повысить скорость выполнения и снизить использование системных ресурсов при работе построенных на ее основе программных комплексов;

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

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

Научная новизна. К новым результатам проведенных исследований по теме диссертации относятся:

• предложен способ увеличения скорости создания экземпляров классов компонент посредством использования сторонней предоставляемой памяти и явного указывания модуля реализации;

• предложены архитектурные расширения компонентной модели СОМ и ее программная реализация для повышения скорости работы антивирусных программных комплексов;

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

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

Достоверность основных результатов подтверждается:

• сравнительным тестированием на модельных примерах производительности и объёма занимаемых ресурсов расширенной и существующих технологий;

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

Практическая ценность. В работе:

• разработан и реализован инструментальный комплекс, поддерживающий расширенную технологию СОМ; основу составляет набор С++ классов и функций, позволяющих эффективнее использовать технологию в антивирусных программных проектах;

• созданы инструментальные средства, позволяющие увеличить скорость обработки данных, специфичных для антивирусного анализа; инструментальные средства реализованы в виде набора С++ классов, функций и компонент;

• разработаны технические средства поддержки операционной независимости компонент;

Реализация результатов работы. Расширенная компонентная технология СОМ и инструментальные средства обработки данных использованы при создании антивирусного программного комплекса Kaspersky Internet Security 6.0 компании Лаборатория Касперского, при этом продемонстрировано успешное внедрение разработанных технологических решений, подтвержденное соответствующим актом.

Апробация работы. Результаты работы докладывались: на семинаре кафедры Программного обеспечения вычислительной техники Российского государственного социального университета; на собрании кафедры Вычислительных машин систем и сетей Института автоматики и вычислительной техники; на семинаре Исследовательского центра Института программных систем РАН; на международном форуме информатизации; на XIII социологических чтениях РГСУ (г.Москва, 2006); на зимних научных чтениях факультета социологии и информационных технологий РГСУ (г.Москва, 2006); на V Международном социальном конгрессе «Социально-информационные аспекты модернизации Российского общества: инновационные подходы» (г.Москва, 2005); на IV Международном социальном конгрессе «Развитие информационных технологий в социальной сфере: проблемы и перспективы» (г.Москва, 2004); на собрании в Департаменте инновационных технологий компании Лаборатория Касперского. Антивирусный программный комплекс Kaspersky Internet Security 6.0, в котором использованы предложенные разработки, получил многочисленные награды и высокие места в тестах, проведенных различными независимыми экспертными группами.

Публикации. По теме диссертации опубликовано 8 работ, из них 2 в изданиях, входящих в список рекомендованный ВАК.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы и четырех приложений. Общий объем основного текста составляет 110 страниц, в том числе 7 рисунков, 2 диаграммы, 6 таблиц и 6 графиков. Список литературы состоит из 96 наименований.

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

4.5. Выводы по главе 4

1. Расширенная автором компонентная технология СОМ и вспомогательные средства обработки данных внедрены в технологические процессы Лаборатории Касперского и использованы при построении антивирусного программного комплекса Kaspersky Internet Security 6.0.

2. Сравнительный анализ ресурсоемкое™, скорости работы и функциональности представленных продуктов и антивирусного комплекса Kaspersky Internet Security 6.0 показал превосходство последнего над характеристиками продуктов, разработанных конкурирующими компаниями. Наиболее значительными из них являются:

• скорость проверки;

• ресурсоемкость как на твердом носителе, так и в оперативной памяти.

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

3. Приведены результаты тестов, проведенные независимыми экспертными группами [48]-[52], подтверждающие эффективность разработанного антивирусного комплекса.

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

Заключение

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

Разработанные автором предложения внедрены в технологические процессы компании Лаборатория Касперского и использованы при построении антивирусных программных комплексов Kaspersky Internet Security 6.0 и Kaspersky Anti-Virus 6.0, обладающих высокой производительностью и малым расходом ресурсов системы.

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

Библиография Нечаев, Павел Дмитриевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. К. Смит, JL Уильяме "Эффективные решения: практическое руководство по созданию гибкого и масштабируемого программного обеспечения" - Пер. с англ. - М.: Издательский дом "Вильяме", 2003. -448 е.: ил. - Парал. тит. англ.

2. С. Канер, Д. Фолк, Е. К. Нгуен "Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений" Пер. с. англ. - К.: Издательство "ДиаСофт", 2001. - 544 с.

3. Р. Калбертсон, К. Браун, Г. Кобб "Быстрое тестирование" Пер. с англ. -М.: Издательский дом "Вильяме", 2002. - 384 е.: ил. - Парал. тит. англ.

4. Э. Аллен "Типичные ошибки проектирования. Библиотека программиста" СПб.: Питер, 2003. - 224 е.: ил.

5. Фаулер М. "Рефакторинг: улучшение существующего кода" Пер. с англ. - СПб.: Символ-Плюс, 2005. - 432 е., ил.

6. Д. Кнут "Искусство программирования, том 3. Сортировка и поиск, 2-е изд" Пер. с англ.: Уч. пос. - М.: Издательский дом "Вильяме", 2000. -832 е.: ил. - Парал. тит. англ.

7. Т.Кормен, Ч.Лейзерсон, Р.Ривест "Алгоритмы: построение и анализ" -М.: МЦНМО, 2000. 960 е., 263 ил.

8. Мейерс С. "Эффективное использование STL. Библиотека программиста" СПб.: Питер, 2003. - 224 е.: ил.

9. К.Ауэер, Р.Миллер "Экстремальное программирование: постановка процесса. С первых шагов и до победного конца" СПб.: Питер, 2003. -368 е.: ил. - (Серия "Библиотека программиста").

10. Ю.Бек К. "Экстремальное программирование: разработка черезтестирование. Библиотека программиста" СПб.: Питер, 2003. - 224 е.: ил.

11. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. "Приемы объектно-ориентированного проектирования. Паттерны проектирования" СПб: Питер, 2003. - 368 е.: ил. (Серия "Библиотека программиста").

12. Мейерс С. "Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов" Пер. с англ. - М.: ДМК Пресс, 2000. - 304 е.: ил. (Серия "Для программистов").

13. Г. Саттер "Решение сложных задач на С++" Пер. с англ. - М.: Издательский дом "Вильяме", 2002. - 475 с. ил.

14. Н.Александреску А. "Современное проектирование на С++" Пер. с англ.- М.: Издательский дом "Вильяме", 2002. 644 с. ил.

15. Элджер Дж. "С++: библиотека программиста" СПб. Питер, 2000. - 320 е.: ил.

16. Б. Страуструп "Язык программирования С++. Специальное издание" -Пер. с англ. М.: ООО "Бином-Пресс", 2004. - 1104 е.: ил.

17. Christoph Wille "Presenting С++" Sams Publishing, 2000. - 204 с.

18. Деннинг A. "ActiveX для профессионалов" СПб.: Питер, 1998. - 624 е.: ил.

19. Чеппел Д. "Технологии ActiveX и OLE" Пер. с англ. М.: Русская редакция, 1997. - 320 с.

20. Роджерсон Д. "Основы СОМ" Пер. с англ. - М.: Русская редакция, 1997.-376 с.

21. Трельсен Э. Модель СОМ и применение ATL 3.0: Пер. с англ. СПб.: BHV, 2000.-928 с.

22. Пуха Ю. "Объектные технологии построения распределенных информационных систем" Журнал - Системы Управления Базами Данных, 1997 - №3 - С. 4-20.

23. Пуха Ю. "CORBA/IIOP и Java RMI. Основные возможности в сравнении" Журнал - Системы Управления Базами Данных, 1997 - №4- С. 24-36.

24. Аншина М. "Симфония CORBA" Эл. ресурс - Открытые системы,1998. http://www.osp.ru/text/302/179518.25."Common Object Request Broker Architecture (CORBA), v3.0" Эл. ресурс - The Object Management Group (OMG) -http://www.omg.org/docs/formal/02-06-37.pdf

25. Орлик С. "В ожидании CORBA 3.0" Эл. ресурс - Открытые системы,1999. http://www.osp.ru/text/302/179690.

26. Рамодин Д. "Лидеры CORBA" Эл. ресурс - Мир ПК, 1999. -http://old.osp.ru/pcworld/1999/01/48.htm.28."ZeroC The Internet Communications Engine (Ice)" - Эл. ресурс -http://www.zeroc.com.

27. Д. Эйнджел "Промежуточное программное обеспечение" Эл. ресурс -LAN, 1999 - http://text.marsu.ru/osp/lan/1999/ll/013.htm.

28. Цимбал А. "Сравнительный анализ технологий CORBA и СОМ" Эл. ресурс - "Interface Ltd", 2000http://www.interface.ru/fset.asp?Url=/borland/corbacom.htm.

29. Дубова Н. "СОМ или CORBA? Вот в чем вопрос" Эл. ресурс -Открытые системы, 1999. - http://www.osp.ru/text/302/179742.

30. Керниган Б.В., Пайк P. "UNIX универсальная среда программирования" - Пер. с англ.; Предисл. М.И.Белякова. - М.: Финансы и статистика, 1992. - 304 е., ил.

31. Maurice J. Bach "Архитектура операционной системы UNIX" Эл. ресурс - OpenNet, 1996 - http://www.opennet.ru/docs/RUS/unix.

32. Фролов А.В., Фролов Г.В. "Microsoft Visual С++ и MFC. Программирование для Windows 95 и Windows NT" М.: ДИАЛОГ-МИФИ, 1996. - 288 е.: - (Библиотека системного программиста; Т.24).

33. Gary Nebbet "Windows NT/2000 Native API Reference" MTP 2000. - 496c.

34. Зб.Фролов А.В., Фролов Г.В. "Программирование для Windows NT: 4.2" -М.: ДИАЛОГ-МИФИ, 1997. 271 е.: - (Библиотека системного программиста; Т.27).

35. Jeffrey Richter "Advanced Windows: The Developer's Guide to the Win32 API for Windows NT 3.5 and Windwos 95" Microsoft Press, 1995. - 930 c.

36. Jeffrey Richter, Jonathan Locke "Windows 95. F Developer's Guide" M&T Books, 1995. - 619c.

37. Шрайбер С. "Недокументированные возможности Windows 2000. Библиотека программиста" СПб.: Питер, 2002. - 544 е.: ил.

38. Walter Oney "System Programming for Windows 95" Microsoft Press, 1996.-715 c.

39. Д. Рихтер "Windows для профессионалов (программирование в Win32 API для Windows NT 3.5 и Windows 95)" Пер. с англ. - М.: Издательский отдел "Русская редакция" ТОО "Channel Trading Ltd", 1995.-720 е.: ил.

40. Румянцев П.В. "Азбука программирования в Win32 API" М.: Радио и связь, 1998. - 272 е.: ил.

41. Richard Gerber "The Software Optimization Cookbook: High-perfomance Recipes for the Intel Architecture" Intel Press, 2002. - 279 c.

42. Гук M. "Процессоры Intel: от 8086 до Pentium И" СПб.: Питер, 1998. -224с., ил.

43. Фролов А.В., Фролов Г.В. "Защищенный режим процессоров Intel 80286, 80386, 80486. Практическое руководство по использованию защищенного режима" М.: "ДИАЛОГ-МИФИ", 1993 - 240 с. -(Библиотека системного программиста; Т.6).

44. Бердышев Е: "Технология ММХ. Новые возможности процессоров Р5 и Р6" М.: ДИАЛОГ-МИФИ, 1998. - 234 с.

45. Эндрю Троелсен "С# и платформа .NET. Библиотека программиста" -СПб.: Питер, 2007. 796 е.: ил.

46. Кристиансен Т., Торкинггон Н. "Perl: библиотека программиста" СПб.: Питер, 2001. - 736 е.: ил.

47. Матросов A.B., Чаунин М.П. "Самоучитель Perl" СПб.: БХВ - Санкт-Петербург, 2000. - 432 е.: ил.

48. Буч Г., Якобсон А., Рамбо Дж. "UML. Классика CS. 2-е изд." Пер. с англ.; Под общей редакцией проф. С. Орлова - СПб.: Питер, 2006. - 736 е.: ил.

49. Басс Д., Клементе П., Кацман Р. "Архитектура программного обеспечения на практике. 2-е издание" СПб.: Питер, 2006. - 575 е.: ил.

50. Уилсон М. "Расширение библиотеки STL для С-Н-. Наборы и итераторы" СПб.: ДМК пресс, 2008. - 608 е.: ил.

51. Магда Ю. "Ассемблер. Разработка и оптимизация Windows-приложений" СПб.: БХВ-Петербург, 2003. - 540 е.: ил.

52. A. П. Побегайло "Системное программирование в Windows" СПб.: БХВ-Петербург, 2006. - 1056 е.: ил.

53. Джонсон М. Харт "Системное программирование в среде Windows. Третье издание" Вильяме, 2005. - 592 е.: ил.

54. Клименко Р. "Большая книга Windows Vista. Для профессионалов" -СПб.: Питер, 2009. 688 е.: ил.

55. М. Руссинович, Д. Соломон "Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс. Четвертое издание" СПб.: Питер, Русская Редакция, 2005. - 992 е.: ил.

56. Кокорева О. "Реестр Windows ХР" СПб.: БХВ-Петербург, 2005. - 548 е.: ил.

57. Столлингс В. "Операционные системы" Вильяме, 2004. - 848 е.: ил.

58. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. "Алгоритмы. Построение и анализ. Издание 2-е" Вильяме, 2007. - 1296 е.: ил.

59. И. Бабушкина, С. Окулов "Практикум по объектно-ориентированному программированию" Бином. Лаборатория знаний, 2004. - 368 е.: ил.69,Одинцов И. "Профессиональное программирование. Системный подход" СПб.: БХВ-Петербург, 2006. - 624 е.: ил.

60. Керниган Б., Пайк Р. "Практика программирования" Вильяме, 2004. -288 е.: ил.

61. Э. Хант, Д. Томас "Программист-прагматик. Путь от подмастерья к мастеру" Лори, Питер Пресс, 2007. - 288 е.: ил.

62. Гецци К., Джазайери М., Мандриоли Д. "Основы инженерии програмного обеспечения" СПб.: БХВ-Петербург, 2005. - 832 е.: ил.: ил.

63. С. В. Назаров "Операционные среды, системы и оболочки. Основы структурной и функциональной организации" КУДИЦ-Пресс, 2007. -504 е.: ил.

64. Бэкон Д., Харрис Т. "Операционные системы. Параллельные и распределенные системы" СПб.: Питер, Издательская группа BHV, 2004. - 800 е.: ил.

65. Хемди А.Таха "Введение в исследование операций" Вильяме, 2007. -912 е.: ил.

66. К. Чарнецки, У. Айзенекер "Порождающее программирование. Методы, инструменты, применение. Для профессионалов" СПб.: Питер, 2005. -736 е.: ил.

67. С. Окулов "Программирование в алгоритмах" Бином. Лаборатория знаний, 2004. - 344 е.: ил.

68. Бентли Д. "Жемчужины программирования" СПб.: Питер, 2002. - 272 е.: ил.

69. С. Макконнелл "Совершенный код" Питер, 2007. - 896 е.: ил.

70. Эрик С. Реймонд "Искусство программирования для Unix" Вильяме,2005. 544 е.: ил.

71. Бек К., ФаулерМ. "Экстремальное программирование: планирование" -СПб.: Питер, 2003. 144 е.: ил.

72. Кериевски Д. "Рефакторинг с использованием шаблонов" Вильяме,2006. 400 е.: ил.

73. А. Ю. Крупский, JI. А. Феоктистова "Разработка и стандартизация программных средств" Дашков и Ко, 2008. - 100 е.: ил.

74. Макконнелл С. "Профессиональная разработка программного обеспечения" Символ-Плюс, 2007. - 240 е.: ил.

75. К. Ю. Богачев "Основы параллельного программирования" Бином. Лаборатория знаний, 2003. - 344 е.: ил.

76. Орлов С.А. "Технологии разработки программного обеспечения:

77. Разработка сложных программных систем Изд. 3-е" СПб.: Питер, 2004. 527 е.: ил.

78. Л. Константайн, Л. Локвуд "Разработка программного обеспечения" -СПб.: Питер, 2004. 592 е.: ил.

79. И. И. Попов, Т. Л. Партыка "Операционные системы, среды и оболочки" Форум, Инфра-М, 2006. - 400 е.: ил.

80. Нечаев П.Д. "Компонентная модель на основе оптимизации и расширения СОМ" "Программные продукты и системы", №1 -журнал. - Тверь: НТП "Фактор", 2008. - 48 с. - С: 37-39.

81. Нечаев П.Д. "Оптимизация интерфейса потокового ввода-вывода Шгеат в СОМ" "Ученые записки", №5 - М.: Издательство РГСУ "Союз", 2008. - 196 с. - С: 98-100.

82. Нечаев П.Д. "Программно-инструментальное средство для разработки компонентных приложений" "Национальный информационный фонд неопубликованных документов", №50200800114 - М.: ВНТИЦ, 2008 - 6I