Автоматизированная система разработки унифицированного доступа к хранилищам данных технологических процессов посредством информационно-телекоммуникационных сетей тема диссертации и автореферата по ВАК РФ 05.13.06, кандидат наук Васильев, Алексей Владимирович

  • Васильев, Алексей Владимирович
  • кандидат науккандидат наук
  • 2018, Москва
  • Специальность ВАК РФ05.13.06
  • Количество страниц 186
Васильев, Алексей Владимирович. Автоматизированная система разработки унифицированного доступа к хранилищам данных технологических процессов посредством информационно-телекоммуникационных сетей: дис. кандидат наук: 05.13.06 - Автоматизация и управление технологическими процессами и производствами (по отраслям). Москва. 2018. 186 с.

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

Оглавление

Введение

Глава 1. Анализ средств проектирования ИС и моделей организации данных в нереляционных хранилищах

1.1. Роль ИС для систем управления в информационно -телекоммуникационном пространстве

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

1.3. Организация нереляционных баз данных в информационно-телекоммуникационной среде

1.4. Особенности связей компонентов АСУ

Выводы к главе 1

Глава 2. Разработка модели клиент-серверного взаимодействия и способов доступа к хранилищам данных

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

2.2. Объяснение адаптивных структур (моделей) данных

2.3. Способ унификации доступа к хранилищам адаптивных структур данных на языке Java

2.4. Математическая модель обработки запросов сервером

Выводы к главе 2

Глава 3. Разработка программных алгоритмов для доступа к адаптивным структурам данных технологических систем

3.1. Общее описание технологии отображения данных

3.1.1. Формирование унифицированного идентификатора ресурса

3.1.2. Введение понятия «шина событий» (event bus)

3.1.3. Модель древовидного представления пользовательского интерфейса

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

3.1.5. Сервер - независимые элементы интерфейса

3.1.6. Сервер - зависимые элементы интерфейса

3.1.7. Примеры моделей интерфейсов

3.2. Аспекты программной реализации по модулям

3.2.1. Физический уровень сущностей адаптивной структуры данных

3.2.2. Логический уровень агрегированных сущностей адаптивной структуры данных

3.2.3. Уровень предметной области

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

Выводы к главе 3

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

4.1. Типовой интерфейс АСУП

4.2. Математические оценки построенной системы

Выводы к главе 4

Глава 5. Пример применения информационно-телекоммуникационных сетей для адаптации гибкой автоматической линии к добавлению нового технологического оборудования в машиностроении

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

5.2. Адаптация БД к изменениям перечня образцов и деталей на производстве

Выводы к главе 5

Заключение

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

Приложение 1. Свидетельство о государственной регистрации программы для ЭВМ

Приложение 2. Выдержки программного кода по главе 2.2

Приложение 3. Выдержки программного кода по главе 3.2

Приложение 4. Акт о внедрении

Рекомендованный список диссертаций по специальности «Автоматизация и управление технологическими процессами и производствами (по отраслям)», 05.13.06 шифр ВАК

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

Введение

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

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

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

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

Согласно п. 5 постановления Правительства РФ от 6 июля 2015 г. №676 «О требованиях к порядку создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации государственных информационных систем и дальнейшего хранения содержащейся в их базах данных информации» в части разработки ИС, порядок создания системы включает в себя следующие последовательно реализуемые этапы:

а) разработка документации на систему и ее части;

б) разработка рабочей документации на систему и ее части;

в) разработка или адаптация программного обеспечения;

г) пусконаладочные работы;

д) проведение предварительных испытаний системы;

е) проведение опытной эксплуатации системы;

ж) проведение приемочных испытаний системы.

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

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

Степень разработанности темы. Применению адаптивной структуры хранения данных в основном посвящены работы Джозефа Йодера (Joseph Yoder), датированные 2011 годом, а также работы Ребекки Вирфс-Брок (Rebecca Wirfs-Brock), но в основном они только описывают, что такое адаптивный подход к хранению данных, а также подходы для применения к реляционным хранилищам данных, с примерами, написанными на псевдокоде. Работы авторов P.M. Matsumoto, F.F. Correia, E. Guerra, H.S. Ferreira, L. Welicki содержат примеры программного кода, но эти примеры представляют скорее академический интерес, поскольку в приведенном виде применить их на практике достаточно проблематично. В работах тех же авторов описывается способ отрисовки статичной абстрактной страницы, не использующий преимущества, специфичные для информационно-телекоммуникационной области, а информации об использовании данных подходов в области нереляционных хранилищ данных очевидно недостаточно.

Далее, под виджетом будет подразумеваться функционально полный элемент страницы, работоспособность которого не зависит от других элементов страницы, умеющий отрисовывать какую-либо информацию, возможно, зависящую от URI (Uniform Resource Identifier, единообразный способ формирования унифицированного идентификатора ресурса, по ГОСТу Р ИСО 22745-20-2013).

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

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

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

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

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

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

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

5. Проведение оценок эффективности разработанного алгоритма по модели клиент-серверного взаимодействия.

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

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

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

Методы исследования. В работе использовались методы системного анализа, моделирования и эксперимента, объектно-ориентированного проектирования программных систем и программирования, оптимизации и

математической статистики, а также оценки эргономичности

пользовательских интерфейсов.

Научная новизна заключается в следующем:

1. Определены межкомпонентные связи для систем эксплуатационной поддержки информационно-телекоммуникационных сетей автоматизированного производства, особенностями которых являются типизация и унификация, а также выявлены компоненты графических интерфейсов АСУ предприятия. Установлено увеличение доли нереляционных баз на основе анализа статистических данных за последние 4 года с 9.2% до 20.0%.

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

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

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

5. Предложены математические оценки эффективности разработанного алгоритма по модели клиент-серверного взаимодействия.

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

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

Показана работоспособность и применимость на примере управления физической и логической топологией информационно-телекоммуникационной сети предприятия, что также подтверждается свидетельством о государственной регистрации программы для ЭВМ № 2013610169 Неткайт (Netkite).

Научные исследования проведены при финансовой поддержке Минобрнауки России в рамках выполнения государственного задания № 2.1237.2017/ПЧ.

На защиту выносятся следующие результаты:

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

2) Математическая модель клиент-серверного взаимодействия для описания пропускной способности технологических систем.

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

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

• отсутствуют недостатки применения адаптивной структуры хранения данных «напрямую»;

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

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

5) Результаты оценки эффективности предложенного алгоритма проектирования технологических систем.

6) Программное обеспечение на языке Java, реализующее основные положения данной работы.

Достоверность и апробация результатов. Достоверность полученных результатов подтверждена путем разработки программного обеспечения, базирующегося на предложенных моделях и алгоритме, и применении их в исследовательском прототипе системы. Основные результаты диссертационного исследования представлены на российских и международных конференциях: 55-ой научной конференции МФТИ, Радиотехника и кибернетика (Москва, 2012) и XL международной конференции, X международной конференции молодых ученых «Информационные технологии в науке, социологии и бизнесе IT+S&E'12» (Москва, 2012), международной научно-практической конференции «новые информационные технологии в науке», XX Международной научно-практической конференция «World Science: Problems and Innovations», XX Международной научно-практической конференции «World science: problems and innovations» (Пенза, 2018), Международной научно-практической конференции «Новые информационные технологии в науке» (Челябинск, 2018), а также в электронном периодическом рецензируемом научном журнале «SCI-ARTICLE.RU».

Получено свидетельство о государственной регистрации программы для ЭВМ №2013610169 от 09 января 2013 Неткайт (Netkite).

