Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

CONTENT MANAGEMENT SYSTEM FOR GEOSPATIAL WEB PORTAL "GEOFRAMEWORK"

Matveev A.G. 1 Yakubaylik O.E. 1
1 Institute of Computational Modeling, Siberian Branch of the Russian Academy of Sciences
This article discusses the authors experience in design and development of software tools for creating of web mapping systems. It is noted that the use of specialized software tools can considerably accelerate the process of application development. The proposed solution is a specialized content management system that takes into account the specifics of GIS web applications. In particular, such functional requirements as universality of a method of data storage, flexibility of formation of the user interface, possibility of integration of different JavaScript frameworks are marked. Also the architecture and main functional blocks of the developed system such as tools for working with site sections, databases, performances, etc. are discussed. Finally, a list of applications which were implemented on the base of presented software tools is provided.
cartographic services
spatial data
web mapping
geoportal
web application

Введение

Опыт разработки веб-сайтов и веб-приложений различной сложности и назначения показывает, что в большинстве случаев для ускорения и облегчения процесса создания данного типа программного обеспечения можно использовать специализированные системы – так называемые системы управления контентом веб-сайтов (CMS, Content management system). На данный момент наиболее популярными свободными CMS являются Joomla, Drupal, Wordpress, MODx, TYPO3. Большинство из них предназначены для достаточно широкого круга задач и применимы для разработки веб-сайтов различного масштаба и сложности. Универсальность достигается за счет модульной архитектуры, которая позволяет создавать и подключать необходимые программные узлы, расширяющие функциональность разрабатываемого веб-сайта. Тем не менее каждая из этих систем имеет свои архитектурные особенности и функциональные ограничения, а также определенное направление разрабатываемых проектов (Интернет-дневники, Интернет-магазины, корпоративные сайты, социальные сети и т.д.), которые необходимо учитывать при проектировании и разработке веб-сайта. Для нестандартных решений (к которым относятся веб-приложения, в том числе геоинформационные) базовая функциональность этих систем чаще всего является излишней. В этой ситуации, как правило, создается специализированная система.

Требования к системе разработки геоинформационных веб-приложений

При проектировании инструментальных средств для разработки геоинформационных веб-приложений был определен ряд функциональных требований; рассмотрим их ниже.

• Универсальное хранение данных

В популярных системах управления контентом веб-сайтов в качестве хранилища данных используются СУБД (MySQL, PostgreSQL, MS SQL), причем использование систем управления базами данных является обязательным условием создания приложения на основе CMS. Учитывая тот факт, что геоинформационные веб-приложения могут обладать достаточно разнообразным функционалом – от небольших клиентских приложений, работающих с данными посредством технологий веб-сервисов, до крупных многофункциональных комплексов управления и анализа пространственной информации – было выдвинуто следующее требование: система разработки геоинформационных веб-приложений должна предоставлять возможность свободного выбора способа хранения данных (файловые архивы, СУБД, комбинированные способы).

• Гибкость формирования пользовательского интерфейса

Традиционно CMS обладают достаточно развитыми средствами формирования (X)HTML-кода страниц, автоматизации создания различных элементов пользовательских интерфейсов, таких как гиперссылки, каскадные меню, формы и пр. Формирование индивидуальных интерфейсов обеспечивается в данных системах посредством создания тем, которые должны быть разработаны с использованием данных функций по определённой технологии. Данный способ является вполне удобным при создании традиционных интерфейсов веб-сайтов (учитывая современные возможности технологии CSS – каскадных таблиц стилей), но он накладывает существенные ограничения на разработчиков, перед которыми стоит задача формирования сложных интерфейсов веб-приложений. Поэтому разрабатываемая система должна обеспечить максимально гибкий способ реализации пользовательских интерфейсов.

• Возможность интеграции различных JavaScript-фреймворков

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

• Поддержка технологии AJAX

Использование технологии асинхронных запросов (AJAX) является достаточно эффективным способом ускорения работы веб-приложения, уменьшения нагрузки на веб-сервер, уменьшения объёмов передаваемых данных, уменьшения времени реакции элементов пользовательского интерфейса, поэтому при создании системы разработки геоинформационных веб-приложений необходимо предусмотреть достаточно развитые и гибкие средства для применения данной технологии, а также предоставить возможность выбора возможного формата передачи данных (XML, JSON и т.п.).

• Обеспечение маршрутизации HTTP-запросов и ответов

Одним из основных функциональных требований является обеспечение базовых функций работы с HTTP-запросами, поступающих от веб-браузера на веб-сервер, и ответов в виде (X)HTML-кода.

Архитектура системы «Геофреймворк»

Система разработки геоинформационных веб-приложений «Геофреймворк» состоит из клиентской и серверной частей, реализуя тем самым технологию «клиент – сервер». Применение в основе серверной части приложения шаблона проектирования MVC (модель – представление – контроллер) предоставляет широкие возможности для решения поставленных задач. Использование данной архитектуры предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента (рис. 1). Модификация каждого компонента может осуществляться независимо. Помимо стандартных элементов MVC, ключевыми блоками рассматриваемой системы также являются шаблоны представления страниц и AJAX-обработчики.

Рисунок 1. Архитектура системы разработки «Геофреймворк»

Основные компоненты архитектуры системы

• Модель (Model)

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

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

• Представление (View)

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

• Контроллер (Controller)

Является связующим звеном между прочими компонентами системы. Большинство HTTP-запросов перенаправляется для обработки контроллеру. Основными задачами контроллера являются:

  • подключение настроек, внутренних и внешних библиотек;
  • приём и анализ HTTP-запросов;
  • выбор на основе параметров запроса необходимой модели и передача ей управления;
  • подключение необходимого шаблона представления страницы;
  • формирование заголовков ответа HTTP и вывод данных.

