Технологии разработки распределенных корпоративных систем обучения от компании РЕЛЭКС.

Алексей Киселев (ЗАО НПП "РЕЛЭКС")

Потребность рынка в системах обучения понятна. Есть несколько основных направлений, в которых проявляется активность:

Преимущества использования систем дистанционного обучения и тестирования перед традиционными методами обучения стали очевидны довольно давно, однако рынок систем этого класса сравнительно молод. Парадокс? Отнюдь. Задача настолько сложна и слабо формализуема, потребности рынка настолько разносторонни, что написание системы, охватывающей круг интересов значительного количества потребителей, представляет собой весьма непростую задачу.

Рассмотрим типичные задачи, которые клиент хотел бы решить при помощи подобной системы.

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

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

Теперь, после того, как мы сформулировали основные проблемы и задачи, рассмотрим предлагаемый подход для их решения.

Это - самая общая схема системы, решающей вышеперечисленные задачи. Рассмотрим каждую из составных частей более подробно.

Внутреннее представление

Во-первых, как связать столь разнородно представленные данные? XML - это идеальный кандидат для решения задачи унификации внутреннего представления content. XML является общепринятым стандартом для хранения и обмена данными, не зависит от языков и платформ, легко поддается трансформации в другие представления. Представление данных в нем легко и удобно - достаточно лишь описать ваше собственное подмножество языка, и в дальнейшем Вы можете легко реализовать жизненный цикл конкретного документа, от момента его рождения и до представления конечному клиенту, используя абсолютно различные механизмы обработки - все процессы становятся легко формализуемыми и прозрачными.

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

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

Импорт content

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

Основное назначение и область применения нашей реализации подсистемы импорта - быстрая конвертация XML документов, документов в форматах MS Word, RTF, TXT, Power Point, QuarkX Press, PageMaker в набор объектов для создания обучающего content. Примером такой конвертации может быть процесс преобразования тестов в формате MS Word в набор текстовых ресурсов и вопросов системы. Процесс конвертации управляется скриптом на языке VB Script. В простейшем случае может быть получен один текстовый ресурс из документа, в более сложном варианте (наиболее распространенном) скрипт может опираться на информацию о логическом делении документа на секции, подсекции, вопросы и т.д. на основании различных элементов оформления (стиль, шрифт, размер и т.д.)

Архитектура подсистемы импорта

Возможности подсистемы:

Система хранения и манипулирования данными во внутреннем представлении.

Итак, как результат работы импорта (либо ручного редактирования) мы имеем набор примитивов для построения реального курса. В этот набор входят:

Задача обеспечения удобства работы с подобным набором пока еще неструктурированной информации сама по себе довольно сложна и должна удовлетворять следующему набору требований:

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

Тест - это набор блоков вопросов, текстовых ресурсов, ссылок. Эти объекты представляют собой узлы графа теста, связи же в этом графе могут быть проведены либо непосредственно между объектами, либо с использованием специфических объектов ветвления - мультиплексоры, которые придают прохождению графа теста планируемую, однако адаптивную прохождению логику (CAT-logic). На логику прохождения теста могут влиять следующие параметры:

На последнем пункте следует остановиться и рассмотреть его подробнее.

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

Для решения этой задачи вводится некая абстрактная структура, иерархическое представление модели области знаний - content tree. Узлы его позволяют осуществлять привязку к себе различных объектов - входящих в тест вопросов, документов курса, различных вспомогательных ресурсов. Этот механизм позволяет на основании ответов пользователя на вопросы строить динамические обучающие ресурсы, разноуровневые отчеты (для пользователя, для обучающего, для руководства и т.д.)

Курс - это самый сложный объект системы. Он может включать в свою структуру как отдельные, сгруппированные произвольным образом, документы, ссылки, так и тесты. Разработчику курса предоставляется возможность манипулирования объектами навигации по этому объекту посредством таких инструментов, как меню курса, деревья - (это объект для иерархической связи и представления составных частей курса), ссылки, позволяющие осуществлять переход из одного места в курсе в другое. Разработчик курса вправе управлять сессионностью в курсе - т.е. реакцией на повторные запуски объектов. Разработчик курса выбирает стиль представления.

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

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

Еще одно немаловажное достоинство описанной архитектуры - это возможность переиспользования ресурсов - от простых текстовых страниц до тестов. Потребность в этом очевидна - реальный пример: курс математики для четвертого и шестого класса должен включать в себя один и тот же тест - отличие только в том, что в курсе четвертого класса он выступает как серьезный оценочный тест, а в курсе шестого - как материал для повторения. Соответственно, переиспользовать можно и необходимо как базовые ресурсы, так и сам тест - это выражение концепции т.н. Reusable Learning Objects (RLO). Переиспользование ресурсов значительно сокращает их необходимое количество в случае большого количества связанных по смыслу курсов

