1. Функциональное назначение программы, область ее применения, ее ограничения



страница1/4
Дата01.11.2016
Размер1,16 Mb.
  1   2   3   4


Федеральное агентство по образованию

Автономная некоммерческая организация науки и образования


«Институт компьютинга»

УТВЕРЖДАЮ

Директор АНО «Институт компьютинга»

_____________ /А.И. Миков/

«___»_____________2008 г.

м.п.

РЕКЛАМНО-ТЕХНИЧЕСКОЕ ОПИСАНИЕ
Средства тиражирования данных METAS Replication

.31569113.00006-01 99 01

Листов 55

Разработчики:

______________________/Стрелков М.А./

______________________/ Шаврина О.В./

______________________/ Лядова Л.Н./
14.08.2008>

1. Функциональное назначение программы,


область ее применения, ее ограничения

1.1. Назначение программы

Комплекс программ METAS Replication предназначен для решения задачи тиражирования данных в распределенных динамически настраиваемых информационных системах, созданных на основе CASE-технологии METAS.

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

Для решения задачи интеграции следует применять технологии распределенных баз данных (РБД) и тиражирования данных, использовать открытые стандарты, промышленные интеграционные платформы (например, Microsoft BizTalk). Последние ориентированы, в первую очередь, на бизнес-процессы. Использование открытых стандартов значительно упрощает интеграцию систем, но само по себе проблему не решает.

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

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

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



  • тиражирование данных об объекте;

  • тиражирование транзакций (изменений данных, произошедших с момента последней репликации),

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

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

1.2. Область применения программы

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

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

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

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

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

Многие системы тиражирования основаны на синхронной схеме реплицирования, при которой узел-поставщик данных отслеживает результат фиксации отправленных данных на узле-приемнике. Отличительной особенностью предлагаемого подхода к тиражированию является отсутствие требования постоянного оперативного (on-line) соединения между узлами. Это может оказаться необходимым в условиях ненадежных каналов связи и позволяет передавать пакет тиражирования любым удобным способом (на носителе, по электронной почте и т.д.). Возможность тиражирования данных ИС в асинхронном режиме ­– одна из основных задач.

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

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

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



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

1.3. Ограничения использования программы

Комплекс программ тиражирования является составной частью CASE-системы METAS. Программное ядро CASE-системы METAS (MDK METAS) позволяет настраиваться на различные программные платформы, работать под управлением различных операционных систем Microsoft, использовать для создания информационных систем различные реляционные СУБД и источники данных, для которых существуют драйверы ODBC.

Однако в данной версии средств тиражирования используются средства создания резервных копий используемых СУБД, в частности Microsoft SQL Server, что ограничивает возможности применения системы.

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

Для функционирования runtime-компонентов необходимо установить .NET Framework (распространяется бесплатно), драйверы ODBC (при установке операционной системы) и СУБД (можно использовать, в частности, Microsoft SQL Server Express, которая распространяется бесплатно).

Возможности масштабирования системы определяются возможностями настройки на различные платформы.

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

2. Техническое описание программы

При реализации приложения использована многоуровневая модель ИС, создаваемых на основе CASE-технологии METAS. Ниже описана модель, основные принципы функционирования приложения и алгоритмы работы программных компонентов, а также программная реализация средств тиражирования.

2.1. Математическая модель информационной системы

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



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

Логический уровень – это метаданные, описывающие структуру объектов ИС их взаимосвязи и поведение в терминах предметной области. В основу метаданных этого уровня положена диаграммы классов UML. Логический уровень базируется на физическом в процессе функционирования системы, но при создании ИС разработчик описывает предметную область ИС именно на логическом уровне (предметная область системы, построенной в METAS, описывается на логическом уровне и представляется в виде сущностей и связей между ними), а метаданные физического уровня и соответствующие им структуры данных в БД строятся автоматически с помощью средств реструктуризации CASE-системы.

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

Логический уровень

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

Направление дуги определяется типом связи между сущностями:


  • «1:0..1» – от «1» к «0..1»,

  • «1:М» – от «1» ко «М»,

  • «0..1:М» – от «0..1» ко «М»,

  • «М:М» – дуга двунаправлена,

  • «a..b:c..d» – дуга двунаправлена.

