Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Лукьянчиков Олег Игоревич

Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных
<
Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных
>

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

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

Лукьянчиков Олег Игоревич. Технология агентно-реляционного отображения для проектирования распределенных систем обработки больших объемов данных: диссертация ... кандидата технических наук: 05.13.11 / Лукьянчиков Олег Игоревич;[Место защиты: Московский государственный университет приборостроения и информатики].- Москва, 2015.- 162 с.

Содержание к диссертации

Введение

ГЛАВА 1. Анализ технологий и методов разработки распределенных систем 9

1.1 Распределенная архитектура 11

1.2 Распределенные БД 15

1.3 Сервис-ориентированная архитектура 17

1.4 Облачная архитектура 20

1.5 Гибридная облачная архитектура 23

1.6 Технологии разработки распределенных систем 26

1.6.1 Технология распределенных объектов 27

1.6.2 Объектная модель CORBA 28

1.6.3 Модели распределенных объектов Microsoft COM, DCOM, СОМ+, .NET 33

1.6.4 Технологии вызова удалённых процедур 37

1.6.5 Технологии, ориентированные на обработку сообщений 38

1.6.6 Мониторы транзакций 39

1.6.7 Технология GRID 40

1.6.8 Заключение 43

1.7 Агентно-ориентированное программирование 43

1.8 Технологии доступа к БД 47

1.9 Объектное отображение реляционных данных 51

1.10 Заключение 55

ГЛАВА 2. Агентно-реляционное отображение 57

2.1 Технология агентно-реляционного отображение 57

2.2 Метод проектирования при агентно-реляционном отображении 61

2.3 Заключение

ГЛАВА 3. Реализация технологии агентно реляционного отображения 69

3.1 Основные возможности технологии 70

3.2 Архитектура технологии 71

3.3 Модуль «ArNotifer» 75

3.4 Модуль «ArEntity» 79

3.5 Пример агентно-реляционного отображения 82

3.6 Заключение 87

ГЛАВА 4. Анализ эффективности применения технологии агентно-реляционного отображения при построении систем 88

4.1 Распределенные системы с реляционными БД 89

4.2 Сервис-ориентированная система 92

4.3 Системас гибридным облаком 93

4.4 Заключение 97

Заключение 99

Список литературы

Введение к работе

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

Предоставление информации в качестве услуги множеству внешних клиентов не позволяет обеспечить безопасность доступа к данным и гарантированный уровень обслуживания. Решить данные проблемы позволяет гибридная облачная инфраструктура, в которой часть данных (обработка запросов к которым требует больших вычислительных затрат, а сами данные не являются конфиденциальными), размещается в общем (публичном) облачном сервисе, а остальные данные — в частном (приватном) облаке или в локальной сетевой инфраструктуре. В данном направлении работает множества ученых, таких как: Е. В. Никулъчев, Е.В. Плужник, Р. Буъя, Б. Джавади, Б. Ли, Б. Лянг, Б. Сотомейр, Чень Сяофен. Гибридные облачные системы имеют сложную архитектуру, которая состоит из большого количества внешних и внутренних клиентов, в них используются распределенные БД и системы виртуализации. Поэтому на текущий момент не определена наилучшая технология для разработки приложений для гибридной облачной инфраструктуры, и для этих целей используется совместно множество разнообразных технологий.

Для упрощения разработки и интеграции компонентов распределенных систем, в том числе и гибридных облачных систем, используется промежуточный уровень (англ. middleware), который обеспечивает требуемый уровень прозрачности, масштабируемости и открытости взаимодействия. К технологиям и стандартам промежуточного уровня, обеспечивающим удаленный доступ до объектов, относятся: CORBA, COM, DCOM, СОМ+, RPC, MOM.

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

ния, например на агентно-ориентированное программирование (АОП), при использовании данных технологий удаленного доступа позволит унифицировать существующие технологии и изменить принципы использования данных технологий.

Так же в системах широко применяются реляционные БД, являющиеся наиболее эффективным хранилищем, потому что реляционная модель позволяет быстрее выполнять операции с данными, особенно поиск. Реляционные БД также могут иметь распределенный характер, при котором информация, хранящаяся на разных узлах, связана таким образом, чтобы составлять единую совокупность данных. Совместное использование реляционной модели БД и объектной модели приложений в системах затрудняет проектирование и разработку, так как для операций с БД используется специализированный язык запросов SQL. Обычно при разработке объектно-ориентированных приложений используются различные технологии взаимодействия с реляционными БД, такие как: ODBC, DAO, OLE DB, BDE, JDBC Особенно предпочтительной является технология объектно-реляционного отображения (ORM), основоположником которой является С. В. Эмблер. Так же вопросами объектно-реляционного отображения занимаются В.П. Иванников, К. В. Антипин, В. В. Рубанов, В. А. Семенов, С. В. Морозов.

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

