суббота, 7 марта 2015 г. - www.msmirnov.ru

Концепция автоматизированной системы управления физическим размещением данных на MS SQL Server

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

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

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

Структуру такой системы можно изобразить на диаграмме:

Как видно на диаграмме, система разделена на 4 части:
  • Управление расположениями - часть системы, отвечающая за создание, удаление, подготовку к использованию и обслуживание хранилищ данных.  Именно эта часть система отвечает за управление физическим расположением данных.
  • Подсистема безопасности - часть системы, ответственная за управление правами доступа к данным.
  • Интерфейс администрирования - часть системы, предоставляющая администратору возможность управлять ее работой.
  • API - программный интерфейс системы, позволяющий сторонним приложениям получать доступ к хранящимся данным.
Все данные, расположением которых управляет такая система, можно разделить на типы.
Типом данных может быть что угодно, например - список клиентов, история заказов, история просмотров - в общем, что угодно.
Каждый тип данных при этом обладает своей структурой - списком атрибутов, определяющих какие именно данные хранит каждый тип.


Задачи подсистемы "Интерфейс администрирования".
  1. Позволять регистрировать в системе новые типы данных, определять их структуру (имена атрибутов, их типы и другие свойства).
  2. Регистрировать в системе новые физические сервера для размещения данных
  3. Задавать настройки расположение данных на каждом сервере
  4. Управлять настройками распределения данных между серверами
  5. Управлять настройками прав доступа

Задачи подсистемы "Управление расположением".
  1. Заблаговременно и по требованию пользователя создавать на физических серверах базы данных, таблицы, элементы партицирования и пр. для размещения данных
  2. Исправлять ошибки, возникающие в процессе работы - обрывов связи, сбоев в работе серверов и т.п.
  3. Проводить публикацию новых данных, если она требуется
  4. Выполнять дефрагментацию и переиндексацию
  5. Удалять устаревшие данные
  6. Управлять распределением данных между серверами

Задачи подсистемы безопасности.
  1. Управление доступом на запись и чтение данных
  2. Управление пользовательскими сессиями, мешающими работе с данными


Задачи подсистемы API.
  1. Выдавать конечным потребителям данные, хранящиеся в системе
  2. Принимать от потребителей новые данные, которые необходимо поместить в систему
  3. Получать от потребителей сигналы о необходимости выполнения публикации переданных данных
  4. Обеспечение параллельной работы пользователей с системой

В заключении хочу сказать что тема построения таких систем весьма обширна и здесь даны лишь самые общие наброски в направлении их создания.
Мой сайт - www.msmirnov.ru