ИНФОРМАЦИОННО-ПОИСКОВЫЙ СЕРВЕР ДЛЯ ОТРАБОТКИ ЗАПРОСОВ ПО ЭЛЕКТРОННОЙ ПОЧТЕ

Д.В.Ландэ


[an error occurred while processing this directive][an error occurred while processing this directive] File not found. [an error occurred while processing this directive]

В настоящее время во всем мире наблюдается повышенный интерес к компьютерным сетям, одной из самых популярных, среди которых является глобальная компьютерная сеть Internet, представляющая собой совокупность взаимосвязанных подсетей, взаимодействующих по протоколу TCP/IP [1]. По данным Международного сою за электросвязи, сегодня 90 % узлов Internet расположены в странах - членах Организации экономического сотрудничества и развития. Исполнительный директор Internet Society Энтони Рутковски прогнозирует, что количество узлов входа Internet в Восточной Европе к третьему кварталу 1996 г. возрастет до 1 млн. Если первоначально сеть рассматривалась в основном как средство электронной почты, позволяющее при единой системе адресации передавать (получать) за считанные минуты электронные письма практически в любую точку цивилизованного мира (сегодня 75 стран мира имеют средства доступа к Internet), то в настоящее время интерес пользователей сети сосредоточен на информационном ресурсе сети, представляющем собой совокупность таких информационных источников:

- FTP- и archi- (ахивные) сервера, на которых содержатся архивы программного и информационного обеспечения. Сервера FTP (File Transfer Protocol - протокол передачи файлов ) образуют огромный информационный ресурс, для поиска файлов в котором служат архивные сервера, обеспечивающие поиск файлов FTP-серверов по ключевым словам;

- WWW [2] (World-Wide Web "Всемирная паутина") - сервера, содержащие большие объемы мультимедиа информации - так называемым, гипермедиа документам, которые создаются с помощью гипертекстового языка HyperText Markup Language (HTML), что дает возможность получать доступ к сетевым ресурсам с различных точек входа.

- телеконференции Usenet.

Телеконференции [3] возникли на заре становления современных сетей как средства общения между специалистами, заинтересованными общей тематикой. Файловые области на сервере, к которому имели доступ на чтение и запись все желающие обмениваться информа- цией по определенным темам были названы телеконференциями (группами). Все это очень похоже на концепцию электронных досок объявлений (BBS). Различие заключается в следующем - общедоступные конференции Usenet физически размещаются на большом числе узлов сети, каждый абонент любого из которых может вносить в телеконфернцию свою информацию, будучи уверенным, что его информация автоматически распространиться по всем остальным узлам. Это обеспечивается использованием унифицированных сетевых протоколов и программного обеспечения, реализующего их. Поток данных Usenet переносится по сети Internet и другим сетям. В качестве стандарта обмена сообщениями Usenet по Internet используется специальный протокол NNTP (Network News Transfer Protocol- протокол передачи сетевых новостей). Usenet появилась на базе сетевого протокола UUCP (Unix-to-Unix Copy Protocol). Считается, что Usenet расшифровывается как "User's Network", хотя создатели Usenet в 1979 году образовали название из "USENIX Network" (USENIX - ассоциация пользователей UNIX).

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

    ukr.commerce.auto         - Автомобили и запчасти
    ukr.commerce.chemical     - Химические продукты и материалы
    ukr.commerce.construction - Строительство
    ukr.commerce.energy       - Энергоносители (топливо, масла  и
                                т.д.)
    ukr.commerce.food         - Продукты питания
    и т.д.

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

Телеконференции могут быть модерируемыми (или управляемыми) или немодерируемыми. Модерируемые телеконференции могут наполняться информацией только определенными людьми - модераторами. Остальные пользователи сети могут только читать эту информацию. При этом модераторы несут полную ответственность за содержание телеконференций. Немодерируемые конференции свободны для внесения информации любого пользователя сети. Как правило существуют коллективно избираемые координаторы зон, которые вправе удалять некорректные статьи даже из немодерируемых конференций (так называемая постмодерация). Таким образом, модерируемые конференции, становятся средством выражения мнения модераторов - т. е. направленным средством массовой информации - электронными газетами. Пример одной из самых серьезных коммерческих электронных газет доступных в сети Internet в виде конференций в формате Usenet - это иерархия телеконференций Clarinet, включающая свыше сотни групп, посвященных политической, экономической, правовой, спортивной и т.п. тематикам, при этом наполнением телеконференций занимается несколько информационных агентств, среди которых, например, Reuter . В украинской части Internet доступны телеконференции агентства "Блитц-информ" (иерархия cs-monolit.press.bussines.*), львовской газеты "Галицкие контракты" (иерархия ukr.gc.*), агенства "Норма-пресс" (иерархия donbass.np.*). На киевском узле "Електроннi Вiстi" создана иерархия модерируемых конференций elvisti.info.*, включающая 30 групп в основном посвященных научно-технической и экономической проблематике.

