SCORM: что это, что отслеживает и когда применять

Автор: Николай СапуновОбновлено: август 202615 мин чтения
Содержание статьи +

Кратко

SCORM (Sharable Content Object Reference Model) – стандарт упаковки курсов, которому уже 25 лет. Благодаря ему один файл курса запускается и передаёт результаты почти в любой системе обучения. SCORM решает три задачи: упаковывает курс в ZIP, который откроет любая совместимая система; связывает курс с системой через небольшой интерфейс на JavaScript; в версии 2004 ещё и задаёт порядок, в котором учащийся проходит части курса. Отслеживает он фиксированный и скромный набор данных – завершение, зачёт/незачёт, балл, время и ограниченный список ответов, и ничего сверх этого. SCORM подходит, когда курс должен работать в существующей LMS уже сегодня (для Moodle в российских вузах – версия 1.2). Если нужно отслеживать действия внутри видео или обучение за пределами LMS, берите xAPI или cmi5.

Почему это важно

Если вы строите или покупаете обучающий продукт, SCORM – первый стандарт, с которым вы столкнётесь: его понимают почти все системы управления обучением и все редакторы курсов. При правильной реализации курсы загружаются и передают результаты везде, без отдельной интеграции под каждую платформу. При ошибке получится пакет, который отлично проигрывается в редакторе, но не записывает ни одного результата в реальной системе обучения. Статья написана для руководителя L&D, продакт-менеджера или основателя, которому нужно понять, хватит ли продукту SCORM, и говорить с инженерами на одном языке. Точность здесь – до отдельного поля данных, но читать можно без знания спецификаций.

Что такое SCORM

Представьте морской контейнер. У него стандартный размер и стандартные угловые фитинги, поэтому любой кран, грузовик или судно в мире поднимет его, не интересуясь, что внутри. Стандарт, который делает то же самое с онлайн-курсом, то есть позволяет любой совместимой системе обучения загрузить и отслеживать его без ручной настройки, называется SCORM – Sharable Content Object Reference Model.

Расшифровка названия многое объясняет. Sharable Content Object – отдельная часть курса, которую можно запустить и отследить: урок, тест, видеомодуль. Главное же в названии – Reference Model (эталонная модель): SCORM не изобрёл новую технологию. Это набор правил, который ссылается на существующие веб-стандарты (ZIP, XML и JavaScript) и говорит: «упакуйте и подключите курс вот так, и он заработает везде». Курс по SCORM – это контейнер, система обучения – кран.

Система управления обучением, или LMS (learning management system), – платформа, которая хранит курсы, зачисляет учащихся, запускает контент и сохраняет результаты: Moodle, iSpring Learn, WebTutor, Mirapolis и сотни других. Смысл SCORM в том, что курс делают один раз, а работает он во всех них. До SCORM каждый курс приходилось отдельно интегрировать с каждой платформой. SCORM свёл эту работу к одному переносимому файлу.

SCORM создала инициатива Advanced Distributed Learning (ADL) – государственная программа, которая с конца 1990-х добивалась, чтобы учебный контент можно было переиспользовать в разных системах. ADL выпустила SCORM 1.0 в 2000 году, SCORM 1.2 в 2001-м, а затем семейство SCORM 2004 (четыре редакции, последняя – 2009 года). Спустя 25 лет это по-прежнему самый широко поддерживаемый стандарт e-learning в мире.

Рисунок 1. Три задачи SCORM. Упаковать курс (Content Aggregation Model), связать курс с системой во время работы (Run-Time Environment) и – только в SCORM 2004 – определить, что учащийся увидит дальше (Sequencing and Navigation).

Почему 25-летний стандарт всё ещё повсюду

С тех пор появились новые стандарты – xAPI, cmi5, LTI, и мы до них дойдём. Но SCORM остаётся выбором по умолчанию по одной практической причине: его поддерживают все. Почти любая LMS на рынке умеет импортировать и запускать SCORM-пакет, и почти любой редактор умеет его экспортировать – от популярного в России iSpring Suite до международных конструкторов курсов. Когда методист нажимает «Опубликовать», он выбирает SCORM, потому что именно этот формат гарантированно примут на другой стороне.

