СИСТЕМА УПРАВЛЕНИЯ МАСТЕР-ДАННЫМИ ОБ АКТИВАХ
ASSET MASTER DATA MANAGEMENT SYSTEM

[0001] Заявляемое техническое решение относится к области компьютерных технологий, применяемых для создания и поддержки единого консистентного представления мастер-данных об активах, которое устраняет дублирование мастер-данных об активах в различных модулях корпоративной системы и отдельных приложениях. Устранение дублирования позволяет исключить неизбежные противоречия, возникающие при одновременном использовании нескольких различных представлений мастер-данных об активах. Помимо улучшения качества данных это позволяет сократить затраты на поддержку актуального состояния мастер-данных об активах.
[0002] При этом под мастер-данными понимаются согласованные данные, описывающие основные сущности, участвующие в бизнес-процессах предприятия. Мастер-данные доступны и используются несколькими приложениями в масштабе предприятия. Основными характерными особенностями мастер-данных являются [1.2]:
• высокая важность для компании;
• меньшая волатильность по сравнению с транзакционными данными;
• наличие стандартных возможностей, создания, чтения, корректировки, уничтожения и поиска;
• повторная используемость;
• использование в качестве ссылочных объектов в транзакционных данных.
УРОВЕНЬ ТЕХНИКИ
[0003] В существующих корпоративных системах управления в нескольких модулях или подсистемах, как правило, независимо ведутся мастер-данные о производственных фондах (активах), отражающие различные характеристики одних и тех же объектов. Даже когда разные приложения являются модулями единой ERP-системы, все равно используется такой же подход [3,4]. Примерная структура основных данных об активах в существующих системах управления крупными компаниями показана на Фиг. 1 [5].
[0004] Понимание самого термина «актив» - не однозначно. Термин трактуется разными компаниями по-разному. Практически всегда, в понятие активов включаются материальные активы (здания, сооружения, оборудование, земельные участки, строящиеся объекты и т.д.) и их составные части. Несколько реже в понятие активов включаются нематериальные активы - программные системы, базы данных, патенты, товарные знаки и т.д. Еще реже в российской практике [6] и более часто в западной в единое понятие активов включаются и финансовые активы - акции, облигации, займы, доли в совместных проектах, векселя и т.д.
[0005] Общая численность парка активов в купных компаниях, таких как ОАО «РЖД», НК «Роснефть», может достигать нескольких десятков миллионов единиц. Основную часть такого большого парка (более 90%), как правило, составляют материальные активы.
[0006] Для поддержки актуального состояния мастер-данных и организации работы с мастер-данными различных приложений используются системы управления мастер-данными (MDM-системы). Целью применения MDM-систем является формирование и поддержка консистентного, функционально полного и актуального представления основных данных, отражающих все нюансы структуры и деятельности предприятия. Наличие и поддержка такого единственного содержательного представления мастер-данных является критическим фактором, для достижения бизнес-целей предприятия. MDM-системы представляют собой инструментарий для поддержки процессов управления мастер-данными в масштабе предприятия на основе принятых руководящих документов, политик и стандартов [7-9]. С точки зрения принадлежности программных продуктов к прикладному или платформенному программному обеспечению MDM-системы входят в состав платформы и являются неотъемлемой частью комплекса систем управления информаций в масштабах предприятия (Enterprise Information Management) [10].
[0007] Ведущая мировая аналитическая компания Gartner традиционно ежегодно выпускала два независимых аналитических обзора по разным классам MDM-систем - по MDM-системам с данными о предметах, к которым относились и системы управления мастер-данными об активах, и MDM-системам с данными о людях, организациях и командах. В 2017 году компания изменила этой традиции и выпустила единый обзор [11]. Согласно этому обзору, каждое из бизнес-приложений (например, в рамках ERP, CRM или PLM) или их комплексов (сьютов) может хранить свои данные и предлагать свои собственные возможности управления данными. MDM-система действует в качестве промежуточного хаба, который выполняет посреднические функции, управляет, осуществляет обмен и регулирует мастер-данные, общие для всех приложений. В течение многих лет организации пытались добиться «единого представления» мастер-данных с помощью ERP или других функциональных систем, которые не были предназначены для поддержки MDM, поэтому эти попытки окончились неудачей, либо они оказались слишком дорогостоящими для постоянной эксплуатации. Это создало предпосылки для появления MDM-систем. Проникновение MDM-систем на рынок сейчас составляет менее 10%, идет постоянный, хотя и медленный, рост. Рынок MDM-систем растет быстрее рынка программного обеспечения в целом [11].
[0008] Исторически, MDM-системы начали развиваться как однодоменные системы, предназначенные для работы с мастер-данными какой-то одной категории (предметной области). Наиболее распространенные домены данных:
• Клиенты / потребители / пациенты / жители
• Поставщики / производители
• Каналы сбыта / партнеры
• Продукты / товарные позиции
• Закупленные части
• Активы
• Расположения
• Счета главной книги
[0009] Наряду с доминирующими сейчас однодоменными MDM-системами, предназначенными для работы с данными одной предметной области, пока еще мало распространены, но быстро расширяются сегменты мультидоменных и мультивекторных MDM-систем. Мультидоменные системы предназначены для работы с данными нескольких предметных областей. Они должны быть способны поддержать все домены мастер-данных, которые необходимы организации.
[0010] По результатам опроса нескольких тысяч клиентов, проведенного аналитиками компании Gartner, в течение пяти календарных кварталов, заканчивающихся четвертым кварталом 2015 года, процент тех, кто предъявлял хоть какие-нибудь требования к мультидоменности при приобретении MDM-системы, увеличился более чем в четыре раза, с 3,0% до 13,0% [11]. В этой группе процент тех, кто формально проверял эти возможности, вырос с 0,5% до 3,1% (шестикратное увеличение) в третьем квартале 2015 года, а затем снизился до 0,8% в следующем квартале. В это же время, процент тех, кто требовал эти возможности, но не тестировал их, вырос к концу 2015 г. более чем в четыре раза с 3,0% до 12,0%. В течение 2016 г. процент тех, кто высказывал некоторый уровень требований по работе в нескольких доменах основных данных, достиг максимума в 14,6% во втором квартале и снизился к окончанию третьего квартала до уровня 13,5%. Процент тех, кто формально проверял эти возможности, достиг своего пика на уровне 1,8% в третьем квартале. В это же время процент тех, кто требовал, но не проверял их, достиг 13,7% во втором квартале и снизился к концу третьего квартала до 11,0% [11].
[0011] Концепция мультивекторных MDM-систем расширяет понятие мультидоменных MDM-систем. Эти системы обеспечивают интегрированный набор средств для обеспечения единства, точности, стратегического управления, семантической консистентности и учета официальных общих активов основных данных предприятия. Функциональные возможности мультивекторной MDM-системы включают комплексные средства для моделирования данных, поддержки качества данных, управления данными, организации данных, службы передачи данных и интеграции данных в рабочий процесс и транзакционные сценарии использования. Мультивекторные MDM-системы также предлагают более высокий уровень масштабируемости, доступности, управляемости и безопасности. Помимо работы с разными предметными областями мультивекторные MDM-системы должны быть способны работать в разных отраслях и разных гос. органах, при разных сценариях использования (для проектирования структур данных, в качестве операционной или аналитической MDM-системы), для разных организационных структур (централизованная, федеративная, локализованная) и при разных сценариях внедрения MDM-системы (регистровая, консолидационная, в режиме сосуществования и централизованная) [11].
[0012] Среди совокупности функциональных возможностей, присущих современным MDM-системам согласно [11], с точки зрения предлагаемого изобретения необходимо выделить и более подробно рассмотреть две следующие - управление иерархиями и внутреннюю интеграцию комплекса продуктов.
[0013] Управление иерархиями - это способность MDM-системы моделировать и хранить несколько иерархий как внутри отдельных доменов мастер-данных, так и пересекающих охватываемые домены для того, чтобы всесторонне классифицировать все сущности мастер-данных для различных бизнес-требований, а также для широких функций, таких как поиск и отчетность. Эта способность должна включать в себя поддержку нескольких связанных или автономных иерархий, относящихся к одному домену или комбинации основных данных из нескольких доменов данных. Также для иерархических данных должна поддерживаться возможность битемпорального моделирования, когда одни и те же данные отображаются в двух иерархиях: «как должно быть по документам» и «как есть по факту». Например, это может использоваться для формирования иерархии архитектурного представления и иерархии коммерческого использования объектов недвижимости в составе мастер-данных о недвижимости. MDM-система должна обеспечивать поддержку сбалансированных, неуравновешенных и рекурсивных иерархий, возможность визуализации для облегчения поддержки и представления иерархических данных, а также возможность управления версиями иерархий, чтобы можно было использовать журнал аудита и восстанавливать данные в процессе создания и поддержки иерархий.
[0014] Внутренняя интеграция комплекса продуктов - это способность MDM-системы обеспечить как возможность по умолчанию интеграцию между представленными внутри доменами мастер-данных, независимо от того хранятся они вместе или по отдельности с точки зрения, например, объектов хранения данных, а также возможность визуализировать и порождать эту интеграцию. Это может достигаться с помощью одного продукта или нескольких продуктов в составе комплекса или портфеля продуктов, а также за счет использования создаваемых клиентами или предварительно пакетированных моделей данных (или обоих стилей моделирования одновременно). Однако если эта способность реализуется, то должна также обеспечиваться поддержка обоих различных стилей внедрения MDM-системы для каждого отдельного домена мастер-данных во времени и одновременно для множества доменов данных, а также заранее предусматриваемые возможности для миграции способов внедрения доменов между стилями внедрения.
[0015] Еще одной аналитической компанией помимо Gartner, которая регулярно выпускает обзоры по MDM-системам, является компания Forester. В первом квартале 2016 года компания выпустила обзор [12], в котором выделила четыре класса MDM-систем и проанализировала продукты двенадцати компаний. Были выделены:
• MDM-системы, обеспечивающие интеграцию данных и решающие стандартные задачи;
• мультидоменные MDM-системы и MDM-системы, поддерживающие множество представлений мастер-данных;
• контекстуальные MDM-системы, поддерживающие семантическое представление бизнес-данных;
• аналитические MDM-системы, интегрированные внутрь аналитических платформ.
[0016] Из четырех представленных в [12] классов MDM-систем с точки зрения данного изобретения наибольший интерес представляет группа мультидоменных MDM-систем и MDM-систем, поддерживающих множество представлений мастер-данных. В качестве лидеров этой группы выделены компании SAS, SAP и IBM. У этих компаний в настоящий момент нет MDM-систем, способных обеспечить возможности по управлению мастер-данными об активах, которые реализуются в данном изобретении.
[0017] Основные причины, по которым существующие системы управления мастер-данными об активах не обеспечивают полноценную поддержку предметной области в отличие от MDM-систем для других доменов [5]:
• В разных прикладных областях, где ведется работа с активами, применяются различные принципы выделения активов. Например, для целей бухгалтерского учета в одно основное средство могут быть объединены несколько рядом стоящих единиц оборудования, имеющих одинаковые правила начисления амортизации. Для целей ремонта и технического обслуживания выделяются объекты, имеющие разный порядок ремонта и обслуживания. Для целей имущественного учета, выделяются объекты, которые независимо могут быть проданы или сданы в аренду, например, одно волокно в пучке оптических волокон или оптоволоконном кабеле.
• В разных приложениях, работающих с одним и тем же парком активов, используются различные иерархии вложенности объектов, причем различаются как объекты группирующих уровней, так и объекты нижних уровней таких детализирующих иерархий.
• При функционировании комплексных систем управления пользователям очень часто необходимо видеть смежные представления одного и того же актива. Например, из технологического представления, необходимо видеть объекты технического обслуживания и ремонта. Из объектов технического обслуживания и ремонта необходимо видеть основные средства, на которые будут списываться затраты. Из основных средств необходимо видеть соответствующие объекты имущества и т.д. Почти всегда пользователям необходимо видеть объекты нескольких разных представлений. Отсутствие взаимно однозначного соответствия между объектами нижнего уровня различных приложений приводит к появлению связей многие ко многим между объектами разных представлений, описывающими один и тот же актив. Как уже было показано ранее, одному основному средству может соответствовать множество объектов технического учета. Но также справедливо и обратное: одному объекту технического учета, например, асфальтированной дороге, может соответствовать множество основных средств, если ее отдельные участки, не являющиеся единицами технического учета, строились (выкупались) по разным ценам или в разное время.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0018] Предлагаемая архитектура системы состоит из ядра системы, набора интерфейсных модулей и набора высокоуровневых алгоритмических модулей.
[0019] Ядро системы, поддерживает создание / модификацию и хранение в памяти модели мастер-данных об активах, построенной в виде набора иерархически организованных ракурсов (предметных областей) активов.
[0020] Интерфейсные модули обеспечивают выгрузку из модели и загрузку в модель данных отдельного ракурса мастер данных об активах по запросу какого-нибудь приложения, работающего с этим ракурсом мастер-данных.
[0021] Модуль диалогового интерфейса обеспечивает поддержку диалога при создании и корректировке мастер-данных администратором мастер-данных.
[0022] Высокоуровневые алгоритмические модули обеспечивают проверку корректности полноты системы связей между объектами в модели, проверку корректности классификаторов, поиск объектов по классификаторам, формирование новых ракурсов мастер-данных на основе имеющихся в системе данных других ракурсов или на основе внешних данных, формирование отчетности по модели данных и по сделанным в ней корректировкам, а также другие подобные операции.
[0023] Различные предметные области представлены специфическими для них иерархиями объектов. Каждой предметной области свойственна собственная система классов объектов. Классы объектов строятся на принципах полиморфизма и наследования и определяют свойства (набор атрибутов) объекта.
[0024] Присутствующие в разных иерархиях объекты объединяются решетками связей для перехода от одного представления объекта к другому.
[0025] Внутри иерархий между объектами имеются также неиерархические связи, отражающие специфические отношения между объектами, свойственные этой предметной области. Например, они могут отражать функциональное взаимодействие активов в процессе производства, логистический обмен товарами между активами, соседнее территориальное расположение и др. Эти связи могут иметь собственную систему классификации и наборы атрибутов.
[0026] Для идентификации представленных в системе активов используются структурные и функциональные модели активов. Каждая структурная модель активов описывает внутренние взаимосвязи и компонентный состав конкретных классов активов. Функциональные модели позволяют проверить полноту ввода данных об активе или идентифицировать тип актива в зависимости от значений атрибутов.
[0027] Вся совокупность связей между активами внутри каждого представления и связей между объектами, относящимися к одному активу, в разных представлениях образует сложный граф специфической структуры. Некорректные или неполные связи в таком графе будут нарушать работу системы управления. Предлагаемые алгоритмы обеспечивает проверку корректности и полноты всей совокупности межракурсных связей в таком графе.
[0028] Для того чтобы структура данных была корректной, необходимо, чтобы в ней были корректными все связи. То есть, переходя по связям между разными представлениями одного и того же актива, если не используются связи один ко многим или многие ко многим, пользователь должен видеть различные представления одного и того же объекта. Если же используются связи один ко многим или многие ко многим, пользователь должен иметь возможность вернутся на исходный актив.
[0029] Структура связей будет полной, если имеются все необходимые связи для перехода между разными представлениями одного и того же актива.
[0030] Проверка корректности всех связей имеет очень простой смысл: из каждого объекта пройти по кольцу связей в одном направлении, а потом в обратном. Если для всех объектов при проходе в обоих направлениях мы возвращаемся к первоначальному объекту, то все связи в выбранном кольце корректны. Чтобы проверить корректность всех связей одного объекта надо таким образом обойти все имеющиеся кольца связей.
[0031] Проверка полноты связей построена на этом же приеме обхода колец связей. Для каждого класса объектов в каждом из представлений заранее определяется, какие связи с объектами других представлений должны существовать у объектов этого класса. Если при попытке обхода всех колец какая-то из связей отсутствует, то имеющийся набор связей является неполным.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0032] Фиг. 1 иллюстрирует пример структуры основных данных об активах в существующих системах управления крупными компаниями.
[0033] Фиг. 2 иллюстрирует архитектуру системы управления мастер-данными об активах.
[0034] Фиг. 3 иллюстрирует пример иерархического построения ракурса объектов.
[0035] Фиг. 4 иллюстрирует пример решетки связей, соединяющих один и тот же актив в разных ракурсах.
[0036] Фиг. 5 иллюстрирует пример неиерархических связей между объектами одного ракурса.
[0037] Фиг. 6 иллюстрирует алгоритм проверки полноты и корректности межракурсных связей в модели мастер-данных об активах.
[0038] Фиг. 6.1 иллюстрирует продолжение алгоритма проверки полноты и корректности межракурсных связей в модели мастер-данных об активах.
[0039] Фиг. 6.2 иллюстрирует продолжение алгоритма проверки полноты и корректности межракурсных связей в модели мастер-данных об активах.
[0040] Фиг. 7 иллюстрирует применение стека для обхода объектов одного ракурса.
[0041] Фиг. 8 иллюстрирует применение стека для обхода всех колец одной решетки.
[0042] Фиг. 9 иллюстрирует пример решетки, ранее представленной на Фиг. 3, в которой вместо смысловых названий иерархий использованы их внутренние номера, присвоенные им в момент их появления в модели данных
[0043] Фиг. 10 иллюстрирует пример перенумерации объектов решетки Объект, имевший в решетке на Фиг. 9 внутренний номер иерархии 15, получил номер 1, а номера всех остальных иерархий сдвинулись.
[0044] Фиг. 11 содержит примеры двух правильно построенных колец связей в решетке.
[0045] Фиг. 12 содержит примеры двух неправильно построенных колец связей в решетке.
[0046] Фиг. 13 иллюстрирует алгоритм проверки корректности межракурсных связей в модели мастер-данных об активах.
[0047] Фиг. 13.1 иллюстрирует продолжение алгоритма проверки корректности межракурсных связей в модели мастер-данных об активах.
[0048] Фиг. 14 иллюстрирует алгоритм проверки полноты межракурсных связей в модели мастер-данных об активах.
[0049] Фиг. 14.1 иллюстрирует продолжение алгоритма проверки полноты межракурсных связей в модели мастер-данных об активах.
[0050] Фиг. 14.2 иллюстрирует продолжение алгоритма проверки полноты межракурсных связей в модели мастер-данных об активах.
[0051] Фиг. 15 иллюстрирует общую схему устройства, реализующего заявленный способ.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0052] Архитектура системы, включающая все перечисленные компоненты, представлена на Фиг. 2. и содержит:
• ядро системы, поддерживающее создание, модификацию и хранение в памяти модели мастер-данных об активах;
• по меньшей мере, три интерфейсных модуля, каждый из которых обеспечивает взаимодействие ядра системы с одним приложением или с одним функциональным модулем ERP-системы;
• по меньшей мере, один алгоритмический модуль, реализующий некоторый алгоритм обработки всей модели мастер-данных об активах и/или отдельных ракурсов модели мастер-данных об активах;
• модуль диалогового интерфейса, обеспечивающий создание и корректировку мастер-данных администратором в режиме диалога.
[0053] Модель мастер-данных об активах включает в себя, по меньшей мере, три ракурса, соответствующих некоторому взгляду на имеющийся парк активов. В качестве примеров таких ракурсов можно привести:
• основные средства (объекты бухгалтерского и налогового учета);
• объекты недвижимости;
• объекты технического обслуживания и ремонта оборудования;
• объекты имущества (правовой аспект);
• объекты различных подсистем мониторинга (пожарной безопасности, видеонаблюдения и др.);
• объекты подсистем оперативного управления режимами работы оборудования непрерывных производств, транспорта и связи, коммунального хозяйства;
• объекты различных MES и технологических систем управления производством,
• объекты геоинформационных систем (визуализируемые на картах);
• объекты генерации, передачи и потребления электроэнергии в подсистемах управления производством и потреблением электроэнергии;
• объекты добычи, транспортировки и отпуска нефти, нефтепродуктов и газа в подсистемах управления добычей, транспортировкой и сбытом углеводородов;
• обрабатывающие центры и транспортные механизмы в системах технологической подготовки производства (САМ-системах);
• склады, распределительные центры и торговые точки в системах управления розничными сетями;
и другие представления активов с точки зрения конкретных приложений.
[0054] Каждый ракурс организован в виде уникальной иерархии, которая отображает принадлежность мастер-данных об активах (вхождение объектов в объекты более высокого уровня). Например, ракурс объектов технического обслуживания и ремонта оборудования (ТОиР), организован в виде иерархии, верхним уровнем которой является узел «Объекты ТОиР». На следующем уровне расположено столько узлов, сколько имеется в компании заводов, Следующий более низкий уровень представлен узлами, каждый из которых соответствует отдельному производственно-технологическому комплексу, расположенному на конкретном заводе. Еще более низкий уровень соответствует местам монтажа оборудования в рамках конкретных производственно-технологических комплексов. Самый нижний уровень иерархии соответствует единицам оборудования, смонтированным на конкретных местах монтажа оборудования. Описанный пример иерархии объектов технического обслуживания и ремонта представлен на Фиг. 3. Приведенный пример иерархически построенного ракурса предельно упрощен. Сложность организационной структуры больших компаний и техническая сложность современного оборудования таковы, что реальные иерархические структуры для представления мастер-данных об активах конкретной компании могут содержать любое конечное число уровней иерархии.
[0055] Для каждого ракурса мастер-данных имеется один или несколько родовидовых классификаторов активов, которые обеспечивают классификацию всех объектов данного ракурса. Родовидовой классификатор представляет собой иерархическую систему классов, построенных на основе принципов наследования и инкапсуляции. Начальными объектами иерархий классов являются основные классы родовидовой модели, которые на следующих уровнях иерархии детализируются на группы видов активов по их функциональности, конструктивным особенностям, методам использования и т.д. Например: компьютер → компьютер персональный → ноутбук → ноутбук игровой → ноутбук игровой с высокими характеристиками → ноутбук игровой, модель MSI GT72S 6QE Dominator Pro G → ноутбук игровой, модель MSI GT72S 6QE Dominator Pro G, вариант исполнения us.
[0056] Число уровней иерархии классов в классификаторе не ограничивается. Каждый основной и неосновной класс активов класс активов определяет некоторый набор атрибутов (характеристик) активов данного класса. Атрибуты имеют имена и значения. Значения атрибутов могут иметь широкий спектр типов: целое число, вещественное число, логический признак, текст, значение справочника, массив, множество, зависимость, график, таблица, схема, чертеж, изображение, документ, и др. Примерами атрибутов для класса активов «ноутбук» будут: тип процессора, частота процессора, размер экрана, размер оперативной памяти, емкость накопителя на жестком диске и т.д.
[0057] Число атрибутов у каждого класса не ограничивается. При наличии большого числа атрибутов, принадлежащих какому-либо из классов, для удобства работы они могут быть структурированы по функциональным группам, при этом один и тот же атрибут может входить в различные функциональные группы. Использование принципов наследования и инкапсуляции при построении классификаторов обеспечивает следующие правила переноса атрибутов между классами иерархии:
• Атрибуты более высокого класса иерархии наследуются во всех подчиненных ему классах иерархии.
• Атрибуты более низких классов иерархии не видны в лежащих выше классах.
[0058] Для описания одного и того же актива, представленного в разных ракурсах, могут использоваться атрибуты с одинаковым именем. Однако значения этих атрибутов могут не совпадать.
[0059] В определениях атрибутов, имеющих численные значения, и их агрегатов (множество, массив) используется дополнительная ссылка на единицу измерения из классификатора единиц измерения. Для функций, таблиц, зависимостей, графиков может использоваться две и более таких ссылки. В определениях атрибутов, значениями которых являются график, схема, чертеж, изображение или документ, используется дополнительная ссылка на тип файла из классификатора типов файлов.
[0060] У каждого класса имеется три обязательных атрибута:
• Имя класса
• Код класса (внутреннее имя класса);
• Множество кодов классов других ракурсов, которые представляют этот же актив, и с которыми актив данного класса обязательно должен быть связан межракурсными связями.
[0061] При функционировании комплексных систем управления пользователям очень часто необходимо видеть смежные представления одного и того же актива. Например, из технологического представления, необходимо видеть объекты технического обслуживания и ремонта. Из объектов технического обслуживания и ремонта необходимо видеть основные средства, на которые будут списываться затраты. Из основных средств необходимо видеть соответствующие объекты имущества и т.д. Поэтому в модели мастер-данных об активах у каждого актива любого из ракурсов существует набор связей с объектами других ракурсов для перехода между разными представлениями одних и тех же активов.
[0062] Отсутствие взаимно однозначного соответствия между объектами нижнего уровня различных приложений приводит к появлению связей «один ко многим», «многие к одному» и «многие ко многим» между объектами разных представлений, описывающими один и тот же актив. Например, одному основному средству может соответствовать множество объектов технического учета. Но также справедливо и обратное: одному объекту технического учета, в частности, асфальтированной дороге, может соответствовать множество основных средств, если ее отдельные участки, не являющиеся единицами технического учета, строились (выкупались) по разным ценам или в разное время. Пример совокупности связей, объединяющих представление одного и того же объекта в разных ракурсах приведен на Фиг. 4. В этом примере все межракурсные связи - взаимно однозначные и двунаправленные. Далее для такой совокупности межракурсных связей будем использовать термин решетка.
[0063] Решетки не обязательно являются полными (т.е. не обязательно в них присутствуют все связи каждого объекта с каждым). Наличие связей между разными объектами зависит от семантики - нужно устанавливать соотношения между объектами этих ракурсов на данном уровне или нет.
[0064] На одном уровне иерархии любого из ракурсов располагается много объектов, каждый из которых связан со своей решеткой смежных объектов. Решетки одного уровня могут частично совмещаться друг с другом. Это возникает из-за того, что в отдельных ракурсах один объект может соответствовать нескольким объектам другого ракурса, расположенным на одном уровне иерархии (например, одно основное средство может объединять несколько единиц оборудования), и, тогда, решетки смежных объектов одного уровня могут частично соединяться в отдельных ракурсах.
[0065] Если рассматривать 3D-модель графа мастер-данных, то решетки на разных уровнях не обязательно будут абсолютно параллельными. В отдельных ракурсах один объект может соответствовать нескольким объектам другого ракурса, расположенным на разных уровнях иерархии, и, тогда, решетки смежных уровней могут соединяться в отдельных ракурсах.
[0066] В каждом ракурсе модель мастер-данных об активах может содержать набор неиерархических (сетевых) связей между активами, принадлежащими к этому ракурсу. Эти связи отображают специфические для ракурса отношения между активами, например, участие в производственных цепочках или транспортные взаимосвязи. Пример неиерархических связей между активами, принадлежащими одному ракурсу, показан на Фиг. 5. Такие связи, например, могут отражать:
• наличие транспортных маршрутов между производственно-технологическими комплексами, осуществляющими добычу сырья, его переработку и дистрибуцию готовой продукции;
• наличие пересечений между транспортными магистралями (автодорогами, линиями метро и пр.);
• увязку производственного оборудования в технологические линии в рамках одного цеха;
и т.д.
[0067] Набор неиерархических связей между активами, принадлежащими к одному ракурсу, характеризуется тем, что для таких связей может существовать относящийся к этому ракурсу классификатор, представляющий собой иерархическую систему классов, построенную на принципах полиморфизма и инкапсуляции. Также, как и в классификаторах активов, классы в классификаторе связей обладают атрибутами, которые имеют имена и значения. Значения атрибутов могут иметь широкий спектр типов: целое число, вещественное число, логический признак, текст, значение справочника, массив, множество, зависимость, график, таблица, схема, чертеж, изображение, документ, и др. Примерами атрибутов для класса связей «транспортный маршрут» будут: максимальный объем груза, транспортируемого одним транспортным средством, пропускная способность транспортного маршрута, стоимость транспортировки партии груза одним транспортным средством, время транспортировки одной партии груза и т.д. Число атрибутов у каждого класса связей не ограничивается.
[0068] Использование принципов наследования и инкапсуляции при построении классификаторов связей обеспечивает следующие правила переноса атрибутов между классами иерархии:
• Атрибуты более высокого класса иерархии наследуются во всех подчиненных ему классах иерархии.
• Атрибуты более низких классов иерархии не видны в лежащих выше классах.
[0069] В определениях атрибутов неиерархических связей, имеющих численные значения, и их агрегатов (множество, массив) используется дополнительная ссылка на единицу измерения из классификатора единиц измерения. Для функций, таблиц, зависимостей, графиков может использоваться две и более таких ссылки. В определениях атрибутов, значениями которых являются график, схема, чертеж, изображение или документ, используется дополнительная ссылка на тип файла из классификатора типов файлов. У каждого класса связей имеется два обязательных атрибута:
• Имя класса
• Код класса (внутреннее имя класса);
[0070] Помимо наличия классификатора и атрибутов у неиерархических связей имеется еще одно важное свойство: они могут быть параметрическими, т.е. они могут существовать между объектами в затененном состоянии и проявляться только тогда, когда значения одного или нескольких атрибутов объекта соответствуют определенным условиям.
[0071] В каждом ракурсе модель мастер-данных может содержать специфический для этого ракурса набор структурных моделей активов. Каждая структурная модель активов описывает внутренние взаимосвязи и компонентный состав конкретного класса активов. Например, структурная модель актива, который относится к классу «Котельная», включает обязательные компоненты: здание, установленный в нем котел и дымовую трубу. Структурные модели позволяют проверить полноту ввода данных об активе или идентифицировать тип актива в зависимости от его структуры. Возвращаясь к уже рассматривавшемуся примеру, если вновь введенный пользователем объект имеет класс «Котельная», но не содержит всех трех обязательных компонентов, пользователю выводится сообщение об ошибке. Проверяться может не только компонентный состав, но и наличие связей определенных типов между компонентами, а также их топология, если связи определены в структурной модели. Например, при проверке актива класса «Кольцевая автомобильная дорога» отдельные участки этой дороги должны быть так связаны связями друг с другом, чтобы образовывалось замкнутое кольцо. Если участки где-то разомкнуты, то актив не соответствует классу «Кольцевая автомобильная дорога».
[0072] В каждом ракурсе модель мастер-данных может содержать специфический для этого ракурса набор функциональных моделей мастер-данных об активах, использующих в процессе своего выполнения значения атрибутов отдельных активов и/или атрибутов связей этого актива и атрибутов активов, взаимосвязанных с данным. Функциональные модели позволяют проверить полноту ввода данных об активе или идентифицировать тип актива в зависимости от значений атрибутов. Функциональные модели могут быть построены как на основе относительно простых алгоритмов, так и на основе сложных математических моделей. В качестве примера простого алгоритма приведем пример функциональной модели, проверяющей правильность ввода актива класса «Здание детского сада». Если у такого здания атрибут этажности имеет значение больше двух, то либо неправильно введены данные об активе, либо актив неправильно классифицирован. В качестве примера сложной функциональной модели актива приведем модель, которая рассчитывает популяцию животных в будущем по годам на некоторой природной территории в зависимости от числа животных обитающих на этой территории в текущий момент. Если моделирование покажет, что после отстрела некоторого минимального числа особей популяция животных с высокой вероятностью начнет сокращаться, то этой территории не может быть присвоен класс активов «Охотничьи угодья».
[0073] Каждый, входящий в состав системы, интерфейсный модуль осуществляет выгрузку по запросам, поступающим от внешнего приложения или модуля ERP, запрошенного фрагмента мастер-данных об активах, относящихся к конкретному ракурсу мастер-данных, с которым работает запрашивающее внешнее приложение. Форматы выгружаемых данных должны полностью соответствовать форматам данных, которые могут быть загружены конкретным модулем ERP или приложением. В качестве примеров модулей и приложений, с которыми должна быть обеспечена интеграция отдельными интерфейсными модулями, можно привести:
• РМ - модуль управления техническим ремонтом и обслуживанием оборудования в составе SAP ERP;
• FI-AA - модуль учета основных средств в составе SAP ERP;
• RE-FX - модуль гибкого управления недвижимостью в составе SAP ERP;
• SAP АРО - система оптимизации цепочек поставок;
• SAP ME - система управления производством на уровне цеха.
[0074] Для модулей другой ERP-системы или других приложений, выполняющих аналогичные функции, потребуются отдельные интерфейсные модули, поскольку форматы и структуры данных будут отличаться.
[0075] Каждый, входящий в состав системы, интерфейсный модуль может выгружать во внешнее приложение (модуль ERP-системы) не только мастер-данные о конкретных активах, но также иерархии, классификаторы, неиерархические связи, структурные и функциональные модели, относящиеся к объектам этого ракурса, а также имеющиеся связями с объектами других ракурсов при возможности использования этих данных внешними приложениями (модулями ERP-системы) и поступлении от них соответствующих запросов.
[0076] Каждый, входящий в состав системы, интерфейсный модуль может не только выгружать мастер-данные об активах (данные о конкретных активах, иерархии, классификаторы, неиерархические связи, структурные и функциональные модели, относящиеся к объектам этого ракурса, а также имеющиеся связями с объектами других ракурсов) во внешнее приложение (модуль ERP-системы), но и по команде администратора, поступившей через модуль диалогового интерфейса, загружать в специально предназначенную область памяти эти объекты из внешнего приложения (модуля ERP-системы), с которым данный модуль обеспечивает интерфейс.
[0077] Модуль диалогового интерфейса обеспечивает создание и корректировку администратором мастер-данных об активах в режиме диалога, предоставляя возможность создавать, изменять и удалять в системе иерархии, классификаторы, межракурсные связи, неиерархические связи, классификаторы неиерархических связей, структурные и функциональные модели, создавать, изменять и удалять атрибуты, присваивать и изменять их значения, модифицировать классификатор единиц измерения и классификатор типов файлов.
[0078] Модуль диалогового интерфейса помимо создания, корректировки и удаления мастер-данных в режиме диалога, он может работать с мастер-данными, загруженными интерфейсными модулями извне, осуществлять корректировки этих данных, вносить дополнительные связи. После просмотра этих данных и внесения необходимых корректировок с помощью модуля диалогового интерфейса администратор мастер-данных может дать команду на перенос этих данных в основную модель данных об активах с заменой имевшихся ранее в модели данных.
[0079] Входящие в состав системы алгоритмические модули обеспечивают проверку корректности и полноты системы связей между объектами в модели, проверку корректности классификаторов, поиск объектов по классификаторам, формирование новых ракурсов мастер-данных на основе имеющихся в системе данных других ракурсов или на основе внешних данных, формирование отчетности по модели данных и по сделанным в ней корректировкам, а также другие подобные операции. Для выполнения этих функций алгоритмические модули имеют доступ к необходимым для их выполнения элементам отдельных ракурсов модели или мастер-данных об активах в целом. Инициирование работы алгоритмических модулей осуществляет администратор мастер-данных через модуль диалогового интерфейса. Примеры более детально описанных функций, выполняемых алгоритмическими модулями:
• Поиск типа оборудования, который можно использовать для замены другого известного типа оборудования, снятого с производства или недоступного для приобретения. Поиск осуществляется по классификатору оборудования, относящемуся к ракурсу технического обслуживания и ремонта, на основании иерархии и атрибутов классов оборудования.
• Формирование предварительной версии ракурса мастер-данных об имуществе на основании ракурса мастер-данных об основных средствах и ракурса мастер-данных об объектах технического обслуживания и ремонта.
[0080] В составе набора алгоритмических модулей обязательно присутствует алгоритмический модуль, который осуществляет проверку корректности и полноты всей совокупности имеющихся в модели данных межракурсных связей между активами. Алгоритм работы этого модуля, представленный на Фиг. 6-6.2 представляет собой один из заявляемых способов (100).
[0081] Алгоритмический модуль на первом шаге своего выполнения (101) осуществляет уничтожение (очистку) всех данных о разметке связей, сформированных во внешней памяти в ходе предыдущего исполнения алгоритма.
[0082] После этого алгоритмический модуль в процессе работы осуществляет обход (102), (136) всех иерархических ракурсов, представленных в структуре активов. В процессе обхода используются располагающиеся в оперативной памяти:
• стеки Стек1 и Стек2;
• указатели на объекты Указатель1 и Указатель2;
• набор межракурсных связей, каждая из которых имеет признак, куда можно ставить отметку о ее прохождении.
[0083] При анализе очередного ракурса по организуется обход всех содержащихся в нем активов с помощью располагающегося в оперативной памяти стека Стек1 и указателя Указатель1, как это представлено на Фиг. 7. Для этого при попадании в очередной ракурс выполняется очистка стека Стек1 и установка значения Указатель1 на верхний узел анализируемой иерархии (103). Затем с помощью цикла (105), (134) и операций (106), (135) производится обход всех узлов иерархии сверху вниз и последовательно по ветвям каждого поддерева. В процессе этого увеличивается и сокращается Стек1, поскольку вся цепочка узлов дерева, через которую стал доступным очередной узел, сохраняется в Стек1.
[0084] При попадании в очередной узел дерева при обходе дерева выполняются следующие операции:
• Очистка располагающегося в оперативной памяти стека Стек2 и загрузка в качестве первого элемента Стек2 узла по Указатель1 (107).
• Очистка формируемого в оперативной памяти набора межракурсных связей (108).
• Добавление в располагающийся в оперативной памяти набор межракурсных связей всех обязательных связей узла класса первого элемента из Стек2 из атрибутов, содержащихся в классификаторе по п.4 (109).
• Проверка полноты и корректности межракурсных связей этого узла.
[0085] Для проверки полноты и корректности межракурсных связей каждого узла осуществляется обход всех колец одной решетки межракурсных связей, существующей во внешней памяти, начинающихся с данного узла. Для этого используется Стек2, представленный на Фиг. 8. Обходя с помощью стека каждое из колец, мы должны вернуться к первоначальному объекту. В этом случае цепочка участвующих в кольце связей будет корректной. Поскольку выполняется перебор всех связей каждого объекта, то автоматически будет реализована проверка корректности как однонаправленных, так и двунаправленых связей.
[0086] Процесс обхода всех колец одной решетки, реализован таким образом, что используются внутренние номера ракурсов (иерархий) модели данных. Пример решетки, ранее представленной на Фиг. 3, в которой вместо смысловых названий иерархий использованы их внутренние номера, присвоенные им в момент их появления в модели данных, показан на Фиг. 9. При проверке связей в конкретной решетке производится подмена внутренних номеров иерархий таким образом, чтобы узел на вершине Стеке и его иерархия получили номер 1, а номера всех остальных иерархий смещаются в любую сторону по кольцу, сохраняя порядок. На Фиг. 10 показан пример, когда объект, имевший в решетке на Фиг. 9 внутренний номер иерархии 15, получил номер 1, а номера всех остальных иерархий сдвинулись. Для изменения номеров также могут использоваться формулы:
где:
Nnew - новый номер иерархии,
Nold - стандартный внутренний номер иерархии,
Nold1 - стандартный внутренний номер иерархии, которая должна получить новый номер, равный 1,
М - число иерархий в модели.
[0087] Процесс обхода всех колец одной решетки реализован таким образом, что кольца из узла с номером 1, должны строиться таким образом, чтобы каждый следующий узел в кольце имел номер больше предыдущего или номер 1. Примеры двух правильно построенных колец показаны на Фиг. 11:
1 - 2 - 3 - 4 - 9 - 10 - 1
1 -13 - 15 - 1
Примеры недопустимых колец показаны на Фиг. 12.
Использование описанного принципа позволяет исключить создание колец произвольной длины. Максимальная длина кольца будет равна М. Межракурсные связи в решетке, которые не будут проверяться при предложенном методе построения колец, будут проверены при обходе колец из объектов других ракурсов, когда другие элементы этой же решетки получат номер 1.
[0088] Непосредственно процесс обхода всех колец одной решетки с помощью стека Стек2 выполняется с помощью цикла (110), (131) и операций (113), (114), (127), (128). Все кольца обходятся последовательно по межракурсным связям каждого объекта. В процессе этого увеличивается и сокращается Стек2, поскольку вся цепочка узлов кольца, через которую стал доступным очередной узел, сохраняется в Стек2.
[0089] Процесс обхода всех колец одной решетки реализован таким образом, чтобы исключить многократный обход одних и тех же колец связей, начиная с разных объектов. Для этого во время выполнения алгоритма (100) используется разметка связей, фиксируемая во внешней памяти (которая ранее очищалась на шаге (101)). Если при обходе колец, мы проходим по какой-то связи, и для следующего перехода нет неотмеченных связей или мы попадаем в начало кольца, то ставим на пройденной связи отметку. При дальнейшей проверке, больше проходить по этой связи будет не нужно. В результате после обхода всех колец, начиная с объекта одного ракурса, для объектов других ракурсов будут проверяться только те связи, которые, которые еще не проверялись. Проверка связей этих объектов не потребует какого-либо повторного обхода колец, которые уже ранее проверялись. Для простановки разметки используются проверки (111) и (126), операции (112), (121), (125), (130).
[0090] Для первого элемента, внесенного в Стек2 при обходе всех колец одной решетки, выполняются следующие действия:
• Делается проверка, присутствует ли связь между классом узла по Указатель2 и классом узла в вершине Стек2 в наборе межракурсных связей (116). Если нет, то формируется сообщение о непредполагавшейся связи между узлом по Указатель2 и узлом в Стек2 (117).
• Делается проверка, отмечена ли связь между классом узла по Указатель2 и классом узла в вершине Стек2 в наборе межракурсных связей (118). Если нет, то ставится отметка на связи между классом узла по Указатель2 и классом узла в Стек2 в наборе межракурсных связей (119).
[0091] Затем для очередного элемента кольца при обходе всех колец одной решетки выполняются следующие действия, связанные с проверкой корректности межракурсных связей:
• Делается проверка, совпадает ли узел по Указатель2 с узлом по Указатель1 (120), что означает, что кольцо вернулось к исходному узлу. Если да, то ставится отметка на текущую связь в разметке во внешней памяти, чтобы больше по ней не проходить (121).
• Делается проверка, равно ли общее число элементов Стек2 числу иерархий (ракурсов) в модели мастер-данных (122). Если да, то формируется сообщение о сбое связей с указанием всех элементов стека Стек2 (122), ставится отметка на текущую связь в разметке во внешней памяти, чтобы больше по ней не проходить (125), верхний элемент исключается из Стека (128).
• Делается проверка, имеются ли межракурсные связи, исходящие из этого узла (т.е. имеется ли в принципе возможность для перехода из узла) (124). Если нет, то формируется сообщение о сбое связей с указанием всех элементов стека Стек2 (129). А если да, то делается проверка, есть ли на следующем переходе связи без разметки во внешней памяти (126). При их наличии узел по Указатель2 добавляется в Стек2, а при отсутствии - ставится отметка на текущую связь в разметке во внешней памяти, чтобы больше по ней не проходить (130).
[0092] После прохождения всех колец одной решетки делается проверка, остались ли не отмеченные связи в наборе межракурсных связей, располагающемся в оперативной памяти (132). Если да, то формируется сообщение о неполноте связей с указанием всех объектов, соответствующих классам узлов решетки и неотмеченных связей решетки (133).
[0093] После окончания обхода всех иерархий на последнем шаге (137) в составе способа (100) на основании всех сформированных сообщений формируется отчет о нарушенных, отсутствующих и непредполагавшихся связях или о том, что нарушений межракурсных связей нет.
[0094] На основе алгоритмического модуля (100) реализованы два алгоритмических модуля, выполняющие более частные операции:
• алгоритмический модуль проверки корректности межракурсных связей, алгоритм работы которого представлен на Фиг. 13;
• алгоритмический модуль проверки полноты межракурсных связей, алгоритм работы которого представлен на Фиг. 14.
[0095] Оба модуля содержат каждый свою специфическую часть операций алгоритма (100). В них нет никаких операций, не представленных в алгоритме (100). Алгоритмический модуль проверки полноты межракурсных связей может выявить все отсутствующие связи в полном объеме только в тех случаях, когда все связи в модели данных корректны. Это достигается выполнением алгоритмического модуля проверки корректности межракурсных связей и последующим исправлением выявленных ошибок в связях.
[0096] Алгоритмические модули, проверки корректности межракурсных связей и проверки полноты межракурсных связей, представленные на Фиг. 13-13.1 и Фиг. 14-14.2 позволяют организовать диалоговый процесс:
• сначала выполнить несколько этапов проверки корректности связей с исправлением части ошибок после каждого прогона,
• потом выполнить проверку полноты связей, после которой будут внесены необходимые отсутствовавшие связи,
• потом опять выполнить проверку корректности связей, чтобы исправить внесенные ошибки
и так далее…
[0097] Последовательное выполнение подряд алгоритмического модуля проверки корректности межракурсных связей и алгоритмического модуля проверки полноты межракурсных связей будет требовать почти вдвое большего времени чем выполнение одного алгоритмического модуля проверки полноты и корректности межракурсных связей, поскольку будет дважды выполняться обход всех иерархий и обход всех колец решеток межракурсных связей каждого объекта.
[0098] На Фиг. 15 представлен пример системы (200), которая используется для поддержки патентуемой модели мастер-данных, а также выполнения функций системы управления мастер-данными об активах, включая работу интерфейсных модулей, диалогового модуля и алгоритмических модулей системы.
[0099] Система (200) включает в себя следующие компоненты:
• Оперативную память (ОЗУ) (202), предназначенную для оперативного хранения команд, исполняемых одним или более процессорами (201) и оперативного временного хранения рабочих данных.
• Средство хранения данных (203) во внешней памяти может представлять собой жесткий диск (HDD), твердотельный накопитель (SSD), флэш-память (NAND-flash, EEPROM, Secure Digital и т.п.), оптический диск (CD, DVD, Blue Ray), мини диск или их совокупности.
• Интерфейсы ввода/вывода (В/В) (205) представляют собой стандартные порты и средства сопряжения устройств и передачи данных, выбираемые исходя из необходимой конфигурации исполнения системы (200), в частности: USB (2.0, 3.0, USB-C, micro, mini), Ethernet, PCI, AGP, COM, LPT, PS/2, SATA, FireWire, Lightning и т.п.
• Средства В/В (206) также выбираются из известного спектра различных устройств, например, клавиатура, тачпад, сенсорный дисплей, монитор, проектор, манипулятор мышь, джойстик, трекбол, световое перо, стилус, устройства вывода звука (колонки, наушники, встроенные динамики, зуммер) и т.п.
• Средства передачи данных (207) выбираются из устройств, предназначенных для реализации процесса коммуникации между различными устройствами посредством проводной и/или беспроводной связи, в частности, таким устройствами могут быть: GSM модем, Wi-Fi приемопередатчик, Bluetooth или BLE модуль, GPS модуль, Глонасс модуль, NFC, Ethernet модуль и т.п.
• Компоненты системы (200) сопряжены посредством общей шины передачи данных (204).
[0100] В совокупности система (200) представляет собой серверную платформу, обеспечивающую необходимые вычисления при реализации системы управления мастер-данными об активах. В предпочтительном варианте эта серверная платформа должна быть оснащена инструментарием, имеющим следующие возможности:
• Инструментарий должен обладать возможностями графовой базы данных [13]. Это обеспечит существенные преимущества при работе с графами за счет увеличения скорости разработки и сокращения объема кода при обходе цепочек связей, по сравнению с традиционным SQL, а также будет требовать меньших ресурсов для работы прототипа.
• Инструментарий должен обладать возможностями графовых энджинов [14], выполняющих сложные алгоритмы над большим графом в целом, даже если его фрагменты хранятся на разных серверах, входящих в кластер серверов.
Источники информации:
1. Wolter R., Haselden K. The What, Why, and How of Master Data Management. Microsoft Corporation, November 2006, URL: https://msdn.microsoft.com/en-us/library/bb190163.aspx?f=255&MSPPError=-2147217396
2. Otto В., Schmidt A. Enterprise Master Data Architecture: Design Decisions and Options. Institute of Information Management, University of St. Gallen, 13 p. URL: http://mitiq.mit.edu/ICIQ/Documents/IQ%20Conference%202010/Papers/2B1_EnterpriseMasterDataArchitecture.pdf
3. Equipment as Units of Tangible Assets. SAP Help Portal. URL: http://help.sap.com/saphelp_ppm400/helpdata/en/01/d545f84ab311d189740000e8322d00/frameset.htm
4. Creating an Architectural Object. SAP Help Portal. URL:
http://help.sap.com/saphelp_erp60_sp/helpdata/en/fb/5ad0531d8b4208e10000000a174cb4/frameset.htm
5. Система управления мастер-данными об активах. ООО «Оптимальное Управление». URL: http://optimalmngmnt.com/page34ru.htm
6. РАО «ЕЭС РОССИИ». ГОДОВОЙ ОТЧЕТ ЗА 2006 ГОД. URL: http://www.fsk-ees.ru/media/File/stockholders/otchet/decisions/VOSA_otchet/RAO/03_RAO_GO_2006.pdf
7. Master data management. Wikipedia. URL: https://en.wikipedia.org/wiki/Master_data_management
8. What is Master Data. TechTarget. SearchDataManagement. URL: http://searchdatamanagement.techtarget.com/definition/master-data-management
9. Wolter R. Master Data Management (MDM) Hub Architecture. Microsoft Corporation, April 2007, URL: https://msdn.microsoft.com/en-us/library/bb410798.aspx?f=255&MSPPError=-2147217396
10. Barrenechea M.J., Jenkins T. Enterprise Information Management: The Next Generation of Enterprise Software / Open Text Corporation, Waterloo (Canada), 2013, 288 p.
11. Magic Quadrant for Master Data Management Solutions. Gartner / Analysts: O'Kane В., Palanca T., Moran M.P., 19 January 2017, ID: G00305598. URL: https://www.gartner.com/doc/reprints?id=1-3RH2O6C&ct=170120&st=sb
12. The Forrester Wave™: Master Data Management, Q1 2016 // Forrester / Goetz M., March 16, 2016, 17 p.
13. Robinson I., Webber J., Eifrem E. Graph Databases. O'Reilly Media, 2-nd ed., 2015, 238 p.
14. Обработка больших объемов графовых данных: путеводитель по современным технологиям. IBM / Сакр Ш., URL: http://www.ibm.com/developerworks/ru/library/os-giraph/index.html