Из сказанного следует, что система телеконференций Usenet может расматриваться как динамичная распределенная нечетко структурированная база данных. Так месячный архив доступной постоянно обновляемой сетевой информации превышает десяток гигабайт. Естественно возникает вопрос - как обеспечить эффективный доступ к информации такого рода? Существует несколько путей решения этой проблемы.

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

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

При работе по протоколу TCP/IP в среде WWW также существует возможность просмотра и поиска информации в телеконференциях, однако, уровень развития инфраструктуры связи сдерживает развитие этих современных технологий. Кроме того, средства поиска непосредственно в программах-броузерах телеконференций можно признать достаточно слабым.

Существуют современные пакеты программ для поиска в сети Internet по распределенным базам данных - Gopher + Veronica, WAIS (Wide Area Information Servers). Полследний пакет обеспечивает поиск как в интерактивном режиме из среды программ-броузеров WWW, так и отработку запросов, поступающих по электронной почте. Сегодня WAIS содержит около 500 индексированных баз данных [4]. Идея, лежащая в основе WAIS, такова: обеспечение текстового поиска по комбинации ключевых слов в базах данных на основе модели клиент/сервер. Клиент - это программа с которой непосредственно работает абонент - вводит запросы и просматривает выдачу, а сервер - это место где храняться исходные данные. Клиент в WAIS соединяется с одним или несколькими серверами - в этом особенность WAIS-протокола. Однако при использовании этого пакета требуется преобразования всей системы телеконференций к формату базы данных с развитой системой индексов - инверсных файлов, что достаточно накладно при ведении базы данных, изменяющейся с такой динамикой, как Usenet.

Для обеспечения поиска интересующей информации в системе телеконференций при обработке почтовых (E-mail) запросов в информационном центре "Електроннi Вiстi" (ElVisti) разработан информационно-поисковый сервер Infores. Интерфейс пользователя сервера Infores максимально приближен к традиционному серверу новостей, вместе с тем Infores обеспечивает возможность поиска по пакету запросов по базе выбранных тетеконференций с использованием операндов (квалификаторов полей и значений-эталонов) и операторов (AND, OR, AND-NOT). Вместе с тем, в качестве поисковых файлов используются вспомогательные файлы системы новостей CNEWS (INN) [5], что исключает предварительное преобразование информации и позволяет использовать для хранения баз данных традиционный ресурс узла, работающего по протоколам TCP/IP - UUCP.

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

group ukr.commerce.food

или фрагмент названия, например:

group commerce

В последнем случае поиск будет идти по всем группам, в названии которых есть слово "commerce". Если строка определения групы не указана, то поиск будет производиться по группе ukr.commerce.misc.

Запрос на поиск в пределах телеконференции или совокупности телеконференций вводится в формате:

key1=pattern1 [ oper1 key2=pattern2 ] [ oper2 ... ]

Где key1 ... keyn - квалификаторы полей:

        art - номер статьи в указанной группе,
        sub - тема (заглавие) статьи,
        adr - адрес отправителя,
        dat - дата отправления в формате ГГ/ММ/ДД.
	pattern1 ... patternN - маски для поиск (длиной не меньше 3),
              которые могут состоять из букв (кириллицы и латинских) 
              и цифр.  В масках адреса (запрос типа adr=...) можно 
              использовать точку.
	oper1...operN - логические операторы:
              | - ИЛИ
	      & - И
              ^ - И-НЕ.

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

GROUP <группа>
>----------------------------------------------------
ART <номер>
>Subject: <название статьи>
>Address: <адрес отправителя>
>Date: <ГГ/ММ/ДД>
>----------------------------------------------------

В процессе поиска по каждой группе игнорируются дублирующиеся документы.

После получения выдачи по запросу отдельные статьи можно заказать, отправив по адресу информационно-поискового сервера или сервера новостей команды:

    group <название группы>
    art <номер>
    art <номер>
    ...

    Приведем примеры запросов:

    group ukr.commerce
    sub=шоколад|sub=какао&adr=kiev.ua
    exit

- запрос поиска коммерческих объявлений с темой, в которой встре чаются слова "шоколад" или "какао", а отправитель обязательно с киевским адресом.

    group ukr.commerce
    sub=шоколад^sub=молочный
    exit

- запрос поиска коммерческих объявлений с темой, в которой встре чается слово "шоколад", но при этом нет слова "молочный".

    group relcom.humor
    dat=95/04/01
    exit

- запрос поиска статей в телеконференции relcom.humor, отправлен ных 1 апреля.

