Многопользовательский редактор электронных учебных курсов на базе XML Cхем

advertisement
Многопользовательский редактор
электронных учебных курсов на
базе 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 сервис
Download