SCORM (SCORM)

Перейти к навигации Перейти к поиску

SCORM (англ. Sharable Content Object Reference Model — «модель ссылок на совместно используемые объекты содержимого») — сборник спецификаций и стандартов, разработанный для систем дистанционного обучения. Содержит требования к организации учебного материала и всей системе дистанционного обучения. SCORM позволяет обеспечить совместимость компонентов и возможность их многократного использования: учебный материал представлен отдельными небольшими блоками, которые могут включаться в разные учебные курсы и использоваться системой дистанционного обучения независимо от того, кем, где и с помощью каких средств они были созданы. SCORM основан на стандарте XML.

Инициативная группа ADL (Advanced Distributed Learning[англ.]) начала разработку SCORM в 1999 году. За основу будущей разработки была взята спецификация «CMI001 — Guidelines for Interoperability»[1] версии 3.0, выпущенная организацией AICC в сентябре 1999 года. В ней описывались требования к компьютерной системе управления обучением (англ. Computer Managed Instruction, CMI) и к используемым в ней блокам учебного материала (англ. Assignable Unit, AU). Взаимодействие между AU и CMI могло осуществляться либо через чтение/запись локальных файлов (появилось в CMI001 v1.0, 1993 год), либо через HTTP-протокол (появилось в CMI001 v2.0, 1998 год), либо через Javascript API (v3.0, 1999 год). Для описания элементов электронного курса в CMI001 использовались текстовые файлы в формате CSV. Две части спецификации AICC CMI001 (описание модели передаваемых данных и описание взаимодействия через Javascript) вошли в разрабатываемую группой ADL спецификацию SCORM RTE (англ. Run-Time Environment). Вместо термина Assignable Unit в документации SCORM стал использоваться термин англ. Shareable Content Object (SCO).

Для облегчения переносимости и доступности учебных материалов ADL должны были добавить в свою спецификацию требования к описанию метаданных и к способу упаковки учебных материалов. В сотрудничестве с организацией IMS Global[англ.] были разработаны спецификации IMS Learning Resources Meta-Data[2] (IMS MD) и IMS Content Packaging[3] (IMS CP), которые вошли в спецификацию SCORM CAM (англ. Content Aggregation Model) как разделы SCORM Meta-Data и SCORM Content Packaging. В последнем спецификация IMS CP была дополнена несколькими специальными элементами, взятыми из AICC CMI001 (значения этих элементов либо передаются в учебный объект посредством Javascript API, либо используются системой для управления навигацией по учебным объектам, входящим в пакет).

Версии SCORM 1.0 и SCORM 1.1 были тестовыми и распространялись в узких кругах для испытания и сбора отзывов. В октябре 2001 года вышла версия SCORM 1.2[4], которая начала активно распространяться. В то же время группа ADL продолжала заниматься доработкой SCORM, в частности, улучшением возможностей навигации.

В 2002 году закончилась совместная работа IMS Global[англ.], Ariadne и IEEE LTSC[5] по доработке спецификации IMS MD до уровня стандарта. Стандарт IEEE 1484.12.1 получил название LOM (англ. Learning Object Metadata), и благодаря обратной совместимости с IMS MD, может использоваться в SCORM-пакетах для описания метаданных.

Также ADL решила оформить модель взаимодействия как официальный международный стандарт, в связи с чем обратилась в комитет по стандартизации IEEE LTSC. Рабочая группа LTSC в контакте с AICC доработала спецификацию взаимодействия, в результате чего в 2003 году было выпущено два официальных стандарта:

  • IEEE 1484.11.1 — Data Model For Content To Learning Management System Communication (Описание модели данных, передаваемых между учебным материалом и LMS);
  • IEEE 1484.11.2 — ECMAScript API For Content To Runtime Services Communication (Описание способа взаимодействия между учебным материалом и сервисами периода исполнения при помощи Javascript).

Тем временем консорциум IMS Global в 2003 году выпустил спецификацию IMS Simple Sequencing[6] (IMS SS), содержащую требования к описанию последовательностей прохождения учебного материала. Эта спецификация легла в основу разрабатываемой ADL спецификации SCORM SN (англ. Sequencing and Navigation).

В январе 2004 года вышла первая редакция SCORM 1.3 (получившая обозначение SCORM 2004). В ней раздел SCORM RTE был представлен описанием стандартов IEEE 1484.11 (с изменившимся API, которое стали называть SCORM API 2004), дополненным специальными элементами ADL, используемыми для организации навигации, подробно описанной в новом разделе SCORM SN. В раздел SCORM CAM был внесён стандарт IEEE LOM вместо IMS MD, а также добавлены требования к описанию навигации по пакету в соответствии с IMS SS. В июле того же года вышла немного изменённая вторая редакция SCORM 2004.