• Шаблон представления страницы

Формально является составной частью представления (View), но фактически является самостоятельным элементом системы. Средний по функциональности веб-сайт имеет 1–3 шаблона страницы, каждый из которых представляет собой подключаемый к контроллеру PHP-сценарий, содержащий общие для используемых представлений элементы (X)HTML-кода страницы – заголовочная секция, ссылки на необходимые файлы каскадных таблиц стилей и сценариев JavaScript, метаописания веб-страниц и общие элементы DOM. Выбираемый моделью файл представления затем встраивается в указанный шаблон, и в результате генерируется полный (X)HTML-код веб-страницы.

• AJAX-обработчик

Представляет собой модель, предназначенную для работы с асинхронными запросами.

Основные функциональные блоки системы

• Средства для работы с разделами сайта

При обращении пользователя по определенному URL необходимо осуществить разбор данного адреса для того, чтобы выбрать нужный контроллер, а впоследствии использовать параметры, которые, возможно, содержатся в запросе, в ходе работы программы. «Геофреймворк» рассчитан на работу как со стандартными URL, где параметры HTTP-запроса, передаваемые методом GET, задаются при помощи конструкции ?<ключ_1>=<значение_1>&<ключ_2>=<значение_2>, так и с полнотекстовыми URL (также известных как ЧПУ, «человеко-понятные урл»), в которых параметры передаются в виде пути. Концепция полнотекстовых веб-адресов предполагает максимально лаконичные и интуитивно понятные URL, которые показывают естественную для человека логическую структуру веб-приложения, представленной в виде пути в пределах файловой системы, к которой привык пользователь.

• Средства для работы с базами данных

Поскольку PHP изначально развивался как язык процедурного программирования, большинство встроенных функций по своей природе являются процедурными. При работе с базами данных, например, с СУБД MySQL, для создания запроса необходимо использовать последовательный запуск набора функций: mysql_connect, mysql_select_db, mysql_query, mysql_fetch (и аналоги). Данные функции осуществляют подключение к серверу баз данных, выбор базы, построение SQL-запроса, получение результата выборки.

• Средства для работы с представлениями

Представления в архитектуре MVC предназначены для осуществления вывода данных пользователю. Чаще всего вывод осуществляется в формате HTML-кода (хотя ограничений на формат вывода нет). Для работы с выводом данных была разработана библиотека Template.

Основные типы функций, содержащиеся в данной библиотеке:

  • Средства для работы с метаописаниями веб-страниц, позволяющие определять и выводить базовые атрибуты: ключевые слова (keywords), информация об авторе и авторском праве (author, copyright), описание страницы (description) и т.д.
  • Функции для ввода и вывода пользовательских сообщений.
  • Функции для вывода даты и времени. Подготовлено несколько стандартных форматов вывода (новостной, полный, краткий, только дата).
  • Средства для подготовки печатного текста к веб-публикации и его корректировки в соответствии с нормами, правилами и спецификой русского языка.

• Прочие служебные средства

Был также сформирован следующий набор служебных функций:

  • Работа с плоскими файлами кеша.
  • Средства для проверки введённых данных. Включают в себя наборы регулярных выражений для тестирования строк на правильность ввода адреса e-mail, URL, IP-адреса.
  • Средства для отправки сообщений электронной почты с поддержкой шаблонов писем в HTML-формате. Создано несколько типовых шаблонов для пользователей и администраторов веб-сайта, которые можно легко изменять и добавлять.
  • Функции для работы с изображениями, включающие операции масштабирования и кадрирования.
  • Средства для проведения автоматизированного публичного теста Тьюринга (CAPTCHA) на основе изображений, содержащих буквенно-цифровые строки.
  • Интеграция со свободными библиотеками с открытым исходным кодом elRTE и elFinder. Данные библиотеки представляют собой визуальный редактор (так называемый, WYSIWYG-редактор) и файловый менеджер соответственно, работающие в среде веб-приложения.
  • Средства для создания систем управления содержимым веб-сайта, а именно – типовые наборы Javascript-функций для создания, изменения, удаления содержимого, реализованных с применением технологий асинхронных запросов, и проч.

Заключение

Разработанное программное обеспечение «Геофремворк» предназначено для формирования тематических информационных ресурсов в составе картографического веб-портала – веб-страниц, содержащих гипертекстовые материалы, интерактивные тематические карты и веб-сервисы, сформированные на основе современных технологий «Веб 2.0», основанные на механизмах многопоточной асинхронной передачи данных и других современных технологиях. Предусматривается динамическое формирование и обновление отдельных элементов интерфейса пользователя – на основе обмена данными с сервером без перезагрузки страницы. Система использует развитый механизм создания веб-страниц на основе шаблонов; технологии XHTML, CSS для формирования компактного эффективного программного кода, на основе объектной модели документа.

На основе «Геофремворк» были разработаны следующие веб-приложения:

  • Веб-приложение для обработки и представления пространственных метаданных геопортала ИВМ СО РАН;
  • Подсистема авторизации пользователей геопортала ИВМ СО РАН;
  • Веб-приложение для поиска и фильтрации картографических ресурсов информационно-аналитической системы «Банк пространственных данных Красноярского края».

Рецензенты:

Садовский М.Г., д.ф.-м.н., ведущий научный сотрудник ИВМ СО РАН, г. Красноярск.

Заворуев В.В., д.б.н., профессор Сибирского федерального университета, г. Красноярск.