В этой универсальности вся ценность SCORM, и она же причина, по которой стандарт застыл во времени. ADL давно не развивает SCORM и вкладывается в xAPI, cmi5 и более широкую «Total Learning Architecture». SCORM зрелый, замороженный и вездесущий – COBOL в мире e-learning. Его выбирают не за современность, а за то, что он с первого дня работает в системах, которые вы не контролируете.

Три книги: как устроен SCORM

ADL опубликовала SCORM как набор «книг», каждая посвящена своей задаче. Разобравшись в трёх книгах, вы поймёте весь стандарт, поэтому пройдём по ним по очереди.

Книга 1 – упаковка: манифест (Content Aggregation Model)

Первая книга, Content Aggregation Model (CAM), описывает контейнер. SCORM-курс поставляется одним ZIP-файлом, который иногда называют Package Interchange File (PIF). В корне архива лежит единственный обязательный файл – imsmanifest.xml. Это опись содержимого. Любая совместимая система открывает ZIP, читает манифест и узнаёт всё нужное, не открывая сам курс.

Манифест описывает три вещи. Metadata – название и описание курса. Organizations – оглавление, дерево модулей и уроков в задуманном автором порядке. Resources – список файлов: все HTML-страницы, скрипты, картинки и видео. В SCORM 2004 в манифесте хранятся ещё и правила sequencing (книга 3).

Главное различие в упаковке – SCO и asset. Sharable Content Object (SCO) – запускаемая единица, которая общается с системой обучения и передаёт результаты. Asset – обычный медиафайл (PDF, картинка, видео): он показывается, но ничего не передаёт. Всё, что нужно отслеживать, должно быть SCO. Частая и дорогая ошибка – выложить видео обычным asset, а потом гадать, почему не записывается завершение (подробнее ниже).

Рисунок 2. SCORM-пакет – это ZIP с `imsmanifest.xml` в корне. Манифест перечисляет metadata, структуру курса (organizations) и файлы (resources). SCO передают результаты, asset – нет.

Книга 2 – время выполнения: диалог на JavaScript (Run-Time Environment)

Вторая книга, Run-Time Environment (RTE), описывает, как курс и система общаются после того, как учащийся нажал «Старт». Здесь и происходит трекинг, поэтому разберём эту часть подробнее.

Запуская SCO, система обучения открывает его в браузере и предоставляет небольшой JavaScript-объект – API. Первая задача SCO – найти этот объект, поднимаясь по цепочке окон браузера в поисках конкретного имени: API в SCORM 1.2, API_1484_11 в SCORM 2004. Найдя его, SCO ведёт диалог по фиксированному сценарию:

// Диалог времени выполнения SCORM 2004 (упрощённо, данные вымышленные)
var api = findAPI(window);          // найти объект, который дала LMS
api.Initialize("");                 // «я начинаю»
api.SetValue("cmi.completion_status", "completed");
api.SetValue("cmi.success_status", "passed");
api.SetValue("cmi.score.scaled", "0.82");   // 82%, диапазон от -1 до 1
api.Commit("");                     // «сохрани то, что я отправил»
api.Terminate("");                  // «я закончил»

В SCORM 1.2 методы называются чуть иначе (LMSInitialize, LMSGetValue, LMSSetValue, LMSCommit, LMSFinish), но схема та же: открыть канал, прочитать или записать поля данных, сохранить, закрыть. Всё, что делает учащийся и что записывает система, проходит через этот интерфейс. Если SCO не находит API – из-за кросс-доменного ограничения браузера или неправильного запуска, – трекинг молча отключается. Это самая частая причина обращений в поддержку по SCORM.

Рисунок 3. Диалог времени выполнения. SCO находит API LMS, открывает канал, записывает завершение, успех и балл в фиксированные поля, затем вызывает Commit и Terminate. Весь трекинг происходит в этом обмене.

Книга 3 – sequencing: что дальше (Sequencing and Navigation)

Третья книга, Sequencing and Navigation (SN), есть только в SCORM 2004. Это свод правил о том, что учащийся увидит дальше, закончив очередную часть. Она задаёт дерево активностей, пред- и постусловия («нельзя начать экзамен, пока не пройдены все три урока»), правила rollup (как статус частей складывается в статус «завершено» для целого) и режимы навигации (свободный переход или заданный путь).

Sequencing – мощный инструмент и, по признанию самой ADL, самая сложная часть спецификации. Реализован он тоже неоднороднее всего: курс с sequencing, который безупречно работает в одной системе, в другой может вести себя иначе. К этому компромиссу мы вернёмся при сравнении версий.

