DOI: https://doi.org/10.23670/IRJ.2017.60.110 Казаков А.С.
ORCID: 0000-0001-9941-0939, Аспирант, ФГАОУ ВО «УрФУ имени первого Президента России Б.Н. Ельцина» ИЗУЧЕНИЕ И ВНЕДРЕНИЕ ТЕХНОЛОГИЙ ЗАПИСИ И ТРАНСЛЯЦИИ ВИДЕО- И АУДИО-МАТЕРИАЛОВ В СИСТЕМУ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
Аннотация
Статья посвящена решению проблемы коммуникации преподавателя и ученика, разделенных территориально и по времени, при помощи системы дистанционного образования. Произведены практические изыскания решения в виде записи видео-лекций непосредственно с web-платформы системы и их последующей трансляции обучающимся. Приведены результаты внедрения полученных решений в продукт при помощи технологий RecordRTC и Node.js. Описана схема примененного метода авторизации между внутренними приложениями при переходе к микросервисной архитектуре.
Ключевые слова: дистанционное образование, WebRTC, Node.js, RecordRTC.
Kazakov A.S.
ORCID: 0000-0001-9941-0939, Postgraduate Student, FSAEI of Higher education "Ural Federal University named after the first President of Russia B.N. Yeltsin" STUDY AND IMPLEMENTATION OF TECHNOLOGIES OF RECORDING AND TRANSFERING VIDEO AND AUDIO MATERIALS INTO THE SYSTEM OF ONLINE EDUCATION
Abstract
The article is devoted to the solution of the problem of communication between a teacher and a student with the help of online education systems in case they are separated territorially and in time. Practical solution was developed in the form of recording video lectures directly with the help of the system web-platform and their subsequent broadcasting to students. The paper provides results of the solutions implementation with the help of RecordRTC and Node.js technologies. The applied method scheme of authorization in internal applications is described during its transition to micro-service architecture.
Keywords: online education, WebRTC, Node.js, RecordRTC.
Дистанционное образование в современном мобильном и постоянно изменяющемся мире - возможность в любое удобное время в любом удобном месте получать именно те знания, которые необходимы в текущий момент. На протяжении нескольких лет на базе кафедры проводятся работы по изучению данной области и созданию системы дистанционного обучения, отвечающей современным требованиям. Разрабатываемая платформа представляет собой web-приложение, написанное на языке Java. Интерфейсная часть приложения создана при помощи фреймворка Tapestry - объектно-ориентированного Java-каркаса для проектирования web-приложений, серверная часть - с применением фреймворка Spring. В основу хранилища информации была положена реализация базы данных средствами фреймворка Hibernate, предназначенного для решения задач объектно-реляционного отображения. Данная библиотека предоставляет лёгкий в использовании каркас для отображения объектно-ориентированной модели данных в традиционные реляционные базы данных. Отображение для данного приложения происходит в MySQL. На данный момент эта платформа прорабатывается в тестовом режиме и постоянно дополняется новыми технологиями и решениями, исходя из задач, возникающих в процессе исследования различных аспектов современного дистанционного образования.
На начальных стадиях разработки стояла задача предоставить пользователям системы возможности "живого" общения преподавателя и обучаемого, диалога и мгновенной обратной связи во время занятия, благодаря чему появился функционал для преподавателя назначить и "здесь и сейчас" провести видео-конференцию или онлайн-консультацию со своими учениками. Но данный функционал накладывает ограничения на условие получения знаний в любое время: преподаватель и ученики могут находиться в абсолютно разных и очень удаленных друг от друга географических точках, и им может быть неудобно или невозможно быть в сети в одно и то же время. Также существует вероятность того что, несколько онлайн-курсов могут проводиться одновременно, что сокращает возможность получения именно тех знаний, которые нужны ученикам. Если дополнительно рассматривать вопрос с точки зрения психофизиологических особенностей, то предлагаемое решение позволит учесть и различные периоды продуктивности у разных людей - кто-то лучше усваивает информацию утром, кто-то - вечером. Отсюда получаем вывод, что в текущем виде разработанный продукт не полностью соответствует основным принципам дистанционного образования. Поэтому для решения данной проблемы и снятия ограничений была поставлена задача: предоставить возможность преподавателю в любое удобное для него время записать видео-лекцию непосредственно в разработанной системе, не используя никакого дополнительного программного обеспечения; далее видео-файл автоматически загружается на сервер, и у обучающихся появляется доступ к размещенным материалам, которые они могут изучить в любое удобное для них время и получить обратную связь от преподавателя путем личных сообщений либо, при необходимости, назначив очную консультацию посредством видео-конференции. Таким образом, потребность онлайн-общения обеспечивается ранее разработанным механизмом видео-конференций, а необходимость обучения в любое время - сервисом записанных лекций.
Выбор технологии для реализации решения основывался на общих критериях всего проекта: открытость и бесплатность. Дополнительно рассматривалась возможность начать приводить архитектуру к микросервисной модели, отделив новый функционал в обособленную архитектурную единицу. Это позволит реализовать данный сервис при помощи любых подходящих технологий, а при необходимости в будущем -легко заменить его на любой другой, выполняющий те же функции. Кроме того стабильность данного сервиса, как и его возможный отказ, никак не смогут повлиять на основной функционал приложения [1].
В результате изысканий выбор был остановлен на технологии с открытым исходным кодом WebRTC, предназначенной для организации передачи потоковых данных между браузерами [2], при помощи которой ранее уже был реализован механизм веб-конференций, так как она полностью удовлетворяет заданным требованиям. В качестве базового фреймворка для проектирования решения под нужды приложения была использована библиотека RecordRTC [3], позволяющая записать видео-файл непосредственно в браузере и затем загрузить его на Node.js сервер. Использование данной технологии накладывает некоторые ограничения на систему: она позволяет работать с видео и аудио только в Mozilla Firefox и Google Chrome. Но по данным на март 2017 года эти два браузера занимают 70-90% от общей доли рынка [4, 5, 6], что позволяет принять эти ограничения в пользу удобства и полноты использования платформы. Данное решение позволило проектировать новый функционал как отдельный микросервис, не привязываясь к Java, как к основной технологии текущего приложения (рис. 1).
Рис. 1 - Схема полученного решения
Но данный механизм в текущем исполнении окажется неполным. Новая часть приложения находится в отрыве от основной и не имеет информации об авторизованном пользователе, в общем случае не имеет даже данных о том, авторизован ли он. Исходя из этого, возникла необходимость реализации функционала по передаче данных авторизационной сессии между частями приложения. Так как за авторизацию и хранение сессии отвечает основная часть приложения, то ей отводится новая роль авторизационного сервиса, и она должна иметь возможность по запросу передавать авторизационные данные пользователя внутренним приложениям. В результате был реализован следующий механизм: пользователю при авторизации в основном приложении выдается cookie с уникальным идентификатором, связанным с его авторизационной сессией, затем, когда он переходит в новую часть приложения, оно, зная значение этой cookie, идет на внутренний web-интерфейс приложения на Java, которое может выдать информацию, авторизован ли этот пользователь, и есть ли у него право (он - преподаватель) на запись видео (рис. 2).
Рис. 2 - Схема проведения авторизации между сервисами
137
В такой схеме приложения в результате получаем следующий механизм работы:
1. Преподаватель имеет возможность непосредственно в web-приложении записать свою лекцию и загрузить её на сервер.
2. Затем она появляется в его списке «неотсортированных» видео-файлов, где он может привязать её к нужному учебному курсу и предоставить к ней доступ определенной группе своих учеников.
3. Ученик, зайдя на сайт, увидит у себя новую видео-лекцию и сможет с ней ознакомиться.
Таким образом, поставленная задача была выполнена. Произведен поиск и анализ новых инструментов для реализации программного решения. Изучены технологии WebRTC и Node.js в части записи и передачи видео- аудио-материалов. В приложении были реализованы тестовые наработки функционала, позволяющего решить проблему коммуникаций между преподавателями и учениками на больших расстояниях в разных временных зонах. Полученное решение позволяет наиболее полно использовать систему для нужд образования. Разработанный продукт удовлетворяет большую часть требований к подобным системам. В дальнейшем планируется доработка спроектированных решений и реализация функционала коммуникации между учеником и преподавателем по результатам изучения видео-урока посредством личных сообщений.
Список литературы / References
1. Микросервисы [Электронный ресурс] // Wikipedia. - URL: https://ru.wikipedia.org/wiki/Микросервисы (дата обращения: 01.04.2017).
2. WebRTC [Электронный ресурс] // Wikipedia. - URL: https://ru.wikipedia.org/wiki/WebRTC (дата обращения: 15.04.2017).
3. RecordRTC [Электронный ресурс] // GitHub. - URL: https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-Nodejs (дата обращения: 15.04.2017).
4. Browser Statistics [Электронный ресурс] // W3Schools. - URL: https://www.w3schools.com/browsers/ (дата обращения: 20.04.2017).
5. Browser & Platform Market Share [Электронный ресурс] // W3Counter. - URL: https://www.w3counter.com/globalstats.php (дата обращения: 20.04.2017).
6. Desktop Browser Market Share [Электронный ресурс] // Net Market Share. - URL: https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&qpcustomd=0 (дата обращения: 20.04.2017).
Список литературы на английском языке / References in English
1. Mikroservisy [Microservices] [Electronic resource] // Wikipedia. - URL: https://ru.wikipedia.org/wiki/Микросервисы (accessed: 01.04.2017). [in Russian]
2. WebRTC [Electronic resource] // Wikipedia. - URL: https://ru.wikipedia.org/wiki/WebRTC (accessed: 15.04.2017).
3. RecordRTC [Electronic resource] // GitHub. - URL: https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-Nodejs (accessed: 15.04.2017).
4. Browser Statistics [Electronic resource] // W3Schools. - URL: https://www.w3schools.com/browsers/ (accessed: 20.04.2017).
5. Browser & Platform Market Share [Electronic resource] // W3Counter. - URL: https://www.w3counter.com/globalstats.php (accessed: 20.04.2017).
6. Desktop Browser Market Share [Electronic resource] // Net Market Share. - URL: https://www.netmarketshare.com/browser-market-share.aspx?qprid=0&qpcustomd=0 (accessed: 20.04.2017).