С каждой вершиной графа свяжем множество элементов, обозначающее атрибуты сущности е: , каждый атрибут состоит из , где name – имя атрибута; ref – если значение атрибута выбирается из справочника, то указывает на соответствующую таблицу-справочник , в противном случае – пустое значение .

Физический уровень

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

Направление дуги от tj (начальной вершины) к tk (конечной вершине) определяется типом связи между таблицами: «1:М» – от «1» ко «М». Все остальные типы связей в системе моделируются с помощью данного, то есть на физическом уровне в реляционной модели других типов связи нет. Представление связи «многие-ко-многим» организуется через промежуточную таблицу посредством логической модели CASE-технологии METAS (рис. 2.1), следовательно, дуги графа могут быть только однонаправленными.



Рис. 2.1. Представление связи «М:М»

Свяжем с каждой вершиной графа множество элементов вершины Fields(t), обозначающее поля таблицы t: , каждый элемент представляет собой четверку значений , где name – имя поля таблицы; type – представляет тип поля таблицы; req – обозначает, является ли наличие значение этого поля обязательным, принимает значения из множества {true, false}; pe – если поле является ссылкой на первичной ключ другой таблицы, то указывает на нее ( ), иначе имеет пустое значение ( ).

Будем считать, что элемент ft,0 представляет ключевое поле таблицы t.

Таким образом, каждая вершина теперь представляет собой структуру таблицы в БД.

Экземпляр данных (строка) o таблицы t включает множество значений полей ; – значение поля f в строке o.

Каждое значение vi строки о соответствует полю fi этой таблицы:



.

Будем обозначать значение ключевого поля (идентификатора) строки о так:



.

Зададим местоположение хранения данных (строк таблицы) из множества , база данных ИС, пакет тиражирования или транзитный пакет. Тогда – множество строк в таблице t, place задает местоположение объектов, база данных ИС или пакет.

Будем обозначать и .

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



.

Зафиксируем произвольную связь между таблицами . Тогда дочернее поле связи таблицы t2, которое указывает на ключевое поле таблицы t1, определяется следующим образом:



.

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



.

Связь между уровнями

Пусть – главная таблица сущности e; – множество справочников сущности e.

Отношение «М:М» между сущностями реализуется в системе при помощи вспомогательной таблицы. Ей будет соответствовать функция:



.

Опишем соотношения вершин и дуг графа логической модели и элементов графа физической модели.

Любой вершине (сущности) графа ЛМ соответствует множество таблиц на физическом уровне, состоящее из главной таблицы и таблиц-справочников:

.

Любой связи «1:М» или «М:1» на логическом уровне соответствует одна связь на физическом.

Связь «М:М» моделируется через промежуточную таблицу, при этом главные таблицы сущностей состоящих в связи, имеют отношение «1:М» с промежуточной таблицей:

.

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



.

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

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

Тогда поля таблицы будут представлены множеством



,

а атрибуты сущности множеством такой же размерности



.

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



fa: , то есть .

Дополнительные обозначения

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


  • – множество экземпляров сущности e из базы данных ИС; – идентификатор объекта o сущности е;

  • , – значение атрибута, представляющего связь «М:1» и являющегося ссылкой на родительскую сущность (e1) объекта o;

  • – множество обязательных атрибутов сущности е;

  • – множество связей «М:1» сущности e (все входящие в нее дуги, не имеющие обратных);

  • – множество связей «1:М» сущности e (все исходящие дуги, не имеющие обратных);

  • – множество связей «М:М» сущности e (все двунаправленные дуги).

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

    1. Описание подходов к решению задачи тиражирования
      в CASE-системе METAS


Реализуется два метода: тиражирование данных об объектах ИС и тиражирование транзакций.

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

Метод тиражирования данных об объекте

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

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

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

Общая схема создания копии и извлечения из нее данных представлена на рис. 2.2.