Цель. С помощью предложенной технологии АРО автоматизировать процесс разработки распределенных информационных систем обработки больших объемов данных.

Задачи, решаемые в работе:

  1. Обзор и анализ технологий разработки распределенных систем.

  2. Описание теоретических основ новой технологии программирования распределенных систем.

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

  4. Создание прототипа предлагаемой технологии.

  5. Проведение исследований по оценке эффективности использования предложенной технологии.

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

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

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

Наиболее существенные научные результаты заключены в следующем:

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

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

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

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

Практическая значимость и внедрение.

Результаты, полученные в диссертационной работе, могут использоваться для построения распределенных информационных систем любой сложности. Так как разработка проводилась на C++ с использованием библиотеки QT и с использованием СУБД PostgreSQL, это делает возможным использовать разработки под защищенными операционными системами, такими как МСВС и AstraLinux.

Результаты работы используются для разработки информационных систем в ЗАО «Инженерный центр «ГЕОМИР», которые позволяют автоматизировать и упростить процесс разработки программных средств.

Помимо этого, материалы и разработанные методы диссертационной

работы внедрены в учебный процесс МИРЭА и использованы в качестве методологической основы при разработке общеуниверситетских курсов лекций и практических занятий по дисциплинам «Кроссплатформенные технологии», «Современные информационные технологии» и «Технологии распределенной обработки информации».

Основные положения, выносимые на защиту:

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

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

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

двух международных и четырёх всероссийских научных конференциях и семинарах.

Всероссийские научные конференции и семинары:

- Научные чтения памяти К.Э. Циолковского (Калуга, 2013);

Третьем Национальном суперкомпьютерном форуме (НСКФ-2014) (ИПС РАН, Переславль-Залесский, 2014);

Научно-практической конференции «Актуальные проблемы приборостроения, информатики и социально-экономических наук» (МГУ-ПИ, Москва, 2014);

Школе-семинаре «Задачи системного анализа, управления и обработки информации» (МТИ, Москва, 2015);

Международные научные конференции и семинары:

Международной конференции «Инжиниринг & Телекоммуникации -Еп&Т 2014» (МФТИ, Долгопрудный, 2014);

International Conference on Information Processing and Control Engineering 2015 (МГТУ им. Н.Э. Баумана, Москва, 2015).

Публикации. Результаты диссертации опубликованы в 7 работах, включая 3 статьи в ведущих периодических изданиях, рекомендованных ВАК РФ.

Соответствие паспорту специальности 05.13.11 «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей» по пунктам 3 и 9, так как разработанная технологии АРО предназначена для организации взаимодействия программ и программных систем и для организации глобально распределенной обработки данных.

Структура и объем диссертации. Диссертация состоит из введения, 4 глав, заключения, списка использованных источников из 103 наименований, приложений. Общий объем работы 162 с, из них 100 с. — основное содержание, включая 30 рисунков.

Сервис-ориентированная архитектура

Распределение вычислений и данных применяется так же и в реляционных БД. Распределенная база данных DDB {Distributed DataBase - распределенная БД) - это набор файлов (отношений), хранящихся в разных узлах информационной сети и логически связанных таким образом, чтобы составлять единую совокупность данных (связь может быть функциональной или через копии одного и того же файла) [Ошибка! Источник ссылки не найден.]. Обычно под DDB подразумевают БД, включающую фрагменты из нескольких баз данных, которые располагаются на различных вычислительных узлах сети, и, возможно управляются различными СУБД. DDB выглядит с точки зрения пользователей и прикладных программ как обычная локальная БД. В этом смысле слово «распределенная» отражает способ организации БД, но не внешнюю ее характеристику. Обзор DDB выполнен по работам [Ошибка! Источник ссылки не найден.-21].