В июне 2006 года Министерство обороны США предписало, чтобы все разработки в области электронного обучения соответствовали требованиям SCORM.

Позже в SCORM 1.3 были внесены ещё некоторые изменения: в октябре 2006 года вышла третья редакция, а в марте 2009 — четвёртая — SCORM 2004.

Разделы SCORM 2004

[править | править код]

Вводная часть стандарта. Здесь содержатся общие положения и идеи SCORM.

Модель накопления содержания (Content Aggregation Model, CAM)

[править | править код]

Эта часть стандарта описывает структуру учебных блоков и пакетов учебного материала. Пакет может содержать курс, урок, тест, модуль и т. п. В пакет входят xml-файл (манифест), где описана структура пакета, и файлы, составляющие учебный блок. Этот файл должен иметь название imsmanifest.xml и находиться в корневой папке пакета.

Манифест пакета включает:

  • метаданные (свойства компонентов учебного материала);
  • организацию учебного материала (в каком порядке расположены компоненты);
  • ресурсы (ссылки на файлы, содержащиеся в пакете);
  • под-манифест (xml-файл может содержать под-манифесты, описывающие отдельные части пакета. Может иметь смысл, если пакет очень большой и имеет сложную структуру, чтобы не перегружать один файл большим объёмом данных).

Блоки учебного материала, входящие в пакет, могут быть двух типов: ресурсы и объекты, включающие в себя контент, доступный для обмена между пользователями (англ. Sharable Content Object (SCO)).

  • Ресурс (англ. asset) — элемент, который не взаимодействует с сервером системы управления обучением (LMS-сервером). Это может быть html-страница, просто картинка, звуковой файл, flash-объект и т. п. Ресурс может состоять из нескольких файлов (например, html-файл + css-файл c описанием его стилей + js-файл с описанием используемых в нём функций), но с точки зрения системы и учащегося ресурс будет рассматриваться как единый неделимый объект.
  • Разделяемый объект содержимого (SCO) — это элемент, который взаимодействует с системой управления обучением: сообщает о ходе и результатах обучения, получает и передаёт дополнительные данные и т. п. Как минимум SCO сообщает о своем запуске и завершении (путём вызова методов Initialize("") и Terminate("") объекта API_1484_11, используемого системой для взаимодействия).

Пример кода манифеста SCORM-пакета:

<?xml version="1.0" encoding="UTF-8"?>
<manifest version="1.3" identifier="8EA33DC1" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1">
  <metadata>
    <schema>ADL SCORM</schema>
    <schemaversion>2004 4th Edition</schemaversion>
  </metadata>
  <organizations default="09B4C179">
    <organization identifier="09B4C179" structure="hierarchical">
      <title>Содержание</title>
      <item identifier="7D841A9D" isvisible="true" identifierref="44D33973">
        <title>Пример объекта SCO, взаимодействующего с LMS</title>
      </item>
    </organization>
  </organizations>
  <resources xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p3">
    <resource identifier="44D33973" adlcp:scormType="sco" type="text/html" href="sco.htm">
      <file href="sco.htm" />
    </resource>
  </resources>
</manifest>

Для передачи пакетов по сети (например, для загрузки в систему управления обучением) спецификация SCORM CAM предписывает помещать содержимое пакета в zip-архив. Файл imsmanifest.xml должен располагаться в корне архива. Остальные файлы пакета должны располагаться так, как указано их расположение в элементах file в содержимом манифеста. Например, в случае приведённого ранее кода манифеста файл sco.htm должен располагаться на том же уровне, где и imsmanifest.xml, то есть в корне архива. А если бы в манифесте было прописано <file href="folder1\sco.htm" />, файл sco.htm должен был бы располагаться в папке folder1 в архиве.

Среда выполнения (Run-Time Environment, RTE)

[править | править код]

Эта часть стандарта описывает взаимодействие SCO и системы управления обучением (англ. Learning Management System, LMS) через программный интерфейс приложения (Application Program Interface, API). Требования SCORM RTE позволяют обеспечить совместимость SCO и LMS, чтобы каждая система дистанционного обучения могла взаимодействовать со SCO таким же образом, как и любая другая, соответствующая стандарту SCORM. LMS должна обеспечивать доставку требуемых ресурсов пользователю, запуск SCO, отслеживание и обработку информации о действиях учащегося, передачу SCO-объекту запрашиваемых данных и сохранение получаемых.

