02.04.1215:42 Территориально распределенная поисковая система1.1.Введение Трудно переоценить роль поисковых систем в корпоративных сетях. Количество информации в них с каждым годом увеличивается, и поиск нужной информации становится проблемой.А если это не просто предприятие, пусть и огромное, а целая структура, причём территориально распределённая? Поиск по информационному пространству такой сети усложняется по причине территориальной удалённости её составляющих друг от друга. Также проблемой является то, что данные, рассредоточенные по сети, находятся в разном формате и никак не связаны между собой. Информация, находящаяся в каждом сегменте упорядочена по-своему и хранится в своём формате. При создании этих информационных баз не было чётких стандартов, и как результат – множество разных баз данных от разных разработчиков.Эта проблема актуальна, например, в любой государственной структуре. Именно для решения этой проблемы специалистами компании СофтИнформ разрабатывался проект территориально-распределённой глобальной поисковой системы. Система состояла из 4000 территориально распределённых офисов, рассредоточенных по всей стране. Данные, аккумулированные в системе, были расположены в разных базах данных, примерное количество которых оценивалось в 16000. 1.2.Масштабируемость Также важной особенностью корпоративного программного обеспечения является отсутствие проблемы масштабирования. Информации с каждым годом становится всё больше, и первоначальной мощности ПО может уже не хватать. Идеальным вариантом является параллельное увеличение мощности без изменения существующей структуры.Для индексирования больших объемов информации потребуется несколько компьютеров. Если взять за предел одного компьютера 1-5 терабайт информации, а нужно проиндексировать гораздо больше, то потребуется несколько кластеров. Но, так как поиск должен вестись по всей информации, то их нужно объединить, для создания чёткой структуры для работы, под руководством управляющего сервера. Компьютеры под сервером называются кластерами, и управляющий сервер будет решать, какому кластеру на индексацию будут отправлены данные и т.д.Кластерная система используется для создания чёткой структуры для работы, под руководством управляющего сервера. Все компьютеры, находящиеся под руководством сервера разбиваются на кластеры. Каждый компьютер может проиндексировать от 1 до 5 терабайт текста, в зависимости от того, в каком он формате.Количество информации на предприятии растет каждый день. Появляются новые документы, растёт объём баз данных. При увеличении количества кластеров – система сможет индексировать большее количество информации. Увеличивая число индексирующих серверов мы можем обработать любое количество информации.Если предприятие расширяется, и появляются новые сотрудники, то системе придётся отрабатывать большее количество запросов. Для решения этой проблемы достаточно увеличить количество поисковых серверов в сети, увеличив количество компьютеров в кластере. Основным преимуществом масштабирования в поисковой системе от СофтИнформ является то, что оно осуществляется без изменения структуры существующей сети.1.3.Общая структура сети Для примера мы приводим трёхуровневую структуру, хотя количество уровней может быть и большим. Условно обозначим уровни как:ЦентрОбластной уровеньРайонный уровеньНа всех уровнях находятся управляющие и кэширующие серверы, а также реализована кластерная структура сети.В одном из проектов, структура состояла из 4000 территориально распределённых офисов. Данные были расположены в разных базах данных, примерное количество которых оценивается в 16000. Проблема поиска по такой структуре нашими технологиями с успехом решается.1.3.1.Схема центра Головной центр отвечает за общий сбор данных. Он проводит сбор измененной информации со всех областных центров.Каждый кластер содержит часть общего хранилища и индекса. Внутри кластера на всех компьютерах часть хранилища и индекса повторяется.Все поисковые запросы так или иначе направляются к нему, если кэширующий сервер не может предоставить нужной информации.1.3.2.Схема области Областной центр пересылает изменённые данные на центральный сервер репликации и отвечает за получение обновлений остальными центрами с головного центра репликации. Основной компонент – система поиска, которая обрабатывает запросы пользователей на поиск информации.1.3.3.Схема района Районный сервер репликации обеспечивает доступ к базам данных из районного центра. Он имеет связь с областным центром для передачи данных в областной центр репликации данных. Также есть клиентские места, с которых идут поисковые запросы к областной базе данных.1.4.Система репликации данных Когда существует огромная сеть источников данных, никак не синхронизированных между собой, остро встаёт проблема актуальности имеющейся информации. Система репликации предназначена для проведения пакетов обновлений от объектов индексирования к поисковым серверам. Во всех узлах огромной и сложной сети по заданному графику обновляется информация. Узлы районов пересылают данные на второй уровень – узел области. Узлы областей, в свою очередь, пересылают данные на – узел центра. Узел центра аккумулирует пакеты со всех областей в одном месте, формирует глобальный пакет обновления, а в завершение процесса репликации, узлы областей получают глобальный пакет обновления с узла центра.В процессе обновления все изменения применяются используя журнал транзакций, что позволяет гарантировать верное применение изменений.1.5.Подсистема отслеживания изменений в базе данных Отслеживание обновлений в информационных системах, также является огромной проблемой, в данной ситуации. Дополнительная сложность ситуации заключается в том, что базы, в которых накоплены имеющиеся данные, написаны разными разработчиками и в разное время.И для того, чтобы встроить механизм отслеживания обновлений придётся найти всех многочисленных разработчиков огромного количества баз, и скоординировав с ними свои действия, внести в программу нужные изменения. При всём этом обязательно, чтобы обновления информации проходили автоматически.После внесённых обновлений, пересылаться будет только обновленная информация. Пересылка всей базы отнимет слишком много времени.1.6.Кэширование запросов Достичь отличных скоростных показателей работы поисковой системы позволила система кэширования запросов, разработанная техническими специалистами компании СофтИнформ. Количество уникальных запросов, генерируемых пользователями, составляет всего около 20%. Поэтому поисковой системе, используя систему кэширования, приходится полностью отрабатывать и отправлять на следующий уровень лишь пятую часть запросов. Остальные попадают в выдачу результатов прямо из сервера кэширования.1.7.Разграничение прав доступа Критичным фактором работы поискового ПО в рамках огромной сети данных является соблюдение политики информационной безопасности и управление доступом пользователей. Менеджеру отнюдь не требуется копаться в документах бухгалтерии, а специалисту отдела продаж изучать разрабатываемый в недрах аналитического отдела под руководством генерального директора и «замов» нового бизнес-плана. Можно разбивать пользователей на группы, используя функционал операционной системы Windows, но это не самый лучший вариант. Собственная аутентификация и привязки к документу гораздо функциональнее и надёжнее. Она позволяет более гибко работать с разграничением прав на всех уровнях доступа.1.8.Система удалённой диагностики В такой сложной системе не обойтись без комплекса административных утилит, предназначенных для настройки параметров работы системы. Инструментарий позволяет производить гибкую настройку и перенастройку центров обработки информации.Основным компонентом системы является аналитический модуль, который позволяет проводить мониторинг и анализ работы системы. Данный аналитический модуль включает в себя средства онлайн контроля над работоспособностью системы и отчётную систему для сбора статистической информации.Никакая система не застрахована от сбоев и неполадок в работе. А при такой развернутой и сложной по своей структуре сети, неполадки влекут за собой огромные временные и финансовые издержки на выезд специалиста. Именно для таких внештатных ситуаций и создана система удаленной диагностики.1.9.Резюме Компания ^ SearchInform Technologies Inc является разработчиком поисковой системы, на базе которой можно организовать легко масштабируемую информационно-поисковую систему любой сложности. Подтверждением являются многочисленные поисковые проекты, реализованные и реально работающие.Многолетний опыт успешной работы на российском рынке является лучшим гарантом того, что система не подведет, обеспечив быстрый и чёткий поиск по огромным массивам данных. Опыт в консолидации информации из различных источников решит проблему разрозненности данных, собрав их в единую систему.Приплюсовав сюда уникальную технологию поиска документов похожих по содержанию на текст запроса и корректную поддержку русской морфологии, мы получаем в итоге лучшее поисковое решение для корпоративного сектора.