Соответствие паспорту специальности. Диссертационная работа соответствует формуле научной специальности 05.13.06 - «Автоматизация и управление технологическими процессами и производствами» в пунктах 4, 9, 18:

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

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

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

Публикации по теме работы. По теме диссертации опубликовано 12 научных работ, в том числе 4 статьи в журналах, рекомендованных ВАК.

Структура и объем диссертации. Диссертационная работа состоит из введения, пяти глав, заключения, списка литературы и содержит 186 страниц машинописного текста, 17 страниц приложений, 53 рисунка и 15 таблиц. Список литературы содержит 126 наименований.

Глава 1. Анализ средств проектирования ИС и моделей организации данных в нереляционных хранилищах

1.1. Роль ИС для систем управления в информационно-телекоммуникационном пространстве

Современные государственные и частные, средние и крупные организации характеризует сложная интегрированная в производство инфраструктура, связанная в том числе, с многопрофильностью подразделений и цехов, их территориальной удаленностью и различным производственным потенциалом. Единая производственно-экономическая политика в каждом из подразделений организации проводится в соответствии с информационными возможностями, потребностями заказчиков и государства, а их централизованный контроль осуществляется с помощью комплексных автоматических систем управления [1]. Интеграция электронных систем в настоящее время осуществляется на всех уровнях: начиная от интерфейсов связи со станочным оборудованием, заканчивая предоставлением консолидированной отчетности руководству организаций и корпораций. Все элементы таких систем образуют общее информационно-телекоммуникационное пространство, называемое сетью.

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

физической организации данных, так и к обработке таких данных программным обеспечением [3] [4].

В частности, Enterprise Resource Planning System-ы (ERP-система) представляет собой компьютерную систему, в которой реализованы все необходимые функции для автоматизации управления и обслуживания всех текущих потребностей подразделений внутри организации [5]. ERP-система для информационно-телекоммуникационных сетей позволяет автоматизировать процессы производства и управления, и в некоторых случаях практически полностью сократить бумажный документооборот [6], автоматизировать переналадку оборудования баз вмешательства сотрудников организации, диагностировать поломки и предпринимать действия, направленные на их устранение.

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

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

Во-первых, внедрение ERP-системы для информационно-телекоммуникационных сетей, как правило, призвано решать такие основные задачи, как, стандартизацию терминологии и алгоритмов производственных процессов, и делать это в кратчайшие сроки [7].

Это наиболее актуально для крупных организаций, имеющих различные по структуре деятельности подразделения. Сбор данных из любой точки мира обеспечивается при помощи сети Internet, а единая ERP-система, в свою очередь, позволяет:

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

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

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

• Автоматизировать часть процессов подразделений и сократить излишний персонал;

• Обеспечить связь с государственными системами в соответствии с нормативными актами.

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

Третьей задачей, решаемой внедрением ERP-системы, является создание единой системы учета и управления финансами организации. Поскольку анализ общего финансового состояния организации складывается из объединенных отчетов всех ее подразделений, то в рамках единой для всех подразделений системы учета расходов и доходов внутри организации, отчетность формируется наиболее оперативно и объективно, с минимальным риском манипуляции данными [7].

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

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

«Большие данные» (BD), обладающие потенциалом для получения ценной информации для расширенного процесса принятия решений, в последнее время вызывают особый интерес со стороны как исследователей, так и практиков. «Аналитика больших данных» (BDA) все чаще становится трендовой практикой, которую принимают многие организации с целью извлечения из BD ценной информации [9] [10]. Процесс их автоматического анализа, включая развертывание и использование инструментов BDA, рассматривается организациями как инструмент повышения оперативной эффективности, хотя он имеет и стратегический потенциал, стимулирует появление новых потоков доходов и получение конкурентных преимуществ перед другими конкурентами в производстве и бизнесе [11]. Существуют различные типы аналитических приложений для автоматизации обработки «Больших данных», используемых во всех отраслях промышленности - от информационно-телекоммуникационной области [12] и промышленности [13], сельского хозяйства [14] до туризма [15].

Стоит заметить, что в информационно-телекоммуникационной области существует специальный сайт [16], который описывает, как должны быть построены информационно-телекоммуникационные системы и их сети.

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

Итоговая стоимость затрат на владение ERP-системой (TCO - Total Cost of Ownership) складывается из стоимости аппаратного и программного обеспечения, расходов на консалтинговые услуги по инсталляции, внедрению системы и адаптации персонала, а также средств, потраченных на обновление и дальнейшую оптимизацию. На основании исследования McKinsey известно, что величина TCO составляет в среднем $1,5 млн. При этом для среднего бизнеса сумма затрат составляет, как правило, от $100 тыс. до $1 млн., и подразумевает приобретение ERP-системы с коротким сроком внедрения, а более дорогие варианты стоимостью свыше $1 млн. приобретаются исключительно крупными компаниями и внедряются значительно дольше. Именно в этом ценовом сегменте находятся ERP системы для информационно-телекоммуникационных операторов. Необходимо отметить, что исследования на рынке России свидетельствуют о средней отдаче от внедрения ERP-систем в размере $1,2 млн. в год, что говорит о целесообразности их применения, несмотря на довольно высокую стоимость.

Рынок игроков, представленных компаниями, занимающимися разработкой заказных программных продуктов в целом, по данным сайта http://www.tmforum.org/ насчитывает порядка тысячи основных игроков. Их список включает в себя как крупные и известные корпорации (SAP, Oracle,

