ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

Мгновенные сообщения как основа ГИС

 

Стяпшин Анатолий Александрович,

аспирант кафедры автоматики и компьютерных систем Сургутского государственного университета.

 

Введение

 

Городская информационная система (ГИС) являются информационной системой, обеспечивающая сбор, хранение, обработку, доступ, отображение и распространение пространственно-координированных данных (пространственных данных). ГИС содержит данные о пространственных объектах в форме их цифровых представлений (векторных, растровых, квадротомических и иных) [1]. Городские информационные системы (ГИС) являются неотъемлемым аспектом в любом крупном городе. Возможность своевременного получения актуальной информации по интересующему объекту является важным требованием успешности любой информационной системы.

В настоящее время самым распространенным форматом ГИС является электронная карта города. Она представляет собой программу, содержащую базу данных по объектам города (например, база организаций), а также электронную карту, которая отображает эти объекты.

Новый подход позволяет использовать мгновенные сообщения как основу для передачи ГИС данных. Мгновенные сообщения позволяют в реальном времени обмениваться текстовыми сообщениями в сети Интернет. На данный момент существует большое количество подобных сервисов, но все они отличаются между собой лишь деталями реализации и некоторыми отличительными особенностями, которые не являются существенными в рамках данной работы. Реализованный подход позволяет искать ГИС информацию и получать ответы через текстовые сообщения. Пользователь отправляет запрос специальному контакту в сети интернет и в ответном сообщении получает структурированный результат по найденным организациям города.

 

Функциональные спецификации

 

Базовый функционал разработанного сервиса представлен ниже.

1.                  Мультипротокольность. Поддерживается одновременная работа с несколькими протоколами. В базовый набор входят следующие протоколы обмена сообщениями: OSCAR (ICQ), XMPP (Jabber), MMP (mail.ru protocol), MSN, Skype.

2.                  Многосессионность. Ведется параллельная и независимая работа с несколькими пользователями одновременно, сохраняется контекст каждого результата поиска. Многосессионность представляет собой многопоточность в контексте пользователей, а не потоков (процессов).

3.                  МногопоточностьМногопоточность подразумевает одновременную параллельную работу с несколькими пользователями.

4.                  Сложный поиск. Примером сложного поиска является поиск по нескольким ключевым словам. Например, бот должен искать информацию вида «слово1 слово2 слово3 …». Реализовать данную возможность позволяет полнотекстовый поиск. Движки полнотекстового поиска имеют встроенные языковые анализаторы, позволяют выполнять нечеткий поиск по БД, ранжировать результаты и др. Полнотекстовый поиск является мощным инструментом, его используют все крупные поисковые сервисы, такие как Google, Yandex, Bing и др.

5.                  Фильтрация. В случае если по запросу пользователя было найдено множество результатов, то присутствует возможность фильтрации результатов для получения более четких ответных данных.

6.                  Статистика по запросам и произошедшим ошибкам. Позволяет сохранять в БД всю информацию о произведенных запросах и произошедших ошибках.

7.                  Анти-спамАнти-спам выполняет 2 главных функции: блокировку фальшивых пользователей и защиту БД от нелегального копирования.

8.                  Режимы ввода и вывода. Система имеет возможность принимать и отправлять сообщения в режиме транслитерации. Для минимизации служебной информации, например, навигационных подписей и др., поддерживается сокращенный вывод результатов поиска.

 

Эксплуатационные спецификации

 

Данный вид требований оценивает параметры, не относящиеся к функционалу, но играющие важную роль при разработке продукта. Основные виды требований приведены ниже.

1.                  Быстродействие. Сервис обладает максимальным быстродействием (среднее время поиска 5 мс.). Сама же система работает в многопоточном режиме.

2.                  Затраты памяти. Минимизация затрат памяти должна является одним из направлений оптимизации производительности программного продукта. Рабочий набор приложения в оперативной памяти занимает около 3 мегабайт.

3.                  Надежность. Клиент имеет возможность восстанавливать свою работу в случае сбоя, например, при отсоединении от сервера, программной ошибки или потере соединения с базой данных.

4.                  Пользовательский интерфейс. Графического интерфейса для системы не предусмотрено, а работа сервиса может выполняться в фоновом режиме (пример – сервисы в MS Windows или демоны в Unix системах).

