Шаг 9. Межсайтовое взаимодействие

Забегая вперед для полноты восприятия, следует отметить, что слоев коммуникаций между ролями (а следовательно между нодами, серверами, сайтами) несколько:

  • логический слой– с ним работали сервисы до этого шага при рассматривавшихся взаимодействиях, и именно его исследуем на этом шаге;

  • файловый слой – встроенная в систему передача файлов между серверами и сайтами;

  • протокольный слой – взаимодействие частей системы между собой согласно тем или иным стандартным протоколам: SIP, MEGACO, HTTP;

  • медийный слой – выделенный отдельно протокольный слой передачи трафика в стримовых взаимодействиях (протоколы RTP, DTLS – голос и видео в звонках и конференциях);

  • внешний слой – взаимодействие частей системы опосредованно через внешние системы (базы данных, внешние провайдеры сервисов, облачные сервисы, прочие сетевые хранилища).

Сейчас мы концентрируемся на логическом слое коммуникаций. Это тот слой, в котором происходят коммуникации различных сервисов/ролей внутри системы. В частности, WS передает CRUD-операции на исполнение в DC именно здесь. Тут же происходят коммуникации IC – IC, IC – MIС, SDC – MDC и взаимодействие прочих еще нерассмотренных ролей. В некоторых особых случаях в этом слое передаются файлы между серверами. Особенность слоя состоит в том, что в зацеплении оказывается практически каждая пара нод. С учетом большого количества ролей, их резервных экземпляров, большого количества сайтов, большого количества серверов – количество подключений легко преодолевает разумные пределы.

Static

Для обеспечения межсайтового взаимодействия введена роль RPCO. Все ноды внутри сайта взаимодействуют напрямую, но между сайтами любой коннект на логическом слое происходит через роль RPCO. Это служебная роль, нужная большинству внутренних сервисов системы, поэтому она резервируется в режиме Active-Active и на каждой ноде активен клиентский модуль доступа к серверу RPCO, фактически являющийся функциональным фасадом RPCO. Клиентский модуль мониторит доступность экземпляров ролей RPCO, кэширует и периодически актуализирует их состояние.

Static

На диаграмме видно, что любые два сервера из разных сайтов связываются через пару RPCO – по одному на каждом сайте. Таким образом RPCO призван решать несколько проблем:

  • Проблему высокого зацепления при росте масштабов системы.

  • Проблему расположения сайтов в локальных сетях.

  • Проблему поиска глобальных имен на удаленном сайте.

  • Проблему отладки межсайтового взаимодействия.

  • Проблему неконтролируемой загрузки сетевого канала трафиком между сайтами.

Однако, при запуске новых серверов, они не содержатся в конфигурации, не имеют привязки к сайту, и поэтому подсоединяются к MIC или IC напрямую, минуя RPCO.

У платформы «Era» существует еще один слой оптимизации полносвязности – на каждом сервере используется сетевой сервис, таким образом число реальных соединений сокращается.

Table 1. Используемые термины
Термин Определение

Слои коммуникаций

!

Логический слой коммуникаций

!

RPCO

!