Новости HRTech, интересные идеи о Digital HR в нашем канале в Telegram: https://t.me/WebsoftHR

Как оценить канал связи для дистанционного обучения?

Практически в каждом проекте по внедрению системы дистанционного обучения клиент задает нам вопрос: "Какой канал связи мне нужен, чтобы заработала система?".

Очень хочется ответить коротко и ясно, но к сожалению не получается. Поэтому попытаюсь достаточно развернуто описать наш подход к проблеме... Заранее прошу прощения у тех считает себя чистыми гуманитариями - без некоторых ИТ-терминов и элементарной математики не обойтись - такая уж тема :)

Почему ответ не очевиден?
Дело в том, что на требуемую пропускную способность канала связи влияет множество факторов:
1) Объем передаваемого контента - если на главной странице учебного портала повесить картинку объемом 200KB то такая страница будет скачиваться существенно дольше (а передаваемый материал будет занимать существенно большую долю канала) чем в случае ее отсутствия
2) Используемые мультимедиа компоненты - видеокурс безусловно больше по объему передаваемых данных чем текстовый курс с иллюстрациями. Курс со звуковым сопровождением в 4-6 раз больше по объему чем аналогичный курс без звука.
3) Требования к задержке при передаче данных - передача видео в реальном масштабе времени требует другого канала чем то же видео но в записи (его закачки пользователь может ждать достаточно долго)
4) Количество одновременно работающих пользователей и бизнес требования к решаемым задачам. Например, требуется, чтобы 100 человек в течение 1 часа могли изучить курс или 1000 человек в течение 30 минут сдали по 2 теста и т.п.
5) Допустимое (комфортное) время ожидания материалов пользователем - для кого-то приемлемо, что сотрудник в филиале будет ждать загрузки курса 30 минут, а кто-то считает это недопустимым
6) Технология построения используемых (или планируемых к использованию) учебных курсов - курс может закачиваться одним пакетом (например 10MB flash ролик) или по частым (каждый экрану курса по 100KB)
7) Загрузка канала связи данными других программных продуктов
8) Наличие или отсутствие кэширующего proxy (промежуточного) сервера

Только проанализировав все эти факторы можно более или менее точно ответить на вопрос о требуемом канале связи.

Чтобы чрезмерно не усложнять задачу я не буду рассматривать передачу online видео и аудио-трансляций - об этом стоит поговорить отдельно.

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

Самый главный из факторов, без понимания которого невозможна оценка - бизнес-требования. Далее мы будем рассматривать оценку канала на некотором примере. Бизнес-требования для этого примера - "В филиале работает 300 человек. Не менее 10% из них (т.е. 30 человек) могут работать с СДО в течение часа после завершения основного рабочего времени. Они будут изучать курсы без видео-фрагментов. Средний размер курса - 5MB, за 1 час сотрудник откроет 60 экранов, т.е. размер одного экрана около 85KB, экраны загружаются последовательно".

Рассмотрим существующую инфраструктуру: в нашем примере в филиале есть канал связи 1MBit/s (для справки - это означает, что через такой канал связи можно прокачать не более 128KB за 1 секунду). При этом канал в такое время (после работы) загружен на 20-30% другими приложениями (интернетом, почтой, корпоративной ИТ-системой). Т.е. остается 768 KBit/s (1MBit/s - 25%).

На основании этих данных мы уже можем оценить минимальную необходимую пропускную способность канала связи. Она равна: 5 * 1024 * 8 * 30 / 3600 = 341.3 KBit/s
Расшифровка формулы:
5 * 1024 - размер одного изученного курса в килобайтах
5 * 1024 * 8 - размер одного изученного курса в килобитах
5 * 1024 * 8 *30 - размер всех изученных курсов (30 штук) в килобитах
5 * 1024 * 8 * 30 / 3600 - делим все это на количество секунд в часе (3600), т.к. курсы полностью изучаются за 1 час и получаем минимально необходимую пропускную способность для того, чтобы все пользователи скачали все материалы курсов за указанное время.

Мы предполагаем что все материалы курса скачиваются на компьютер клиента с центрального сервера, т.е. нет специального ПО вроде кэширующего proxy сервера.

Таким образом пропускная спосбность канала (768) позволит скачать все материалы курса (требуется 341.3), но при этом нам ничего неизвестно о качестве обучения - т.е. сколько в среднем будет ждать обучаемый загрузки материала нажав на кнопку "Следующий экран".

Чтобы это узнать нам придется перейти к задаче моделирования. Дело в том, что математически точно ответить на вопрос невозможно. Причина в том, что люди не роботы и нажимают на кнопки когда им вздумается. Если они случайно нажмут на кнопку "Следующий экран" все одновременно, то потребуется ООЧЕНЬ ШИРОКИЙ канал связи (к счастью в реальной жизни так не бывает). Если же они будут делать это равномерно, то канал связи будет загружен меньше и отклик от сервера придет быстрее. Дело в том, что общая "ширина" канала как правило делится равномерно между всеми запросами пользователей. Если через канал можно за 1 секунду прокачать 100KB то 10 запросов по 10KB будут обработаны за 1 секунду, а 100 запросов по 10KB - за 10 секунд.

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

Что мы получим в результате моделирования:
1) Оценку среднего времени загрузки страницы (самый важный показатель с точки зрения обучаемого):в нашем примере около 2 секунд (вполне приемлемо)
2) Оценку загрузки канала (см. график):

3) Распределение времени загрузки (см. диаграмму) - мы видим, что абсолютное большинство запросов укладывается в 5 секунд, т.е. дольше 5 секунд обучаемые не будет ждать загрузки страницы.


Итак в результате мы можем дать ответ - канал связи позволяет удовлетворить наши бизнес-требования!

А что было бы если канал связи был в 2 раза "уже" - т.е. 512MBit? С точки зрения минимальной пропускной способности он все равно позволял бы скачать все данные (т.к. 384>341.3, где 384KBit/s это 75% от 512), но распределение времени загрузки было бы совсем другим! Т.е. некоторым обучаемым пришлось бы ждать загрузки страницы до 20 секунд (см. рисунки). Приемлемы ли такие параметры работы? Решать вам - это же ваши сотрудники!!




Тем, у кого хватило сил дочитать этот материал до конца, я предлагаю бонус - доступ к системе моделирования загрузки канала связи на нашем сервере (бесплатно разумеется):
Перейти к программе моделирования

Программа моделирования написана на Flex 2 и для своей работы требует, чтобы у вас был установлен Macromedia Flash версии 9. Если его нет - скачайте его здесь.

Что же делать если выяснилось, что канала связи не хватает? Бросать проект или бежать к ИТ-шникам с просьбой расширить канал?? На самом деле ответ очень прост - построить распределенную систему дистанционного обучения. Но об этом стоит написать отдельно, что я когда-нибудь обязательно сделаю :)

PS
Надеюсь мне удалось убедить вас, что оценка требуемого канала связи не такая простая задача, как кажется на первый взгляд и над ней стоит всерьез задуматься тем, кто строит систему дистанционного обучения для своих филиалов...

Популярные сообщения из этого блога

Сказка о непотерянном времени, или Как учесть трудозатраты сотрудников на обучение

Кто владеет информацией тот владеет миром, или как создать быстро работающую базу знаний с «умным» поиском

Классификация HR-систем

Как выбрать систему автоматизации рекрутмента (ATS)?

Мобильные инструменты WebTutor для современной HR-автоматизации