Turtle

 
 
 
   РАСШИРЕННЫЙ ПОИСК
   ПОИСК ПО ФРАГМЕНТУ
   ПОМОЩЬ
   ПРОСТАЯ ФОРМА
 
 СИНОНИМЫ   ВСЕ ФОРМЫ СЛОВ
 Добавить   Архитектура   Запросы сейчас   Цифры и факты   FAQ   Кнопка поиска   Сделать стартовой 

Программа Similarity Server -- smld vs/1.0

Статус этого документа.

Этот документ описывает принципы работы, процедуру установки и настройки сервера нахождения похожих документов в коллекции сканированных поисковой системой Turtle. Документ предназначен для служебного использования. Документ подразумевает предварительное знакомство с протоколом обмена компонент поисковой системы Search System Transfer Protocol и должен рассматриваться в совокупности с ним.

Copyright Notice

Copyright © Stack Technologies Ltd. (2001). All Rights Reserved.

Содержание.

1. Назначение.
2. Принципы работы.
3. Установка.
4. Настройка и запуск.
5. Список параметров конфигурации.
6. Пример конфигурационного файла.

1. Назначение.

Программа сервер нахождения "похожих" документов Similarity Server (SS) предназначена для обнаружения в указанном массиве ID документов документов, схожих по содержанию, согласно выбранному критерию и выделения из данного массива только "непохожих" документов. Определение степени похожести осуществляется с помощью методов fingerprints, характеризующих каждый уникальный документ. Особенностью программы является то, что документы похожие документы не являются идентичными, а могут содержать общие фрагменты текста. Работа сервера с внешними приложениями строится на базе Search System Transfer Protocol (см. SSTP/1.0).

2. Принципы работы.

Программа smld принимает от внешних приложений по сети SSTP запрос и генерирует ответ, содержащий результирующий массив уникальных с точки зрения запроса (используется критерий похожести) ID документов.

В своей работе сервер использует данные, предварительно накопленные Архивными Серверами (AS) при их взаимодействии с накопителями данных (CA). Подразумевается, что физически SS устанавливается на одном из компьютеров AS. При этом программа данного AS работает с базой данных fingerprints, построенной с применением пакета BerkeleyDB vs.3.3.11 или старше, локально. На этом же компьютере запускается RPC сервер этой базы данных, входящий в пакет BerkeleyDB, для предоставления возможности остальным AS заносить свои данные о проходящих через них fingerprints документов. Базовые функции сервера SS реализованы в виде библиотеки libsml.a (автор: Федор Сигаев) и входят в комплект дистрибутива.

В настоящее время сервер обслуживает SSTP запросы типа:

REQ_GET_SML (90)
отфильтровать из пачки входных ID ID похожих документов.
REQ_GET_SIMILAR (91)
найти документы, похожие на указанный документ.
REQ_GET_FPS (92)
найти документы, похожие на указанный сформированный буффер данных.

В качестве входных параметров запроса клиентская сторона определяет массив ID документов для анализа сервером во множественных полях HEADER_URI_ID. Размерность массива должна быть сообщена серверу в параметре HEADER_NUMRESULTS (обязательное поле). В качестве параметра клиентская сторона может указать барьер срабатывания для функций сравнения документов в поле HEADER_LIMIT в виде целого десятичного числа от 0 до 100. Эта величина определяет процентное соотношение найденных fingerprints к их общему количеству для принятия решения о "похожести" документов.

На полученный запрос REQ_GET_SML сервер отвечает кодом REQ_GET_SML в случае успеха, в качестве выходных параметров в полях HEADER_URI_ID будут приведены только отобранные уникальные ID документов из входной пачки.

На полученный запрос REQ_GET_SIMILAR сервер отвечает этим же кодом в случае успеха. При отсутствии в запросе параметра HEADER_URI_ID, сервер отвечает REQ_PUT_NOT_FOUND. В параметрах ответа сервера в полях HEADER_URI_ID будут содержаться ID документов, похожих на запрашиваемый и их степень "похожести" в виде:

Uid: 12765/0.875
Uid: 231/0.743

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

В настоящий момент сервер имеет и web интерфейс для администратора системы. Он обслуживает следующие HTTP запросы:

http://similarity.server:similarity_port/stat
выдать текущую статистику работы сервера
http://similarity.server:similarity_port/statclean
очистить текущую статистику.
http://similarity.server:similarity_port/reload
перечитать конфигурацию сервера.

3. Установка.

Исходные тексты сервера находятся в дистрибутиве системы и собираются вместе с другими компонентами в работающую программу путем выполнения команды make в корне исходных текстов дистрибутивов. Для сборки отдельно только сервера SS необходимо сначала собрать библиотеку libturtle.a и библиотеки libsml.a, libfps.a (обе находятся в директории libsml), а затем сам сервер с помощью команд:

cd /where_is_dist_home/src/lib
make
cd ../libsml
make libfps
make installfps
make libsml
make installsml
cd ../smld
make smld

4. Настройка и запуск.

Сервер запускается посредством команд:

cd /smld_home_dir
/where_is_similarity_prog/smld

Эту последовательность можно включить в файл начальной загрузки компьютера (например, /etc/rc.local), чтобы при перезагрузке компьютера сервер автоматически запускался на данной машине. Программа может быть запущена с ключом:

-c other_config_file

при этом конфигурация запуска зачитывается из указанного файла. Если программа запускается без ключей, то конфигурационные параметры будут зачитываться из файла smld.cf в текущей директории. Этот файл следует подготовить с помощью редактора текстов до запуска серверной программы.

Правила оформления конфигурационного файла следующие:

Программа воспринимает следующие внешние сигналы:

SIGHUP
производится ротация logfile и перезачитывается конфигурация. Полезно при изменении конфигурации сервера на лету.

SIGTERM
выполнение программы немедленно прекращается.

SIGUSR1
сервер пытается отработать все полученные запросы и останавливает свою работу.

Кроме того, при получении сигналов ошибки программы SIGBUS, SIGILL, SIGSEGV, SIGQUIT программа оставляет в домашней директории core файл и шлет сообщение администратору системы об ошибке в программе по SMTP на адрес, указанный в конфигурации. Посылка таких сообщений может быть запрещена в отладочных целях с помощью конфигурационного параметра sendmessages=0 (см. ниже).

5. Список параметров конфигурации.

Ниже приведен список используемых конфигурационных параметров сервера VS и краткое их описание:

rootdir = /some/directory
Корневая директория сервера SS, относительно которой могут быть определены все остальные директории или имена файлов. Если имя файла начинается с символа '/', то считается, что в конфигурации указывается абсолютный путь к файлу, иначе считается, что имя файла будет определено относительно rootdir. Значение по умолчанию: /usr/local/turtle

dispatchername = dispatcher-001.turtle.ru
Каноническое Интернет имя или IP адрес сервера Dispatcher Server (DS), необходимо для зачитывания общих для поисковой системы конфигурационных параметров (например, списка разрешенных для соединения машин и пр.) Если общие конфигурационные параметры по каким-либо причинам не могут быть получены от DS (например, он просто не запущен), то будет произведена попытка зачитать их из локальных файлов конфигурации, определенных ниже. Значение по умолчанию: dispatcher-001.turtle.ru

port = 3320
Номер порта, по которому может быть произведено соединение с центральным диспетчером. Значение по умолчанию: 3320.

smlname = similarity-001.turtle.ru
Каноническое имя или IP адрес сервера, на котором запускается данная программа. Если компьютер имеет несколько имен и/или адресов, то принимать запросы он будет только при обращении к указанному в этом поле имени. Значение по умолчанию: similarity-001.turtle.ru.

smlport = 3324
Номер порта, по которому данный сервер будет принимать SSTP запросы, и посылать ответы на них. Необходимо конфигурировать так это значение, чтобы оно не вступало в конфликт с другими компонентами поисковой системы или иными серверными программами, запущенными в пределах данного компьютера. Значение по умолчанию: 3324.

smldir = /home/turtle/base/sml
Директория, в которой библиотека хранит вспомогательные файлы и файл базы данных fingerprints. Согласно документации libsml.a имя директории должно являться полным путем.

progname = smld
Префикс для занесения учетных записей в журнал работы программы (logfile). Если различными компонентами системы используется общий журнал, то данный префикс позволит отличить записи данного сервера от других. Программное обеспечение также может быть откомпилировано с ключом компиляции -DUSE_SYSLOG. При этом, записи будут производиться как в указанный logfile, так и используя syslog. При сборке пакета с ключом компиляции -DLOG_DAYTIME в журнал работы вместе с каждой записью будет занесено текущее время. По умолчанию, данная функция отключена. Значение по умолчанию: берется из имени запускаемой программы argv[0].

logfile = logs/sml.log
Имя файла журнала работы программы. Значение по умолчанию: logs/turtled.log

pidfile = logs/sml.pid
Имя файла, в котором будет помещен идентификатор процесса - его номер в таблице процессов системы. Полезен администратору для написания скриптов посылки сигналов программе (например, SIGHUP). Значение по умолчанию: logs/turtled.pid

allowdb = conf/hosts.allow
Имя файла локально разрешенных для обслуживания запросов внешних машин. Если при старте программе не удалось получить список шаблонов разрешенных для обслуживания машин от центрального диспетчера, то будет произведена попытка зачитать такие шаблоны из указанного в данном поле файла. Файл устроен так, что каждая строка содержит один шаблон, который оформляется так, как это используется в shell (например: 192.168.3.* или *.turtle.ru). Значение по умолчание: conf/hosts.allow.