Что SCORM отслеживает – модель данных

На этом спотыкается большинство команд: SCORM не отслеживает «всё». Он работает с фиксированной, заранее заданной моделью данных – конкретным списком полей, и только с ним. Добавить своё поле нельзя. Ядро модели вендоры часто называют «Большой четвёркой»: завершение, успех (зачёт/незачёт), балл и время.

Конкретные поля в версиях различаются. В таблице – самые важные.

Что вы хотите записатьПоле SCORM 1.2Поле SCORM 2004
Закончил? + зачёт/незачётcmi.core.lesson_status (одно поле)cmi.completion_status и cmi.success_status (два поля)
Баллcmi.core.score.raw (0–100)cmi.score.scaled (от −1 до 1), плюс raw/min/max
Времяcmi.core.session_timecmi.session_time (длительность ISO 8601)
Где остановилсяcmi.core.lesson_locationcmi.location
Состояние для возобновленияcmi.suspend_data (макс. 4 096 симв.)cmi.suspend_data (макс. 64 000 симв.)
Ответы по вопросамcmi.interactions (ограниченно)cmi.interactions (подробнее, с текстом)
Учебные целине поддерживаетсяcmi.objectives

Одна тонкость регулярно приводит к багам. В SCORM 1.2 единственное поле lesson_status должно выразить и «закончил ли», и «сдал ли» – значениями вроде passed, completed, failed, incomplete. Однозначно записать «завершено, но не сдано» нельзя. В SCORM 2004 это два независимых поля – завершение и успех, поэтому и «completed / failed», и «completed / passed» выражаются без двусмысленности. Если в отчётах нужно отличать «дошёл до конца» от «набрал проходной балл», одно это различие может определить выбор версии.

SCORM 1.2 или SCORM 2004: сравнение

Обычно выбирают между двумя версиями: SCORM 1.2 (2001) и SCORM 2004 (4-я редакция 2009 года, последняя и самая функциональная). На бумаге новая версия сильнее, на практике старую поддерживают шире. Между этими двумя фактами и приходится выбирать.

КритерийSCORM 1.2SCORM 2004 (4-я ред.)
Поддержка LMSПочти везде, включая старыеШирокая, но sequencing поддержан неравномерно
Завершение и зачёт/незачётОдно полеДва отдельных поля
Лимит данных возобновления4 096 символов64 000 символов
Данные по вопросамОграниченноПодробно, с текстом вопроса
Учебные целиНетДа
Sequencing / ветвлениеНет (решает LMS или контент)Полные правила sequencing
Сложность реализацииМинимальнаяВыше
Когда братьНужна максимальная совместимостьНужны ветвление, подробные данные, цели

Таблица – ориентир, а не догма. SCORM 1.2 подходит, когда курс прежде всего должен запускаться где угодно, включая старые и нишевые системы, а требования к трекингу простые. SCORM 2004 нужен, когда завершение и успех надо фиксировать раздельно, крупному курсу не хватает объёма данных, нужны подробные ответы по вопросам или ветвление по правилам – и при этом вы контролируете целевые системы или можете их протестировать. В спорных случаях многие команды выбирают 1.2: курс, который не загрузился, обходится дороже, чем чуть более скудные данные.

Для российского рынка у этого выбора есть практическая сторона. Moodle – стандарт де-факто для ЭИОС вузов – по собственной документации штатно поддерживает SCORM 1.2 (и проходит тесты соответствия ADL для этой версии), а SCORM 2004 не поддерживает: отдельные пакеты могут заработать, но разработка поддержки остановлена [8]. Полную поддержку 2004 документация Moodle предлагает через коммерческий плагин, связанный с зарубежным облачным сервисом. Это означает передачу данных об учащихся во внешний сервис за рубежом, а она упирается в запрет обработки персональных данных граждан РФ в зарубежных базах (ч. 5 ст. 18 152-ФЗ) [9]. Поэтому, если курс должен работать в ЭИОС на Moodle, публикуйте SCORM 1.2 и укладывайте suspend_data в 4 096 символов. Российские корпоративные LMS поддержку SCORM заявляют, но какую версию и насколько полно – проверяйте тестовым пакетом на конкретной платформе.