Microsoft), так и очень большое число небольших (например, MapR Technologies, Inc [https://mapr.com/]), но тоже имеющих свою часть рынка.

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

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

Похожие диссертационные работы по специальности «Автоматизация и управление технологическими процессами и производствами (по отраслям)», 05.13.06 шифр ВАК

Список литературы диссертационного исследования кандидат наук Васильев, Алексей Владимирович, 2018 год

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

1. Митрофанов, В.Г. Управление автоматизированными технологическими системами и моделирование оперативности при принятии решений [Текст] / В.Г. Митрофанов, Т.Г. Гришина, А.Н. Феофанов // Технология машиностроения. - 2015. - № 8. - С. 43-45.

2. McClatchey R. Designing reusable systems that can handle change: Description-driven systems: Revisiting object-oriented principles. [Текст] / R. McClatchey, A. Branson, J. Shamdasani // 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE), Lisbon. - 2014. - P. 1-8.

3. Безруков, А.В. Технические аспекты разработки инструментального средства управления компанией [Текст] / А.В. Безруков // УЭкС. - 2013. -№10 (58). - С. 20.

4. Agarwal R. Editorial - big data, data science, and analytics: the opportunity and challenge for is research [Текст] / R. Agarwal, V. Dhar // Information Systems Research. - 2014. - V. 25(3). - P. 443-448.

5. Об информационных технологиях в бизнесе. [Электронный ресурс]. -Available at: http://www.kbinfo.narod.ru/asu/asu2.htm (дата обращения: 16.06.2017).

6. Gelogo Y.E., Kim H.-K. Enterprise Resource Planning System Deployment on Mobile Cloud Computing [Текст] / Y.E. Gelogo, H.-K. Kim // Asia-pacific Journal of Multimedia Services Convergent with Art, Humanities, and Sociology. - 2013. - V. 3(1). - P. 1-8.

7. Xudong L. An Adaptive Development Framework for Web-Based Enterprise Information System. [Текст] / L. Xudong, X. Xiaofei, Z. Dechen, Q. Limin //

2008 International Symposium on Computer Science and Computational Technology, Shanghai. - 2008. - P. 82-86.

8. Кузнецов, С.Д. Распределенные горизонтально масштабируемые решения для управления данными [Текст] / С.Д. Кузнецов, А.В. Посконин // Труды ИСП РАН. - 2013. - №. - С.327-358.

9. Клеменков, П.А., Кузнецов С.Д. Большие данные: современные подходы к хранению и обработке [Текст] / П.А. Клеменков, С.Д. Кузнецов // Труды ИСП РАН. - 2012. - №. - С. 143-158.

10. George G. Big Data and Data Science Methods for Management Research [Текст] / G. George, E.C. Osinga, D. Lavie, B.A. Scott // ACAD MANAGE J. - 2016. - V. 59(5). - P. 1493-1507.

11. Sivarajah U. Critical analysis of Big Data challenges and analytical methods [Текст] / U. Sivarajah, M.M. Kamal, Z. Irani, V. Weerakkody // Journal of Business Research. - 2017. - V. 70. - P. 263-286.

12. Baiju N.T. 11 interesting Big Data case studies in Telecom [Электронный ресурс]. - Available at: http://bigdata-madesimple.com/11-interesting-big-data-case-studies-in-telecom/ (дата обращения: 16.06.2017).

13. Zhou C. Research on the Application of NoSQL Database in Intelligent Manufacturing. / C. Zhou, K. Yao, Z. Jiang, W. Bai // In: C. Yang, G. Virk, H. Yang (eds) Wearable Sensors and Robots. Lecture Notes in Electrical Engineering. - 2017. - V. 399. - P. 423-434.

14. Henry E. Precision apiculture: development of a wireless sensor network for honeybee hives. [Текст] / E. Henry // Masters of Science. - McGill University, Montreal, Quebec, Canada. - 2016.

15. Martinelli P. Big-data e Turismo: Analisi delle recensioni utente sulla piattaforma Expedia. [Laurea], Universita di Bologna - [L-DM270]. - 2016. [Электронный ресурс]. - Available at:

http://amslaurea.unibo.it/view/cds/CDS8014/ (дата обращения: 16.06.2017).

16. TM Forum. [Электронный ресурс]. - Available at: http://www.tmforum.org/ (дата обращения: 16.06.2017).

17. Амачиев, Л.А. Создание базы данных при идентификации электронной продукции [Текст] / Л.А. Амачиев, А.Н. Феофанов // Международный научно-исследовательский журнал. - 2015. - № 11-2 (42). - С. 6-8.

18. Guerra E. A reference architecture for organizing the internal structure of metadata-based frameworks / E. Guerra, F. Alves, U. Kulesza, C. Fernandes // Journal of Systems and Software. - 2013. - V. 86(5). - P. 1239-1256.

19. Hen-Tov A. Adaptive object-model evolution patterns.. [Текст] / A. Hen-Tov, L. Nikolaev, L. Schachter, R. Wirfs-Brock, J.W. Yoder // In Proceedings of the 8th Latin American Conference on Pattern Languages of Programs (SugarLoafPLoP '10). ACM. - New York, USA. - 2010. - Article 5. - 21 p.

20. Петров, П.С. Создание компьютерной среды проектирования для решения компоновочных задач (на примере автоматизации компоновок универсальных сборных приспособлений) [Текст] / П.С. Петров, А.Н. Феофанов, А.В. Рыбаков // Металлообработка. - 2016. - № 1 (91). - С. 48-54.

21. Тетерина, И.А. Автоматизированная система идентификации и анализа рисков при смене поставщика сырья и материалов на основе ситуатативных экспертных оценок [Текст] / И.А. Тетерина, А.Н. Феофанов, М.В. Турапин // Вестник Белгородского государственного технологического университета им. В.Г. Шухова. - 2016. № 6. - С. 149-

22. Aveiro D. Universal Enterprise Adaptive Object Model: A Semantic Web-Based Implementation of Organizational Self-Awareness [Текст] / D. Aveiro, D. Pinto // Intelligent Systems in Accounting, Finance and Management. -2015. - V. 22(1). - P. 3-28.

23. Oliveira F.M.D. Evaluating the Performance of Adaptable Systems Based on AOM: A Case Study Exploring LOM. [Текст] / F.M.D. Oliveira, A. Dantas, R.d.A. Vilar // 2015 IX Brazilian Symposium on Components, Architectures and Reuse Software. - Belo Horizonte. - 2015. - P. 60-69.

24. Использование опыта тестирования реляционной СУБД для технологии NoSQL [Электронный ресурс]. - Available at: https://habrahabr.ru/company/mailru/blog/113421/ (дата обращения: 16.06.2017).

25. DBMS popularity broken down by database model. [Электронный ресурс]. -Available at: https://db-engines.com/en/ranking_categories (дата обращения: 16.06.2017).

26. Fuggetta A. A classification of CASE technology. [Текст] / A. Fuggetta // Computer. - 1993. - V. 26(12). - P. 25-38.

27. Одинцов, И.О. Профессиональное программирование. Системный подход. — 2-е изд. данными [Текст] / И.О. Одинцов // — СПб.: БХВ-Петербург. - 2005. — 624 с.

28. Bosua R. Realisation of an integrated software engineering environment through heterogeneous CASE-tool integration. [Текст] / R. Bosua, S. Brinkkemper // Proceedings Software Engineering Environments, Noordwijkerhout. - 1995. - P. 152-159.

29. Yonezawa A. Metalevel Architectures and Separation of Crosscutting Concerns [Текст] / A. Yonezawa, S. Matsuoka (eds.) // Third International Conference, REFLECTION 2001 Kyoto, Japan, September 25-28, Proceedings. - Lecture Notes in Computer Science. - 2001. - V. 2192. - 283 p.

30. Суханов, А.В. СУБД vs. NoSQL: какая система хранения лучше для DLP-систем? [Электронный ресурс]. - Available at: https://www.anti-malware.ru/analytics/Technology_Analysis/which_storage_system_better_for _dlp (дата обращения: 16.06.2017).

31. Шалтунович, А.В. Нереляционные системы хранения в условиях проблемы больших данных и распределенных вычислений [Текст] / А.В. Шалтунович // Вестник НВГУ. - 2013. - №1. - С. 91-94.

32. Мухина, Ю.Р. Обзор rnsql решений управления данными [Текст] / Ю.Р. Мухина // Управление в современных системах. - 2013. - №1. - С. 68-73.

33. Aggarwal N. Analysis the effect of data mining techniques on database. [Текст] / N. Aggarwal, A. Kumar, H. Khatter, V. Aggarwal // Advances in Engineering Software. - 2012. - V. 47(1). - P. 164-169.

34. Your Ultimate Guide to the Non-Relational Universe! List Of NoSQL Databases. [Электронный ресурс]. - Available at: http://nosql-database.org/ (дата обращения: 16.06.2017).

35. Zhang C. Ontology-Based Adaptive Object Model for Simulation Physical Parameter Management. [Текст] / C. Zhang, L. Tian, Y. Wu // ASME. ASME International Mechanical Engineering Congress and Exposition. - 2015. - V. 11: Systems, Design, and Complexity. - P. V011T14A001.

36. Bao X. HConfig: Resource adaptive fast bulk loading in HBase. [Текст] / X. Bao, L. Liu, N. Xiao, F. Liu, Q. Zhang, T. Zhu // 10th IEEE International

Conference on Collaborative Computing: Networking, Applications and Worksharing. - Miami, FL. - 2014. - P. 215-224.

37. Посконин, А.В. Интеграция SQL-ориентированных СУБД и NoSQL-систем на уровне объектного отображения [Текст] / А.В. Посконин // Объектные системы. - 2014. - №1 (8). - С. 33-38.

38. Амачиев, Л.А. Описание фрагмента программного обеспечения для автоматизированной обработки данных при верификации электронных изделий [Текст] / Л.А. Амачиев, А.Н. Феофанов // Международный научно-исследовательский журнал. - 2016. - № 6-2 (48). - С. 15-18.

39. Дьяконов, А.В. О современных тенденциях хранения данных в документо-ориентированных СУБД [Текст] / А.В. Дьяконов, Ю.Б. Козлова // Актуальные проблемы авиации и космонавтики. - 2015. - №11. - С. 394-396.

40. Торган, Ю.Н. Использование нереляционного подхода в распределенной системе баз данных [Текст] / Ю.Н. Торган, Т.В. Зубрилина // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. - 2012. - №5 (157). - С. 15-20.

41. Razavi R. Language support for adaptive object-models using metaclasses. [Текст] / R. Razavi, N. Bouraqadi, J. Yoder, J.-F. Perrot, R. Johnson // Computer Languages, Systems and Structures. - 2005. - V. 31(3-4). - P. 199218.

42. Васильев, А.В. О построении графического интерфейса пользователя, основанного на модели виджетов и фреймворке Google Web Toolkit [Текст] / А.В. Васильев // Глобальный научный потенциал. Информационные технологии. - 2014. - №6 (39). - С. 57-63.

43. Васильев, А.В. Шаблон проектирования корпоративных Java-приложений, построенных на основе адаптивных моделей данных, обеспечивающий их масштабируемость [Текст] / А.В. Васильев // Труды МФТИ. - 2013. - Т. 5, № 4 (20). - С. 96-101.

44. Феофанов, А.Н. Совершенствование графических интерфейсов и организации доступа к базам данных систем эксплуатационной поддержки телекоммуникационных операторов [Текст] / Феофанов А.Н., Васильев А.В. // Технология машиностроения. - 2018. - № 1. - С. 56-61.

45. Bryant C. A Guide to Open Source Cloud Computing Software [Электронный ресурс]. - Available at:

http://www.tomsitpro.com/articles/open-source-cloud-computing-software,2-754-8.html (дата обращения: 16.06.2017).

46. Sarathi P. A deep dive into NoSQL: A complete list of NoSQL databases [Электронный ресурс]. - Available at: http://bigdata-madesimple.com/a-deep-dive-into-nosql-a-complete-list-of-nosql-databases/ (дата обращения: 16.06.2017).

47. Vicknair C. A comparison of a graph database and a relational database: a data provenance perspective. [Текст] / C. Vicknair, M. Macias, Z. Zhao, X. Nan, Y. Chen, D. Wilkins // In: Proceedings of the 48th Annual Southeast Regional Conference (ACM SE '10). - ACM, New York, USA. - 2010. - Article 42. - 6 p.

48. Leavitt N. Will NoSQL Databases Live Up to Their Promise? [Текст] / N. Leavitt // Computer. - 2010. - V. 43(2). - P. 12-14.

Stonebraker M. SQL databases v. NoSQL databases [Текст] / M. Stonebraker // Communications of the ACM. - 2010. - V. 53(4). - P. 10-11.

50. Guerra E.M. Metadata-Based Frameworks in the Context of Cloud Computing. [Текст] / E. Guerra, E. Oliveira // In: Mahmood Z. (eds) Cloud Computing. Computer Communications and Networks. - 2013. - Springer, London. - P. 3-24.

51. Souza M.L.P. A Model-Based Testing Method for Dynamic Aspect-Oriented Software. [Текст] / M.L.P. Souza, F.F. Silveira // In: Gervasi O. et al. (eds) Computational Science and Its Applications - ICCSA 2017. - ICCSA 2017. -Lecture Notes in Computer Science. - 2017. - V. 10409. Springer, Cham. - P. 95-111.

52. McKinley P.K. Composing adaptive software [Текст] / P.K. McKinley, S.M. Sadjad, E.P. Kasten, B.H.C. Cheng // Computer. - 2004. - V. 37(7). - P. 5664.

53. Lieberherr K. Aspect-oriented programming with adaptive methods [Текст] / K. Lieberherr, D. Orleans, J. Ovlinger // Communications of the ACM. -2001. - V. 44(10). - P. 39-41.

54. Oreizy P. An architecture-based approach to self-adaptive software [Текст] / P. Oreizy, M.M. Gorlick, R.N. Taylor, D. Heimhigner, G. Johnson, N. Medvidovic, A. Quilici, D.S. Rosenblum; A.L. Wolf // IEEE Intelligent Systems and their Applications. - 1999. - V. 14(3). - P. 54-62.

55. Tamai T. An adaptive object model with dynamic role binding [Текст] / T. Tamai, N. Ubayashi, R. Ichiyama // ICSE '05 Proceedings of the 27th international conference on Software engineering. - St. Louis, MO, USA — May 15 - 21. - 2005. - P. 166-175.

56. Ferreira H.S. Adaptive Object-Modelling: Patterns, Tools and Applications. [Текст] / H.S. Ferreira, A. Aguiar, J.P. Faria // 2009 Fourth International

Conference on Software Engineering Advances, Porto. - 2009. - P. 530-535.

57. Welicki L. Towards a pattern language for adaptive object models.. [Текст] / L. Welicki, J.W. Yoder, R. Wirfs-Brock, R.E. Johnson // In: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion (OOPSLA '07). - ACM, New York, NY, USA. -2007. - P. 787-788.

58. Yoder J., Balaguer F., Johnson R. Adaptive Object-Models for Implementing Business Rules. (2017) [Электронный ресурс]. - Available at: https://www.researchgate.net/publication/250218714_Adaptive_Object-Models_for_Implementing_Business_Rules (дата обращения: 16.06.2017).

59. Yoder J.W. Architecture and design of adaptive object-models [Текст] / J.W. Yoder, F. Balaguer, R. Johnson // ACM SIGPLAN Notices. - 2001. - V. 36(12). - P. 50-60.

60. Gottardi T. Model-Oriented Web Services. [Текст] / T. Gottardi, R.T.V. Braga // 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE), Oxford. - 2016. - P. 14-23.

61. Yoder J. Rulemakers and toolmakers: adaptive object-models as an agile division of labor. [Текст] / J. Yoder // In: Proceedings of the tenth international conference on Aspect-oriented software development companion (AOSD '11). - ACM, New York, NY, USA. - 2011. - P. 57-58.

62. Revault N. Adaptive Object-Models and Metamodeling Techniques. [Текст] / N. Revault, J.W. Yoder // In: Frohner A. (eds) Object-Oriented Technology. ECOOP 2001. Lecture Notes in Computer Science. - 2002. - V. 2323. -Springer: Berlin, Heidelberg. - P. 57-71.

63. Matsumoto P.M. An Architectural Model for Adapting Domain-Specific

AOM Applications. [Текст] / P.M. Matsumoto, E. Guerra // 2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse. -Natal. - 2012. - P. 31-40.

64. Neward T. Ted Neward's Technical Blog (2006-06-26). The Vietnam of Computer Science. [Электронный ресурс]. - Available at: http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science .aspx (дата обращения: 16.06.2017).

65. DB-engines (Knowledge Base of Relational and NoSQL Database Management Systems). RDBMS dominate the database market, but NoSQL systems are catching up. [Электронный ресурс]. - Available at: http://db-engines.com/en/blog_post/23 (дата обращения: 16.06.2017).

66. Harrison G. Next Generation Databases: NoSQLand Big Data, 1st ed. [Текст] / G. Harrison // NY: Apress. - 2015. - 235 p.

67. Moniruzzaman A.B.M., Hossain S.A. NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison [Электронный ресурс]. - Available at: https://arxiv.org/abs/1307.0191 (дата обращения: 16.06.2017).

68. CNET. Google spotlights data center inner workings. [Электронный ресурс].

- Available at: http://www.cnet.com/news/google-spotlights-data-center-inner-workings/ (дата обращения: 16.06.2017).

69. Subhash C.Y. Introduction To Client/Server Computing [Текст] / C.Y. Subhash, S.K. Singh // New Delhi : New Age International(P) Ltd. Publishers.

- 2009. - 212 p.

70. Посконин, А.В. Web-приложения и данные: проблемы абстракции и масштабируемости [Текст] / А.В. Посконин // Труды ИСП РАН. - 2012. -

№.23 - С. 159-172.

71. Sadalage P.J. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. [Текст] / P.J. Sadalage, M. Fowler // Pearson Education, Inc. - 2012. - 234 p.

72. Yoder J.W. Metadata and Adaptive Object-Models. [Текст] / J.W. Yoder, R. Razavi // ECOOP'2000 Workshop Reader. - Springer Verlag. - Lecture Notes in Computer Science. - 2000. - V. 1964. - P. 1-10.

73. Ferreira H.S. Adaptive Object-Models: a Research Roadmap [Текст] / H.S. Ferreira, F.F. Correia, A. Aguiar, J.P. Faria // International Journal on Advances in Software. - 2010. - V. 3(1, 2). - P. 70-89.

74. Seeger M. Key-Value Stores: a practical overview. [Текст] / M. Seeger // Computer Science and Media Ultra-Large-Sites SS09. 21 September 2009. -Stuttgart, Germany. - 2009. - 21 p.

75. Yoder J.W. The Adaptive Object-Model Architectural Style [Текст] / J.W. Yoder, R. Johnson // Software Architecture. IFIPAICT. - 2002. - V. 97. - P. 3-27.

76. Razavi R. Adaptive Modeling: An Approach and a Method for Implementing Adaptive Agents. / R. Razavi, J.-F. Perrot, N. Guelfi // In: Ishida T., Gasser L., Nakashima H. (eds) / Massively Multi-Agent Systems I. MMAS 2004. -Lecture Notes in Computer Science. - Springer: Berlin, Heidelberg. - 2005. -V. 3446. - P. 136-148.

77. Matsumoto P.M. AOM metadata extension points. [Текст] / P.M. Matsumoto, F.F. Correia, J.W. Yoder, E. Guerra, H.S. Ferreira, A. Aguiar // In: Proceedings of the 18th Conference on Pattern Languages of Programs (PLoP '11). ACM. - New York, USA. - 2011. - Article 12. - 16 p.

78. Hen-Tov A., Lorenz D.H., Nikolaev L., Schachter L., Wirfs-Brock R., Yoder J.W. 2010. Dynamic model evolution. [Текст] / A. Hen-Tov, D.H. Lorenz, L. Nikolaev, L. Schachter, R. Wirfs-Brock, J.W. Yoder //In Proceedings of the 17th Conference on Pattern Languages of Programs (PLOP '10). - ACM, New York, NY, USA. - Article 16. -13 pages.

79. Cetin S. Business Rules Segregation for Dynamic Process Management with an Aspect-Oriented Framework. [Текст] / S. Cetin, N.I. Altintas, R. Solmaz // In: Eder J., Dustdar S. (eds) Business Process Management Workshops. BPM 2006. - Lecture Notes in Computer Science. - 2006. - V. 4103. - Springer, Berlin, Heidelberg. - P. 193-204.

80. Beck K. Test-Driven Development By Example [Текст] / K. Beck // Addison Wesley. - 2002. - 240 p.

81. White T. Hadoop: The Definitive Guide, 4th Edition. Storage and Analysis at Internet Scale [Текст] / T. White // O'Reilly Media. - 2015. - 235 p.

82. Belzer J. Encyclopedia of Computer Science and Technology - Volume 14: Very Large Data Base Systems to Zero-Memory and Markov Information Source. [Текст] / J. Belzer // Marcel Dekker Inc.

83. Митрофанов, Ю.И. Основы теории сетей массовогообслуживания : учебн. пособие. - Саратов : Изд-во Сарат. ун-та, 1993. - 116 с.

84. Митрофанов, Ю.И. Анализ сетей массового обслуживания с динамическим управлением маршрутизацией [Текст] / Митрофанов Ю.И., Фокина Н.П. // Известия Сарат. ун-та. Серия Математика. Механика. Информатика. - 2007. - Т. 7. - В. 1. -С. 27-33.

85. Митрофанов, Ю.И. Методы определения оптимальных параметров управления маршрутизацией в сетях массового обслуживания [Текст] /

Митрофанов Ю.И., Юдаева Н. В. // Автоматика и телемеханика. - 2001. -№ 8. - с. 109-117.

86. Григелионис, Б. И. Предельные теоремы для сумм процессов восстановления. Сб. «Кибернетика - на службу коммунизму», т. 2, Изд-во «Энергия», М.-Л., 1964, с. 246 - 265.

87. Уолрэнд, Д. Введение в теорию сетей массового обслуживания // М. : Мир, 1993. - 336 с.

88. Башарин, Г.П. Анализ очередей в вычислительных сетях. Теория и методы расчёта [Текст] / Башарин Г.П., Бочаров П.П., Коган Я.А. // М. : Наука, 1989. - 336 с.

89. Клейнрок, Л. Вычислительные системы с очередями // -М. : Мир, 1978. -598 с.

90. Жожикашвили, В.А. Сети массового обслуживания. Теория и применение к сетям ЭВМ / Жожикашвили В.А., Вишневский B.M. // М. : Радио и связь, 1988. - 192 с.

91. Карминский, А.М. Информационные системы в экономике: В 2-х ч. Ч.1. Методология создания: Учеб. пособие. / А.М. Карминский, Б.В. Черников - М.: Финансы и статистика. - 2006. - 336 с.

92. Mouheb D. Aspect-Oriented Paradigm. [Текст] / D. Mouheb, M. Debbabi, M. Pourzandi, L. Wang, M. Nouh, R. Ziarati, D. Alhadidi, C. Talhi, V. Lima // In: Aspect-Oriented Security Hardening of UML Design Models. - Springer, Cham. - 2015. - P. 23-33.

93. Hirzel M. Selective regression testing for web applications created with google web toolkit. [Текст] / M. Hirzel // In: Proceedings of the 2014

International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14). - ACM, New York, USA. - 2014. - P. 110-121.

94. Swick R.R. The X Toolkit: More Bricks for Building User-Interfaces or Widgets for Hire [Текст] / R.R. Swick, M.S. Ackerman // USENIX Winter. -1988. - P. 221-228.

95. Hen-Tov A. AOM domain-specific validations. [Текст] / A. Hen-Tov, D.H. Lorenz, L. Schachter, R. Wirfs-Brock, J.W. Yoder // In: Proceedings of the 20th Conference on Pattern Languages of Programs (PLoP '13). The Hillside Group, USA. - 2013. - Article 4. - 13 p.

96. Burgareli L.A. A Variation Mechanism Based on Adaptive Object Model for Software Product Line of Brazilian Satellite Launcher, [Текст] / L.A. Burgareli, S.S.S. Melnikoff, M.G.V. Ferreira // 2009 First IEEE Eastern European Conference on the Engineering of Computer Based Systems. - Novi Sad. - 2009. - P. 24-31.

97. Alshayeb, M. A framework for an integrated unified modeling language [Текст] / M. Alshayeb, N. Khashan, S. Mahmood, // Frontiers Inf Technol Electronic Eng. - 2016. - V. 17. - P. 143.

98. Vilar R. Rendering patterns for enterprise applications. [Текст] / R. Vilar, D. Oliveira, H. Almeida // In: Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP '15). - ACM, New York, NY, USA. - 2015. - Article 22. - 17 p.

99. Xiao L. Adaptive Agent Model: Software Adaptivity using an Agent-oriented Model-Driven Architecture. [Текст] / L. Xiao, D. Greer // Information and Software Technology. - 2009. - V. 51(1). - P. 109-137.

100 Boudaa B. An aspect-oriented model-driven approach for building adaptable

. context-aware service-based applications. [Текст] / B. Boudaa, S. Hammoudi, L. Amel Mebarki, A. Bouguessa, M.A. Chikh // cience of Computer Programming. - 2017. - V. 136, P. 17-42.

101 Guerra E. Support for Refactoring an Application towards an Adaptive Object . Model. / E. Guerra, A. Aguiar // In: Murgante B. et al. (eds) Computational

Science and Its Applications - ICCSA 2014. - ICCSA 2014. - Lecture Notes in Computer Science. - 2014. - V. 8583. -Springer, Cham. - P. 73-89.

102 Tegegne A. Application framework support for process-oriented software . development [Текст] / A. Tegegne, L. Peyton // International Journal of

Electronic Business. - 2013. - V. 10(3). - P. 232-253.

103 Google Web Toolkit.. [Электронный ресурс]. - Available at:

. http://code.google.com/webtoolkit/overview.html (дата обращения: 16.06.2017).

104 Gupta V. Accelerated GWT: Building Enterprise Google Web Toolkit . Applications [Текст] / V. Gupta // NY: Apress. - 2008. - 291p.

105 Kereki F. Essential GWT: Building for the Web with Google Web Toolkit 2 . [Текст] / F. Kereki // Toronto: Pearson Education. - 2010. - 352 p.

106 Robledo C. Google Web Toolkit [Текст] / C. Robledo, D. Robledo // Madrid: . Aula Mentor. - 2012. - 402 p.

107 Akiki P.A. Adaptive Model-Driven User Interface Development Systems.

. [Текст] / P.A. Akiki, A.K. Bandara, Y. Yu. // ACM Comput. Surv. - 2014. -V.47(1). - Article 9. - 33 p.

108 Cooper R. GWT in Practice [Текст] / R. Cooper, C. Collins // Manning

. Publications Co. - 2008. - 376 p.

109 Dewsbury R. Google Web Toolkit Applications [Текст] / R. Dewsbury // . Addison-Wesley Professional. - 2007. - 608 p.

110 Mikowski M.S., Powell J.C. Single Page Web Applications. [Электронный . ресурс]. - Available at: http://deals.manningpublications.com/spa.pdf (дата

обращения: 16.06.2017).