Кристофер Дейт в 1987 году сформулировал один основной принцип и двенадцать правил, которым, по его мнению, должны следовать распределенные базы данных [Ошибка! Источник ссылки не найден.]. Основной принцип заключается в "прозрачности распределения", то есть с точки зрения пользователя информации DDB не должна отличаться от локальной БД. В этом смысле слово «распределенная» отражает способ организации базы данных, но не внешнюю ее характеристику. Двенадцать правил DDB, сформулированных Кристофером Дейтом: - локальная автономия (англ. local autonomy) - означает, что управление данными на каждом из узлов распределенной системы выполняется локально; - независимость узлов (англ. no reliance on central site) - означает, что все БД распределенной системы являются равноправными поставщиками данных; - непрерывные операции (англ. continuous operation) - означает, что доступ к данным осуществляется постоянно, вне зависимости от расположения и от выполняемых операций на локальных узлах; - прозрачность расположения (англ. location independence) - означает, что пользователь, обращаясь к БД, ничего не должен знать о её физическом расположении; - прозрачная фрагментация (англ. fragmentation independence) -означает возможность распределения данных, представляющих единое целое, либо разделение строк (горизонтальная фрагментация), либо разделение столбцов (вертикальная фрагментация); - прозрачное тиражирование (англ. replication independence) -асинхронный процесс переноса изменений объектов исходной БД в базы, расположенные на других узлах распределенной системы; - обработка распределенных запросов (англ. distributed query processing) - означает возможность выполнения запросов выборки из распределенной БД, одним сформированным SQL запросом. - обработка распределенных транзакций (англ. distributed transaction processing) - возможность выполнения операций манипулирования данных (добавление, изменение, удаление), не разрушающее целостность и согласованность данных; - независимость от оборудования (англ. hardware independence) -означает, что в качестве вычислительных узлов могут выступать компьютеры любых моделей и производителей; - независимость от операционных систем (англ. operationg system independence) - означает многообразие операционных систем, управляющих вычислительными узлами; - прозрачность сети (англ. network independence) - доступ к любым БД может осуществляться по сети и возможно использование любых сетевых протоколов; - независимость от баз данных (англ. database independence) - означает возможность использование СУБД различных производителей. Исходя из определения Дэйта, можно рассматривать DDB как слабосвязанную сетевую структуру, узлы которой представляют собой локальные БД. Локальные БД автономны, независимы и самоопределены. Доступ к ним обеспечиваются СУБД, в общем случае от различных поставщиков.