Для реализации проекта использовался язык программирования С++ и внешние дополнительные библиотеки, которые позволяют работать с базами данных.

В настоящее время одной из самых распространенных и поддерживаемых библиотек является библиотека Qt. Qt является кросс-платформенных инструментом разработки программного обеспечения на языке программирования С++. Qt позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путем простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью и базами. Qt является полностью объектно-ориентированным языком, легко расширяемым и поддерживающим технику компонентного программирования. Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов во всем мире [2].

 

Полнотекстовый поиск

 

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

Современные алгоритмы заранее формируют для поиска полнотекстовый индекс – словарь, в котором перечислены все слова и указано, в каких местах они встречаются. При наличии такого индекса достаточно осуществить поиск нужных слов в нем, и тогда будет получен список документов, в которых они встречаются.

В данной работе к основной базе данных был добавлен автономный поисковый движок. Это специальный механизм, созданный для индексации содержимого баз данных и поиска по созданным индексам.

Основные возможности использованного полнотекстового движка:

1)                 высокая скорость индексации и поиска;

2)                 поддержка распределенного поиска и поиска по фразам;

3)                 поддержка ранжирования фразы по близости, что обеспечивает хорошую релевантность;

4)                 поддержка русского и английского стемминга (поиск по основе слова);

5)                 поддержка стоп слов и др.

Полнотекстовый поиск информации позволяет пользователю составлять запросы сложного характера, например, поиск всех организаций на определенной улице, занимающихся определенным видом деятельности. Синтаксический и морфологический анализатор текста позволяет находить неточные данные, а так же искать с учетом особенностей русского языка, например, система умеет искать объект независимо от того в каком склонении или числе он был написан. Система поддерживает логический поиск, поиск с фильтрацией, нечеткий поиск.

 

Архитектура

 

Основу для системы составляет объект обработчика запросов. Пользователь в системе представлен сессией. Для управления всеми сессиями вводится специальный механизм – менеджер сессий. Для обеспечения многопоточности работа с каждым пользователем запускается в отдельном потоке сессии. Для управления всеми потоками предназначен специальный класс менеджера потоков. Общая схема системы представлена на рис. 1.

 

Рис. 1. Общая схема системы.

 

Менеджер сессий выбирает сессию пользователя, а если она еще не была создана, то создает ее. Общая схема выделения-поиска сессии представлена на рис. 2.

 

Рис. 2. Общая схема выделения-поиска сессии.

 

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

Менеджер потоков предназначен для запуска сессий в отдельном потоке. Общий механизм передачи сессий в менеджер потоков и запуск потока на выполнение приведен на рис. 3.

 

Рис. 3. Механизм запуска потока сессии.

 

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

 

Заключение

 

В ходе данного проекта разработан новый вид городской информационной системы. Данный вид сервиса является первым в своем роде и ранее не реализовывался. В настоящее время сервис запущен в эксплуатацию в городе Сургуте и активно используется пользователями.

Реализованный клиент работает через сеть интернет и позволяет искать информацию посредством мгновенных сообщений. Мультипротокольность позволяет пользоваться системой через разные сервисы обмена мгновенными сообщениями: OSCAR (ICQ), XMPP (Jabber), Mail.ru, Yahoo, Skype и др.

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

Из недостатков проекта можно отметить отсутствие возможности поиска с использованием заданных критериев, а также возможности отмены последнего произведенного действия.

Сервис обладает большим потенциалом для развития. Помимо поиска по основной базе данных в функционал бота можно добавить такие сервисы как получение прогноза погоды, последних новостей, курса валют, проверки электронной почты, переводчик, поиск по книгам, поиск по объявлениям и др.

 

Литература

 

1.                  Геоинформационный портал ГИС-Ассоциации - Географическая информационная система [Электронный ресурс] – Режим доступа: http://www.gisa.ru/13058.html. – Загл. с экрана.

2.                  Qt – Википедия [Электронный ресурс] – Режим доступа: http://ru.wikipedia.org/wiki/Qt. – Загл. с экрана.

 

Поступила в редакцию 28.02.2011 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.