Speaker
Description
В настоящее время программы для управления данными, а также их информационные системы, являются достаточно сложными как в плане их создания, так и в плане их поддержки и управления. Это неизбежно, поскольку современные ИС решают либо широкий спектр связанных бизнес-задач, либо одну, но крайне сложную бизнес-задачу. Также одной из частых проблем, возникающих в современных бизнес-задачах, является то, что в разработке ИС участвуют несколько компаний, которые могут являться конкурентами. В этом случае на компании-агрегаторе (создателе приложения) лежит основная ответственность за управление данными и их безопасность.
В такой ситуации необходимо строго разделять доступ к данным между компаниями – участниками коллаборации, а данные, которые составляют коммерческую тайну, требуется надежно защитить от любых пользователей системы, кроме представителей компании – собственника этих данных.
В настоящее время классическим решением для проектирования распределенных систем управления данными являются такие подходы, как репликация данных и создание систем сервисов на основе мультисервисной архитектуры. Но для обеспечения защиты данных от несанкционированного доступа мы не можем в чистом виде применить ни одно, ни второе решение:
1)Репликация обеспечивает объединение данных со всех узлов системы в единую систему управления данными[1].
2)При классическом построении системы с микросервисной архитектурой, сервис должен решать только одну задачу, но для всей системы (например, работу со справочником)[3].
Нами был предложен метод решения задачи безопасности данных при построении таких систем - используя паттерн CQRS [1,2] организовать «логическую репликацию» данных с учетом прав пользователя и контекста запросов для получения данных.
Работа выполнена при финансовой поддержке ИК ЦТО (г.Новосибирск).
1. Fowler M. CQRS.
2. Young G. CQRS Documents.
3. D.Simic; S.Ristic; S.Obradovic (2007) Measurement of the Achieved Performance Levels of the WEB Applications// FU Elec Energ. p.31–43.
Секция конференции | Теоретическое, экспериментальное и системное программирование |
---|