Взаимодействие осуществляется через объект API_1484_11, располагающийся в одном из родительских окон браузера по отношению к окну учебного объекта. Учебный объект должен быть запущен либо во фрейме (<iframe>) на странице системы управления обучением, либо во всплывающем окне (посредством JavaScript-вызова window.open). В начале своей работы SCO-объект должен найти объект API_1484_11 в одном из родительских окон, применив для этого алгоритм перебора родительских окон (SCORM API Discovery Algorithm), а затем вызвать метод Initialize("") этого объекта.

После успешной инициализации SCO может запрашивать у системы данные посредством метода GetValue(«название_элемента_данных») или посылать данные в систему посредством метода SetValue(«название_элемента_данных», «значение»). Возможные элементы данных и их допустимые значения перечислены в спецификации. Для принудительного сохранения данных, отправленных в систему, SCO-объект должен вызвать метод Commit("").

Также API позволяет отслеживать SCO-объекту возможные ошибки, возникающие в процессе взаимодействия, посредством методов GetLastError, GetErrorString и GetDiagnostic.

В конце своей работы SCO должен вызвать метод Terminate(""), тем самым сообщив системе, что работа с ним закончена и его можно закрывать (или переходить к следующему объекту).

Пример простейшего SCO (данная html-страница запрашивает у системы управления обучением имя учащегося, который её открыл):

<html>
    <head>
        <script language="javascript">
        function findAPI(win) { //ищем в родительских окнах объект с названием API.
            var findAPITries=0; //будем считать количество попыток, чтобы поиск не был бесконечным.
            while ((win.API_1484_11 == null) && (win.parent != null) && (win.parent != win)) {
                findAPITries++;
                if (findAPITries > 20) return null; //число 20 взято условно, теоретически его может и не хватить.
                win = win.parent;
            }
            return win.API_1484_11;
        }
        function getAPI() { //получаем объект API для текущего SCO.
            var theAPI = findAPI(window); //сначала пробуем искать в родителях текущего окна.
            if ((theAPI == null)) { //если не нашли в родителях текущего окна,
                if ((window.opener != null) && (typeof(window.opener) != "undefined"))
                    theAPI = findAPI(window.opener); //то попробуем найти в родителях окна, открывшего текущее.
            }
            return theAPI;
        }
        function start() { //эта функция сработает в момент открытия SCO.
            var api = getAPI();
            if (api!=null) {
                api.Initialize("");
                value=api.GetValue("cmi.learner_name"); //запрашиваем у системы имя учащегося,
                document.write("Имя учащегося: "+value); //и выводим его на экран.
            }
            else document.write("Не удаётся подключиться к API системы.");
        }
        function stop() { //эта функция сработает в момент закрытия SCO.
            var api = getAPI();
            if (api!=null) api.Terminate("");
        }
        </script>
        <title>Пример объекта SCO, взаимодействующего с LMS</title>
    </head>
    <body onLoad="start()" onunload="stop()">
    </body>
</html>

Упорядочение и навигация (Sequencing and Navigation, SN)

[править | править код]

Эта часть стандарта описывает, как должна быть организована навигация и предоставление компонентов учебного материала в зависимости от действий учащегося. Требования SCORM SN позволяют преподносить учащемуся материал в соответствии с индивидуальными особенностями.

Требования соответствия (Conformance Requirements)

[править | править код]

Эта часть содержит полный список требований на соответствие стандарту SCORM, проверяемых ADL. Система управления обучением или редактор учебных материалов может получить от ADL сертификат о соответствии требованиям SCORM, если он функционирует в соответствии с этими указаниями.

Примечания

[править | править код]
  1. Спецификация AICC CMI001 — Руководство по совместимости. Дата обращения: 29 декабря 2010. Архивировано из оригинала 24 июля 2011 года.
  2. Документация IMS Learning Resource Meta-data Specification. Дата обращения: 29 декабря 2010. Архивировано 19 декабря 2010 года.
  3. Документация IMS Content Packaging Specification. Дата обращения: 29 декабря 2010. Архивировано 6 декабря 2010 года.
  4. Официальная документация ADL SCORM 1.2. Дата обращения: 6 сентября 2011. Архивировано из оригинала 11 августа 2011 года.
  5. Официальная страница IEEE LTSC. Дата обращения: 16 марта 2022. Архивировано 8 марта 2022 года.
  6. Документация IMS Simple Sequencing Specification. Дата обращения: 29 декабря 2010. Архивировано 6 ноября 2010 года.