pwfile = conf/turtle.passwd
Файл описания известных системе пользователей и их идентификационной информации при использовании базовой SSTP идентификации. Файл создается и редактируется с помощью программы turtle_passwd с различными ключами. В настоящий момент базовая SSTP идентификация в рамках взаимодействия QP и SS не производится, и данные этого файла используются только для идентификации при запросе статистики сервера по HTTP. Подразумевается, что VS находится за брандмауэром локальной сети и доступ к нему может быть осуществлен только QP по локальной сети. Содержание файла используется сервером, в случае если данные идентификации не могут быть получены от центрального диспетчера DS. Значение по умолчанию: conf/turtle.passwd.

version = 1.0
Текущая версия программного обеспечения. Поле носит информативный характер. В дальнейшем, значение этого поля планируется использовать для обеспечения программной совместимости компонент поисковой системы.

maintainer = admin@e-mail.address
Почтовый e-mail адрес администратора системы для посылки критических сообщений о работе программы.

user = turtle
group = turtle
Имя и группа пользователя, от имени которого будет выполняться программа. Если программа запускается от имени суперпользователя, то ее привилегии будут изменены на указанные в этих полях привилегии из соображения безопасности для самой операционной системы. С использованием этих значений можно допускать автоматический запуск программы при рестарте компьютера, на котором установлен сервер VS. Значения по умолчанию: turtle/turtle.

maxclients = 512
Максимальное количество одновременно обслуживаемых запросов системой. Это значение не должно превышать максимального значения файловых дескрипторов, разрешенных операционной системой для данного пользователя. Если значение превышает максимально разрешенное, то оно будет уменьшено до правильного значения. Чрезмерное увеличение этого параметра без надобности может приводить к небольшой потере производительности. Уменьшение ниже требуемой величины приведет к отказу в обслуживании некоторых запросов. Рекомендованное значение 512. Значение по умолчанию: 8192.

timeout = 300
Интервал времени в секундах, спустя который будет производиться проверка таймеров на предмет их переупорядочения. Значение по умолчанию: 300.

readtimeout = 60
sendtimeout = 60
Таймауты системы для приема запросов и пересылки ответов от SS к QP. Если по истечению указанного периода в секундах запрос не удалось принять или ответ не удалось послать, то данное соединение закрывается.

chroot = 0
При запуске системы в целях безопасности программа может выполнить функцию chroot(). При этом, все содержимое каталогов, расположенных выше по дереву станет для программы недоступным. Текущей директорией и корнем станет директория, которая указана в параметре rootdir. Работоспособность данного параметра не проверялась, но особых препятствий не видно. Указанные действия осуществляются, если в данном поле определено значение, отличное от 0. Значение по умолчанию: 0.

sendmessages = 1
Данный параметр определяет посылать или нет сообщения по электронной почте администратору системы в случае критических ошибок.

scanuser = user_name
scanpass = user_password
Имя пользователя и пароль, используемые для базовой SSTP идентификации при обращении к центральному диспетчеру. Подробнее см. SSTP/1.0. Значения данных полей будут посланы сервером VS центральному диспетчеру DS при запуске программы для получения общих конфигурационных параметров. Если со стороны диспетчера идентификация не будет произведена, то DS ответит кодом 403 FORBIDDEN. При этом VS попытается прочесть конфигурационные параметры из локальных файлов (см. выше).

debuglevel = 40
Уровень занесения информации в журнал работы (см src/include/turtle_defs.h). Самый низкий уровень D_CRIT (10) - в журнал будут записаны только сообщения о критических ошибках, самый высокий - D_PROTOCOL, при этом в журнал будет занесено очень много отладочной информации, включая протокол сетевого обмена. Рекомендуемое значение:40-50.

6. Пример конфигурационного файла.

#
# smld daemon configuration file
#
rootdir         	=       	/home/turtle
dispatchername  	=       	dispatcher-001.turtle.ru
smldir          	=       	/home/turtle/base/sml
smlname         	=       	archiver-001.turtle.ru
smlport         	=       	3325
progname        	=       	smld
logfile         	=       	logs/sml.log
pidfile         	=       	logs/sml.pid
pwfile          	=       	conf/turtle.passwd
#
user            	=       	turtle
group           	=       	turtle
scanuser        	=       	username
scanpass        	=       	abrakadabra
port            	=       	3320
debuglevel      	=       	70
maxclients      	=       	512
timeout         	=       	300
readtimeout     	=       	60
sendtimeout     	=       	60
chroot          	=       	0
Наверх Назад Turtle
 Черепаший Ранк.   Реклама на Turtle   Логотипы   Правовая информация   Конфиденциальность   Контакты 
    ©ЗАО "Группа компаний Стек". 2003-2007