Аспект переиспользования ресурсов является одной из предпосылок создания таких объектов системы, как шаблоны документов. Шаблоны в нашей системе бывают двух типов - это статические, использование которых позволяет создавать документы стандартизованного вида, значительно облегчая сам процесс создания, и шаблоны времени исполнения (run-time templates). Шаблоны второго типа являются составной частью уровня представления информации, и позволяют представить на странице динамическую информацию, доступную только в процессе сессии работы пользователя с курсом (самый простой пример - это вставка в тело документа имени пользователя, в данный момент работающего с курсом).

Уровень представления данных

Представление данных конечному пользователю - задача тоже очень сложная в силу специфики требований каждого конкретного потребителя. Поэтому слой представления также выделяется в отдельную, но органически связанную со всеми остальными подсистему. Стандартное средство представления информации в условиях работы в Internet - это web-browser и, соответственно, HTML в качестве языка представления - это одновременно привычно (что весьма немаловажно), удобно для восприятия и легко в плане понимания.

Для перевода документов из внутреннего представления в HTML применяется соответствующий механизм трансформации с изменяемыми стилями представления. Стиль представления может включать в себя набор XSL-скриптов, run-time templates для различных типов ресурсов. Например, вам необходимо показать все документы внутри таблицы, в первой ячейке которой впечатано имя пользователя, далее - название продукта, далее - порядковый номер страницы внутри теста. При этом для документов-вопросов типа Multiple Choice использовать таблицу одной ширины, а для всех остальных - другой. При этом, естественно, только в рамках этого курса, поскольку в другом правила будут другими.

Эту задачу позволяет решить механизм стилей. Стиль - поименованный набор типизованных XSL, run-time templates, css - всего необходимого для трансформации, доставки и представления пользователю ресурса в конечном его представлении. Свой собственный стиль может иметь курс, конфигурация, тест, конкретный ресурс (внутри или вне теста). Этот набор стилей образует иерархию, и на ее основе система доставки решает, использовать ли default трансформацию для представления этого ресурса или на каком то из уровней было принято решение о перекрытии стиля.

Интерфейс пользователя

Гибкость и мощность внутренних механизмов обработки, тонкость настройки - это все процессы, скрытые от конечного пользователя. Клиент сталкивается с конечной реализацией - но и здесь наша система предлагает уникальные по своей сложности, во многом не имеющие аналогов у конкурентов решения. Активное использование JavaScript и DHTML в клиентском интерфейсе позволяет реализовать высокоуровневый интерфейс наряду с логикой уже на клиентской части Delivery Engine, что позволяет реализовать сложные задачи взаимодействия с клиентом без "утяжеления" приложения использованием Java, либо ActiveX. Это позволяет работать клиентскому приложению во всех операционных системах (Windows, Solaris, Linux, MacOS) с наиболее распространенными типами web-браузеров (IE, NC версий 4.xx и выше) без каких либо видимых различий.

Помимо типичных для подобного класса систем типов вопросов (interactions) Multiple Choice, Multiple Response, Selection, Fill-in-Blanks пользователю могут быть представлены Hot Spots - как основанные на изображениях, так и текстовые (!), Drag'n'Drop, Connect - не имеющие, либо имеющие гораздо более слабую реализацию у конкурирующих продуктов. Недаром независимые аналитики отметили многообразие видов и мощность реализации interactions именно у нашей системы

Немаловажной задачей в процессе усвоения материала является возможность поиска интересующей информации в рамках предложенного материала. Это стандартная функция для подобных систем . Следует сказать, что механизм ее реализации сильно зависит от используемых технологий. Самая гибкая в мире система поиска может быть реализована только с использованием СУБД ЛИНТЕР!

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

CD-delivery

Помимо on-line режима обучения возможен и off-line, реализуемый с помощью подсистемы экспорта готового продукта из нашей системы. В дальнейшем полученный материал можно использовать различными способами - например, включить CD, содержащий набор курсов и тестов в комплект с изданным учебным пособием

LMS

Немаловажной задачей для систем подобного класса является реализация функций Learning Management System (систем, обеспечивающих управление процессом обучения ), либо взаимодействие с системами, их реализующими. Стандарты, описывающие эти задачи и процессы взаимодействия, ранее создавались Aviation Industry CBT (Computer Based Training) Committee (AICC), ныне же эти работы выполняет комитет Advanced Distributed Learning (www.adlnet.org).

Удовлетворение de-facto мировым стандартам позволяет с легкостью взаимодействовать с аналогичными системами, переиспользовать content сторонних разработчиков - одним словом, конкурировать взаимодействуя.

Общие задачи систем подобного уровня

Для задач, подобных рассматриваемой, остаются значимыми и даже приобретают дополнительную важность общие требования к системам массового обслуживания клиентов. К ним относятся:

Только удовлетворение всем этим общесистемным требованиям может сделать систему конкурентоспособной по сравнения с аналогами.

Как уже было отмечено выше, наша компания уже несколько лет работает на рынке систем дистанционного образования. Тот факт, что за это время мы автоматизировали процесс обучения и контроля знаний в десятках компаний США, подтверждает правильность выбранного нами направления в разработке системы.