Внутреннее представление даты в системе Infores отличается от принятого в рекомендациях для электронной почты RFC 822 - специально проконвертированно из этого формата к виду, более привычного для абонентов, а именно "ГГ/ММ/ЧЧ". Такое представление позволяет отбирать документы по году, указывая в запросе "ГГ/" , по месяцу, указывая "ГГ/ММ/", по декадам, указывая "ГГ/ММ/Ч", по точным датам - "ГГ/ММ/ЧЧ".

  Запрос
  dat=95/12/1|dat=95/12/20
  означает диапазон с 10 по 20 декабря 1995 года.

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

Особенностью реализации информационно-поискового сервера Infores заключается в отсуствии средств постоения базы данных и каких-либо собственных наборов данных. Вся информационная база сервера строится стандартными средствами системы ведения новостей в сети Usenet - CNEWS версии 3. Отработка строки выбора телеконференций group осуществляется с помощью стандартного файла active, на основе сведений из которых происходит обращение к нужному каталогу файловой системы UNIX, в котором содержится соответствующая телеконференция. Дальнейшая отработка запроса проискходит не по самим телам статей, представленных в соответствии рекомендациям RFC 822 (RFC - Request For Comments - серия документов, описывающая протоколы, управляющие Internet, а также содержащих информацию о работе сети), а по справочному файлу overview, выступающему в системе Infores в роли "индексного файла". Файл overview для каждой статьи системы новостей содержит такие реквизиты, как номер файла статьи в файловой системе, тема (название) статьи, дата отправления, адрес отправителя и др., что позволяет его в полной мере использовать для реализации концепции последовательного поиска по указанным выше атрибутам. На рис. 1 приведена краткая блок-схема функционирования информационно-поискового сервера. Для реализации сервера Infores был заведен специальный пользователь с именем Infores, в "домашнем" каталоге которого записано все программное обеспечение информационно-поискового сервера, а также содержится специальный файл - .forward, обеспечивающий передачу письма-запроса непосредственно модулю анализа адреса отправителя:

    |/usr/home/Infores/forms

        +-------------------------+
        | Чтение входного письма, |
        | определение адреса и    |
        | статуса абонента        |
        +------------+------------+
                     |
        +------------+------------+
   +--->|     Анализ запроса      |
   |    +------------+------------+
   |                 |
   |                / \
   |              /     \             +-----------+
   |            /  Конец  \   Да      | Отправить |
   |          + пакета за-  +-------->| абоненту  |
   |            \  просов /           | выдачу    |
   |              \  ?  /             +-----------+
   |                \ /
   |                 | Нет
   |                / \
   |              /     \             +-----------+
   |            / Запрос  \   Нет     | Отправить |
   |          +  корректный +-------->| сообщение |
   |            \    ?    /           | об ошибке |
   |              \     /             +-----------+
   |                \ /
   |                 | Да
   |    +------------+------------+
   |    | Выход на необходимый    |
   |    | каталог                 |
   |    +------------+------------+
   |                 |	
   |    +------------+------------+
   |    | Выполнение поиска       |
   |    +------------+------------+
   |                 |
   +-----------------+

Рис. 1. Блок схема функционирования информационно-поискового
        сервера Infores

Программное обеспечение информационно-поискового сервера первоначально было реализовано на языке интерпретатора perl версии 5, в процессе опытной эксплуатации переписано на языке C с использованием языка процедур shell, что привело к некоторой экономии машинного ресурса при одновременной отработке большого числа запросов.

Задача обеспечения выполнения поиска не только по указанным выше атрибутам, но и по телам статей, в том числе представленным в компрессированном и закодированном видах в рамках концептуального отказа от построения "собственных" вспомогательных файлов может привести к достаточно большому времени отработки запроса (десятки минут по базе в несколько гигабайт), а также к перегрузке вычислительного комплекса. Использование громоздких информационно-поисковых систем, плохо адаптированных к режиму обработки запросов по E-mail, а также не поддерживающих динамику телеконференций не дает решения проблемы полноценного доступа к ресурсам Usenet. Есть только один выход - разработка и реализация концепции базы данных с динамически изменяющимся наполнением, быстро перестраивающимися индексами и ссылками на мультимедиа-приложения.

Литература

1. D.Comer. Internetworking With TCP/IP. (Second Edition).
   Prentice-Hall International Inc., 1991
2. P.Gister. Internet Navigator.//CW-Moscow, 1995, N 27
3. М.Степанова, Г.Шиленко.  E-mail  -  что  это  такое//Компьютер
   Пресс, N 3, 1991
4. В. Возняк. Plug and Play в Internet//Компьютерное обозрение,
   1995, N 8-9

HOME