Научная статья на тему 'Метод разграничения доступа к объектам в системе контроля версий'

Метод разграничения доступа к объектам в системе контроля версий Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
146
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДОСТУП / РАЗГРАНИЧЕНИЕ / ВЕРСИЯ / СКВ / ОБЪЕКТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зикратов Игорь Алексеевич, Спивак Антон Игоревич, Разумовский Андрей Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Зикратов Игорь Алексеевич, Спивак Антон Игоревич, Разумовский Андрей Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article considers the problem of access to objects in the version control systems. The problems of access restrictions at the level of the individual versions of an object. A method for access control and implementation of the method is presented.

Текст научной работы на тему «Метод разграничения доступа к объектам в системе контроля версий»

Научно-технические ведомости СПбГПУ 4' 2012 ^ Информатика. Телекоммуникации. Управление

УДК 004.056.5

И.А. Зикратов, А.И. Спивак, А.В. Разумовский

МЕТОД РАЗГРАНИЧЕНИЯ ДОСТУПА К ОБЪЕКТАМ В СИСТЕМЕ КОНТРОЛЯ ВЕРСИЙ

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

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

блокировки мешают продуктивной работе, поскольку вынуждают ожидать освобождения блокированных файлов;

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

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

Метод разграничения доступа на основе дискреционной модели

Для решения задачи обеспечения совместной работы группы субъектов над одними и теми же

объектами нами взята за основу известная из теории информационной безопасности модель дискреционного разграничения доступа - HRU [1, 2].

Отличием предлагаемого метода от известных, используемых, например, в системах контроля версий Subversion [3] и CVS [4], является введение в систему совокупности матриц доступа, описывающих разграничение субъектов к версиям объектов, что позволило реализовать механизм контроля версий при производстве мультимедийного контента в системе 3D анимации.

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

Для системы 3D анимации в качестве столбцов матрицы представлено множество объектов, которыми являются файлы сцен и объекты анимации, а в качестве строк - субъекты-разработчики. В отличие от классической модели HRU (в которой существуют: O - множество объектов; S -множество субъектов; R - множество прав доступа субъектов к объектам) для системы контроля введено множество V - множество версий объектов O.

Интерпретация идеи состоит в том, что при появлении i-й версии объекта создается дополнительная i-я матрица доступа, отражающая права к этой версии объектов со стороны субъектов. В случае отсутствия версий для какого-либо объекта, ячейки, соответствующие его версиям, будут пустыми. Пространство состояний такой системы описывается как S*O*RxV.

Матрица прав доступа M[s,o], где столбцами являются объекты, а строками - субъекты, содержит права доступа субъектов к объектам. При создании новой версии объекта (Vi) создается новая матрица Wn[s,o], где содержатся права доступа субъектов к новой версии объекта. Применяется сквозная нумерация версий объектов для простоты получения информации о последнем

Математическое моделирование: методы, алгоритмы, технологии

изменении объекта, при этом не имеет значения, какой именно субъект создал новую версию объекта. При выполнении операции a() система переходит из состояния Q в состояние Q'.

Соответствующие изменения в формальном аппарате модели HRU заключаются в добавлении следующих базовых операций:

1. Добавление права субъекту по отношению к версии объекта Enter r W[s,o].

Начальное состояние q = (S, O, V,M, W): s e S, o e O, r e R, ve V.