Термин сервис-ориентированная архитектура SOA (service-oriented architecture - сервис-ориентированная архитектура , как правило, используется для обозначения архитектурного стиля построения надежных распределенных систем, предоставляющие некую функциональность в виде набора слабосвязанных между собой сервисов. Для каждого SOA будет означать что-то свое, определенное. С точки зрения руководителя компании - это набор бизнес-сервисов, которые можно продать клиентам или предложить бизнес-партнерам. Для IT-инженера SOA — способ построение архитектуры, представляющий возможность создавать модульные, слабосвязанные сервисы, являющийся бизнес-процессом, действующим на предприятие. SOA - это система, объединяющая сферу деятельности между IT и бизнесом. Это не только чисто информационная технология и не только одна лишь сфера бизнеса - это сфера деятельности одновременно двух сообществ: информационного и бизнеса. Ни бизнес и ни IT не может полностью владеть, руководить и управлять всей системой SOA. Обе стороны заинтересованы в достижение качественного результата. SOA предоставляет такую возможность - общий язык для взаимопонимания. SOA рассмотрена по работам [22-Ошибка! Источник ссылки не найден.].

В SOA система строится из набора слабосвязанных звеньев (сервисов). На каждом вычислительном узле может быть запущено сколько угодно сервисов, которые в свою очередь могут использовать сколько угодно других сервисов. Сервисы могут быть объединены, чтобы обеспечить функциональность большого приложения. [24] В результате, каждый сервис построен в виде дискретной части кода. Это позволяет повторно использовать код по-разному во всем приложении путем изменения только взаимодействия с другими службами, которые составляют приложение. Принципы проектирования SOA используются при разработке и интеграции программного обеспечения.

Технологии, ориентированные на обработку сообщений

Как быстро развивались БД и СУБД, так быстро развивались и технологии доступа к данным, используемые программистами для разработки программных средств. Обзор и анализ технологий доступа к БД выполнен по работам [78-81].

Когда ещё не были разработаны технологии доступа к данным, для каждой СУБД предоставлялись собственные драйвера, которые представляли собой библиотеки, которые использовали программисты для разработки ПС работающие с информацией в БД. Хотя подобный подход обеспечивает быстрый и эффективный доступ к данным, могут возникать проблемы, когда задача расширяется, и разработчику приходится дорабатывать программу. Так же проблемой была, невозможность перехода на другую СУБД, актуальность чего была высока, так как появление новых СУБД и их развитие существенно ускоряло работу с данными. Для решения этой проблемы, была разработана компанией Microsoft технология ODBC (англ. Open Database Connectivity - открытая связь с базой данных), которая стала единым интерфейсом для доступа к базам данным. ODBC использует язык SQL как стандарт для доступа к данным. Этот интерфейс очень удобен: одно приложение может обращаться к различным базам данных SQL через общий набор команд. Таким образом, разработчик может создавать и распространять приложения, не привязываясь к конкретной базе данных. [78]

Технология ODBC получила большое распространение среди программистов на языках С и C++, однако поддержка данной технологии в Visual Basic появилась с версии 6.0. До этой версии применялся высокоуровневый доступ к данным через технологию DAO (Data Access Object - объект доступа к данным). Данная технология была как интерфейс для работы с СУБД через Jet (Joint Engine Technology - движок объединения технологий). Технология Jet, в первую очередь являлась интерфейсом для связи с Microsoft Access. Поскольку DAO создавалась сразу же вслед за Access, применение этой технологии — самый быстрый и наиболее эффективный способ доступа к базам данных Access. DAO так же могла работать и с другими СУБД за счет трансляции запросов через ODBC. Этот дополнительный шаг трансляции и является причиной замедления работы с базами данных, отличными от Access.

Со временем технология ODBC стала стандартом клиент-серверного доступа к данным, однако появилась необходимость обеспечения доступа к не SQL хранилищам данным, таким как электронная почта и служба каталогов. Для решения данной проблемы компанией Microsoft была разработана технология OLE DB (англ. Object Linking and Embedding, Database - объекты связи и внедрения баз данных). Эта архитектура предоставляет постоянный доступ к SQL-данным, не SQL-данным (служба каталогов, электронная почта) и неструктурированным источникам данных по локальным сетям и Internet. В действительности для доступа к SQL-данным OLE DB использует ODBC, потому что это самая подходящая архитектура для работы с SQL.

Так как Visual Basic не позволял работать с технологией OLE DB, то компания Microsoft разработала технологию ADO (ActiveX Data Objects— «объекты данных ActiveX»), основанная на технологии компонентов ActiveX. По сути ADO стало дополнительной прослойкой между программами, написанными на Visual Basic, и технологией OLE DB.

При разработке .Net Framework, компания Microsoft разработала очередную технологию ADO.NET Данная технология ориентируется на три важные возможности, которые не поддерживаются ADO: - поддержка модели доступа к несвязанным данным, что является ключевым элементом для работы в Web;

Компания Borland в свою очередь разработала технологию доступа к данным BDE (Borland Database Engine - ядро базы данных Borland), для разработки приложений в среде Borland Delphi. В данную технологию уже входил набор драйверов баз данных к стандартным источникам данных: Paradox, dBASE, FoxPro, а также текстовым БД. Для взаимодействия с другими СУБД имелась возможность работы через драйверы Microsoft ODBC или через SQL Links, для которого необходимо было устанавливать дополнительные драйвера определенной СУБД.

Компания Oracle разработала технологию доступа к данным JDBC (Java DataBase Connectivity — соединение с базами данных на Java), для разработки приложений на языке Java. JDBC основан на концепции так называемых драйверов, позволяющих получать соединение с базой данных по специально описанному URL. JDBC-драйверы для своих СУБД поставляют все основные разработчики.

При разработке приложений работающих с БД, использующие библиотеки Qt, применяется модуль QSQL, входящий в состав этой библиотеки. Данный модуль содержит удобные классы для полноценной работы с БД, например: QSqlDatabase предоставляет соединение с базой данных, QSqlQuery управляет выражениями SQL и их выполнением, QSqlQueryModel является моделью данных только для чтения результирующей SQL-выборки, QSqlRecord содержит в себе запись базы данных, QSqlRelation содержит информацию о внешнем ключе SQL.

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

Существующие реализации данной технологии, такие как QxORM, EntityFramework, Dapper, Hibernate и прочие, в основном выполняют генерацию SQL запросов при выполнении методов объектов. Помимо этого обычно в данную технологию встраивают функционал по кэшированию данных, работа с несколькими СУБД, и поддержание ссылочной целостности данных на стороне клиента, что делает данную технологию удобной при использовании в распределенных БД, когда вся БД распределена между различными СУБД размещенными на различных вычислительных узлах. Например, распределенная БД применяется при построении гибридной облачной инфраструктуры, при построении которой в работах [87,88,87] описывается и рекомендуется использование технологии ORM.

Метод проектирования при агентно-реляционном отображении

Используемое программное обеспечение «VMWare vCloud» позволяет организовывать облачные вычисления на всех уровнях. Для создания облака в экспериментальном стенде на двух серверах используется «VMware ESXi». Управление осуществляется системой «VCenter» и приложением «VMware vCloud Director». В стенде задействовано более 15 физических коммутаторов «Cisco», а также виртуальные коммутаторы «Nexus». Система на базе экспериментального стенда позволяет имитировать маршруты доступа к данным, сужать и расширять каналы, в том числе динамически. Такие экспериментальные стенды и опыты, проведенные на них, описаны в работах [101,102,103].

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

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

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

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

Основной особенностью предложенной технологии является совместное использование технологий удаленного доступа и технологий взаимодействия с БД в виде ORM. Что бы совместное использование данных технологий было возможным, определены следующие положения: Это позволит объекту, помимо выполнения запросов к БД, обеспечить удаленное взаимодействие с подобными ему объектами принципами и командами работы с реляционной БД.

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

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

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

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

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

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

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

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

Сервис-ориентированная система

Модуль «DbProcess» обеспечивает подключение к БД и выполнение запросов. Основным классом является класс «DbProcess», который содержит в себе набор методов для выполнения запросов как синхронно, так и асинхронно. Для хранения и передачи параметров подключения используется класс «DbConnectionParameters», который содержит параметры подключения к БД и возможность их получения через специализированные конфигурационные файлы формата « .ini», через переменные окружения и через параметры запуска приложения. Данные классы используются модулями «DbEntity», «DbEntityLink», «DbEntityView» для непосредственного выполнения запросов. Хотя и при разработке с использованием ORM не требуется SQL, не исключены случаи, когда потребуется выполнить специфичный запрос SQL к БД.

Модуль «QueryOptions» обеспечивают хранение запросов в специальной структуре, а также генерацию необходимых запросов выборки с фильтрами и сортировкой. Структура запроса «QueryOptions» представляет в виде: - списка полей класса «FieldList», который состоит из элементов «FieldParameters»; - названия таблицы (так же может быть названием представления или строки с операциями «join», которые пишутся в разделе «from» команды «select» языка SQL); - списка условий класса «FilterList», который состоит из элементов «FilterPatameters», организованных в иерархическую структуру; - списка сортировок класса «SortList», который состоит из элементов « S ortParameters». Данные классы используются классами «DbEntity», «DbEntityLink», «DbEntityView» для генерации запросов.

Классы модулей «DbEntity», «DbEntityLink», «DbEntityView» обеспечивают непосредственное объектно-реляционное отображение и предоставляют возможности взаимодействия между объектами, созданными на основе этих классов.

Модуль «ArNotifer» обеспечивает взаимодействие между объектами, созданных на основе классов «DbEntity», «DbEntityLink», «DbEntityView» . Он содержит в себе структуру хранения расположения объектов в системе в кассе «ArLocationList», который состоит из элементов «ArLocation». Основным же классом данного модуля является «ArNotifer», который является одиночкой (англ. singleton), то есть объект этого класса в приложении может быть создан только один раз.

Класс «ArLocationList» представляет собой список из элементов «ArLocations», содержащий методы по фильтрации списка по узлу, по приложению или по сущности.

Класс «ArNotifer» является одиночкой, экземпляр которого в приложении может быть создан только один. Объект «ArNotifer» осуществляет непосредственную передачу и прием сообщений, содержащих информацию с сериализованным объектом, информацию «от кого и кому» и само название операции. Пример формата сообщения показан на рисунке 16. Обмен сообщениями происходит по схеме изображенной на рисунке 17. Объект «ArNotifer» получает сообщения от службы «ArNotifyService», фильтрует не относящиеся к данному приложению сообщения, десириализует объект и по уникальному индетификатору объекта дает команду на выполнение операции, полученной в сообщении. Объекты пересылают сообщения с помощью статических функций «notify» класса «ArNotifer».

Объект «ArNotifer» содержит «карту» всех объектов системы в атрибуте «entityMap», который имеет тип «ArLocationList», поэтому он так же и отвечает за регистрацию и отмену регистрации объектов, то есть за добавление и уничтожение элементов из «entityMap». Регистрация объекта производится при запуске приложения в функции «main» вызовом метода «void ArNotifer::connectToLocalServer». При этом всем приложениям отправляется сообщение с запросом на регистрацию. По этому запросу приложения отправляют сообщения затребовавшему регистрацию информацию обо всех объектах своего приложения. Объект «ArNotifer» получает эти сообщения и зарегистрирует их у себя.