Протоколы передачи данных для систем дистанционного обучения

Автор: Гроцев Алексей Романович

Журнал: Образовательные технологии и общество @journal-ifets

Статья в выпуске: 2 т.14, 2011 года.

Бесплатный доступ

В статье рассматриваются протоколы передачи данных для использования в RIA-приложениях. Данные протоколы могут быть использованы при передаче больших объемов данных, что свойственно дистанционному обучению: презентации, мульмедийные приложения и т.п. Приводится краткое описание современных возможностей приложений, их особенности и потребности, а так же описание и сравнение некоторых реально используемых протоколов

Передача данных, протоколы

Короткий адрес: https://sciup.org/14062325

IDR: 14062325

Текст научной статьи Протоколы передачи данных для систем дистанционного обучения

Проблема повышения эффективности и качества образования в настоящее время является актуальной, т.к. спрос на высококвалифицированных специалистов и количество необходимой им информации неуклонно растет, а значительно увеличить время обучения не представляется возможным. Поэтому в последние годы широкое распространение получило компьютерное обучение на базе Интернета, используемое при дистанционном образовании и повышении квалификации. Для поддержки компьютерного обучения создаются и широко используются различные среды, платформы и порталы, обучающие и тестирующие программы, исследуются и разрабатываются методы и технологии электронного обучения, а так же специализированные алгоритмы управления процессом обучения и взаимодействия с обучаемым [1-4]. Однако, техническая сторона вопроса, а именно эффективная передача больших оъёмов данных, еще недостаточно исследована. В основном учебные материалы содержат мультимедиа-данные, передаваемые по сети клиенту, который их выводит на экран или проектор.

Rich Internet application (богатое интернет-приложение) — это приложение, доступное через интернет, богатое функциональностью традиционных настольных приложений, не поддерживаемой браузерами непосредственно и не требующее скачивания дополнительных файлов на компьютер пользователя. На сегодняшний день доступны следующие варианты технологий построения RIA:

o   Adobe Flash;

o   Adobe Flex;

o   Java Applets;

o    Microsoft Silverlight.

Термин «RIA» впервые был упомянут компанией Macromedia в официальном сообщении от марта 2002 года. Эта концепция существовала несколькими годами ранее со следующими названиями:

o Remote Scripting, Microsoft, около 1998 года;

o X Internet, Forrester Research в октябре 2000 года;

o    Rich (web) client;

o   Rich web application.

Google в конце 2009 года анонсировала платформу для совместной работы и общения в реальном времени Google Wave. Однако, по заверениям разработчиков, она построена исключительно на основе возможностей HTML5, т.е. будет запускаться в последних версиях браузеров без дополнительных надстроек, что не даёт возможности назвать эту технологию полноценным RIA.

Отличительные черты передачи данных между обычными программами и RIA состоят в том, что обычно интернет-приложения требуют постоянного (или очень частого) обмена данными с сервером, чтобы отражать последнюю актуальную версию данных, например меняющиеся слайды презентации и комментарии к ним, видеопоток с камер преподавателя и студентов и.т.д. Для этого необходим протокол, позволяющий передавать данные с минимальными задержками на парсинг, в идеальном случае быть бинарным с возможностью сериализации данных. Целью данной статьи является сравнение протоколов ARM, RTMP, XML и plain-text и определение наиболее подходящего для передачи данных в системах дистанционного обучения.

Описание протоколов

AMF (Action Message Format) – сравнительно новый протокол обмена сообщениями, разработанный Adobe. Его спецификация была опубликована в декабре 2007 года и он предназначен для передачи бинарных данных между flash-приложением, написанным на ActionScript и сервером, в виде которого может быть как сервер от разработчиков, Flash Media Server (на данный момент это Flash Media Interactive Server), так и сторонние разработкие, такие как Wowza/Red5 и другие. Перед посылкой данные сериализуются, а все строки приводятся в UTF-8. Стандарт AMF3 даёт возможность передавать 13 разных типов данных [5], которые перечислены в таблице ниже:

Таблица 1

Типы передаваемых данных в AMF3

Тип

Описание

undefined-type

Тип неизвестен, данные не передаются

null-type

Хотя значение данных - пустота, сам обьект существует

False-type

Логическое ЛОЖЬ

true-type

Логическое ПРАВДА

integer-type

Числа без знака в интервале от 0 до 228

double-type

Числа со знаком в интервале от 0 до 228

string-type

Описание цепочки символов в кодировке Unicode

xml-doc-type

Описание класса flash.xml.XMLDocument, размер до 256MB

Date-time

Время в формате Unix timestamp UTC+0

Array-type

Определение массива. Массивы могут быть нумерованые, асоциативные и пустые

object-type

Самый частоиспользуемый тип. Содержит обьект, его параметры и указатели на них.

xml-type

Необходим для поддержки формата E3X, схож с типом xml-doc-type

bytearray-type

Отдельный тип данных для бинарных цепочек, размер до 256MB

Чтобы передать данные с помощью протокола AMR, необходимо создать инстанцию обьекта NetConnection. После подключения можно использовать передачу используя в виде запаковщика данных встроенные во Flash/Flex классы:

private var echoResponder:Responder = new Responder(echoResult, echoStatus);

В данном примере на сервер методу remote_Procedure была передана строка Hello world . Если метод вернёт результат, будет вызван обратный (callback) метод – echoResponder .