Конечное состояние q = (S', O', V, M', W) S'= S, O' = O, V' = V, Wv'[s, o] = Wv[s, o]□{/■}, если (xs, xo)£(s, o) ^ Wv'[xs, xo] = Wv [x, xo], M'[s, o] = M[s,o].

2. Удаление права у субъекта по отношению к версии объекта Delete r W[s,o].

Начальное состояние q = (S,O, V, M, W): se S, o e O, r e R, ve V.

Конечное состояние q = (S', O', V', M', W) S'= S, O' = O, V' = V, Wv'[s, o] = WV [s, o]\{r}, если (xs, xo) ф (s, o) ^ Wv'[xs, xo]= Wv [xs, xo], M'[s, o] = M[s, o].

3. Создание версии объекта Create v'.

Начальное состояние q = (S, O, V,M, W): v'g V.

Конечное состояние q = (S', O', V', M', W)

S'= S, V' = V□ {v'}, для V (x, x ) e SxO ^M[s, o] = = M[s, o], Wv,'[xs, x]= 0.

4. Удаление версии объекта Delete v'.

Начальное состояние q = (S, O, V,M, W): VeV.

Конечное состояние q = (S', O', V', M', W1):

S'= S, O' = O, V' = V\{v'} для V (xs, xo)eS'xO'^ ^M[s, o] = M[s, o], Wv,'[xs, xo] = ^[x/xj.

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

Реализация метода

Описанный в статье метод дискреционного разграничения доступа реализован в программном модуле системы хранения и контроля версий больших бинарных файлов (СКВ) инновационной системы 3D анимации (ИСА).

Архитектура СКВ имеет распределенный характер. В СКВ выделены три компонента: ядро СКВ, агенты СКВ и клиент СКВ. Благодаря тому, что данные (файлы) передаются только между

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

Все компоненты реализованы на языке Java. Это позволяет развернуть компоненты на базе любой операционной системы, имеющей JVM.

Концептуальная схема взаимодействия компонентов СКВ представлена на рисунке. Составными частями служат агент СКВ, ядро СКВ, база данных и клиент СКВ, в качестве которого могут выступать другие модули ИСА, а также сторонние программные продукты.

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

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

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

Научно-технические ведомости СПбГПУ 4' 2012 Информатика. Телекоммуникации. Управление

Высокоуровневая структура СКВ

Клиент СКВ. Пользователь взаимодействует с ядром СКВ при первоначальном запросе и при необходимости с агентом СКВ. Взаимодействие между клиентом и компонентами СКВ осуществляется по REST интерфейсу.

Порядок взаимодействия компонент СКВ друг с другом

1. Пользователь (клиент СКВ) посылает запрос ядру СКВ при помощи сформированного сообщения в формате JSON [6].

2. При обработке запроса ядром СКВ выполняется обращение к базе данных с целью получения информации о выполняемой в рамках запроса операции и проверки полномочий на выполнение требуемой операции.

3. Пользователь получает результат выполнения действий на стороне ядра СКВ в виде сформированного запроса к заданному агенту СКВ.

4. Заключительный этап включает в себя обработку запроса на работу с файлом агентом СКВ и определение статуса выполнения операции.

Имеющиеся в составе СКВ функции по управлению доступом к версиям объектов реализуют описанный в статье метод контроля доступа. Это позволяет проводить дальнейшие исследования в направлении усовершенствования систем контроля доступа к объектам в системах контроля версий.

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

Работа выполнена в рамках ФЦП, госконтракт № 07.524.11.4009 «Разработка инновационной системы 3D анимации».

СПИСОК ЛИТЕРАТУРЫ

1. Девянин, П.Н. Модели безопасности компьютерных систем [Текст] / П.Н. Девянин. —М.: Изд. центр «Академия», 2005. -144 с.

2. Цирлов, В.Л. Основы информационной безопасности. Краткий курс [Текст] / В.Л. Цирлов. —М.: Феникс, 2008. -256 с.

3. Система управления версиями Subversion [Электронный ресурс] / Режим доступа: http://subversion. apache.org/

4. Система управления версиями CVS [Электрон-

ный ресурс] / Режим доступа: http://cvs.nongnu.org/

5. Fielding, R. Architectural Styles and the Design of Network-based Software Architectures [Электронный ресурс] / Roy Thomas Fielding. -Режим доступа: http:// www.ics.uci.edu/~fielding/pubs/dissertation/fielding_ dissertation.pdf

6. RFC 4627. The application/json Media Type for JavaScript Object Notation (JSON) [Электронный ресурс] / Internet Engineering Task Force. -Режим доступа: http://tools.ietf.org/html/rfc4627

i Надоели баннеры? Вы всегда можете отключить рекламу.