Понятия распределенной архитектуры

Все SberMobile Serverы имеют единую модель внутреннего представления данных: дерево контекстов. Каждый контекст в этом дереве отвечает за управление определённым устройством или системным ресурсом, будь то оповещение или отчёт.

В распределённой архитектуре каждый из серверов может работать как поставщик или потребитель данных для/с других серверов:

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

Поставщик позволяет другим серверам использовать свои контексты (экспортирует контексты другим)

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

Как только потребитель импортировал поддерево с другого сервера, собственные контексты этого потребителя могут взаимодействовать с импортированными контекстами. Вот несколько примеров:

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

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

•        В конце концов, сервер B может импортировать все дерево контекстов с сервера A. В этом случае любой ресурс с сервера B может иметь доступ ко всем ресурсам сервера A, позволяя делать что угодно.

Взаимодействие поставщиков и потребителей

Все взаимодействие между потребителями и поставщиками происходит по IP-сетям с использованием шифрованных SSL-соединений. Соединения двунаправленные:

•        Потребители могут подключаться к поставщикам и принимать входящие соединения от поставщиков.

•        Точно так же поставщики могут подключаться к потребителям и принимать входящие соединения от них.

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

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