Похожий на предыдущий, но имеющий расширенные возможности, протокол RTMP (Real-Time Messaging Protocol) был так же придуман Adobe, и его спецификация появилась в свободном доступе только в середине 2009 года. Протокол задумывался как средство быстрого начала общения, т.к. изначально он мог передавать данные только с Flash-клиентов, которые, по статистике на декабрь 2009 года, установлены на 99% всех компьютеров [6], и в виде источника видео может служить любая малобюджетная видеокамера. Так как протокол позволяет передавать видео, его структура отличается от AMF, однако, содержит в себе тело AMF-обьекта. Описание типов данных RTMP-протокола приведено во второй таблице.

Таблица 2

Типы передаваемых данных в RTMP

Тип

Описание

Chunk size

Размер "куска" данных

Bytes Read

Количество переданных данных (для контрольной суммы)

Ping

Контрольная единица потока, содержит внутренний обьект

Server BW

Скорость скачки с сервера (статистика)

Client BW

Скорость скачки от клиента (статистика)

Audio Data

Пакет с аудио-данными

Video Data

Пакет с видео-данными

Flex Stream

Поток с внутренними обьектами

Flex Shared Object

Поток с общедоступным обьектом с информацией о размере

Flex Message

Статус-сообщение с возможными аргументами

Notify

Вызов, для которого не предусмотрен callback

Shared Object

Общедоступный объект с подтипами

Invoke

Данные вызова метода без возвращаемого значения, для внутреннего использования

Object

Указывает один или несколько FLV-тегов, каждый тег содержит 11 байтов заголовков, (1 байт – тип, 3 байта – размер, 3 байта – время, 1 байт, – уточнение времени, 3 байта – идентификатор потока), после которого идёт тело FLV-кадра, который заканчивается 4 байтами-меткой, которая так же содержит размер тела.

Вызов методов и передача аргументов производится аналогично AMF.

Расширяемый язык разметки ( XML , eXtensible Markup Language), также может быть использован для синхронизации данных с сервером. Язык разметки представляет подтип языка SGML, который понятен как компьютеру, так и человеку. Данными в протоколе передачи, использующем XML, могут быть любые символы, которые не включают в себя „<” и „>”. Все данные передаются в таком виде, в каком они были запакованы в XML, т.е. передача UTF-8 текста должна быть реализована именно на транспортном уровне, а не на уровне самого формата, т.е. следующий корректный XML-код должен быть передан без ошибок, хотя и содержит как русский текст, так и китайские иероглифы из расширенного набора Unicode.

< 俄語 >Китайский язык 俄語 >

Бинарные данные, обычно, не передают в "чистом виде", а кодируют используя Base64. XML широко распространён среди интернет-приложений благодаря своей реализации в протоколе XML-RPC, который позволяет запрашивать данные с сервера вызывая удалённые процедуры и получая данные в виде ответов. Такие приложения, как GoogleTalk и Jabber тоже используют XML для связи со своими клиентами [7, 8].

Конечно, существуют и неструктурированные форматы данныx, передаваемых текстом без форматирования (plain-text) как в XML, допустим это протоколы IRC, HTTP, SMTP и многие другие. В них данные передаются такими, какие они есть, обычно отделяя системную информацию (заголовки) от содержимого (тела) двойным переносом строки. Обычно такого рода протоколы уникальны в пределах своей задачи и не могут служить для решения разнообразных задач, как AMR или XML.

Заключение

Оценивая возможности перечисленных протоколов, а так же опираясь на схожие исследования в данной сфере [9-11] можно сделать следующие выводы:

o Простота внедрения зависит, в основном, от доступности библиотек/расширений языка программирования, где уже реализован необходимый протокол. Например, XML парсеры есть практически во всех современных языках программирования, тем не менее для RTMP библиотеки доступны только на C/Java/PHP/Ruby/C#/Erlang.

o Необходимые вложения на внедрения - если не считать уже рассмотренной простоты внедрения, это, безусловно, лёгкость разработки и поддержка  средствами профилирования/отладки. На данный момент только XML обладает широкой базой модулей интеграции в различные среды разработки. Однако,  программу, использующую любой другой текстовый протокол, удобнее отлаживать, чем бинарно-ориентированную в связи с возможностью сделать полный сброс пришедших данных в отладчик для более подробного анализа без использования дополнительных инструментов декодинга.

o Если сравнивать разнообразие передаваемых типов, то тут лидирует RTMP, т.к. только у него из рассматриваемых протоколов есть возможность передачи аудио- и видео-данных.

o Как было сказано, RIA приложения чувствительны к перебоям с доставкой данных, соответственно, протокол должен быть оптимизирован для низкоскоростных линий и быть устойчивым к разного рода воздействиям, таким, как потери и задержки. RTMP и AMR, являясь бинарными протоколами, более предпочтительны [12], нежели текстовые протоколы из-за хорошего сжатия и возможности асинхронной передачи данных, что в случае с текстовыми протоколами могло привести к каше на стороне приёмника.

Таким образом, для систем дистанционного обучения в качестве удобного и выгодного применения можно практически однозначно рекомендовать следующие протоколы передачи данных: при использовании мультимедиа-данных (моделирование, демонстрация физических процессов и т.п.) – протокол RTMP; в остальных случах – протокол AMF.

Статья научная