Рисунок 4. Хронология стандартов. SCORM 1.2 (2001) и SCORM 2004 (по 2009) – опора эпохи LMS; xAPI, cmi5 и ратификация xAPI в IEEE в 2023 году выводят трекинг за её пределы.

Пример: трекинг 20-минутной видеолекции

Ограничения SCORM нагляднее всего на цифрах. Возьмём одно видео.

Допустим, есть 20-минутная записанная лекция, и система обучения должна зафиксировать, что учащийся её «завершил». В SCORM видео оборачивают в SCO. SCO следит за HTML5-элементом video и, когда учащийся досматривает до конца, записывает одно поле:

cmi.completion_status = "completed"

Для SCORM это естественная единица учёта: завершено или нет. Теперь допустим, что нужно ещё запоминать, где каждый учащийся поставил паузу, чтобы продолжить с того же места. Для этого есть suspend_data. Посчитаем объём:

Состояние на учащегося  =  последняя позиция (8 симв.)
                         + просмотренные главы (12 симв.)
                         + флаг заметок         (4 симв.)
                         ≈ 24 символа

Лимит SCORM 1.2          =  4 096 символов всего
Лимит SCORM 2004         =  64 000 символов всего

Двадцать четыре символа поместятся в любую версию. Но представьте интерактивный курс из 60 вопросов, который хранит состояние каждого вопроса в suspend_data. При 60 символах на вопрос это 3 600 символов, уже 88% лимита SCORM 1.2, а ведь больше ничего ещё не сохранено. Добавьте закладки – и курс незаметно выходит за 4 096 символов и портит собственное состояние возобновления. Поэтому крупные курсы, которые хранят состояние, переходят на SCORM 2004 с его 64 000 символов. Версию диктует арифметика, а не маркетинг.

Важнее другое: чего SCORM не видит. Он записал, что видео «завершено». Но он не скажет, что учащийся посмотрел минуты 0–5, перескочил на 18-ю, дважды пересмотрел 12-ю и бросил на 19-й. Посекундное поведение в видео в фиксированную модель SCORM не входит. Чтобы его отследить, нужны xAPI и xAPI Video Profile – об этом в статье трекинг видео через xAPI Video Profile.

Чего SCORM не умеет и что приходит ему на смену

SCORM исходит из реалий 2001 года: учащийся сидит за компьютером в браузере, вошёл в LMS и остаётся с ней на связи всю сессию. Отсюда и ограничения.

SCORM отслеживает обучение только внутри сессии, которую LMS запустила в браузере. Нативное мобильное приложение, симуляция, VR-шлем, оборудование на заводе или видео на публичном сайте ему недоступны. Модель данных фиксирована: завершение, балл, время и ограниченный набор ответов, ничего сверх. Нужно постоянное соединение с LMS, офлайн SCORM не работает. И детальной аналитики видео в нём нет вовсе.

Эти ограничения снимают стандарты, которым посвящена остальная часть блока 2:

  • xAPI (Experience API), раньше известный как Tin Can API, записывает обучение где угодно в виде простых утверждений – «Мария завершила модуль 3» – в Learning Record Store (LRS). В октябре 2023 года xAPI ратифицирован как стандарт IEEE 9274.1.1-2023 (его иногда называют xAPI 2.0). См. xAPI (Tin Can): объяснение.
  • cmi5 – мост: он переносит гибкость xAPI в привычную модель запуска и отчётности LMS, так что современный трекинг не требует отказываться от LMS. См. cmi5: объяснение.
  • LTI (Learning Tools Interoperability) решает другую задачу: он не упаковывает контент, а запускает ваш видеоинструмент внутри LMS со сквозной авторизацией и передачей оценок. См. LTI: объяснение.

Полное сравнение – в статье SCORM, xAPI, cmi5 и LTI: какой стандарт и когда выбрать.

Рисунок 5. Граница возможностей SCORM. Внутри сессии, запущенной LMS, SCORM отслеживает завершение, балл и время. За её пределами – мобильные приложения, симуляции, офлайн и посекундное видео – нужен xAPI, cmi5 или xAPI Video Profile.

Частые ошибки, на которые уходит время

Несколько ловушек встречаются почти в каждом SCORM-проекте. Каждую легко обойти заранее и дорого исправлять, если заметить поздно.

