Многопользовательский редактор электронных учебных курсов на базе XML Cхем Выполнил: Чутков Р.И., 544 группа Научный руководитель: Штукеберг Д.Г. Рецензент: Луцив Д.В., ст. преподаватель Введение • Существуют различные форматы учебных курсов на базе XML: – LOM (IEEE 1484.12.3-2005); – IMS GLC; – AICC CMI013; – SCORM 2004; – ASD S1000D. • Их объединяет обязательное соответствие документов XML Схемам (XSD). 2 Представление документов Таблица преобразований XHTML XSLT преобразование XML Допустимо, только в случае валидности документа XSLT преобразование XHTML представление PDF представление XSLT Engine Таблица преобразований PDF 3 Возможности XML Cхемы • Обеспечение корректности XSLT преобразований; • Установка требований к семантике документов; • Кроме того, Cхема позволяет: – Контролировать допустимость модификаций документов; – Генерировать подсказки по заполнению структуры XML документа. 4 Организация совместной работы • Разделение на зоны ответственности; • Работа с пересекающимися областями; • Контроль за глобальными объектами (такими как, например, глоссарий); • Работа с поддеревьями для очень больших структур; • Контроль работы, выполняемой другими участниками. 5 Постановка задачи • Создание XML редактора, позволяющего в многопользовательском режиме модифицировать документы без нарушения XSD-валидности; • Требуется обеспечение: – Процесса drag’n’drop для элементов структуры в соответствии с допустимостью по схеме; – Подсказок по допустимым дочерним типам элементов дерева и атрибутов. 6 Общая архитектура XML SVC HTTP (Get XSLT, Update) Приложение-редактор Статические страницы 7 Требования к XML SVC • Предоставление XSLT преобразования по HTTP запросу; • Высокая скорость работы (минимум 100 запросов на изменение с валидацией в секунду); • Возможность модификации документов HTTP запросами; • Подписка на изменение узлов (для SOAP); • Получение возможных подтипов элемента по схеме. 8 Кандидаты на роль сервера XML база данных Поддержка XSLT HTTPинтерфейс Конструирование Поддержка Инкремент. документов / DOM XSD валидация / XUpdate валидации + + + + - Apache XIndice Bluestream XStreamDB Cognetic Systems XQuantum data ex machina Natix + + - + - + -/+ + - - + - - EMC Documentum XML Store eXist-db Sedna + + - + - + - + + + + - - Tamino XML Oracle Berkeley DB XML TigerLogic XDMS + - - + + + + 9 - + + + - Общая архитектура сервера Обработчик команд XML хранилище SOAP интерфейс XSD валидатор XSLT преобразователь Кэш представлений Хранилище XSLT преобразований Медиа хранилище HTTP интерфейс Файловый сервер Валидатор: построение автоматов • Строим NFA по частице (minOccurs, maxOccurs, терм); • Строим NFA для терма: шаблон, описание элемента, выбор, последовательность; • Для каждого типа схемы строим NFA, соответствующий его внутренним термам. • Получаем набор: тип схемы автомат. 11 Детерминизация автоматов • Преобразование NFA к DFA, сворачиванием не e-ребер для одинаковых термов, кроме: – Одинаковых описаний имен; – Перекрывающихся шаблонов; – Шаблонов, включающих описание типа; • Каждый случай нарушает ограничение Unique Particle Attribution; • SCORM, AICC, S1000D, IMS GLС, … UPA 12 Применение PSVI и автоматов Знаем тип, благодаря PSVI X A B C Является ли “A,B,C” валидным подтипом для X? На этот вопрос отвечает, соответствующий X автомат. Сравнение скорости Объем Количество Уровни Объем DOMКоличеств Среднее время Среднее время представле элементов вложенн представлени о типов валидации инкрементальной ния валидации структуры ости я MSXML6 схемы MSXML6 TreeItem 32 120 000 120 000 4 2 8 16 Kb 121 Mb 130 Mb 16 10 ms <1 ms 40 16 ms <1 ms 16 51 ms <2 ms 40 62 ms <2 ms 16 2 300 ms <5 ms 40 2 600 ms <5 ms 4 Kb 26 Mb 28 Mb 14 Редактор и аналоги WebSoft CourseLab Редактирование Свой форматов собственный Competentum Articulate Adobe Author Studio Captivate SCORM, SCORM Свой AICC собственн ый eAuthor Публикация SCORM, AICC, HTML IMS GLC XHTML, PDF, PENS, SWF, LOM Структура курсов Разделы и слайды (два уровня) Древовидная, Три частичная уровня валидация Плоская Древовидная, слайдовая полная валидация - +/- -/+ < 5 мегабайт ~ 3 Мб не не ограничен ограничен Возможности коллаборации Максимальный до мегабайта объем курса AICC, HTML SCORM, AICC, PENS EAU, SCORM, AICC, S1000D, IMS GLС + 15 Результаты работы • Реализовано сетевое хранилище XML: – С поддержкой быстрой инкрементальной валидации для атомарных изменений; – С возможностью построения списка допустимых типов подэлементов по XML схеме; • Создано клиентское приложение, являющееся полноценным и конкурентоспособным редактором электронных учебных курсов, обеспечивающее эффективную многопользовательскую работу. 16 Дополнительные слайды >>> Пример нарушения UPA <xsd:element name="root"> <xsd:complexType> <xsd:choice> <xsd:element name="e1"/> <xsd:any namespace="##any"/> </xsd:choice> </xsd:complexType> </xsd:element> Построение валидатора e n автомат для терма t S e n автомат для терма x e e автомат для терма S Архитектура клиента TreeItem TreeTag Адаптер модели … TreeItem TreeTag XML сервис