Speaker
Description
В докладе представлена концепция системы, которая предназначена для создания распределенных приложений с общей персистентной памятью, что позволит значительно снизить затраты на разработку, поддержку и эксплуатацию.
Система синхронизации распределенного состояния (ССРС) - это система, состоящая из облачной платформы (PaaS) и комплекта для разработки ПО (SDK), которые осуществляют управление данными распределенного приложения. ССРС реализует абстракцию глобального состояния, обеспечивает его персистентность и реализует механизм конкурентного доступа, при этом не владет самим состоянием.
Для каждого рабочего процесса распределенного приложения система реализует абстракцию единого, централизованного, глобального для всего приложения состояния. В оперативной памяти каждого отдельно взятого рабочего процесса приложения может содержаться полная копия глобального состояния либо только та его часть, которая нужна бизнес-логике процесса. Процесс вносит изменения в глобальное состояние приложения путем упреждающей записи этих изменений в облачную часть ССРС, которая в свою очередь упорядочивает, сохраняет и распространяет эти изменения по всем процессам приложения. Так как изменения состояния, записываемые в систему, шифруются на уровне рабочих процессов, то только они владеют состоянием приложения.
Структуру состояния определяет разработчик приложений с помощью входящей в состав SDK библиотеки для соответствующего языка программирования. Библиотека предоставляет объектную модель данных, которая, в свою очередь, является нативной для языков программирования, удобной для человеческого восприятия и в целом универсальной. Также на уровне библиотеки реализован механизм конкурентного доступа к глобальному состоянию. Этот механизм позволяет единицам многозадачности приложения параллельно взаимодействовать с глобальным состоянием, читать и изменять его, при этом не мешая и не блокируя друг друга.
Таким образом, предоставляемые системой ССРС абстракция глобального состояния и механизм конкурентного доступа к нему сводят сложный и трудоемкий процесс разработки распределенного приложения к разработке одно-процессного приложения с общей памятью. Персистентность состояния позволяет отказаться от медленной внешней памяти и хранить все данные в оперативной памяти, что, в свою очередь, дает возможность определять структуру глобального состояния, используя объектную модель данных языка программирования.
На текущем этапе разработки нами проведена проверка концепции на примере приложения для распределенных вычислений [1, 2], спроектирован и реализован прототип веб-интерфейса пользователя системы.
SUMMARY
The paper presents a concept for a system designed to create distributed applications with shared persistent memory, which should significantly reduce development, support and operation costs. At the current stage of development, we tested the concept using an application for distributed computing [1, 2], and also designed and implemented a prototype of the system’s user web interface.
[1] Vostokin S., Rusin M.A. Experiments with the A022008 Sequence Generator to Study Distributed Computing Based on State Synchronization Service // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). — 2025. — Vol. 15407 LNCS. — P. 75-89 (https://doi.org/10.1007/978-3-031-78462-0_6)
[2] Востокин С.В., Русин М.А. Метод кратковременного использования простаивающих компьютеров корпоративной сети для решения ресурсоемкой задачи // International Journal of Open Information Technologies. — 2025. — Т. 13. № 3. — С. 44-51 (http://www.injoit.org/index.php/j1/article/view/2052)