ТРАНСФОРМАЦИОННЫЙ ПОДХОД К РАЗРАБОТКЕ ИНТЕРНЕТ-РЕСУРСОВ НА ПРИМЕРЕ СИСТЕМЫ ПОДДЕРЖКИ ДОКУМЕНТАЦИИ КАФЕДРЫ У.П. Тимошкина, Ю.А. Богоявленский Петрозаводский государственный университет, г.Петрозаводск В настоящее время структурированные документы используются в задачах, которые решают проблемы управления каждодневным документооборотом, представления данных и промежуточных форматов между приложениями, способов кодирования сообщений, удаленных вызовов процедур в транспортных протоколах. Структурированный документ содержит наряду с данными и их логическую структуру. Одним из способов включения логической структуры в документ является использование тегов – специальных синтаксических конструкций. С инструментальной точки зрения технологии обработки структурированных документов основаны на идее применения хорошо развитых методов трансляции – перевода с одного формального языка на другой. Структура документов описывается некоторой формальной грамматикой, что позволяет автоматизировать процесс некоторой трансформации документов, обладающих указанной структурой путем построения соответствующего транслятора. При разработке таких трансляторов важным преимуществом является возможность использования компиляторов компиляторов, которые обычно реализуются в виде пары координированных генераторов лексического (ЛА) и синтаксического (СА) анализаторов. В данной работе мы сконцентрировались на трансформационном подходе к разработке программных систем, реализующих Интернет-ресурсы. Трансформационный подход заключается в представлении алгоритма решения задачи в виде последовательности трансформаций структурированных документов. Эти трансформации в большинстве случаев могут быть программно реализованы в виде соответствующих трансляторов с использованием компиляторов компиляторов, что существенно упрощает задачу. Отметим, что такой подход позволяет реализовывать не только структурные трансформации документов, но и вычисляющие трансформации, преобразующие данные. Таким образом, при таком подходе Интернет-ресурс представляет собой совокупность трансляторов, которые осуществляют соответствующие трансформации структурированных документов. Подчеркнем, что при разработке Интернет-ресурса поддержки документации кафедры, мы считаем важным использовать инструменты, которые с одной стороны, являются свободно-распространяемыми, а с другой стороны, стабильными. В качестве инструментов нами использовались генератор лексических анализаторов lex и синтаксических – yacc, а также Web-сервер Apache операционной системы Linux. При этом в качестве программного обеспечения сетевого клиента можно использовать любой Webбраузер любой операционной среды совместно с интерфейсом CGI. Для представления результирующих документов в печатном виде целесообразно использовать издательскую систему LaTeX и язык описания печатных страниц PostScript. Целью работы является апробация трансформационного подхода к разработке Интернетресурсов на базе перечисленных выше стандартных программных инструментов. Программная система ДОКА, реализуемая в 3 виде Интернет-ресурса, направлена на решение одной из важнейших задач в учебном процессе ВУЗа – задачи учета нагрузки преподавателей. ДОКА позволяет работать с документами типа "Рабочий план", в которых представляется запланированная нагрузка для каждой кафедры. После ввода этих документов соответствующей трансформацией получается документ "Расчет штатов кафедры" и внутренний документ системы "Распределение нагрузки" в начальном состоянии (ничего не распределено). Затем при помощи специального Web-интерфейса выполняется распределение нагрузки преподавателям. При этом каждый акт присвоения того или иного занятия преподавателю реализуется с помощью соответствующей трансформации документа "Распределение нагрузки". После распределения документ "Распределение нагрузки" трансформируется в документы "Сведения о распределении", "Сведения к расписанию" и "Индивидуальные планы преподавателей". В конце года преподаватели интерактивно заполняют данные о выполненной нагрузке, что позволяет автоматически сгенирировать документ "Сведения о выполнении". Все печатные документы, подлежащие передаче во "внешний мир", трансформируются в LaTeX представление, которое затем для печати преобразуется в PostScript представление. Поскольку в системе, как правило, один документ трансформируется в несколько разных документов, необходимо было минимизировать количество повторений описания грамматики исходного документа в спецификациях компиляторов компиляторов. Для решения этой задачи нами используются две схемы построения трансляторов – многовыходная и альтернативная. Многовыходной транслятор осуществляет перевод с исходного входного языка сразу же на несколько выходных. Альтернативный транслятор выполняет действия в зависимости от ключа, который поступил ему на вход. По своей сути альтернативный транслятор совмещает в себе несколько независимых, с точки зрения обработки данных, трансляторов. По результатам работы были сделаны следующие выводы: Возможна быстрая разработка программ обработки документов с помощью компиляторов компиляторов. Использование компиляторов компиляторов позволяет в их действиях реализовывать произвольные преобразования как структуры документов, так и их данных стандартными средствами языка C. Lex позволяет генерировать ЛА для обработки структурированного документа. Для этого в качестве шаблонов задаются начальные и конечные теги. Для каждого шаблона задаются действия, которые будут выполнены при его обнаружении во входном файле. Использование lex для построения ЛА дает возможность обрабатывать структурированные документы без проверки на соответствие какой-либо заданной ранее грамматике. В этом случае возможно выполнение каких-либо действий при обнаружении начального или конечного тегов. Yacc автоматизирует процесс создания СА. Для этого необходимо в спецификации для yacc указать грамматику, соответствующую желаемому DTD, и действия, которые необходимо выполнять при обнаружении той или иной логической части входного документа. Использование yacc для построения СА позволяет проверять структурированные документы на их корректность: правильность построения и соответствие заданной грамматике, поскольку правила грамматики в yacc спецификации определяют документ полностью. Разработанные трансляторы одновременно являются CGI-программами, обеспечивающими сетевое взаимодействие пользователя с системой согласно модели клиент-сервер. Интерфейс с системой изначально является сетевым и не требует никаких инструментов, кроме стандартного Web-браузера. Браузер может быть использован для просмотра структурированных документов, а также для их создания. Полученные программные средства не зависят от платных и нестабильных инструментов. Система LaTeX позволяет подготовить печатные формы документов, которые всегда оформлены профессионально с точки зрения издательского дела. Не требуются средства стандарта семейства XML, используется только идея разметки. При разработке трансляторов не требуется знаний дополнительных стандартов, синтаксических и семантических конструкций. В настоящее время система ДОКА внедрена и используется на кафедре в течение 2 лет. Реализация системы ДОКА показала, что трансформационный подход имеет ряд полезных свойств и может быть использован для решения некоторых классов задач разработки программного обеспечения, в том числе и для разработки программного обеспечения используемого на Интернет-узлах. 4