Первая – «в редакторе работает, в LMS нет». Предпросмотр в редакторе курсов не запускает настоящий диалог времени выполнения. Всегда тестируйте сам экспортированный пакет в реальной системе обучения – в целевой LMS заказчика, в своей тестовой установке Moodle или в тестовом наборе ADL – до выпуска. Во внешних песочницах используйте только тестовые учётные записи, без реальных данных учащихся.

Вторая – «посмотрел 100% = завершил». Обычный видеоплеер, дошедший до последнего кадра, – не то же самое, что SCO, записавший completion_status = completed. Если видео не оформлено как SCO и поле не записано, система ничего не зафиксирует, как бы внимательно ни смотрел учащийся.

Третья – тихое переполнение suspend_data из примера выше: крупный курс на SCORM 1.2 незаметно превышает 4 096 символов и теряет состояние возобновления. Рассчитайте объём поля заранее или переходите на SCORM 2004.

Четвёртая – ожидание, что sequencing везде ведёт себя одинаково. Разные системы трактуют sequencing SCORM 2004 немного по-разному. Если ветвление важно, тестируйте его на каждой целевой платформе, а не на одной.

Построить или купить: реализовывать SCORM самим?

Начнём с бизнес-решения: именно здесь SCORM сильнее всего влияет на бюджет. «Поддержка SCORM» бывает двух видов, и это разные проекты.

Если вы создаёте курсы, строить почти ничего не нужно. Вы делаете курс в редакторе, который уже экспортирует SCORM (например, iSpring Suite), публикуете в 1.2 или 2004 и загружаете в LMS. Стандарт вы используете, а не реализуете.

Если вы строите платформу, которая должна запускать и отслеживать SCORM-контент – свою LMS или видеопродукт, принимающий SCORM-пакеты, – выбор «построить или купить» становится реальным. Написать с нуля run-time SCORM, полностью соответствующий стандарту, сложнее, чем кажется: модель данных широкая, правила sequencing в 2004 действительно сложные, пограничных случаев много. Большинству команд не стоит делать это вручную. Обычно берут зрелую open-source-библиотеку run-time (например, JavaScript-обёртку SCORM API) или встраивают готовый SCORM-движок, который берёт на себя упаковку, запуск и отчётность через API. Если движок работает как облачный сервис, проверьте, где он хранит данные: результаты учащихся – персональные данные, и для граждан РФ их нужно обрабатывать в базах на территории России [9]. Писать слой SCORM самостоятельно имеет смысл, только если работа со SCORM и есть ваш продукт. Это решение в более широком виде разобрано в статье построить, купить или расширить существующую LMS.

Шаги проверки упаковки мы свели в одностраничный чек-лист, по которому можно проверить любую SCORM-сборку: скачайте чек-лист упаковки и соответствия SCORM.

Где здесь Фора Софт

Фора Софт с 2005 года разрабатывает ПО для видеообучения, стриминга, конференций и интерактивных плееров – более 250 завершённых проектов. В обучающих продуктах мы помогаем командам принять то самое решение, о котором шла речь выше: упаковать видео в обычный SCORM, если курс должен работать в существующей LMS клиента, или перейти на xAPI либо cmi5, если продукту нужны посекундная аналитика видео, офлайн-обучение или трекинг вне LMS. Чаще всего мы работаем с гибридным вариантом: собственный видео- и интерактивный слой, который при этом корректно передаёт результаты в журнал оценок по стандартам. К такому решению обычно и приводит выбор «построить или купить» для продуктов, построенных вокруг видео. Слой трекинга мы делаем для продакшена, а не для демо.

Главное

  • SCORM упаковывает курс так, чтобы любая совместимая система могла его запустить и отслеживать.
  • Он решает три задачи: упаковка (манифест), трекинг (JavaScript API) и sequencing (только 2004).
  • Отслеживается фиксированная модель – завершение, успех, балл, время, ограниченный набор ответов, а не «всё».
  • SCORM 1.2 выигрывает по совместимости, SCORM 2004 – по объёму данных и ветвлению.
  • Moodle штатно поддерживает только SCORM 1.2, поэтому для ЭИОС вузов это версия по умолчанию.
  • Для посекундного видео, офлайна и обучения вне LMS нужны xAPI, cmi5 или xAPI Video Profile.
  • Не пишите run-time SCORM с нуля, если SCORM-движок – не ваш продукт.

Что почитать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.