На вход подсистемы создания копии данных (Backup) компонента тиражирования поступает БД ИС и схема тиражирования. Основываясь на этой схеме, указанная подсистема выполняет обход таблиц БД, помещая в пакет тиражирования выбранные данные. Помимо этого, пакет содержит и модель данных, которая может отличаться от модели на узле-приемнике, а также начальный объект. Таким образом, в пакет попадает схема тиражирования, поскольку передаваемая модель данных, вообще говоря, включает список сущностей. Сформированный пакет тиражирования любым способом (по локальной сети, посредством электронной почты, на носителе информации и т.п.) доставляется на узел-приемник и поступает на вход подсистемы восстановления копии (Restore).



Рис. 2.2. Процесс создания и восстановления копии

В первую очередь, данная подсистема осуществляет обновление модели данных (метаданных) на узле-приемнике. Затем происходит извлечение данных в рабочую БД, и в случае успеха, схема тиражирования также может быть сохранена на узле.

Схема работы компонента более подробно обсуждается далее.

Понятие схемы тиражирования

Схема тиражирования состоит из:


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

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

;

для каждого атрибута задается точность сопоставления



здесь множество Accuracy задает всевозможные наборы параметров сравнения значений (полное, с учетом регистра, с учетом пробела и др.);

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

;


  • правила сопоставления объектов: требуется равенство значений всех атрибутов или хотя бы одного; правило задается так:

;

  • корневой сущности ;

  • корневого объекта .

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

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

Граф схемы тиражирования определим следующим образом:



,

где – множество сущностей, заданных схемой; – множество связей между ними;


.

Исходя из определения графа схемы тиражирования, множество строится так:



,

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

Алгоритм создания резервной копии

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

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



.

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

Указанный алгоритм выполняет рекурсивный обход графа схемы тиражирования в глубину. В процессе обхода последовательно просматриваются связи текущей вершины с родительскими сущностями «М:1», затем «1:М» и «М:М». Для каждой связи вызывается алгоритм TransIdAndCopyXX, который выполняет преобразование множества идентификаторов объектов данной сущности в множество идентификаторов сущности, состоящей в отношении с данной. При этом происходит копирование объектов сущности в пакет тиражирования. При внесении в пакет очередного экземпляра, функция проверяет, не был ли он туда внесен ранее, если да – то он повторно не вносится, и не возвращается в множестве NewIds. Это обеспечивает конечность алгоритма (количество объектов в БД конечно). Если множество NewIds не является пустым, значит, для экземпляров с такими идентификаторами нужно выполнить обход – рекурсивно вызвать следующий алгоритм:

// На входе: очередная сущность, посещаемая алгоритмом обхода, связи

// которой требуется просмотреть;

// множество идентификаторов экземпляров этой сущности;

// ExcludeR связь, по которой был осуществлен переход в е; по ней возвращаться

// не следует

proc DoTraversalByScheme( )

begin

// обход связей М:1

for each do

if then

begin

NewIds ← Ids;

// Преобразование идентификаторов и копирование объектов



// r1первая компонента вектора r, сущность со стороны 1

TransIdAndCopyM1(e, r1, r, ref NewIds);

if then DoTraversalByScheme(r1, NewIds, r);

end;

// обход связей 1:М

for each do

if then

begin

NewIds ← Ids;

TransIdAndCopy1M(e, r2, r, ref NewIds);

if then DoTraversalByScheme(r2, NewIds, r);

end;

// обход связей М:М

for each do

if then

begin

NewIds ← Ids;

TransIdAndCopyMM(e, r2, r, ref NewIds);

if then DoTraversalByScheme(r2, NewIds, r);

end;

end;

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

Пусть N – число вершин в графе, K – общее число строк в таблицах. Одна и та же вершина может быть посещена несколько раз, причем в самом худшем случае K раз (для каждого объекта подъем по родительской связи). Таким образом, рекурсия может быть выполнена O( ). Позже будет показано, что функции TransIdAndCopyXX имеют сложность . Общая сложность алгоритма .



Поделитесь с Вашими друзьями:
  1   2   3   4


База данных защищена авторским правом ©grazit.ru 2017
обратиться к администрации

    Главная страница