Общая характеристика диссертации
Диссертация посвящена применению Интернет-технологий для информационной поддержки регионального пространства учебно-методической литературы.
Актуальность темы. В связи с переходом к вариативной системе образования в процессах распространения и использования учебно-методической литературы произошли значительные перемены: возросли объемы, усложнились связи, увеличился темп изменений. В результате возникла потребность в оперативной и общедоступной информационной поддержке этих процессов. Реально такая поддержка в настоящее время может быть обеспечена прежде всего на основе Интернет. Применение Интернет для информационного обеспечения школ в Москве имеет под собой реальную почву, поскольку здесь для большинства образовательных учреждений имеется практическая возможность доступа к Интернет
Новизна полученных в работе результатов состоит в том, что построена информационная модель процессов распространения и использования учебно-методической литературы в регионе. В результате программной реализации этой модели российский регион (г. Москва) впервые получил развитую систему информационной поддержки своего пространства учебно-методической литературы.
Практическая значимость результатов диссертации заключается в следующем. Создана и размещена в Интернет база данных учебно-методической литературы, содержащая более 1000 учебников и 350 учебных программ, используемых в московских школах. Web-сервер с опубликованной базой данных функционирует в Интернет более двух лет, его ежедневно посещают более 150 пользователей. На основе базы данных проведено две кампании заказа учебников для школ Москвы. Разработанные программные средства могут быть применены для информационной поддержки процессов распространения и использования учебно-методической литературы и в других регионах России.
Апробация работы. Основные результаты диссертации докладывались на Всероссийской научной конференции "Фундаментальные и прикладные аспекты разработки больших распределенных программных комплексов" (Новороссийск, сентябрь 1998 г.), на научном семинаре отделения "Программирование" ИПМ им. М.В.Келдыша РАН (сентябрь 2000 г.), на объединенном научно-исследовательском семинаре программистских кафедр факультета Вычислительной математики и кибернетики МГУ (октябрь 2000 г.).
Публикации. По материалам диссертации опубликовано 4 работы. Список приведен в конце автореферата.
Объем и структура диссертации. Общий объем диссертации - 74 страницы, 24 рисунка. Список литературы - 35 названий. Диссертация состоит из введения, 3 глав и заключения.
Краткое содержание диссертации
Во введении дается обоснование актуальности выбранной темы, сформулированы цели и задачи исследования, а также основные требования к разрабатываемым программным средствам.
Пространство учебно-методической литературы для школьного образования включает учебные программы, учебную и методическую литературу. Учебная программа - методический документ, в котором дается описание учебного курса по определенному предмету за некоторый период обучения, указываются учебные цели и методические приемы, помогающие достичь поставленных целей обучения, особенности проведения обучения, необходимое учебно-дидактическое оснащение курса (набор учебно-методических изданий) и пр. Программы публикуются в виде отдельных изданий, в сборниках программ, в периодических изданиях.
В связи с переходом к вариативной системе образования в процессах распространения и использования учебно-методической литературы произошли значительные перемены: возросли объемы, усложнились связи, увеличился темп изменений. В результате возникла потребность в оперативной и общедоступной информационной поддержке этих процессов. Реально такая поддержка в настоящее время может быть обеспечена прежде всего на основе Интернет. Применение Интернет для информационного обеспечения школ Москвы имеет под собой реальную почву, поскольку здесь для большинства образовательных учреждений имеется практическая возможность доступа к Интернет
Целью работы является создание программных средств оперативного информационного обеспечения регионального (г. Москва) пространства учебно-методической литературы на основе Интернет. Для достижения этой цели необходимо решить следующие задачи.
Построить информационную модель, адекватно отражающую предметную область, и на ее основе разработать структуры данных и технологию доступа пользователя Интернет к этим данным.
Разработать программные средства администрирования (наполнения и обновления базы данных) и публикации данных в Интернет.
Основные требования к средствам информационной поддержки, обусловленные спецификой предметной области, состоят в следующем:
структура данных должна адекватно отражать предметную область;
следует учитывать сложившиеся в предметной области традиции и предоставить пользователю возможность навигации по рубрикам традиционной иерархии каталога учебных изданий;
необходимо предусмотреть возможность поиска объектов по атрибутам (поиск по ключевым словам и контекстный поиск играют только вспомогательную роль).
На основе обзора каталогов учебной литературы в российском Интернете делается вывод, что там пока отсутствуют сайты с достаточно адекватной информационной поддержкой исследуемой предметной области. Поэтому разработка средств, удовлетворяющих сформулированным требованиям, является актуальной задачей. Настоящая работа, входящая составной частью в проект "Учебники Москвы" [1, 2, 4], была инициирована по заказу Московского комитета образования. Проект предусматривает, что электронный каталог строится по иерархии традиционного печатного каталога заказа учебной литературы для школ г. Москвы. Предусмотрено также, что печатная версия каталога для очередной кампании заказа подготавливается на основе электронной.
В первой главе построена информационная модель предметной области и предлагается технология взаимодействия пользователя Интернет с базой данных (БД).
Структура данных информационной модели представлена в виде схемы реляционной базы данных, адекватно отображающей исследуемую предметную область. Между объектами существуют связи "один-ко-многим" (1:М) и "многие-ко-многим" (М:М). Перечислены объекты с их атрибутами и связи между объектами.
Основными объектами информационной модели являются книги - учебники и методические пособия - и учебные программы, являющиеся предметом поиска пользователя. Они имеют набор библиографических и учебных атрибутов. Книги и программы связаны отношениями М:М, поскольку один учебник может использоваться в нескольких учебных программах, а каждая программа опирается, как правило, на несколько учебников.
Вспомогательные (или справочные) объекты предназначены для хранения значений атрибутов с перечислимым множеством значений. К ним относятся: авторы, издательства, образовательные области, учебные предметы, этапы обучения, классы и некоторые другие.
Промежуточные объекты необходимы для представления отношения М:М между основными или между основными и вспомогательными объектами. Это - издания книг, издания программ, авторы книг, авторы программ и некоторые другие.
Некоторые объекты остаются вне реляционной схемы (обложки, файлы методических комментариев). Ссылки на такие объекты хранятся в соответствующих атрибутах.
Информационная модель должна не только охватывать перечисленные выше объекты, но и обслуживать публикацию каталога учебной литературы, предназначенного для ежегодных кампаний заказа учебников в московских школах. Каталог имеет собственную систему рубрикации и сквозную нумерацию книг, не совпадающую с внутренней нумерацией в базе данных.
Каталожные номера определяют положение книги в каталоге. Для того чтобы сохранить каталожные номера книг, входящих в бумажную версию каталога, и помещать новые книги на вполне определенные места в каталоге (подводя их под рубрикацию), вхождениям книг присваивается вещественная позиция. Все книги, включенные в каталог, упорядочены по позиции. Для старой книги позиция - целое число - совпадает с каталожным номером, а для новой она является не целым, а дробным числом. Это число показывает, в какое место каталога книга вставлена. Тем самым порядок книг в бумажной версии сохраняется. При подготовке очередной бумажной версии легко скорректировать каталожные номера (которые должны быть целыми числами) при сохранении положения книг в каталоге.
Чтобы отобразить информацию, содержащуюся в каталоге, информационная модель дополнена справочными объектами (рубрики, подрубрики, подзаголовки), отражающими иерархию каталога, и промежуточным объектом вхождение книги в каталог, определяющим положение книги в каталоге.
Предлагаемая технология взаимодействия пользователя с базой данных достаточно традиционна. Пользователь получает доступ к базе данных через обычный web-броузер. Все страницы, с которыми он работает - это HTML-документы, статические (хранящиеся в файлах) или динамические (генерируемые "на лету"). Пользователю предоставляются следующие возможности:
составление для поиска объектов (книг или программ) простого конъюнктивного запроса по небольшому набору атрибутов (заполнение полей формы HTML) с получением перечня найденных объектов c кратким списком атрибутов,
переход от краткого списка атрибутов объекта к его подробному описанию, содержащему полный список атрибутов и списки объектов - книг и программ, связанных с рассматриваемым объектом,
навигация в иерархически организованном наборе статических документов, содержащих краткие описания объектов (в каталоге книг и программ).
Во второй главе рассматриваются программные средства удаленного администрирования базой данных (БД), предоставляющие администратору возможность наполнения и обновления БД с обеспечением постоянной ее актуальности. Под актуальностью имеется в виду следующее.
Во-первых, администратор модифицирует именно тот экземпляр базы данных, который предоставлен Web-серверу для публичного доступа. Во-вторых, файлы, доступные пользователю непосредственно через Web-броузер и отражающие состояние базы данных, должны обновляться при ее изменении. К таким файлам относятся страницы с поисковыми формами и страницы каталога.
В качестве основного инструментального средства для проекта "Учебники Москвы" был выбран популярный комплекс визуального программирования Delphi фирмы Borland, имеющий развитые средства доступа к базам данных как в локальном, так и в удаленном режимах, а также богатый набор средств разработки и отладки Интернет-приложений.
Не всегда администратор базы данных имеет непосредственный доступ к серверу с базой данных. Может оказаться так, что его компьютер физически располагается вне локальной сети, к которой принадлежит сервер, и доступ к серверу возможен только через Интернет. Именно такая ситуация сложилась в проекте "Учебники Москвы", где администратор имеет выход в Интернет по медленному и ненадежному модемному соединению. Поэтому при проектировании средств администрирования было принято решение разрабатывать их как удаленные (с доступом через Интернет). Удаленный доступ реализован с помощью технологии MIDAS, предложенной фирмой Borland для разработки многозвенных распределенных клиент-серверных приложений.
Средствами MIDAS создан сервер администрирования, обслуживающий запросы клиентской утилиты удаленного администрирования. Технология MIDAS обеспечивает удаленного клиента практически таким же пользовательским интерфейсом, как если бы он был непосредственным клиентом БД. Клиентское приложение работает с локальной копией БД и взаимодействует с сервером администрирования по схеме "копирую, модифицирую, обновляю". Такая технология особенно удобна в случае, когда единственный администратор (имеющий право модификации) имеет выход в Интернет по медленному и ненадежному модемному соединению. Достаточно один раз скопировать удаленную БД, чтобы потом передавать обратно на сервер лишь изменения, сохраняя каждый раз измененную локальную копию на диске. В рамках удаленной утилиты средствами MIDAS реализованы команды настройки соединения с сервером, загрузки базы данных с сервера, сохранения и загрузки локальной копии БД на диске, передачи накопленных в базе данных изменений обратно на сервер.
Для поддержания актуальности БД файлы, содержащие страницы с поисковыми формами и страницы каталога, должны обновляться при изменении соответствующих таблиц БД. Утилита администрирования автоматически распознает эти ситуации при передаче изменений на сервер и посылает (по протоколу http) команды обновления скрипту, реализующему публикацию базы данных.
Средства ручного просмотра и редактирования БД позволяют администратору просматривать таблицы, содержащие описания объектов - книги, программы, авторы, издательства и т. д., сортировать таблицы по различным наборам атрибутов (индексам), устанавливать разнообразные фильтры для таблиц, искать объекты (представленные записями таблиц), включать и удалять объекты, модифицировать атрибуты объектов, просматривать связи между объектами и переходить по ним, устанавливать и разрывать связи между объектами.
В утилите администрирования предусмотрены средства для ускорения ввода информации: "серийный" и "последовательный" ввод значения атрибута, автоматическая разборка списков авторов или изданий.
Для облегчения работы с разнообразными внешними источниками обновления базы данных утилита администрирования предоставляет средства полуавтоматического обновления на основе пакета обновления - файла, содержащего список книг в некотором фиксированном текстовом формате, полученного в результате предварительной обработки какого-либо электронного источника. Это средство позволяет исключить повторный ручной ввод информации и в то же время дает возможность контроля за включением книги в базу данных.
Книги и программы, входящие в базу данных, могут быть включены в состав упомянутого ранее каталога заказа учебников для школ. Для подготовки электронной версии каталога в утилите администрирования имеются средства рубрикации, позволяющие просматривать и модифицировать состав рубрик и их иерархию, включать объекты (книги и программы) в рубрики, присваивать им позиции в каталоге, исключать объекты из каталога.
После внесения связанных с каталогом изменений в базу данных автоматически генерируется электронная версия каталога, состоящая из статических HTML-документов и отражающая текущее состояние базы данных.
Перед подготовкой бумажной версии каталога выполняется команда пересчета каталожных номеров. Она пересчитывает все позиции вхождений книг в целые числа, сохраняя прежний их порядок и корректируя каталожные номера. Каталог с пересчитанными номерами экспортируется в текстовый файл, используемый для подготовки печатной версии каталога заказа для школ в очередном учебном году. Этот файл вместе с приложением, обслуживающим процедуру заказа, распространяется среди школ г. Москвы на магнитных носителях.
В третьей главе рассматриваются программные средства Интернет-публикации базы данных.
Публикация базы данных (БД) - это открытый для всех (анонимный) доступ к содержимому этой БД с помощью Web-броузеров. Для опубликованной в Интернет базы данных сравнительно ограниченного объема (каковой и является БД учебной литературы) типичной является следующая схема доступа с применением интерфейса CGI:
Пользователь, работая в Web-броузере, получает от Web-сервера HTML-страницу с формой поискового запроса, заполняет поля этой формы и отправляет сформированный таким образом http-запрос на сервер, нажав кнопку "Submit".
Web-сервер принимает запрос и запускает указанный в нем скрипт, передавая ему необходимые элементы запроса.
Скрипт разбирает запрос, интерпретирует его, выполняет поиск в базе данных и, наконец, генерирует HTML-документ, представляющий результаты поиска, и передает его Web-серверу.
Web-сервер отправляет броузеру сгенерированный HTML-документ, как правило, содержащий управляющие элементы для продолжения взаимодействия. Далее процесс общения пользователя с БД продолжается.
Таким образом, для обслуживания поисковых запросов необходимо создать скрипт, выполняющий поиск в БД в соответствии с запросом и генерирующий HTML-документ, представляющий результаты поиска. Из имеющихся способов запуска скрипта web-сервером выбран способ запуска скрипта, как нити (интерфейс ISAPI), что обосновывается более высокой производительностью, возможностью сохранения результатов и наличием средств отладки в Delphi.
Выполнение скриптом запроса, обеспечивающего публикацию БД, логически распадается на две фазы: интерпретация запроса (т.е. извлечение данных из БД в соответствии с параметрами запроса) и генерация HTML-документа, представляющего извлеченные данные.
Чтобы обеспечить публикацию БД, скрипт должен выполнять запросы поиска книг или программ по набору атрибутов и запросы извлечения описания книги или программы по их номеру. Интерпретация этих запросов сводится к выполнению SQL-запросов к БД или к поиску в таблицах по ключу.
Для поддержания актуальности БД файлы, содержащие страницы с поисковыми формами и страницы каталога, должны обновляться при изменении соответствующих таблиц БД. На скрипт возложены функции генерации этих страниц.
Помимо основных запросов, скрипт выполняет несколько вспомогательных, необходимых для своего функционирования. Эти запросы, как и запросы, поддерживающие актуальность БД, защищены от несанкционированного выполнения.
Простейший способ генерации HTML-документа, представляющего результат интерпретации запроса, - вставить непосредственно в тело скрипта операторы, формирующие строки документа. У такого способа есть очевидные недостатки: отсутствие наглядности, проблемы с модификацией скрипта, если нужно изменить только дизайн, трудности с изменением дизайна документа web-дизайнером.
Чтобы избавиться от этих недостатков, следует отделить HTML-дизайн от скрипта так, чтобы можно было изменять их независимо. Наиболее естественным способом такого отделения является применение шаблонов, описывающих HTML-дизайн генерируемого документа. Шаблон - это документ HTML, хранящийся в отдельном файле, с включением специальных тегов, заменяемых на генерируемые специальным образом конструкции HTML.
Рассмотрение применения шаблонов в некоторых системах подготовки Интернет-приложений (WebDBC, IDC, ASP, LiveWire) приводит к выводу, что эти системы либо не позволяют выполнять сложные запросы, либо не обеспечивают наглядности.
Поставленная задача отделить HTML-дизайн от скрипта так, чтобы можно было его изменять независимо, вообще говоря, может быть решена средствами получившей распространение в последнее время XML-технологии. Для этого достаточно разработать словарь для описания структуры данных генерируемых документов, написать скрипт, извлекающий данные из базы данных и представляющий их на языке XML в этом словаре, и составить шаблоны (на языке XSL) для преобразования документов из этого словаря в словарь HTML. Сгенерированный XML-документ вместе с XSL-шаблоном передается XSLT-процессору, который и выдает документ HTML. В результате, меняя шаблоны (и не меняя скрипт), можно получить разные HTML-представления генерируемых документов.
Однако на начальном этапе разработки базы данных еще не существовало утвержденных стандартов XSL и XSLT и поддерживающих их программных средств. Поэтому пришлось выполнить самостоятельную разработку [3], не претендующую на универсализм, обладающую ограниченными возможностями, но сохраняющую наглядность шаблона. Впоследствии, при появлении утвержденного стандарта оказалось, что относительно легко можно построить XSL-шаблон, обеспечивающий несложные преобразования, необходимые для нашего проекта, и более того, можно сделать его достаточно наглядным. К сожалению, однако, универсальные XSLT-процессоры пока еще работают слишком медленно. Поэтому и сейчас перевод нашего проекта на технологию XML, несмотря на ее привлекательность, по-видимому, нецелесообразен.
Шаблон документа и способы взаимодействия его со скриптом должны быть организованы так, чтобы, с одной стороны, шаблон наиболее полно представлял HTML-дизайн с минимумом вычислительных элементов, но, с другой стороны, сохранялась возможность генерации произвольного текста. Такую возможность, вообще говоря, обеспечивает разделение специальных тегов шаблона на три сорта: "автоматические", "полуавтоматические" и "вычислительные" с применением обработчиков событий - описанных в скрипте процедур с согласованным интерфейсом. Данные, определяющие содержание документа, присваиваются скриптом именованным переменным. Значения переменных, используемых в специальных тегах шаблона, при генерации подставляются в замещающий текст. Влияние скрипта на генерацию ограничивается назначением обработчиков событий и присваиванием значений переменным.
Текст, заменяющий автоматический тег, генерируется автоматически и полностью определяется содержимым тега и значениями переменных. Текст, заменяющий полуавтоматический тег, генерируется полуавтоматически, т. е. определяется не только содержимым тега, значениями переменных, но также результатами обработки событий. Обработчики событий при полуавтоматической генерации ничего не генерируют, но выработанные ими результаты влияют на процесс генерации заранее согласованным образом. Для генерации же текста, заменяющего вычислительный тег, вызывается вычислитель - обработчик события вычисления, которому и передается содержимое тега. Вообще говоря, вычислитель может генерировать совершенно произвольный текст.
Определим минимально необходимую для решения стоящих перед нами задач функциональность языка шаблонов, принимая во внимание то, что основным источником данных при публикации БД являются наборы данных.
В языке должны быть возможность подстановки значений переменных в шаблоне строки (что сближает язык шаблонов с макроязыком), условная генерация (в зависимости от значений переменных) и возможность вложения одного шаблона документа в другой. Параметры запроса могут считаться предопределенными переменными. Роль переменных могут играть и поля текущей записи набора данных БД.
Часто бывает необходимо получить последовательность генерируемых по одному и тому же шаблону текстов, лишь изменяя значения используемых в шаблоне переменных. Такую циклическую генерацию можно выполнять полуавтоматически, поручив управление циклом (выработку сигнала о его продолжении или прекращении) и изменение значений переменных обработчику события цикла.
При публикации базы данных чаще всего приходится перебирать записи некоторого набора данных БД, на каждом шагу генерируя по одному и тому же шаблону HTML-представление данных, содержащихся в полях очередной записи. Такую генерацию можно сделать полностью автоматической, задавая в теге имя набора данных и диапазон перебираемых записей.
Определенную выше функциональность реализуют команды языка шаблонов, каждая из которых оформляется в виде специального тега. Любой команде в теге может предшествовать последовательность условий If и Ifno. Команда выполняется только тогда, когда все условия последовательности удовлетворены. Язык шаблонов включает команды присваивания значений переменным Define, LocDefine, команды генерации по шаблону строки String и Tag, команду генерации по вложенному шаблону документа Template, команду циклической генерации List, команду циклической генерации по набору данных ListTab, команду вычисления (произвольной генерации) Calc. При выполнении команд List и Calc происходят события, обрабатываемые соответствующими обработчиками.
Для реализации в Delphi языка шаблонов нами разработана компонента PageGenerator. Функциональность языка реализуется приватными свойствами и методами этой компоненты. Взаимодействие же скрипта с шаблоном реализовано следующими публичными методами и событиями этой компоненты: Produce (генерация по шаблону документа), Define и LocDefine (присваивание значение переменной), StringOfName (получение шаблона строки), ValueOfName (получение значения переменной), SubstForHTML (генерация по шаблону строки), OnCalc (событие вычисления), OnList (событие цикла).
Для каждого запроса, выполняемого скриптом, разработаны наборы вложенных друг в друга шаблонов документов, описывающих HTML-дизайн генерируемых документов.
Каждый запрос выполняется скриптом следующим образом. После интерпретации запроса (извлечения из БД необходимых данных в соответствии с параметрами запроса) скрипт присваивает значения используемым в шаблонах переменным (методом Define) и настраивает обработчики событий OnCalc, OnList, вызываемые в шаблонах. После этого вызывается метод генерации (Produce) по головному шаблону набора. Обработчики событий, будучи вызванными из шаблонов, в свою очередь, могут присваивать значения переменным (методами Define, LocDefine), а обработчик события вычисления может генерировать выходные тексты, в том числе и с использованием методов генерации по шаблону (Produce, SubstForHTML). При этом им доступны (методом StringOfName) значения всех переменных, определенных ранее в шаблонах или в скрипте.
Завершает главу пример обработки реального запроса с помощью шаблонов. Приводится набор шаблонов, описывающих HTML-дизайн страницы, возвращаемой web-сервером "Учебники Москвы" в ответ на запрос поиска учебников, а также текст HTML страницы, сгенерированный скриптом по этому набору шаблонов в результате обработки конкретного запроса, и изображение этой страницы в web-броузере. Приведенный пример демонстрирует, что язык шаблонов дает возможность достаточно компактно и наглядно описать дизайн генерируемых документов. Его функциональность покрывает все потребности, возникшие при разработке проекта.
В заключении формулируются результаты работы и приводятся сведения об их практическом использовании.
Основными результатами, полученными в работе, являются следующие.
Построена информационная модель процессов распространения и использования учебно-методической литературы в регионе. Предложены схема реляционной базы данных учебной литературы, отражающая построенную модель, и технология взаимодействия с этой базой через Интернет.
Разработаны средства Интернет-публикации базы данных, реализующие предложенную технологию.
Разработаны средства удаленного администрирования базы данных, обеспечивающие постоянную актуальность Интернет-публикации.
Создана и размещена в Интернет база данных учебно-методической литературы для региона г. Москвы, содержащая более 1000 учебников и 350 учебных программ. Web-сервер с опубликованной базой данных функционирует в Интернет более двух лет, его ежедневно посещают более 150 пользователей. На основе базы данных проведено две кампании заказа учебников для школ г. Москвы. Разработанные программные средства могут быть применены для информационной поддержки процессов распространения и использования учебно-методической литературы и в других регионах России.
Печатные работы по теме диссертации
Полилова Т.А., Хухлаев Е.В. База данных "Учебники Москвы" // Информатика и образование. 1998, № 8. С. 12-16.
Полилова Т.А., Хухлаев Е.В. Учебники Москвы в Интернете // Тезисы докл. на Всероссийской научной конференции "Фундаментальные и прикладные аспекты разработки больших распределенных программных комплексов" (Новороссийск, сентябрь 1998). М.: Изд-во МГУ, 1998. С. 127-131.
Хухлаев Е.В. Генерация HTML-документов средствами шаблонов на базе Delphi. Препринт ИПМ им. М.В.Келдыша РАН № 27. М., 2000. 16 с.
Горбунов-Посадов М.М., Полилова Т.А., Хухлаев Е.В. База данных учебной литературы на сервере "Учебники Москвы". Препринт ИПМ им. М.В.Келдыша РАН № 31. М., 2000. 20 с.