111 Welicki L. Rendering patterns for adaptive object-models. [Текст] / L. . Welicki, J.W. Yoder, R. Wirfs-Brock // In: Proceedings of the 14th

Conference on Pattern Languages of Programs (PLOP '07). - ACM, New York, NY, USA. - 2007. - Article 12. - 12 p.

112 Zhang S. Analysis and Research of Cloud Computing System Instance.

. [Текст] / S. Zhang, S. Zhang, X. Chen, S. Wu // 2010 Second International Conference on Future Networks. - Sanya, Hainan. - 2010. - P. 88-92.

113 Guerra E. Dynamic generated adapters from adaptive object models to static . APIs. / E. Guerra, J. Santos, A. Aguiar, L.G. Veras // In Proceedings of the

22nd Conference on Pattern Languages of Programs (PLoP '15). The Hillside Group, USA. - 2015. - Article 12. - 15 p.

114 Tuominen V.J. ImmunoRatio: a publicly available web application for

. quantitative image analysis of estrogen receptor (ER), progesterone receptor (PR), and Ki-67 [Текст] / V.J. Tuominen, S. Ruotoistenmaki, A.Viitanen, M. Jumppanen, J. Isola // Breast Cancer Research. - 2010. - V. 12. - P. R56.

115 Wasicek A. Aspect-oriented modeling of attacks in automotive Cyber. Physical Systems. [Текст] / A. Wasicek, P. Derler, E.A. Lee // 51st

ACM/EDAC/IEEE Design Automation Conference (DAC). - San Francisco, CA. - 2014. - P. 1-6.

116 Zheng Q. GOEAST: a web-based software toolkit for Gene Ontology . enrichment analysis, [Текст] / Q. Zheng, X.-J. Wang // Nucleic Acids

Research. - 2008. - V. 36(suppl_2). - P. W358-W363.

117 Wenzel S. Unique identification of elements in evolving software models

. [Текст] / S. Wenzel // Softw Syst Model. - 2014. - V. 13(2). - P. 679-711.

118 Codd E.F. A Relational Model of Data for Large Shared Data Banks [Текст] / . E.F. Codd // Communications of the ACM. - 1970. - V. 13(6). - P. 377-387.

119 RFC3986. [Электронный ресурс]. - Available at:

. https://tools.ietf.org/html/rfc3986 (дата обращения: 15.12.2017).

120 Conway R. A primer on disciplined programming using PL/I, PL/CS and . PL/CT [Текст] / R. Conway // Winthrop Publishers. - 1978.

121 Martin Heller. [Электронный ресурс]. InfoWorld. Developer world. REST . and CRUD: the Impedance Mismatch. - Available at:

http://www.infoworld.com/d/developer-world/rest-and-crud-impedance-mismatch-927 (дата обращения: 15.12.2017).

122 Yourdon E. Java, the Web, and software development. [Текст] / E. Yourdon // . Computer. - 1996. - V. 29(8). - P. 25-30.

123 Феофанов, А.Н Информационно - объектная модель проектирования . агрегатных станков [Текст] / Феофанов А.Н., Калинин В.В. //

«Конструкторско - технологическая информатика, автоматизированное создание машин и технологий - КТИ-89».Мастер. Всесоюзной конф. -М.: Мосстанкин, 1989.

124 Феофанов, А.Н. Гибкие автоматические линии в машиностроении.-М.: . «Янус-К», 2002, 192 с.

125 Кученченко, Е.А. Разработка автоматизированной подсистемы ведения . описания узлов агрегатных станков и автоматических линий [Текст] /

Кученченко Е.А., Астахова Т.А., Бабылов Д.А., Феофанов А.Н. // «Технология машиностроения» - 2007, №8.

126 Иевлев, И.В. Формирование требований к системам управления базами . данных для поддержки описания технических характеристик и образов

унифицированных узлов агрегатных станков [Текст] / Иевлев И.В., Феофанов А.Н. // «Технология машиностроения» - 2005, №11.

Приложение 1. Свидетельство о государственной регистрации программы для ЭВМ

Приложение 2. Выдержки программного кода по главе 2.2

/** File netkite-rialto\src\main\java\ru\netkite\rialto\config\RialtoStorage.java **/

package ru.netkite.rialto.config;

/**

* Transactional bridge to physical data storage.

* Implementation depends on particular settings.

* */

public interface RialtoStorage {

static interface AfterConstruct<T extends NkEntity<?>> { void afterConstruct(T entity) throws Exception;

}

/**

* Creates new entry with specified name under parent object.

* If parent is null then behavior is defined by particular implementation.

* If name is null then entity will be created with default name.

* */

<T extends NkEntity<?>> T create(Class<T> clazz, NkEntity<?> parent, String name);

/**

* The same as method without AfterConstruct.

* {@link AfterConstruct#afterConstruct(NkEntity)} invokes after object was created.

* */

<T extends NkEntity<?>> T create(Class<T> clazz, NkEntity<?> parent, String name, AfterConstruct<T>

afterConstruct);

/**

* Looks for entity with specified id.

* @throws NullPointerException if id is null

* */

<T extends NkEntity<ID>, ID extends Serializable> T findById(Class<T> clazz, ID id);

<T extends NkEntity<ID>, ID extends Serializable> List<T> findByIds(Class<T> clazz, List<ID> ids);

<ID extends Serializable> void remove(ID id);

}

/** File netkite-rialto\src\main\java\ru\netkite\rialto\core\Snapshots.java **/ package ru.netkite.rialto.core; public class Snapshots {

public static <INTERFACE> INTERFACE newSnapshot(Class<INTERFACE> clazz, INTERFACE obj){ if(!(obj instanceof NkEntity)){ return obj;

}

LinkedList<String> stack = new LinkedList<String>(); try {

return (INTERFACE) newNkEntrySnapshot(clazz, obj, stack); } catch(Exception e){

Collections.reverse(stack);

throw new RuntimeException("Methods: " + stack, e);

} }

private static Object newNkEntrySnapshot(final Class<?> clazz, Object obj, Deque<String> stack) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { if(!clazz.isInterface()){

throw new RuntimeException("Snapshot can be created only for interfaces, but method called

with argument #" + clazz); }

final Map<String, Object> results = new HashMap<String, Object>(); for(Method m : clazz.getMethods()){

if(m.getParameterTypes().length != 0 || "getClass".equals(m.getName())|| "hashCode".equals(m.getName())|| "notify".equals(m.getName())|| "notifyAll".equals(m.getName())|| "wait".equals(m.getName())|| "toString".equals(m.getName())){ continue;

}

if("remove".equals(m.getName())){ continue;

}

Object id = obj instanceof NkEntity<?> ? ((NkEntity<?>)obj).getId() : "?"; stack.push("@" + id + "->" + obj.getClass().getName() + "#" + m.getName() + "()"); Class<?> methodClass = m.getReturnType(); Object res = m.invoke(obj); if(res == null){

results.put(m.getName(), null); } else if(List.class.isAssignableFrom(methodClass)){

ParameterizedType pt = (ParameterizedType) m.getGenericReturnType(); Type type = pt.getActualTypeArguments()[0]; Class<?> listClazz ; if(type instanceof Class){

listClazz = (Class<?>) type;

} else {

WildcardType w = (WildcardType) type; listClazz = (Class<?>) w.getUpperBounds()[0];

}

results.put(m.getName(), newListSnapshot(listClazz, (List<?>)res, stack)); } else if(NkEntity.class.isAssignableFrom(res.getClass())){

results.put(m.getName(), newNkEntrySnapshot(methodClass, res, stack)); } else {

results.put(m.getName(), res);

}

stack.poll();

}

final int dept = stack.size();

InvocationHandler handler = new InvocationHandler() { @Override

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if("toString".equals(method.getName())){

StringBuilder sb = new StringBuilder("\n"); for(int i = 0; i < dept; i++){ sb.append("\t");

}

sb.append(clazz.getSimpleName()).append(results.toString()); return sb.toString();

}

if (results.containsKey(method.getName())) { return results.get(method.getName());

}

throw new RuntimeException("Live methods are not allowable on snapshots

#"+method.getName()); }

};

return Proxy.newProxyInstance(clazz.getClassLoader(), new Class[] { clazz, NkEntity.class },

handler); }

private static Object newListSnapshot(Class<?> clazz, List<?> obj, Deque<String> stack) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { if(obj.size() == 0){

return Collections.EMPTY_LIST;

}

List<Object> copy = new ArrayList<Object>(obj.size()); for(Object e : obj){

copy.add(newNkEntrySnapshot(clazz, e, stack));

}

return copy;

}

private Snapshots() { } }

/** File netkite-rialto\src\main\java\ru\netkite\rialto\implementor\aom\annotation\Attribute.java **/

package ru.netkite.rialto.implementor.aom.annotation; /**

* Mark method to return value of specified attribute.

* */

@Retention (RetentionPolicy.RUNTIME) @Target (ElementType.METHOD) public @interface Attribute { String value();

Class<? extends Converter<?>> converter() default DummyConverter.class; interface Converter<From> {

Object convert(From value);

}

final class DummyConverter implements Converter<Object> { public Object convert(Object value) { return value;

}

}

}

/** File netkite-rialto\src\main\java\ru\netkite\rialto\implementor\aom\annotation\Name.java **/

package ru.netkite.rialto.implementor.aom.annotation; /**

* Marks method to return name of object.

* */

@Retention (RetentionPolicy.RUNTIME) @Target (ElementType.METHOD) public @interface Name { }

/** File netkite-rialto\src\main\java\ru\netkite\rialto\implementor\aom\AomNkEntityInterceptor.java **/

package ru.netkite.rialto.implementor.aom;

public class AomNkEntityInterceptor implements MethodInterceptor {

private final static class FunctionReturnedWithoutValue extends RuntimeException { static final long serialVersionUID = 1L; public FunctionReturnedWithoutValue(String str) { super(str);

}

}

private static Map<Class<?>, Attribute.Converter<?>> converters = new IdentityHashMap<Class<?>, Attribute.Converter<?>>();

private final BObject object;

private final Class<? extends NkEntity<Long>> proxyForClass ; private NkEntity<Long> proxy ;

private Map<String, Annotation> annotations = new HashMap<String, Annotation>(); public AomNkEntityInterceptor(Class<? extends NkEntity<Long>> originalClass, BObject object) { this.object = object; this.proxyForClass = originalClass; if (this.proxyForClass != null) {

for (Method method : this.proxyForClass.getMethods()) { Annotation[] a = method.getAnnotations(); if (a != null && a.length != 0) {

annotations.put(method.getName(), a[0]);

}

}

}

}

@Override

public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable{ boolean isGetter = !void.class.isAssignableFrom(method.getReturnType());

if(method.getDeclaringClass() != Object.class && proxyForClass != method.getDeclaringClass()){ method = proxyForClass.getMethod(method.getName(), method.getParameterTypes());

}

try {

if(!isGetter){

return interceptSetter(method, args); } else {

return interceptGetter(method);

}

} catch(FunctionReturnedWithoutValue e) { throw new RuntimeException(e);

}

}

private Object interceptSetter(Method method, Object[] args){ if(method.getParameterTypes().length==1){ Object value = args[0];

Annotation annotation = getAnnotation(method); if(annotation == null){

throw new RuntimeException("Method " + method.getName() + " isn't annotated");

}

Class<? extends Annotation> annotationClass = annotation.getClass(); if(Name.class.isAssignableFrom(annotationClass)){ validateSetType(method, false , String.class); object.setName((String)value);

}

if(Attribute.class.isAssignableFrom(annotationClass)){ Attribute attribute = (Attribute) annotation;

doValidateAndSetResult(method, Long.valueOf(attribute.value()), value);

}

}else{

throw new RuntimeException("This method isn't setter: "+method.getName());

}

return null;

}

private void validateSetType(Method method, boolean isMultiple, Class<?> clazz){ Class <?> param = method.getParameterTypes()[0]; if(isMultiple && !List.class.isAssignableFrom(param)){

throw new RuntimeException("type does not match java.lang.List");

}

Class<?> unfurledType = getUnfurledSetType(method); if(!clazz.isAssignableFrom(unfurledType)){

throw new RuntimeException("Unsupported type:" + param.getName());

}

}

private Object interceptGetter(Method method){

if("toString".equals(method.getName())){ return object.toString();

}

if("getId".equals(method.getName())){

validateReturnedType(method, false, Serializable.class); Class<?> idClass = method.getReturnType(); if(idClass == String.class){

return object.getId().toString();

}

return object.getId();

}

Annotation annotation = getAnnotation(method); if(annotation == null){

throw new RuntimeException("Method " + method.getName() + " isn't annotated");

}

Class<? extends Annotation> annotationClass = annotation.getClass(); if(Name.class.isAssignableFrom(annotationClass)){ validateReturnedType(method, false, String.class); return object.getName();

}

if(Attribute.class.isAssignableFrom(annotationClass)){ Attribute attribute = (Attribute)annotation;

return doValidateAndGetResult(method, Long.valueOf(attribute.value()), attribute.converter());

}

}

private final static Comparator<BObject> ORDER_NUMBER_COMPARATOR = new Comparator<BObject>() { @Override

public int compare(BObject o1, BObject o2) {

return o1.getOrderNum().compareTo(o2.getOrderNum());

}

};

private Object doValidateAndGetResult(Method method, Long attributeId, Class<? extends Attribute.Converter<?>> converterClass) {

AttributeValue av = object.getParameter(attributeId); boolean isMultiple = av.getBAttribute().isMultiple(); AttrType attrType = av.getBAttribute().getAttrType(); switch(attrType){ case TEXT:

if(converterClass == Attribute.DummyConverter.class) validateReturnedType(method, isMultiple, String.class);

return isMultiple ? convert(av.getTextValues(), converterClass) : convert(av.getTextValue(), converterClass);

default:

throw new UnsupportedOperationException("Attribute #" + av.getBAttribute().getId() + " has unsuported attribute type (" + attrType + ")!");

}

}

private void doValidateAndSetResult(Method method, Long attributeId, Object value) { AttributeValue av = object.getParameter(attributeId); boolean isMultiple = av.getBAttribute().isMultiple(); AttrType attrType = av.getBAttribute().getAttrType(); switch(attrType){ case TEXT:

validateSetType(method, isMultiple, String.class); if(isMultiple){ av.setTextValues((List<String>)value); }else{ av.setTextValue((String)value); } break;

default:

throw new UnsupportedOperationException("Attribute #" + av.getBAttribute().getId() + " has unsuported attribute type (" + attrType + ")!");

}

}

@SuppressWarnings({ "rawtypes", "unchecked" })

private List<?> convert(List<?> list, Class<? extends Attribute.Converter<?>> converterClass){ }

@SuppressWarnings({ "rawtypes", "unchecked" })

private Object convert(Object o, Class<? extends Attribute.Converter<?>> converterClass){ Attribute.Converter converter = ensureConverter(converterClass); return converter.convert(o);

}

private <T extends Enum<?>> T getUnwrappedListValue(Class<T> clazz, ListValue listValue){

if(listValue == null) return null;

String listValueId = listValue.getId().toStning(); for(Field field : clazz.getFields()){

... }

}

throw new RuntimeException("AOM returned unmapped in enum " + clazz + " list value with id = " +

listValueId + "."); }

private Class<?> getUnfurledType(Method method){ Class<?> clazz = method.getReturnType(); if(!List.class.isAssignableFrom(clazz)) return clazz;

ParameterizedType pt = (ParameterizedType) method.getGenericReturnType(); clazz = (Class<?>) pt.getActualTypeArguments()[0]; return clazz;

}

private Class<?> getUnfurledSetType(Method method){ Class<?> clazz = method.getParameterTypes()[0]; if(!List.class.isAssignableFrom(clazz)) return clazz;

ParameterizedType pt = (ParameterizedType)method.getGenericParameterTypes()[0]; clazz = (Class<?>) pt.getActualTypeArguments()[0]; return clazz;

}

private Annotation getAnnotation(Method method){ if(method == null) return null;

String methodName = method.getName(); Annotation annotation =annotations.get(methodName); if(annotation !=null) return annotation;

String methodKey = methodName.replaceFirst("(get|set)", ""); String mirrorMethodName = methodName.startsWith("get") ? "set" + methodKey : "get" + methodKey; annotation = annotations.get(mirrorMethodName); return annotation;

}

private void validateReturnedType(Method method, boolean isMultiple, Class<?> ensuredReturnType) { if(isMultiple && !List.class.isAssignableFrom(method.getReturnType()))

throw new RuntimeException("Method " + proxy.getClass().getName() + "#" + method.getName() + " cannot be proxed: " +

"return type does not match java.lang.List although attribute with specified ID is

multiple.");

Class<?> elemClass = getUnfurledType(method); if(!ensuredReturnType.isAssignableFrom(elemClass))

throw new RuntimeException("Method " + proxy.getClass().getName() + "#" + method.getName() + " cannot be proxed: " +

"returned type #" + elemClass.getName() + " cannot be assignable from #" +

ensuredReturnType.getName()); }

public <T extends NkEntity<Long>> T getProxy() { return (T)proxy;

}

public <T extends NkEntity<Long>> void setProxy(T proxy) { this.proxy = proxy;

}

}

/** File netkite-rialto\src\main\java\ru\netkite\rialto\implementor\aom\AomNkEntityProxyFactory.java **/ package ru.netkite.rialto.implementor.aom; public class AomNkEntityProxyFactory {

private Map<Class<? extends NkEntity<Long>>, Enhancer> enhancers = new IdentityHashMap<Class<? extends NkEntity<Long>>, Enhancer>();

public <T extends NkEntity<Long>> T createProxy(Class<T> clazz, BObject object){ if(object == null){

throw new RuntimeException("Proxy cannot be created for null (class " + clazz + ").");

}

AomNkEntityInterceptor interceptor = new AomNkEntityInterceptor(clazz, object); synchronized (AomNkEntityProxyFactory.class) { Enhancer enhancer = ensureEnhancer(clazz); enhancer.setCallback(interceptor); interceptor.setProxy((T) enhancer.create());

}

return interceptor.getProxy();

}

}

Приложение 3. Выдержки программного кода по главе 3.2

/** File netkite-web\src\main\java\ru\netkite\web\client\CachingDispatchAsync.java **/

package ru.netkite.web.client;

/**

* Dispatcher which support caching of data in memory */

public class CachingDispatchAsync implements DispatchServiceAsync { private DispatchServiceAsync dispatch;

private Map<Action, Result> cache = new HashMap<Action, Result>(); @Inject

public CachingDispatchAsync(final DispatchServiceAsync dispatch) { this.dispatch = dispatch;

}

@Override

public <R extends Result, A extends Action> void execute(A action, AsyncCallback<R> callback) { dispatch.execute(action, callback);

}

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