СПОСОБ И СИСТЕМА ДЛЯ ПЕРЕДАЧИ ДАННЫХ ОТ ВЕБ-СЕРВЕРА КЛИЕНТСКИМ ТЕРМИНАЛЬНЫМ УСТРОЙСТВАМ ПОСРЕДСТВОМ ЛОКАЛЬНОЙ БЕСПРОВОДНОЙ КОММУНИКАЦИОННОЙ СЕТИ
METHOD AND SYSTEM FOR TRANSMITTING DATA FROM WEB SERVER TO CLIENT TERMINAL DEVICES VIA WIRELESS LOCAL AREA COMMUNICATION NETWORK

Область техники
Данное изобретение относится к информационным и телекоммуникационным технологиям и может быть использовано для передачи данных от веб-сервера на клиентские терминальные устройства посредством беспроводной локальной коммуникационной сети. В качестве данных могут быть использованы веб-приложения, метаданные, сопровождающие эти веб-приложения, команды управления веб-приложениями, а также мультимедийный контент (аудио и/или видео) как в виде записей фиксированной длины, так и в виде потоков в режиме реального времени. Изобретение может быть использовано при организации телепрезентаций на различного рода публичных мероприятиях, на которых предусмотрено выступление докладчиков перед аудиторией - конференции, семинары, форумы, симпозиумы и т.д.
Предшествующий уровень техники
В настоящее время проблема повышения эффективности передачи данных на большое количество клиентских устройств в беспроводных коммуникационных сетях становится весьма актуальной. И в данной области постоянно ведутся работы по улучшению качества и эффективности передачи данных посредством мультикастинга либо с применением технологий широковещательной передачи данных (бродкастинга).
Из уровня техники известен способ повышения качества мультикастовой передачи данных (патент US 2012/0140648 A1) путем введения во множество принимающих клиентских устройств так называемых станций мониторинга качества. Станции мониторинга при этом представляют собой специализированные клиентские устройства, оборудованные модулями беспроводной коммуникационной сети, а также специальным программным обеспечением. Задачей станций мониторинга качества является отслеживание качества приема передаваемых пакетов данных и фиксация фактов успешного приема пакетов, а также пакетов, принятых с ошибкой на различных участках зоны покрытия беспроводной сети. По мере фиксации результатов, станции мониторинга организуют обратную связь с сервером, осуществляющим мультикастовую передачу данных, и отправляют ему подтверждения об успешно принятых пакетах данных, а также о пакетах, принятых с ошибкой. Если хотя бы одна из задействованных станций мониторинга качества отправляет отчет о том, что какой-то пакет данных был принят с ошибкой, этот пакет ретранслируется повторно.
Такие станции мониторинга качества размешают на границах зоны вещания, где сигнал наиболее слабый и прием наименее устойчивый, где существуют высокие вероятности ошибок при приеме данных. Таким образом, описанный механизм позволяет повысить надежность при передаче данных.
В патенте US 2011/01765096 A1 представлена беспроводная коммуникационная система, управляющая параметрами передачи объектов данных в зависимости от их важности и полезности для принимающих клиентов. Данная система идентифицирует приоритеты передаваемых объектов данных в соответствии со степенью их важности и в зависимости от назначенных приоритетов регулирует ряд параметров передачи, в том числе битовую скорость (на физическом уровне), с которой будет передаваться тот или иной объект данных, меняет последовательность передачи тех или иных объектов в зависимости от их приоритетов, а также задает количество попыток ретрансмиссии при неудачном приеме для каждого объекта данных в отдельности.
В данной системе, так же как и в заявляемом изобретении, производится идентификация типа передаваемых данных. И к разным объектам данных применяются разные, независимые друг от друга параметры их передачи, в частности - для разных объектов используются разные битовые скорости передачи и определяется требуемое количество ретрансляций. В отличие от данного изобретения, в заявляемом изобретении для разных типов данных применяют независимые управляемые логические каналы (на прикладном уровне), в которых регулируют параметры передачи, в частности битовые скорости и требуемое количество ретрансляций.
Кроме того, в изобретении по патенту US 2011/01765096 A1 имеется существенный недостаток, связанный с тем, что передача данных осуществляется путем организации юникастовых соединений принимающих клиентских устройств с сервером передачи данных (соединения вида один-к-одному), и применяется механизм обратной связи от клиентов к серверу с целью подтверждения успешно принятых пакетов данных, что очень сильно ограничивает масштабируемость данной системы по количеству одновременно обслуживаемых клиентских устройств.
В настоящем изобретении, в отличие от рассмотренного патента США, этот недостаток преодолевается путем применения мультикастового вещания в беспроводной локальной коммуникационной сети совместно с циклической ретрансляцией данных либо с передачей данных путем дублирования пакетов данных и передачи их копий с задержкой во времени относительно оригиналов без использования обратной связи от клиентов.
Наиболее близким к заявляемому является способ беспроводной передачи контента одновременно на большое количество клиентских устройств с использованием инфраструктуры Wi-Fi сетей, представленный в международной заявке WO 2011/158164 A2. Способ включает подключение беспроводного передатчика контента, выполненного с возможностью передачи пакетов данных с использованием беспроводной Wi-Fi инфраструктуры, последовательную поставку набора пакетов данных беспроводному передатчику контента для беспроводной передачи, где упомянутый беспроводной передатчик контента осуществляет последовательную беспроводную передачу пакетов данных из упомянутого набора пакетов данных с помощью Wi-Fi инфраструктуры, при этом перед передачей каждого упомянутого пакета данных из набора данных беспроводной передатчик контента добавляет заголовок к указанному пакету данных, при этом заголовок включает заданный идентификатор общего назначения, позволяющий множеству пользовательских устройств получить доступ к указанному пакету данных, тем самым осуществляя передачу каждого пакета данных из указанного набора с данным заголовком. Способ дополнительно описывает, по меньшей мере, один системный приемник, выполненный с возможностью беспроводного приема указанных пакетов данных, передаваемых посредством беспроводного передатчика контента, при этом во время передачи пакетов данных, по крайней мере один системный приемник принимает хотя бы некоторые из указанных пакетов данных, при этом указанный системный приемник передает информацию о качестве приема принятых пакетов данных, где указанная передача информации, как предполагается, не отвечает модальности Wi-Fi. При этом при передаче данных не требуется для каждого клиентского устройства создавать отдельную сессию на уровне Wi-Fi.
Однако данное изобретение имеет ряд существенных отличий, ограничивающих эффективность его использования для передачи данных - в нем нет механизмов обеспечения надежной доставки данных на клиентские устройства в условиях отсутствия обратной связи от них. В то время как в настоящем изобретении такие механизмы являются важной и неотъемлемой частью.
Раскрытие изобретения
Задачей изобретения является создание технологии, позволяющей осуществлять высоконадежную передачу данных от веб-сервера одновременно на большое количество разнородных клиентских терминальных устройств посредством беспроводных локальных коммуникационных сетей с оптимизацией потребления коммуникационного ресурса (полосы пропускания) на воздушном интерфейсе этих сетей.
Технический результат заключается в обеспечении высокой маштабируемости полученного решения по количеству одновременно обслуживаемых клиентских терминальных устройств в локальной беспроводной коммуникационной сети (от нескольких сотен до тысячи клиентов, обслуживаемых одной точкой доступа), при одновременном обеспечении высокой надежности передачи данных (приближающейся к 100%) и оптимизации потребления трафика на воздушном интерфейсе беспроводной локальной коммуникационной сети.
Эти технические свойства заявляемого изобретения позволяют в итоге обеспечить покрытие большого количества клиентских терминальных устройств при использовании минимального объема элементов сетевой инфраструктуры. Например, внедрение данного изобретения приведет к тому, что количество пользовательских устройств, одновременно обслуживаемых одной точкой доступа в развернутой беспроводной Wi-Fi сети, существенно увеличится (с нескольких десятков до, потенциально, нескольких сотен), и в результате потребуется меньшее количество таких точек доступа для обеспечения покрытия территории, на которой размещаются все пользовательские устройства. Все это приведет к суммарному удешевлению коммуникационной инфраструктуры, а также к упрощению и ускорению процедур ее развертывания.
Поставленная задача решается тем, что в способе передачи данных от веб-сервера клиентским терминальным устройствам посредством локальной беспроводной коммуникационной сети, включающем подключение веб-сервера и клиентских терминальных устройств в локальную беспроводную коммуникационную сеть с возможностью передачи данных в данной сети, создание в сети группы мультикастового вещания, подключение клиентских терминальных устройств к созданной группе мультикастового вещания, передачу данных от веб-сервера в локальную беспроводную коммуникационную сеть в режиме мультикастового вещания, прием данных клиентскими терминальными устройствами, входящими в группу мультикастового вещания, и воспроизведение полученных данных на клиентских терминальных устройствах,
согласно изобретению, перед передачей данных от веб-сервера в локальную беспроводную коммуникационную сеть осуществляют предварительную подготовку данных для передачи, включающую, по меньшей мере, идентификацию типа объектов данных, в общей полосе пропускания беспроводной коммуникационной сети формируют один или несколько логических каналов, представляющие собой часть общей полосы пропускания беспроводной коммуникационной сети для каждого типа объектов данных, и производят дополнительную подготовку объектов данных к передаче, включающую фрагментацию объектов данных на множество пакетов данных, маркировку каждого пакета данных заголовком, содержащим, по меньшей мере, информацию для передачи пакета данных, а передачу пакетов данных с заголовками в беспроводную сеть осуществляют в сформированных логических каналах в режиме циклической ретрансляции пакетов данных или дублирования пакетов данных и передачи их с задержкой во времени относительно оригиналов, при этом прием пакетов данных клиентскими терминальными устройствами осуществляют с последующими этапами обработки, включающими идентификацию логических каналов, в рамках которых реализован прием пакета данных, перераспределение принятых пакетов по логическим каналам, с последующим контролем в каждом логическом канале целостности принятых пакетов данных, в случае нарушения целостности которых осуществляют их повторный прием, восстановление исходных объектов данных из множества полученных пакетов для воспроизведения на клиентских терминальных устройствах.
В качестве передаваемых данных могут быть использованы контент веб-приложений, и/или набор символов, содержащих информацию о командах управления веб-приложениями на клиентских терминальных устройствах, и/или метаданные передаваемых веб-приложений, и/или мультимедийный контент в виде аудио и/или видео записей фиксированной продолжительности и/или потока аудио и/или видео данных в режиме реального времени.
В процессе предварительной подготовки данных для передачи дополнительно маркируют объект данных соответствующим идентификатором типа объектов данных и уникальным идентификатором объекта.
При использовании в качестве данных контента веб-приложений и/или метаданных при предварительной подготовке данных к транспортировке объекты данных дополнительно объединяют в архив, для архива вычисляют хэш-код, с последующим присоединением хэш-кода к архиву в качестве контрольной суммы, а при использовании в качестве данных мультимедийного контента фиксированной продолжительности, при предварительной подготовке данных к транспортировке дополнительно вычисляют хэш-код, с последующим присоединением хэш-кода к объекту данных в качестве контрольной суммы.
В процессе формирования логического канала ему присваивают уникальный идентификатор, например «GUID - Globally Unique ID», для каждого из каналов задают, по меньшей мере, пропускную битовую скорость. Кроме того, при формировании каждого логического канала в нем создают буфер циклической ретрансляции объектов данных для размещения пакетов данных с заголовками перед передачей в сеть, при этом пакеты в буфере размещают в порядке возрастания их порядковых номеров.
Заголовок пакета данных дополнительно содержит информацию для контроля целостности пакетов данных и восстановления из них объектов данных. Заголовок может включать идентификатор логического канала, и/или идентификатор объекта данных, частью которого является пакет данных, и/или хэш-код пакета данных в качестве контрольной суммы, и/или порядковый номер пакета во множестве пакетов данных, составляющих объект данных.
Согласно изобретению режим циклической ретрансляции целесообразно применять для передачи веб-приложений, и/или набора символов, содержащих информацию о командах управления веб-приложениями, и/или метаданных, и/или мультимедийного контента фиксированной продолжительности, при этом режим циклической ретрансляции при передаче пакетов данных выполняют без задержки между окончанием предыдущего цикла передачи объекта данных и началом последующего цикла, с количеством таких ретрансляций, равным N, где N∈[1,T], где T - количество ретрансляций до окончания мультикастового вещания от веб-сервера.
Режим дублирования пакетов данных и передачи их с задержкой во времени относительно оригиналов целесообразно использовать для передачи мультимедийного контента реального времени. При этом значение величины задержки передачи копии пакетов относительно их оригиналов выбирают не превышающим значение допустимого отклонения от предполагаемой периодичности следования пакета.
При передаче в сеть пакетов данных с символами, содержащими информацию о командах управления, осуществляют управление буфером циклических ретрансляций, при котором фиксируют размер буфера, и при его переполнении добавление новой команды осуществляют через удаление наиболее ранней, при этом новую команду размещают в конце списка команд, находящихся в буфере. При управлении буфером циклических ретрансляций дополнительно контролируют частоту поступления новых пакетов с набором символов, содержащих информацию о командах управления, и частоту их передачи в сеть, с обеспечением, по меньшей мере, однократной передачи пакета из буфера в сеть.
В процессе передачи пакетов данных в сформированных логических каналах осуществляют управление параметрами канала, по меньшей мере, битовой скоростью данного канала. Управление параметрами логического канала осуществляют посредством определения эффективной полосы пропускания беспроводной коммуникационной сети, и в зависимости от изменения данного параметра изменяют битовую скорость логических каналов.
В случае нарушения целостности принятых пакетов в режиме циклической ретрансляции их повторный прием осуществляют на следующем цикле ретрансляции. В случае нарушения целостности принятых пакетов в режиме дублирования пакетов данных и передачи их с задержкой во времени относительно оригиналов, восстановление данного пакета осуществляют посредством повторного приема его копии.
При восстановлении исходных объектов данных для каждого пакета, целостность которого подтверждена, анализируют идентификатор объекта данных, частью которого является принятый пакет, для каждого вновь обнаруженного объекта данных создают накопительный буфер, в который помещают все корректно принятые пакеты, ассоциированные с данным объектом, и при заполнении буфера набором пакетов данных, составляющих объект, осуществляют дефрагментацию объекта. При использовании в качестве данных контента веб-приложений, и/или метаданных, и/или мультимедийного контента фиксированной продолжительности после дефрагментации объекта у собранного объекта с помощью контрольной суммы данного объекта проверяют его целостность, и в случае обнаружения факта нарушения целостности объекта данных накопительный буфер полностью очищают и повторяют процедуру приема пакетов данных, составляющих этот объект. Размещение в буфере корректно принятых пакетов осуществляют в последовательности, соответствующей их порядковому номеру во множестве пакетов данных, составляющих объект. Перед воспроизведением полученных данных, представляющих собой метаданные или веб-приложение, осуществляют их разархивирование.
Поставленная задача решается также тем, что в системе передачи данных от веб-сервера клиентским терминальным устройствам, посредством локальной беспроводной коммуникационной сети, включающей инфраструктуру локальной беспроводной коммуникационной сети; веб-сервер, выполненный с возможностью создания в сети группы мультикастового вещания и передачи данных от веб-сервера в локальную беспроводную коммуникационную сеть в режиме мультикастового вещания; и, по меньшей мере, одно клиентское терминальное устройство, выполненное с возможностью подключения к группе мультикастового вещания и приема данных из локальной беспроводной коммуникационной сети и воспроизведения полученных данных на клиентском терминальном устройстве, согласно изобретению, веб-сервер включает один или несколько модулей предварительной подготовки данных для передачи в сеть, сформированных в зависимости от типа передаваемых данных, которые связаны с модулем формирования логических каналов и организации ретрансляции, выполненным с возможностью формирования одного или нескольких логических каналов для каждого типа объектов данных в общей полосе пропускания беспроводной коммуникационной сети, и дополнительной подготовки объектов данных к передаче, включающей фрагментацию объектов данных на множество пакетов данных, маркировку каждого пакета данных заголовком, содержащим, по меньшей мере, информацию для передачи пакета данных, а также организации режима циклической ретрансляции пакетов данных или дублирования пакетов данных и передачи их копий с задержкой во времени относительно оригиналов, а клиентское терминальное устройство включает сепаратор логических каналов, выполненный с возможностью идентификации логических каналов, в рамках которых реализован прием пакетов данных, и перераспределения принятых пакетов по логическим каналам, связанный с одним или несколькими модулями контроля целостности и восстановления данных, сформированных в зависимости от типа передаваемых данных, выполненными с возможностью контроля целостности принятых пакетов данных и повторного приема пакетов для восстановления целостности в случае ее нарушения, а также восстановления исходных объектов данных из множества полученных пакетов для воспроизведения на клиентском терминальном устройстве.
В качестве модулей предварительной подготовки данных система содержит модуль предварительной подготовки веб-приложений, и/или модуль предварительной подготовки команд управления, и/или модуль предварительной подготовки метаданных, и/или модуль предварительной подготовки мультимедийного контента в виде аудио и/или видео записей фиксированной продолжительности и/или потока аудио и/или видео данных в режиме реального времени.
Один или несколько модулей предварительной подготовки данных выполнены с возможностью дополнительной маркировки объекта данных соответствующим идентификатором типа объектов данных и уникальным идентификатором объекта.
При использовании в качестве данных контента веб-приложений и/или метаданных соответствующие модули предварительной подготовки данных выполнены с возможностью объединения в архив объектов данных, вычисления хэш-кода для архива, с последующим присоединением хэш-кода к архиву в качестве контрольной суммы.
Веб-сервер дополнительно включает модуль хранения веб-приложений, и/или модуль хранения метаданных, и/или модуль хранения мультимедийного контента, и/или источник мультимедийного контента реального времени, и связанный с ними передающий серверный модуль, при этом передающий серверный модуль выполнен с возможностью диспетчеризации данных между упомянутыми модулями хранения соответствующих типов данных, и соответствующими модулями предварительной подготовки данных для передачи. Передающий серверный модуль выполнен с возможностью идентификации типа объектов данных в процессе предварительной подготовки данных к передаче, формирования команд управления веб-приложениями и передачи сформированных команд в модуль предварительной подготовки команд управления. Источник мультимедийного контента реального времени представляет собой модуль, выполненный с возможностью захвата видео и/или аудио потока с одной или нескольких видеокамер и/или с одного или нескольких микрофонов, соответственно, кодирования захваченного видео и/или аудио потока, представления мультимедийного контента и обеспечения доступа к кодированному потоку по запросу передающего серверного модуля. При этом модуль предварительной подготовки мультимедийного контента связан с модулем хранения мультимедийного контента и/или с источником мультимедийного контента реального времени через передающий серверный модуль. При использовании в качестве данных мультимедийного контента фиксированной продолжительности модуль предварительной подготовки мультимедийного контента выполнен с возможностью дополнительного вычисления хэш-кода, с последующим присоединением хэш-кода к объекту данных в качестве контрольной суммы.
Модуль формирования логических каналов и организации ретрансляции выполнен с возможностью присвоения уникального идентификатора логического канала в процессе его формирования, а также с возможностью формирования заголовка пакета данных, содержащего дополнительно информацию для контроля целостности пакета данных и восстановления объекта данных.
Модуль формирования логических каналов и организации ретрансляции для каждого логического канала содержит буфер циклической ретрансляции объектов данных, который выполнен с возможностью размещения пакетов данных с заголовками, составляющих объекты данных, перед передачей в сеть, в порядке возрастания их порядковых номеров. Кроме того, буфер циклических ретрансляций выполнен с возможностью фиксации размера буфера при передаче в сеть пакетов данных с символами, содержащими информацию о командах управления, и управления логикой работы буфера, при которой в случае его переполнения новую команду добавляют через удаление наиболее ранней, при этом новую команду размещают в конце списка команд, находящихся в буфере. Буфер циклических ретрансляций выполнен также с возможностью контроля частоты поступления новых пакетов с набором символов, содержащих информацию о командах управления, и контроля частоты их передачи в сеть, с обеспечением, по меньшей мере, однократной передачи пакета из буфера в сеть.
Модуль формирования логических каналов и организации ретрансляции выполнен с возможностью независимого управления параметрами работы логических каналов в процессе передачи пакетов данных, при этом управление осуществляют, по меньшей мере, битовой скоростью логического канала. Управление параметрами логического канала осуществляют посредством определения эффективной полосы пропускания беспроводной коммуникационной сети, и в зависимости от изменения данного параметра изменят битовую скорость логических каналов. При этом данный модуль может обеспечивать режим циклической ретрансляции при передаче пакетов данных без задержки между окончанием предыдущего цикла передачи объекта данных и началом последующего цикла, с количеством таких ретрансляций, равным N, где N∈[1,T], где T - количество ретрансляций до окончания мультикастового вещания от веб-сервера. Кроме того, модуль формирования логических каналов и организации ретрансляции может быть выполнен с возможностью выбора величины задержки передачи копии пакетов данных относительно их оригиналов таким образом, чтобы она не превышала значение допустимого отклонения от предполагаемой периодичности следования пакетов.
Для создания в сети группы мультикастового вещания и передачи пакетов данных в беспроводную сеть веб-сервер может содержать модуль управления мультикастингом и передающий беспроводной коммуникационный модуль, при этом модуль управления мультикастингом связан с одной стороны с модулем формирования логических каналов и организации ретрансляции, с другой - с передающим беспроводным коммуникационным модулем. Модуль управления мультикастингом выполнен с возможностью организации группы мультикастового вещания в беспроводной коммуникационной сети с заданным IP-адресом для мультикастового вещания и последующей передачей пакетов на данный IP-адрес, полученных от модуля формирования логических каналов и организации ретрансляции пакетов данных. Передающий беспроводной коммуникационный модуль выполнен с возможностью передачи данных в беспроводной локальной коммуникационной сети для обеспечения непосредственного взаимодействия веб-сервера со всеми клиентскими терминальными устройствами.
Для подключения к группе мультикастового вещания и приема данных из локальной беспроводной коммуникационной сети клиентское терминальное устройство содержит принимающий беспроводной коммуникационный модуль, связанный с сепаратором логических каналов.
В качестве модулей контроля целостности и восстановления данных система содержит модуль контроля целостности и восстановления веб-приложений, и/или модуль контроля целостности и восстановления команд управления, и/или модуль контроля целостности и восстановления метаданных, и/или модуль контроля корректности мультимедийного контента в виде аудио и/или видео записей фиксированной продолжительности и/или потока аудио и/или видео данных в режиме реального времени. Модули контроля целостности и восстановления данных, переданных в режиме циклической ретрансляции, выполнены с возможностью повторного приема пакетов на следующем цикле ретрансляции. Модуль контроля корректности мультимедийного контента, переданного в режиме дублирования пакетов данных и передачи их с задержкой во времени относительно оригиналов, выполнен с возможностью повторного приема копии данного пакета. Кроме того, модули контроля целостности и восстановления данных могут содержать накопительные буферы для каждого принимаемого объекта данных и выполнены с возможностью размещения корректно принятых пакетов данных в накопительных буферах в последовательности, соответствующей их порядковому номеру во множестве пакетов данных, составляющих объект.
Для восстановления исходных объектов данных из множества полученных пакетов модули контроля целостности и восстановления данных выполнены с возможностью дефрагментации объекта данных при заполнении буфера полным набором корректно принятых пакетов данных, составляющих объект, а также проверки целостности собранного объекта данных с помощью его контрольной суммы, и при обнаружении факта нарушения целостности объекта данных удаление всех пакетов данных из накопительного буфера и повтора процедуры приема пакетов данных, составляющих этот объект.
Клиентское терминальное устройство может дополнительно содержать внутренний веб-сервер, выполненный с возможностью представления веб-приложений пользователю, который связан с одним или несколькими модулями контроля целостности и восстановления данных.
Кроме того, модули контроля целостности и восстановления веб-приложений и метаданных выполнены с возможностью разархивирования полученных данных перед их отправкой на внутренний веб-сервер.
Краткое описание чертежей
Изобретение иллюстрируется чертежами, где на фиг.1 - представлена внутренняя структура веб-сервера и клиентского терминального устройства в системе передачи данных в соответствии с заявляемым изобретением. На фиг.2 представлена блок-диаграмма, поясняющая основные этапы передачи данных веб-сервером в соответствии со способом в рамках заявляемого изобретения. На фиг.3 представлена блок-диаграмма, поясняющая этап предварительной подготовки данных к передаче в соответствии со способом в рамках заявляемого изобретения. На фиг.4 представлена блок-диаграмма, поясняющая этап дополнительной подготовки данных к передаче в соответствии со способом в рамках заявляемого изобретения. На фиг.5 представлена блок-диаграмма, поясняющая основные этапы приема данных клиентским терминальным устройством в соответствии со способом в рамках заявляемого изобретения.
Лучший вариант осуществления изобретения
В настоящем изобретении представлен способ доставки данных (в частности, динамических веб-приложений) от веб-сервера на большое количество клиентских терминальных устройств, объединенных посредством локальной беспроводной коммуникационной сети. А также представлена система, реализующая данный способ.
Отличительной особенностью настоящего изобретения является то, что с целью повышения масштабируемости системы передачи данных (например, веб-приложений), т.е. увеличения количества клиентских терминальных устройств, работающих одновременно с передаваемым в заданный момент времени веб-приложением, веб-сервер, предоставляющий заданное веб-приложение, а также все клиентские терминальные устройства, использующие данное приложение, подключают в общую локальную беспроводную коммуникационную сеть, а передачу веб-приложений от веб-сервера ко всем клиентским терминальных устройствам осуществляют посредством мультикастового вещания контента веб-приложений в данной коммуникационной сети с периодическим циклическим его повторением.
В другом варианте изобретения, веб-сервер подключают к точке доступа (маршрутизатору) локальной беспроводной коммуникационной сети с помощью проводного соединения, а все клиентские терминальные устройства подключают в беспроводную сеть аналогично предыдущему варианту. И при этом в беспроводной локальной коммуникационной сети вводят режим мультикастового вещания, аналогично предыдущему варианту изобретения.
Таким образом, введение режима мультикастового вещания контента веб-приложений в сочетании с циклическим его повторением в течение длительного времени позволяет обеспечить высоконадежную доставку веб-приложений на все клиентские терминальные устройства без необходимости получения обратной связи от этих устройств в виде подтверждений о доставке или иных сообщений. Отсутствие графика обратной связи от клиентских терминальных устройств, в свою очередь, обеспечивает большую независимость данного решения от количества клиентских терминальных устройств, подключаемых одновременно к заданной беспроводной коммуникационной сети, а следовательно, разделяющих между собой радиоресурс на воздушном интерфейсе локальной беспроводной коммуникационной сети, что и является ключом к высокой масштабируемости решения в соответствии с данным изобретением.
В соответствии с данным изобретением, наряду с циклической мультикастовой передачей всего контента веб-приложений, веб-сервер выполнен с возможностью трансляции на все подключенные клиентские терминальные устройства посредством мультикастового вещания других видов данных, среди которых можно выделить:
- Наборы символов, содержащих информацию о командах управления отображением веб-приложений (здесь и далее для простоты изложения используется термин «команды управления»). Эти команды, в частности, могут регламентировать на стороне клиентских терминальных устройств временной порядок, логику и способ отображения отдельных элементов передаваемых веб-приложений. В потоке передаваемых команд управления при этом выделяется так называемое окно ретрансляции, представляющее собой некое подмножество команд управления из потока. Все команды управления, попадающие в данный момент в границы выделенного окна ретрансляции, циклически повторяются с целью обеспечения их высоконадежной доставки клиентским терминальным устройствам без необходимости получения обратной связи от этих устройств. При поступлении в поток новой команды управления она сразу же попадает в границы окна ретрансляции и вместе с остальными командами циклически ретранслируется посредством мультикастинга в локальной беспроводной коммуникационной сети, при этом самая «старая» по времени поступления команда, находящаяся в этот момент в границах окна ретрансляции, удаляется из него и более никогда не транслируется. В результате получается эффект скольжения окна ретрансляции вдоль потока команд управления по мере поступления в этот поток все новых и новых команд.
При этом, в одном из вариантов данного изобретения, частота поступления новых команд управления в поток, размер окна ретрансляции (т.е. количество команд управления, находящихся одновременно в границах заданного окна ретрансляции) и периодичность повторения всего окна ретрансляции в локальную беспроводную коммуникационную сеть согласуют между собой таким образом, чтобы каждая вновь поступившая в поток команда была повторена (ретранслирована посредством мультикастинга в эфир) не менее K раз до момента, когда она будет замещена другими более новыми командами управления и выйдет за границы окна ретрансляции (иначе говоря, до момента, когда данная команда управления более не будет ретранслироваться). Здесь K является одним из регулируемых параметров в рамках данного способа и должно быть обязательно не менее 1. Как будет описано ниже, в системе, согласно данному изобретению, окно ретрансляции реализуется в виде так называемого буфера циклической циклической ретрансляции фиксированного размера. При этом размер окна ретрансляции совпадает с размером буфера ретрансляции.
- Метаданные, ассоциированные с передаваемыми веб-приложениями, представляют собой еще один вид данных, передаваемых посредством циклической ретрансляции в рамках способа в соответствии с данным изобретением. Описываемые метаданные могут представлять собой некую служебную информацию, сопровождающую передаваемые веб-приложения, но не являющуюся при этом частью контента этих веб-приложений. Примером таких метаданных может быть информация о пользователях терминальных клиентских устройств, а также о правилах доступа этих пользователей к контенту передаваемых веб-приложений и т.д.
Метаданные передают от веб-сервера клиентским терминальным устройствам посредством мультикастового вещания в локальной беспроводной коммуникационной сети. И при этом (аналогично предыдущим случаям) применяют циклическую ретрансляцию метаданных с целью обеспечения высоконадежной доставки на все заинтересованные клиентские терминальные устройства без необходимости получения обратной связи от них.
- Еще одним видом данных, передаваемых от веб-сервера ко множественным клиентским терминальным устройствам, является мультимедийный контент. Мультимедийный контент в рамках данного изобретения условно делится на два больших класса: мультимедийный контент фиксированной продолжительности (здесь и далее также называется мультимедийный контент по запросу) - представляет собой некий массив аудио и/или видео данных, например заранее записанный видеоролик со звуковым сопровождением и т.д., второй категорией является мультимедийный контент реального времени - аудио/видео, захваченное с видеокамер, микрофонов, либо потоки вещания телевидения и радио. В соответствии со способом в рамках данного изобретения, мультимедийный контент (обоих видов) передают также посредством мультикастового вещания в беспроводной локальной коммуникационной сети. Для обеспечения высоконадежной доставки мультимедийного контента по запросу в одном из вариантов изобретения применяют метод циклической ретрансляции.
При передаче мультимедийного контента реального времени в одном из вариантов изобретения для повышения надежности передачи применяют так называемый метод трансляции «внахлест». Суть данного метода заключается в том, что каждый пакет данных в передаваемом потоке мультимедийного контента дублируют и его копию передают в беспроводную локальную коммуникационную сеть с некоторой задержкой во времени относительно оригинала. Таким образом, получается, что вслед за основным потоком данных в беспроводную локальную коммуникационную сеть передается еще один поток - его копия, идущая с задержкой во времени относительно оригинального потока. В случае, когда на каком-либо из клиентских терминальных устройств будет обнаружен некорректный прием очередного пакета данных из основного потока вещания мультимедийного контента (ошибки приема могут возникнуть, например, вследствие помех в радиоканале на воздушном интерфейсе беспроводной локальной коммуникационной сети, либо по каким-то иным причинам), этот некорректный пакет восстанавливают за счет его повторного приема из дублирующего потока вещания, идущего следом с небольшим отставанием от основного потока. При этом для корректной работы системы приема и отображения мультимедийного контента реального времени накладывают определенные ограничения на величину задержки дублирующего потока относительно основного. В частности, данная величина задержки не должна превышать значения приемлемого джиттера (tolerated jitter), являющегося одним из важных параметров требуемого качества обслуживания в беспроводной локальной коммуникационной сети (QoS) для данного типа мультимедийного контента. Термином приемлемый джиттер обозначается величина допустимого отклонения от предполагаемой периодичности следования пакетов. Приблизительные значения данного параметра для различных видов мультимедийного контента имеют следующий вид: для потоковой передачи видео в сети Интернет приемлемый джиттер приблизительно 200 мс, для контента телевидения высокой четкости (HDTV) приемлемый джиттер приблизительно 200 мс, для видео, кодированного в формат Н.264, приемлемый джиттер приблизительно 20 мс, для видео без сжатия приемлемый джиттер приблизительно 10 мс.
Структурная схема системы, реализующей способ в соответствии с данным изобретением, представлена на Фиг.1.
Как видно из Фиг.1, система доставки веб-приложений состоит из веб-сервера (модуль 01), подключенного к беспроводной локальной коммуникационной сети (модуль 02), одного или нескольких клиентских терминальных устройств (модули 03), также подключенных к данной сети. При этом веб-сервер посредством мультикастового вещания транслирует (передает) контент веб-приложений, мультимедийный контент, а также все необходимые сопутствующие метаданные через беспроводную локальную коммуникационную сеть на множество клиентских терминальных устройств.
Передающий веб-сервер (модуль 01) состоит из модулей хранения данных, в числе которых: модуль хранения веб-приложений (модуль 04), модуль хранения метаданных (модуль 05), модуль хранения мультимедийного контента по запросу (фиксированной продолжительности) (модуль 06), а также один или несколько источников мультимедийного контента реального времени (модуль 07). Также в состав веб-сервера входят: передающий серверный модуль (модуль 08), модули предварительной подготовки разных видов передаваемого контента к транспортировке (передаче), среди которых выделяются: модуль предварительной подготовки веб-приложений (модуль 09), модуль предварительной подготовки команд управления (модуль 10), модуль предварительной подготовки метаданных (модуль 11) и модуль подготовки мультимедийного контента (модуль 12). Наряду с этим в состав веб-сервера входят модуль формирования логических каналов и организации ретрансляции (модуль 13), модуль управления мультикастингом (модуль 14), а также передающий беспроводной коммуникационный модуль (модуль 15).
Модуль хранения веб-приложений представляет собой модуль, отвечающий за хранение контента веб-приложений на веб-сервере и обеспечение доступа к ним. Контент веб-приложения в общем случае может представлять собой набор взаимосвязанных объектов данных, таких как веб-страницы в формате HTML, модули клиентского программного кода на языке Java Script, стилевые шаблоны для веб-страниц в формате CSS, объекты данных, представленные в формате одного из языков описания структурированных данных, таких как XML, JSON и др., растровые изображения (рисунки, фотографии и др.), встраиваемые в веб-страницы в процессе их отображения на клиентских терминальных устройствах. Данные изображения могут быть представлены в любом из форматов представления растровой графики BMP, JPEG, PNG и т.д. Также это могут быть GIF-анимации. Объекты векторной графики, представленные, например, в формате SVG, также могут входить в состав контента веб-приложений.
В рамках данного изобретения в модуле хранения веб-приложений применяют любой из известных методов хранения данных и обеспечения доступа к ним, например, все объекты данных веб-приложений могут храниться в виде отдельных файлов в файловой системе веб-сервера, а доступ к ним может осуществляться стандартными средствами доступа к файлам, предусмотренными операционной средой веб-сервера. Также для хранения данных веб-приложений используют известные системы управления базами данных (СУБД), такие как MySQL, например, и др.
Модуль хранения веб-приложений (модуль 04) предоставляет полный контент веб-приложений, т.е. все имеющиеся объекты данных, ассоциированные с заданным веб-приложением, передающему серверному модулю по его запросу, для дальнейшей отправки (передачи) их клиентским терминальным устройствам.
Модуль хранения метаданных (модуль 05) представляет собой модуль, отвечающий за хранение всех метаданных, ассоциированных с передаваемыми в беспроводную локальную коммуникационную сеть веб-приложениями, а также за обеспечение доступа к этим данным. Примером таких метаданных может быть информация о пользователях терминальных клиентских устройств, на которые проводится в данный момент трансляция веб-приложений, также это может быть информация о правилах доступа всех пользователей к контенту передаваемых веб-приложений и т.д.
Упомянутые метаданные могут быть представлены в любом из известных форматов описания структурированных данных, например в XML, JSON, либо даже в виде текстовых строк, содержащих пары атрибут - значение, разделенных запятыми (т.н. CSV - Comma-Separated Values) и т.д.
В рамках данного изобретения в модуле хранения метаданных (аналогично модулю 04) применяют любой из известных методов хранения данных и обеспечения доступа к ним, например, все объекты метаданных могут храниться в виде отдельных файлов в файловой системе веб-сервера, а доступ к ним может осуществляться стандартными средствами доступа к файлам, предусмотренными операционной средой веб-сервера. Также для хранения метаданных используют известные системы управления базами данных (СУБД), такие как MySQL, например, и др.
Модуль хранения метаданных предоставляет все метаданные, ассоциированные с передаваемыми веб-приложениями, передающему серверному модулю (модуль 08) по его запросу для дальнейшей отправки их клиентским терминальным устройствам.
Модуль хранения мультимедийного контента (модуль 06) представляет собой модуль, отвечающий за хранение всех мультимедийных объектов (аудио и видео записей) и обеспечение доступа к ним по запросу от передающего серверного модуля. При этом сами мультимедийные объекты могут быть представлены в любом из известных форматов представления мультимедийного контента, например аудиозаписи могут быть представлены в форматах MP3, WAV и т.д., видеозаписи могут быть кодированы, например, с помощью кодеков MPEG-4 Visual, H.264, VP8 и др. при аудиосопровождении, кодированном в AAC, MP3, Vorbis и других форматах.
В рамках данного изобретения в модуле хранения мультимедийного контента (аналогично предыдущим модулям) применяют любой из известных методов хранения данных и обеспечения доступа к ним, например, все аудио- и видеозаписи могут храниться в виде отдельных файлов в файловой системе веб-сервера, а доступ к ним может осуществляться стандартными средствами доступа к файлам, предусмотренными операционной средой веб-сервера. Также для хранения используют известные системы управления базами данных (СУБД), такие как MySQL, например, и др.
Модуль 07 представляет собой источник мультимедийного контента реального времени. В качестве такого источника может выступать программный (либо аппаратно-программный) модуль, осуществляющий захват видео или аудио с одной или нескольких видеокамер и/или с одного или нескольких микрофонов соответственно. Данный модуль осуществляет кодирование захваченного видео- и/или аудиопотока в один из известных форматов представления мультимедийного контента и обеспечивает доступ к этому кодированному потоку по запросу передающего серверного модуля (модуль 08). Мультимедийный поток реального времени в данном изобретении может быть представлен, например, в формате H.264 для видеоряда, AAC для звукового сопровождения, мультиплексированных и упакованных, например, в потоковом контейнере TS. Возможны и любые другие варианты использования известных форматов представления мультимедийного контента реального времени.
Передающий серверный модуль (модуль 08) представляет собой программный модуль, основной задачей которого является координация транспортировки всех видов данных на веб-сервере для дальнейшей трансляции (передачи) их на множество клиентских терминальных устройств, а также генерация команд управления отображением веб-приложений на стороне клиентских терминальных устройств.
Передающий серверный модуль инициирует передачу веб-приложений, метаданных, ассоциированных с ними, а также обоих видов мультимедийного контента (т.е. заранее созданного мультимедийного контента (по запросу), хранящегося на веб-сервере, а также контента реального времени). При этом модуль 08 осуществляет диспетчеризацию данных между источниками этих данных (модули 04-07) и соответствующими модулями предварительной подготовки данных к передаче (модули 09-12), запрашивая требуемые объекты данных у соответствующих модулей хранения и передавая их в модули 09-12 для предварительной подготовки к дальнейшей передачи на все клиентские терминальные устройства в беспроводной локальной коммуникационной сети.
Модуль предварительной подготовки веб-приложений (модуль 09) представляет собой программный модуль, основной задачей которого является преобразование данных контента передаваемых веб-приложений в формат, оптимальный для дальнейшей их трансляции в беспроводной локальной коммуникационной сети.
Модуль 09 функционирует следующим образом - на вход данного модуля из хранилища веб-приложений (модуль 04) при посредничестве передающего серверного модуля (модуль 08) поступает некий набор объектов данных, представляющий собой весь контент текущего передаваемого веб-приложения - веб-страницы в HTML, модули клиентского программного кода на клиентском скриптовом языке Java Script, шаблоны стилевого оформления веб-страниц в формате CSS, растровые и векторные изображения и прочее.
Все полученные объекты данных упаковывают в единый архив, представленный, например, в ZIP, RAR, 7z или иных форматах с применением сжатия, а также, опционально, в этот архив может быть добавлена избыточная информация для его последующего восстановления в случае частичного повреждения при передаче. При этом для упаковки, сжатия и добавления информации для восстановления архива применяются известные ранее механизмы, предоставляемые, например, существующими и доступными программными инструментами для работы с архивами.
После того как будет получен архив, содержащий все объекты данных, составляющих веб-приложение, модулем предварительной подготовки веб-генерируется дополнительная служебная информация, используемая в дальнейшем для управления процессом передачи данного архива. Эта служебная информация, например, позволяет идентифицировать и классифицировать передаваемый объект данных в модуле формирования логических каналов и организации ретрансляции (модуль 13) для применения к нему соответствующего механизма надежной доставки на клиентские терминальные устройства.
Наряду с генерацией необходимой служебной информации, архив веб-приложения, подвергается операции хэширования. То есть на основе побитового представления этого архива как объекта данных вычисляется специальный так называемый хэш-код, который необходим в дальнейшем в качестве так называемой контрольной суммы на стороне принимающих клиентских терминальных модулей для контроля целостности полученного веб-приложения. Операция хэширования является известной процедурой и для ее осуществления в рамках данного изобретения может быть использован любой из известных и доступных программных модулей, осуществляющих такие операции.
Далее сформированный архив веб-приложения вместе с присоединенной к нему служебной информацией и хэш-кодом (контрольной суммой) передается на выход данного модуля и от него поступает в модуль формирования логических каналов и организации ретрансляции (модуль 13).
Модуль предварительной подготовки команд управления (модуль 10) представляет собой программный модуль, основной задачей которого является преобразование команд управления отображением веб-приложений, получаемых от передающего серверного модуля (модуль 08) в формат, оптимальный для дальнейшей их транспортировки посредством беспроводной локальной коммуникационной сети.
На вход данного модуля от передающего серверного модуля поступает поток управляющих команд, адресованных клиентским терминальным устройствам. Эти команды, в частности, могут регламентировать временной порядок, логику и способ отображения отдельных элементов передаваемых веб-приложений. В качестве формата представления команд управления может быть использован любой из известных форматов представления объектов структурированных данных, например XML, JSON, CSV и другие.
Модуль предварительной подготовки команд управления при этом генерирует дополнительную служебную информацию, необходимую в дальнейшем для управления процессом транспортировки команд (в модуле 13), аналогично тому, как было описано выше для архива веб-приложений.
Наряду с генерацией служебной информации, данный модуль подвергает команду управления операции хэширования, в результате которой вычисляется хэш-код объекта данных, представляющего собой эту команду. Затем полученный хэш-код в качестве контрольной суммы добавляется к сообщению. И, наконец, команда управления уже вместе с необходимой служебной информацией и контрольной суммой передается на выход данного модуля и с него поступает в модуль формирования логических каналов и организации ретрансляции (модуль 13).
Модуль предварительной подготовки метаданных (модуль 11) представляет собой программный модуль, основной задачей которого является преобразование всех объектов метаданных, ассоциированных с передаваемыми веб-приложениями в формат, оптимальный для транспортировки всем клиентским терминальным устройствам посредством беспроводной локальной коммуникационной сети.
Рассматриваемые метаданные представляют собой некую служебную информацию, сопровождающую передаваемые веб-приложения, но не являющуюся при этом частью контента этих веб-приложений. Примером таких метаданных может быть информация о пользователях терминальных клиентских устройств, а также о правилах доступа этих пользователей к контенту передаваемых веб-приложений и т.д. Физически эти метаданные представляют собой некое множество объектов данных, сериализованных в любой из известных форматов представления структурированных данных, например XML, JSON, CSV и др.
Модуль предварительной подготовки метаданных к транспортировке функционирует следующим образом - на вход данного модуля из модуля хранения метаданных (модуль 05) при посредничестве передающего серверного модуля (модуль 08) поступает некий набор объектов метаданных, описанных выше. Все полученные объекты данных упаковывают в единый архив, представленный, например, в ZIP, RAR, 7z или иных форматах с применением сжатия, а также, опционально, в этот архив может быть добавлена избыточная информация для его последующего восстановления в случае частичного повреждения при передаче. При этом для упаковки, сжатия и добавления информации для восстановления архива применяют известные ранее механизмы, предоставляемые, например, существующими и доступными программными инструментами для работы с архивами.
После того как архив метаданных будет сформирован, описываемый модуль генерирует дополнительную служебную информацию, необходимую в дальнейшем для управления процессом транспортировки архива метаданных (в модуле 13), аналогично тому, как было описано выше для архива веб-приложений и команд управления.
Наряду с генерацией служебной информации, данный модуль подвергает архив метаданных операции хэширования, в результате которой вычисляется хэш-код архива метаданных. Затем полученный хэш-код в качестве контрольной суммы добавляют к архиву для контроля его целостности при приеме на клиентских терминальных устройствах.
И, наконец, полученный архив метаданных, вместе с необходимой служебной информацией и контрольной суммой передают на выход данного модуля, откуда передается в модуль 13.
Модуль предварительной подготовки мультимедийного контента (модуль 12) представляет собой программный модуль, принимающий на вход поток мультимедийного контента двух видов: созданные заранее видео и аудио ролики, получаемые из модуля хранения мультимедийного контента (модуль 06) при посредничестве модуля 08, а также видео и аудио потоки реального времени, получаемые от источников мультимедийного контента реального времени (модуль 07) при посредничестве модуля 08.
Данный модуль 12 маркирует каждый получаемый мультимедийный поток дополнительной служебной информацией, необходимой в дальнейшем для его идентификации, классификации и управления процессом его транспортировки. И затем передает все мультимедийные потоки вместе с указанной служебной информацией в модуль 13.
Модуль формирования логических каналов и организации ретрансляции (модуль 13) представляет собой программный модуль, основной задачей которого является обеспечение механизмов высоконадежной доставки веб-приложений и других типов данных на большое количество клиентских терминальных устройств посредством беспроводной локальной коммуникационной сети.
Как уже упоминалось выше, суть механизмов обеспечения высоконадежной доставки, в соответствии с настоящим изобретением, заключается в периодической ретрансляции передаваемых объектов данных посредством мультикастового вещания в беспроводной локальной коммуникационной сети в течение длительного времени, что позволяет исключить необходимость получения обратной связи от всех принимающих клиентских терминальных устройств, обеспечивая при этом высокую надежность доставки контента. При этом в общем коммуникационном ресурсе (суммарной полосе пропускания) беспроводной коммуникационной сети формируются так называемые управляемые логические каналы передачи объектов данных. В общем случае, несколько таких управляемых логических каналов может быть сформировано и будет существовать одновременно, разделяя при этом общий коммуникационный ресурс беспроводной сети. Сущность понятия управляемых логических каналов и принципы их формирования будут рассмотрены ниже.
Принцип работы данного модуля заключается в следующем: на вход данного модуля от модулей предварительной подготовки данных (модули 09-12) поступает (в общем случае, одновременно) несколько видов данных (типов объектов данных), среди которых можно выделить:
- веб-приложения, упакованные в архивы
- управляющие команды, для координации порядка и способа отображения веб-приложений на клиентских терминальных устройствах
- метаданные, ассоциированные с передаваемыми веб-приложениями, также упакованные в архив
- мультимедийный контент по запросу, представляющий собой записанные аудио и видеоролики
- мультимедийный контент реального времени
- возможны также какие-либо иные виды объектов данных
Все объекты данных, поступающие на вход рассматриваемого модуля, маркированы специальной служебной информацией (на этапе их предварительной подготовки к передаче в модулях 09-12), позволяющей идентифицировать, к какому конкретно из приведенных выше типов данных относится тот или иной объект.
Для каждого типа объектов данных в модуле 13 формируется свой отдельный управляемый логический канал, позволяющий осуществлять высоконадежную передачу всех объектов данных этого типа независимо от объектов всех других типов и управлять этим процессом передачи также независимо от других типов данных, выбирая при этом наиболее подходящие алгоритмы (режимы) обеспечения надежности, а также независимо управлять параметрами работы данного канала (в частности, битовой скоростью передачи данных в логическом канале), влияя тем самым на ряд характеристик, в частности на итоговое время получения корректного целостного объекта данных клиентскими терминальными устройствами в условиях нестабильной работы радиоканала на воздушном интерфейсе беспроводной коммуникационной сети и высокой вероятности ошибок.
Значения битовой скорости передачи данных в логических каналах определяются рядом факторов, в частности величиной доступного суммарного коммуникационного ресурса беспроводной сети, а также размерами объектов данных. Величины их значений, например, при использовании беспроводных коммуникационных сетей на основе технологии Wi-Fi стандарта IEEE 802.11g, составляют порядка 1-10 Мбит/с.
Процесс формирования управляемых логических каналов и передачи объектов данных осуществляют следующим образом: при поступлении очередного объекта данных на вход рассматриваемого модуля, на основе служебной информации, сопровождающей объект, идентифицируют тип данных этого объекта и, если для этого типа логический канал ранее не был еще сформирован, то его создают. При этом генерируют уникальный идентификатор управляемого логического канала. В качестве такого идентификатора в одном из вариантов изобретения может выступать, например, общеизвестный и повсеместно используемый в программном обеспечении глобальный уникальный идентификатор (GUID - Globally Unique ID). Наряду с присвоением уникального идентификатора также создают так называемый буфер циклической ретрансляции объектов данных в логическом канале. В этом буфере будут временно храниться все объекты (фрагментированные в виде множества пакетов данных), передаваемые в рамках заданного логического канала. В одном из вариантов изобретения размер буфера циклической ретрансляции динамически изменяется в зависимости от суммарного количества пакетов данных, которым требуется обеспечить циклическую ретрансляцию.
Наряду с формированием буфера, выбирают режим работы механизмов обеспечения надежной передачи (либо используют режим передачи данных с циклической ретрансляцией, либо режим передачи «внахлест», суть которых была описана выше) и конфигурируют все основные параметры управляемого логического канала (в частности, значение битовой скорости передачи данных в логическом канале) в зависимости от типа объектов данных, передаваемых в логическом канале, а также в зависимости от текущей ситуации в среде беспроводной локальной коммуникационной сети (например, в зависимости от общей загруженности сети, от уровня помех в радиоканале и т.д.).
После того как будет завершено формирование инфраструктуры создаваемого управляемого логического канала, поступивший объект данных подвергают дополнительной подготовке к передаче в рамках этого канала. Для этого данный объект рассматривают просто как массив бинарных данных (набор байтов, которые требуется передать в канал) и фрагментируют, то есть разбивают на некоторое множество одинаковых частей, фрагментов или пакетов данных (хотя в общем случае, эти фрагменты могут быть и разными по размеру).
При этом, к каждому пакету данных добавляют заголовок, состоящий из некоторого множества атрибутов данных. Одним из таких атрибутов является порядковый номер в общем множестве пакетов, составляющих объект данных. В одном из вариантов настоящего изобретения в качестве такого атрибута может выступать значение смещения битовой позиции данного фрагмента (пакета) относительно начала тела объекта данных. Этот атрибут в дальнейшем будет использоваться для дефрагментации, то есть восстановления цельных объектов данных из множества фрагментов на приемной стороне.
Также в состав заголовка пакета добавляют численное значение, соответствующее общему количеству пакетов данных, составляющих рассматриваемый объект данных.
Каждый пакет данных подвергают операции хэширования, в результате которой генерируют хэш-код данного фрагмента, который будет использоваться в качестве контрольной суммы для проверки целостности и корректности этого фрагмента при его приеме на клиентских терминальных устройствах.
После того как хэш-код для пакета будет сгенерирован, его добавляют в заголовок пакета данных. Кроме того, в заголовок еще добавляют уникальный идентификатор логического канала. После того как заголовок пакета данных будет сформирован, его присоединяют к этому пакету (то есть пакет маркируют этим заголовком). Затем пакет данных добавляют в буфер циклической ретрансляции. Аналогичным образом обрабатывают все оставшиеся пакеты данных, составляющих объект данных, их все также добавляют в буфер циклической ретрансляции данного логического канала, причем добавляют в строго последовательности, по мере возрастания их порядковых номеров. Таким образом, в итоге, все тело объекта данных оказывается размещено в буфере циклической ретрансляции в виде некоторого множества пакетов.
После того как весь объект данных будет размещен в буфере циклической ретрансляции, начинают его передачу в в локальную беспроводную коммуникационную сеть в рамках логического канала, таким образом, что все пакеты, содержащие фрагменты передаваемого объекта данных, последовательно один за другим передают на выход рассматриваемого модуля и затем в модуль управления мультикастингом (модуль 14). После того как все содержимое буфера циклической ретрансляции данного логического канала будет передано в модуль управления мультикастингом, начинают повторную передачу содержимого этого буфера, вновь, с самого первого пакета и далее последовательно все пакеты, содержащиеся в буфере, один за другим. В одном из вариантов изобретения такую циклическую передачу всего содержимого буфера повторяют многократно в течение длительного времени, до тех пор пока в рассматриваемый модуль 13 не поступит команда остановки трансляции от передающего серверного модуля (модуль 08). В общем случае количество циклов ретрансляции должно быть не менее одного, а ограничение сверху может определяться общим временем до момента оставки мультикастовой передачи данных веб-сервером.
Задержка во времени (интервал) между циклами передачи объектов данных в данном изобретении равна нулю. То есть непосредственно сразу же после окончания передачи последнего пакета данных, из буфера циклической ретрансляции, тут же начинают повторную передачу всего содержимого этого буфера.
В одном из вариантов изобретения при формировании логических каналов в модуле 13 задают фиксированные значения битовых скоростей передачи данных. Тем самым гарантированно обеспечивается тот факт, что каждый виртуальный канал будет работать только лишь в рамках отведенной ему доли общих коммуникационных ресурсов беспроводной сети. В другом варианте данного изобретения возможно использование механизмов динамического адаптивного управления значениями битовых скоростей во всех логических каналах на основе текущего контекста ситуации передачи данных. Этот текущий контекст может определяться множеством различных факторов, в том числе - приоритетами передачи разных типов объектов данных, общим значением величины коммуникационных ресурсов (эффективной полосы пропускания) в беспроводной локальной коммуникационной сети в данный момент времени, а также условиями, возникающими в радиоканале на воздушном интерфейсе беспроводной сети и другими факторами.
Следует отметить, что вариант с динамическим адаптивным управлением логическими каналами позволяет осуществлять более гибкую и оптимальную трансляцию данных в постоянно меняющихся условиях.
При последующем поступлении на вход модуля 13 объектов данных того же типа, что и первый, описанный выше объект, транспортировка которого уже началась в ранее созданном логическом канале, все эти вновь поступающие объекты подвергают аналогичной описанной выше процедуре фрагментации, формирования пакетов, а затем добавляют в буфер циклической ретрансляции данного логического канала, передавая циклически вслед за уже существующими в этом буфере объектами данных.
Следует отметить, что описанную выше циклическую ретрансляцию рекомендуется применять в данном изобретении для передачи веб-приложений, метаданных, ассоциированных с этими приложениями, наборов символов, содержащих информацию о командах управления веб-приложениями на клиентских терминальных устройствах, а также мультимедийного контента (аудио и/или видеозаписей) фиксированной продолжительности. Для потоков мультимедийного контента реального времени рекомендуется использовать режим (механизм) трансляции «внахлест», обеспечивающий повышение надежности доставки этого типа объектов данных, суть которого подробно представлена выше при описании мультимедийного контента реального времени как типа данных.
Передачу команд управления в логическом канале осуществляют в целом в соответствии с описанным механизмом циклической ретрансляции с той лишь разницей, что на поведение буфера циклической ретрансляции помимо его базовой логики, описанной выше, накладывают также дополнительную логику, формирующую на основе этого буфера так называемое скользящее окно ретрансляции. Механизм скользящего окна ретрансляции подробно описан выше при описании команд управления как одного из типов объектов данных. При этом, как было сказано выше, размер буфера циклической ретрансляции (то есть максимальное количество пакетов данных, которые он может вместить) фиксируют. И при полном заполнении буфера поступающими пакетами данных поступление очередного пакета (содержащего команду управления) приводит к тому, что самый ранний поступивший пакет (самый «старый») удаляют из буфера, все остальные пакеты данных в нем смещают на одну позицию к началу буфера, а вновь поступивший пакет добавляют в конец буфера, на самую последнюю позицию.
Таким образом, на выход модуля формирования логических каналов и организации ретрансляции (модуля 13) поступают потоки пакетов данных со всех управляемых логических каналов и по мере поступления эти пакеты с выхода модуля 13 подают на вход модуля 14.
Модуль управления мультикастингом (модуль 14) представляет собой программный модуль, основной задачей которого является организация мультикастового вещания данных от веб-сервера ко всем заинтересованным клиентским терминальных устройствам посредством беспроводной локальной коммуникационной сети.
Как уже было сказано выше, на вход данного модуля поступает поток пакетов передаваемых данных со всех логических каналов. При этом рассматриваемый модуль организует группу мультикастового вещания в беспроводной коммуникационной сети с неким заданным IP-адресом для мультикастового вещания. И отправляет все полученные пакеты данных на этот IP-адрес, то есть фактически в заданную мультикастовую группу. При этом все пакеты данных, поступающие одновременно от нескольких различных управляемых логических каналов, ставятся в единую общую очередь по мере их поступления на вход, а затем из этой очереди передаются на выход модуля, предварительно будучи снабжены IP-адресом целевой мультикастовой группы и всей остальной служебной информацией, необходимой для формирования полноценного IP-пакета. Механизм формирования IP-пакетов широко известен в телекоммуникационной отрасли и применяется в настоящее время во всех коммуникационных системах, основанных на стеке протоколов TCP/IP. С выхода модуля управления мультикастингом IP-пакеты, содержащие в своем составе передаваемые пакеты данных, направляются в модуль 15.
Передающий беспроводной коммуникационный модуль (модуль 15) представляет собой аппаратно-программное устройство для обмена данными в беспроводной локальной коммуникационной сети. Это устройство обеспечивает непосредственное взаимодействие веб-сервера со всеми клиентскими терминальными устройствами. Тип передающего беспроводного коммуникационного модуля и его основные характеристики зависят от типа используемой беспроводной локальной коммуникационной сети. Так, например, если в качестве беспроводной сети используется сеть стандарта Wi-Fi (IEEE 802.11 a/b/g/n/ac/ad), то в качестве передающего беспроводного коммуникационного модуля может быть использован стандартный Wi-Fi модуль от любого производителя.
На вход данного модуля поступают IP-пакеты от модуля управления мультикастингом, а с выхода данного модуля эти пакеты передаются в беспроводную локальную коммуникационную сеть, в организованную в ней (модулем 14) мультикастовую группу.
Сама беспроводная локальная коммуникационная сеть (модуль 2) представляет собой локальную сеть, поддерживающую беспроводную передачу данных по протоколам TCP/IP. В качестве примера, как уже упоминалось выше, в данном изобретении может быть использована беспроводная сеть в соответствии со стандартом Wi-Fi. Однако наряду с Wi-Fi в данном изобретении могут быть использованы и иные технологии организации беспроводных коммуникационных сетей.
Как видно из Фиг.1, клиентское терминальное устройство состоит из следующих модулей:
- принимающий беспроводной коммуникационный модуль (модуль 16),
- сепаратор логических каналов (модуль 17),
- модуль контроля целостности и восстановления веб-приложений (модуль 18)
- модуль контроля целостности и восстановления команд управления (модуль 19)
- модуль контроля целостности и восстановления метаданных (модуль 20)
- модуль контроля корректности мультимедийного контента (модуль 21)
- внутренний веб-сервер (модуль 22)
- клиентский веб-модуль (модуль 23)
Принимающий беспроводной коммуникационный модуль (модуль 16) представляет собой аппаратно-программное устройство для обмена данными в беспроводной локальной коммуникационной сети (аналогично модулю 15). Так же как и модуль 15, тип принимающего беспроводного коммуникационного модуля и его основные характеристики зависят от типа используемой беспроводной локальной коммуникационной сети. И точно так же, в случае использования беспроводных сетей на основе технологии Wi-Fi, в качестве принимающего беспроводного коммуникационного модуля может быть использован существующий Wi-Fi модуль от любого производителя.
На вход принимающего беспроводного коммуникационного модуля поступают IP-пакеты с данными, распространяемые в рамках заданной мультикастовой группы. Эти IP-пакеты данным модулем перенаправляются в модуль 17.
Сепаратор логических каналов (модуль 17) представляет собой программный модуль, осуществляющий классификацию и перераспределение всех пакетов данных, поступающих одновременно по нескольким разным логическим каналам на различные модули для дальнейшей обработки каждого логического канала в отдельности (модули 18-21).
На вход сепаратора от принимающего беспроводного коммуникационного модуля поступает поток IP-пакетов. При этом каждый поступивший IP-пакет сначала проходит предварительную обработку в соответствии со стеком протоколов TCP/IP, в результате этой обработки из IP-пакета извлекают пакет передаваемых данных (принадлежащий одному из логических каналов). Затем у извлеченного пакета анализируют атрибут служебных данных, представляющий собой уникальный идентификатор логического канала, он показывает, в рамках какого из задействованных в данный момент логических каналов передается этот пакет. И в соответствии со значением идентификатора пакет перенаправляют в один из следующих модулей для дальнейшей обработки:
- в модуль контроля целостности и восстановления веб-приложений (модуль 18) направляются все пакеты, передаваемые в рамках логического канала, организованного для трансляции объектов данных, содержащих веб-приложения
- в модуль контроля целостности и восстановления команд управления (модуль 19) направляются все пакеты, передаваемые в рамках логического канала, организованного для трансляции объектов данных, содержащих команды управления отображением веб-приложений
- в модуль контроля целостности и восстановления метаданных (модуль 20) направляются все пакеты, передаваемые в рамках логического канала, организованного для трансляции объектов данных, содержащих метаданные, ассоциированные с передаваемыми веб-приложениями
- в модуль контроля корректности мультимедийного контента (модуль 21) направляются все пакеты, содержащие передаваемые потоки мультимедийных данных
На этом функция сепаратора логических каналов завершается, и в дело вступают вышеупомянутые модули 18-21.
Модуль контроля целостности и восстановления веб-приложений (модуль 18) представляет собой программный модуль, основной задачей которого является обеспечение целостности и восстановление в исходной форме всех объектов данных, составляющих контент веб-приложений, принимаемых данным клиентским терминальным устройством.
Работает данный модуль следующим образом: на его вход от сепаратора логических каналов поступает поток пакетов, содержащих фрагменты объектов данных, представляющих собой архивы веб-приложений. На первом этапе производится накопление принятых пакетов данных и контроль их целостности. После того как все пакеты будут накоплены, и целостность их будет подтверждена, начинается второй этап - дефрагментация объекта данных (то есть сборка исходного объекта данных из составляющих его пакетов). По завершении процедуры дефрагментации уже собранный воедино объект данных, представляющий собой архив веб-приложения, подвергают процедуре проверки целостности и при ее положительном исходе второй этап обработки завершается. Начинается третий этап, на котором из полученного объекта данных, то есть архива веб-приложения, восстанавливают исходные данные - все объекты данных, составляющих контент веб-приложения.
Более подробно процедура накопления пакетов данных и контроля их целостности выглядит следующим образом: в рассматриваемом модуле организуют специальные накопительные буферы (для каждого принимаемого объекта данных свой отдельный буфер), в которые поступают все принимаемые фрагменты. В одном из вариантов изобретения размеры накопительных буферов динамически изменяются в зависимости от суммарного количества пакетов данных, представляющих конкретный объект данных.
При поступлении очередного пакета данных производят проверку его целостности. Происходит это следующим образом, принятый пакет подвергают операции хэширования, в результате которой вычисляют хэш-код данного пакета. Этот хэш-код затем сравнивают с контрольной суммой - таким же хэш-кодом, сгенерированным ранее на передающей стороне. Контрольная сумма при этом прилагается к принимаемому пакету данных и входит в состав его заголовка. Если в результате сравнения вычисленный хэш-код точно совпадает с контрольной суммой, значит, данный фрагмент принят корректно и сохраняет свою целостность. В противном случае принимают решение о том, что пакет данных принят с ошибкой (т.н. «битый» пакет).
Все пакеты данных, составляющие рассматриваемый объект данных, принятые корректно, сохраняют в накопительный буфер. При этом в одном из вариантов настоящего изобретения допускается размещение пакетов в буфере в тех позициях, которые соответствуют их реальному расположению внутри исходного объекта данных. В те же позиции, которые соответствуют фрагментам, принятым с ошибкой, ничего не записывают, то есть эти позиции остаются вакантными. А сами некорректные пакеты отбрасывают.
После того как клиентским терминальным устройством будут приняты все пакеты, составляющие данный объект, в накопительном буфере окажутся те их них, которые приняты корректно и сохранили свою целостность. Оставшиеся недостающие пакеты данных будут приниматься в ходе последующих итераций процесса циклической ретрансляции веб-сервером. При этом рассматриваемый модуль получит недостающие фрагменты объекта данных (принятые ранее с ошибкой), и если эти фрагменты окажутся корректными, то они дополнят собой остающиеся вакантными позиции в накопительном буфере. Те же из пакетов данных, которые и со второй попытки приема окажутся некорректными, будут приняты в третий, четвертый раз и т.д.
В итоге, в результате одной или нескольких ретрансляций, все пакеты данных, составляющие объект данных, окажутся корректными, и будут находиться в накопительном буфере. На этом процедура накопления фрагментов и контроля их целостности завершается.
После дефрагментации собранный воедино объект данных подвергают хэшированию и полученный хэш-код сравнивают с контрольной суммой всего объекта как целого. Если вычисленный хэш-код полностью совпадает с контрольной суммой, значит объект данных сохранил свою целостность и был принят корректно.
Если же в результате проверки целостности объекта данных обнаруживается, что она нарушена, то производят удаление из накопительного буфера всех накопленных ранее (для данного объекта) пакетов данных, а затем осуществляют повторный прием и накопление всех пакетов данных, принимая их уже на соответствующих последующих циклах ретрансляции.
Полученный в итоге объект данных представляет собой архивированное веб-приложение. И следующим шагом в данном модуле производят разархивирование (распаковку) веб-приложения. Для этой операции могут быть использованы любые известные программные компоненты для работы со сжатыми архивами данных, в зависимости от типа метода архивации, применяемого на передающей стороне.
В итоге на выход рассматриваемого модуля контроля целостности и восстановления веб-приложений поступает набор объектов данных, составляющих контент веб-приложения. Весь этот контент далее поступает во внутренний веб-сервер (модуль 22).
Модуль контроля целостности и восстановления команд управления (модуль 18) представляет собой программный модуль, основной задачей которого является обеспечение целостности и восстановление в исходной форме всех команд управления веб-приложениями, принимаемых данным клиентским терминальным устройством от веб-сервера.
Механизм контроля целостности команд управления в данном модуле аналогичен модулю 17, здесь также применяется исправление ошибочно принятых пакетов данных путем их повторного приема в последующих итерациях циклической ретрансляции. После того как корректность очередного принятого пакета, содержащего команду, будет подтверждена, эту команду управления передают на выход рассматриваемого модуля, откуда затем она поступает во внутренний веб-сервер (модуль 22). Следует отметить, что в данном модуле все команды управления обрабатывают и передают на выход в строгой последовательности с их поступлением на вход в виде пакетов данных.
Модуль контроля целостности и восстановления метаданных (модуль 20) представляет собой программный модуль, основной задачей которого является обеспечение целостности и восстановление в исходной форме всех объектов данных, составляющих метаданные, ассоциированные с веб-приложениями.
Принцип работы данного модуля аналогичен работе модуля 18. На вход рассматриваемого модуля от сепаратора логических каналов поступает поток пакетов, содержащих фрагменты объекта данных, представляющего собой архив метаданных. Обработка этих пакетов так же как и в модуле 18 состоит из этапов накопления фрагментов и контроля их целостности, дефрагментации объекта данных, с последующим восстановлением исходных метаданных из упакованного архива.
В итоге, полученные метаданные передают на выход данного модуля, а затем они поступают во внутренний веб-сервер (модуль 22).
Модуль контроля корректности мультимедийного контента (модуль 21) представляет собой программный модуль, основной задачей которого является прием потоков мультимедийного контента обоих видов (как аудио и видеозаписей фиксированной продолжительности, так и потоков реального времени).
На вход данного модуля от сепаратора логических каналов поступает поток пакетов, содержащих объекты данных в виде мультимедийного контента.
Для аудио и видеозаписей применяется процесс накопления пакетов данных, контроля их целостности с последующей дефрагментацией, аналогичный описанному в модуле 18. В итоге, на выходе рассматриваемого модуля оказываются исходные аудио и видеозаписи, которые поступают затем во внутренний веб-сервер (модуль 22).
Для мультимедийных потоков реального времени, транслируемых методом «внахлест» используют более простую схему контроля целостности. Каждый очередной принятый пакет мультимедийных данных проверяют на корректность (методом сравнения его хэш-кода с контрольной суммой, как и в предыдущих случаях), если этот пакет оказывает корректным, его сразу же передают на выход данного модуля, а оттуда - на внутренний веб-сервер. Если же принятый пакет оказался некорректным, то предпринимают попытку повторного его получения из идущего следом дублирующего потока, и в случае успешного корректного приема, пакет также передают в модуль 22, если же и в дублирующем потоке пакет оказался «битым», т.е. с ошибкой, то его просто отбрасывают и ожидают прием следующего пакета мультимедийного потока реального времени.
Внутренний веб-сервер (модуль 22) представляет собой программный модуль, имитирующий для клиентского веб-модуля (модуль 23) сервер веб-приложений. На вход внутреннего веб-сервера с одной стороны от модулей 18-21 поступают все данные, необходимые для его корректной работы - веб-приложения, метаданные, мультимедийный контент, если таковой требуется предоставлять веб-клиенту в ходе работы веб-приложений, а также команды управления, координирующие работу веб-приложений. С другой стороны, на вход этого веб-сервера поступают запросы от клиентского веб-модуля (модуль 23), формируемые этим веб-модулем в процессе взаимодействия конечного пользователя с веб-приложениями.
Задача внутреннего веб-сервера - обеспечивать работу веб-приложений для клиентского веб-модуля подобно тому, как работают классические общеизвестные веб-сервера в глобальной сети Интернет.
Клиентский веб-модуль (модуль 23) представляет собой обычный веб-браузер, инсталлированный в клиентском терминальном устройстве. Он обеспечивает доступ конечных пользователей к веб-приложениям, поступающим на внутренний веб-сервер. В процессе своей работы модуль 23 тесно взаимодействует с внутренним веб-сервером, отправляя ему пользовательские запросы и получая от него в ответ требуемый контент, регламентируемый логикой работы веб-приложений на внутреннем веб-сервере.
Практическое применение изобретения
Примером практического применения настоящего изобретения является система телепрезентаций в беспроводных локальных коммуникационных сетях. Данная система применяется при организации различного рода публичных мероприятий, на которых предусмотрено выступление докладчиков перед аудиторией - конференции, семинары, форумы, симпозиумы и т.д. И позволяет осуществлять трансляцию презентаций докладчиков в реальном времени напрямую в персональные мобильные устройства зрителей (планшеты, смартфоны, а также ноутбуки и нетбуки) посредством локальной беспроводной коммуникационной сети.
Система телепрезентаций, реализованная на основе данного изобретения, организована следующим образом. В помещении, где проводятся соответствующие публичные мероприятия, развертывается беспроводная локальная коммуникационная сеть на основе технологии Wi-Fi (как правило применяются стандарты IEEE 802.11 g/n/ac, но этим применение не ограничено). В разработанном прототипе системы телепрезентаций используется оборудование сетевой инфраструктуры (одна точка доступа Wi-Fi, производитель D-Link), работающее по стандарту IEEE 802.11g в частотном диапазоне 2,4 ГГц. В эту беспроводную локальную коммуникационную сеть подключается так называемый сервер презентаций, представляющий собой компонент веб-сервер в соответствии с настоящим изобретением (модуль 01 на рисунке Фиг.1). Аппаратная платформа, на которой был развернут сервер презентаций (веб-сервер) представляет собой классический настольный персональный компьютер. Данный сервер презентаций оборудован аппаратным коммуникационным модулем беспроводной локальной сети Wi-Fi (модуль 15 в соответствии с настоящим изобретением), а также специализированным программным обеспечением для осуществления трансляций презентаций на клиентские терминальные устройства, в котором реализована технология в соответствии с настоящим изобретением. Это программное обеспечение реализует программные модули 04-14 (см. Фиг.1).
Также на веб-сервере хранятся метаданные, ассоциированные с передаваемыми веб-приложениями. Эти метаданные в рассматриваемой системе представляют собой информацию о всех зарегистрированных в системе пользователях (как слушателях, так и лицах, проводящих презентации), о правах доступа в систему для каждого пользователя, а также ряд других параметров, используемых системой в ходе отображения презентаций (веб-приложений), включая полный список всех объектов данных, из которых состоят эти презентации. Метаданные хранятся на веб-сервере в модуле хранения метаданных (модуль 05). Общий объем метаданных составляет приблизительно 20 килобайт.
Помимо этого на веб-сервере находится видеоролик объемом 15 мегабайт. В данном видеоролике видеоряд кодирован с использованием кодека Н.264, аудиосопровождение кодировано в ААС. Видеоролик хранится в модуле хранения мультимедийного контента (модуль 06).
Также в ходе работы системы телепрезентаций на веб-сервере формируются команды управления веб-приложениями, которые представлены объектами данных в виде набора текстовых символов (формата XML). Объем таких объектов данных колеблется от 200 байт до 1024 байт. Максимальная частота генерации команд управления составляет 10 команд в секунду.
Веб-сервер осуществляет мультикастовое вещание презентаций (веб-приложений), ассоциированных с ними метаданных, команд управления веб-приложениями, а также описанного выше видеоролика в локальной беспроводной коммуникационной сети на все клиентские терминальные устройства, подключенные в группу мультикастового вещания. При передаче всех объектов данных на веб-сервере применяется режим циклической ретрансляции в соответствии с настоящим изобретением.
В качестве клиентских терминальных устройств в данной системе выступают персональные мобильные устройства пользователей - планшетные компьютеры и смартфоны на платформах Apple iOS и Google Android (в количестве 27 штук) с предварительно установленным на них специализированным клиентским программным обеспечением. Это клиентское ПО реализует программные модули 17-23 в соответствии со структурной схемой на Фиг.1.
Функционирует прототип, реализующий данное изобретение, следующим образом. При запуске передачи презентации (веб-приложения) на веб-сервере сервер сразу же подготавливает весь контент веб-приложения, все необходимые метаданные, а также видеоролик (ассоциированный с этим веб-приложением) к передаче. В процессе подготовки к передаче передающий серверный модуль (модуль 08) получает все необходимые объекты данных из соответствующих модулей хранения (модули 04-06), идентифицирует тип этих объектов данных и перенаправляет их в соответствующие модули предварительной подготовки (модули 09-12). Где в полном соответствии со способом настоящего изобретения производится предварительная подготовка всех объектов данных.
Одновременно с этим в локальной беспроводной коммуникационной сети организуется группа мультикастового вещания и все 27 имеющихся клиентских терминальных устройств подключаются в эту группу. Процедуры организации мультикастового вещания в сетях, а также подключения клиентских устройств к этому вещанию являются хорошо известными процессами и регламентированы соответствующими стандартами, поэтому в рамках данного изобретения не рассматриваются.
По мере того как завершается предварительная подготовка упомянутых выше объектов данных, они передаются в модуль формирования логических каналов и организации ретрансляции, где для каждого типа данных создается отдельный управляемый логический канал, и все объекты этого типа обрабатываются и передаются в рамках данного логического канала. Всего в данном прототипе создается 4 логических канала: 1 для передачи веб-приложений, 1 передачи метаданных, 1 для передачи объектов данных, содержащих команды управления и 1 для передачи видеоролика. Каждому логическому каналу при создании присваивается уникальный идентификатор, в форме GUID (Globally Unique Identifier), а также для каждого канала задается значение битовой скорости передачи данных, при этом:
- для логического канала, ориентированного на передачу веб-приложений, задается значение битовой скорости в 3 Мбит/с
- для логического канала, ориентированного на передачу метаданных, задается значение битовой скорости в 1 Мбит/с
- для логического канала, ориентированного на передачу команд управления, задается значение битовой скорости в 1 Мбит/с
- для логического канала, ориентированного на передачу мультимедийного контента (видеоролика фиксированной длины), задается значение битовой скорости в 5 Мбит/с
Суммарный коммуникационный ресурс (полоса пропускания) беспроводной Wi-Fi сети, используемый в процессе передачи данных, составляет 10 Мбит/с.
Все объекты данных, поступающие в логические каналы, подвергаются дополнительной подготовке в полном соответствии с данным изобретением. При этом в ходе дополнительной подготовки эти объекты данных фрагментируются, то есть разбиваются на отдельные фрагменты - пакеты данных. Размер каждого пакета данных в рассматриваемом прототипе составляет 1024 байта. В случаях, когда объем данных, отводимых в какой-либо пакет, меньше этого значения (например, при передаче символов, содержащих описания команд управления, объем которых колеблется от 200 байт до 1024 байт), размер пакета задается по фактическому объему данных.
В каждом логическом канале создаются буферы циклической ретрансляции. Для всех логических каналов за исключением того, в котором передаются команды управления, размер буфера динамически меняется в зависимости от суммарного количества пакетов данных, подготовленных к передаче. Для логического канала, в котором производится передача команд управления (символов, содержащих описания команд управления), размер буфера циклической ретрансляции задается фиксированным. В данном прототипе размер этого буфера составляет 250 команд.
Передача объектов данных во всех логических каналах осуществляется с применением режима циклической ретрансляции. При этом задержка между отдельными циклами ретрансляции объектов данных равна нулю.
Прием пакетов данных и их последующая обработка во всех клиентских терминальных устройствах в данном прототипе осуществляется в полном соответствии с настоящим изобретением.
Каждое клиентское терминальное устройство, получив весь необходимый контент презентации, начинает ее отображать пользователям через внутренний веб-браузер (клиентский веб-модуль 23, в терминологии данного изобретения).
По мере того как презентующийся перелистывает слайды презентации, сервером генерируются соответствующие управляющие команды, которые также посредством мультикастового вещания в рамках организованного для них логического канала передаются на все клиентские устройства. И в результате у всех пользователей на их персональных устройствах также происходит перелистывание слайдов, синхронно с пользователем, ведущим данную презентацию.
Аналогичным образом, если ведущий запускает какую-либо анимацию на очередном слайде во время презентации, также генерируются соответствующая команда управления, передается на все клиентские устройства и на всех этих устройствах запускается данная анимация на том же самом слайде. Таким образом, команды управления позволяют засинхронизировать состояние презентации на всех клиентских устройствах с ее состоянием на сервере в реальном времени.
Также с помощью механизма команд управления реализуется передача координат текущего местоположения т.н. электронной указки, которая представляет собой некую метку, указывающую на отдельную область на текущем слайде презентации, и позволяет тому, кто ведет презентацию, акцентировать внимание слушателей.
Преимуществом данного изобретения является обеспечение высокой маштабируемости полученного решения по количеству одновременно обслуживаемых клиентских терминальных устройств в локальной беспроводной коммуникационной сети (от нескольких сотен до тысячи и более клиентов, обслуживаемых одной точкой доступа), при одновременном обеспечении высокой надежности передачи данных (приближающейся к 100%) и оптимизации потребления графика на воздушном интерфейсе беспроводной локальной коммуникационной сети.
Эти технические свойства заявляемого изобретения позволяют в итоге обеспечить покрытие большого количества клиентских терминальных устройств при использовании минимального объема элементов сетевой инфраструктуры. Например, внедрение данного изобретения приведет к тому, что количество пользовательских устройств, одновременно обслуживаемых одной точкой доступа в развернутой беспроводной Wi-Fi сети, существенно увеличится (с нескольких десятков до, потенциально, нескольких сотен), в результате потребуется меньшее количество таких точек доступа для обеспечения покрытия территории, на которой размещаются все пользовательские устройства. Все это приведет к суммарному удешевлению коммуникационной инфраструктуры, а также к упрощению и ускорению процедур ее развертывания. В итоге полученный в данном изобретении технический результат даст хороший экономический эффект.