четверг, 25 октября 2018 г.

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

Данная публикация имеет поясняющий характер и ставит своей целью, по возможности, простыми словами и максимально доходчиво (как просят, "для чайников"), объяснить суть и механизм совместной работы с использованием ресурсов облачного хранения данных, таких как Dropbox, pCloud, Диск Яндекс, Облако@Mail.Ru, Google Диск и т.п.

"Облако", если говорить с технической точки зрения, является онлайн-хранилищем, состоящим из большого количества серверов, объединённых в огромную сеть (облачное хранилище данных).

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

Кла́стер (англ. cluster – скопление) – объединение нескольких однородных элементов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами. В сфере информационных технологий под кластером следует понимать группу вычислительных узлов, объединённых высокоскоростными каналами связи, представляющих с точки зрения пользователя единый аппаратный ресурс (подробности).

Так как потребителю не известно на каких именно участках кластеров хранятся его данные, а известна только точка его соединения с массивом кластеров, то такую реализацию назвали "облаком". Cloud – облако (англ.)

Как происходит обмен данными между пользователями через "облако" ?

Каждый пользователь имеет учётную запись в облаке и установленный на компьютере клиент (программа синхронизации данных). Синхронизация – это процесс, при котором хранящиеся в облаке данные и данные, указанные клиенту для сопоставления с облаком, приводятся к идентичному содержанию.


Например, user-1 имеет в облаке 4 папки,


а user-2 имеет в облаке 3 папки


user-1 одну из папок даёт в доступ пользователю user-2 (синего цвета). В терминологии ресурсов облачного хранения данных такое действие называется "приглашение".


user-2 принимает приглашение в папку и у него в облаке становится тоже 4 папки. Полученная от user-1 в доступ папка помечена оранжевым цветом.


В итоге получается конструкция, при которой при любом изменении/добавлении данных в папке синего цвета точно такие же изменения будут произведены в папке оранжевого цвета и наоборот (папки синхронизируются). То есть, содержание этих папок будет идентичным.


Соответственно, эти изменения будут также переданы на компьютеры user-1 и user-2 при очередном сеансе связи их клиентов с облаком.


Получается, что после завершения синхронизации содержание жёлтой папки, владельцем которой является user-1, станет идентичным содержанию бирюзовой папки, владельцем которой является user-2, и наоборот:


Упрощённо говоря, происходит передача данных с компьютера на компьютер. При этом посредником в этом процессе выступает облако.

Синхронизация данных клиента с облаком происходит по защищённому протоколу, который препятствует перехвату данных по сети. В зависимости от конкретной реализации, передаётся либо новый файл на замену старому, либо значение "дельта" (разница значений нового и старого файлов).

Для своего функционирования такая схема не требует завершения всех операций синхронизации в течение сеанса связи с Интернет. В процессе синхронизации клиент постоянно вычисляет содержание папки клиента и соответствующей ей папки облака, а также отслеживает отметку времени, назначенной каждому файлу и каждой папке. На основании этой информации клиент производит запись или удаление данных в той папке клиента или облака, отметка времени которой старше (то есть более ранняя). Если в течение сеанса работы с Интернет процесс синхронизации не был завершён, то при следующем сеансе он будет продолжен. Такой процесс условно можно назвать "докачкой данных". Учитывая указанное, процессу можно сопоставить термин "асинхронная репликация".

Репликация (англ. replication) – механизм синхронизации содержимого нескольких копий объекта (файла, папки). В процессе репликации происходит копирование данных из одного источника на другой (или на множество других) и наоборот. Иными словами, изменения, сделанные в одной копии объекта, распространяются в другие копии.

При синхронной репликации, если данная реплика (копия объекта, обновляемая автоматически при обновлении оригинала) обновляется, все другие реплики того же фрагмента данных также должны быть обновлены в одной и той же транзакции (транза́кция (англ. transaction, от лат. transactio 
 соглашение, договор) – минимальная логически осмысленная операция, которая имеет смысл и может быть совершена только полностью, см. wiki). Можно сказать, что на практике существует лишь одна версия данных.

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

В философской концепции развития по спирали, user-1 и user-2 осуществляют обмен данными через общую сетевую папку (Shared folder), как раньше это происходило в локальной сети. Но если в том случае для осуществления информационного обмена user-1 и user-2 должны были быть расположены не далее 80 метров друг от друга (максимальная дальность передачи информации, при которой гарантируется качественная связь без применения специальных усилителей-повторителей), то теперь их географическое местоположение значения не имеет.

Комментариев нет:

Отправить комментарий