Открыть сервис

Z39.50

Z39.50 — это международный стандарт (протокол прикладного уровня) для поиска и извлечения информации из удалённых баз данных, преимущественно библиотечных каталогов и библиографических систем. Он определяет формат запросов и ответов, а также правила взаимодействия между клиентским приложением (инициатором запроса) и сервером (целью), позволяя пользователю осуществлять поиск в различных, часто несовместимых, информационных системах через единый интерфейс. Стандарт известен своей сложностью, мощными возможностями поиска и поддержкой сложных логических выражений, но в значительной степени вытесняется более современными протоколами, такими как SRU/SRW и OAI-PMH.

История

Разработка протокола началась в 1970-х годах в США под эгидой Национального информационного стандарта (NISO) и Библиотеки Конгресса. Первоначальная версия, известная как Z39.50-1988, была принята в 1988 году. В 1992 году вышла вторая версия (Z39.50-1992), которая значительно расширила функциональность, включая поддержку различных типов записей и механизмов сортировки. Третья версия (Z39.50-1995) стала наиболее распространённой и стабильной, добавив поддержку расширенных сервисов, таких как заказ документов и управление сеансами. Международная версия стандарта была принята ISO в 1998 году как ISO 23950:1998.

В 2000-х годах, с развитием интернета и веб-технологий, протокол начал уступать место более простым и гибким подходам, основанным на HTTP и XML, таким как SRU (Search/Retrieve via URL) и SRW (Search/Retrieve Web Service). Тем не менее, Z39.50 остаётся широко распространённым в крупных библиотечных сетях, особенно в Северной Америке и Европе, где поддерживается значительное количество унаследованных систем.

Архитектура и принцип работы

Протокол Z39.50 основан на модели «клиент-сервер» и использует собственный протокол передачи данных, обычно поверх TCP/IP (порт 210 по умолчанию). Взаимодействие происходит в рамках сеанса связи.

Основные элементы

  • Инициатор (Origin) — клиентское приложение, которое отправляет запросы.
  • Цель (Target) — серверная база данных, которая принимает и обрабатывает запросы.
  • База данных (Database) — логическая совокупность записей, доступных для поиска на сервере.
  • Набор записей (Result Set) — временный набор записей, полученных в результате выполнения запроса.
  • Элемент данных (Element) — конкретное поле записи (например, автор, название, год издания).

Типичный сеанс работы

  1. Инициализация (Init) — клиент и сервер обмениваются параметрами, такими как версия протокола, размеры буферов, поддерживаемые сервисы.
  2. Поиск (Search) — клиент отправляет запрос, сформулированный на языке запросов, специфичном для протокола (например, Type-1 или CQL). Сервер выполняет поиск в указанной базе данных и возвращает количество найденных записей.
  3. Извлечение (Present) — клиент запрашивает конкретные записи из набора результатов, указывая диапазон (например, записи с 1 по 10). Сервер возвращает записи в заданном формате (например, MARC, Dublin Core, XML).
  4. Завершение (Close) — сеанс завершается.

Языки запросов

Z39.50 поддерживает несколько форматов запросов, наиболее распространённым из которых является Type-1 (или RPN — Reverse Polish Notation). Он позволяет строить сложные логические выражения с использованием булевых операторов (AND, OR, AND-NOT) и операторов сравнения (=, <, >, LIKE). Также поддерживаются более простые запросы Type-0 (простой строковый запрос) и Type-100 (CQL — Contextual Query Language), который является более современным и читаемым.

Классификация и версии

Стандарт Z39.50 прошёл несколько этапов развития:

  • Z39.50-1988 (v1) — первая версия, заложившая основы протокола.
  • Z39.50-1992 (v2) — вторая версия, добавившая поддержку расширенных сервисов, таких как сортировка и извлечение частичных записей.
  • Z39.50-1995 (v3) — третья версия, ставшая международным стандартом ISO 23950. Включает поддержку расширенных сервисов, таких как заказ документов, управление сеансами и поддержка различных типов записей.
  • Z39.50-2003 — незначительное обновление, уточняющее некоторые аспекты протокола.

Применение

Основное применение Z39.50 — интеграция библиотечных каталогов. Протокол позволяет пользователям одного каталога (например, университетской библиотеки) выполнять поиск в каталогах других библиотек, не покидая интерфейса своей системы. Это особенно важно для:

  • Сводных каталогов (Union Catalogs)объединение записей из множества библиотек в единый поисковый индекс.
  • Межбиблиотечного абонемента (ILL)автоматизация заказа книг из других библиотек.
  • Каталогизации — заимствование библиографических записей из авторитетных источников (например, Библиотеки Конгресса).
  • Поиска в цифровых коллекциях — некоторые системы управления цифровыми коллекциями также поддерживают Z39.50.

Примеры реализаций

  • YAZ — популярная библиотека с открытым исходным кодом для разработки клиентов и серверов Z39.50, написанная на C.
  • Index Data — компания, разработавшая YAZ и ряд других инструментов для работы с Z39.50.
  • Zebra — высокопроизводительный сервер Z39.50 с открытым исходным кодом.
  • Koha — популярная система автоматизации библиотек с открытым исходным кодом, поддерживающая Z39.50.
  • Aleph — коммерческая система автоматизации библиотек (Ex Libris), поддерживающая Z39.50.
  • Voyager — коммерческая система автоматизации библиотек (Ex Libris), поддерживающая Z39.50.

Критика и ограничения

Несмотря на широкое распространение, Z39.50 имеет ряд недостатков:

  • Сложность — протокол является одним из самых сложных в области информационного поиска. Разработка и поддержка клиентов и серверов требуют высокой квалификации.
  • Неэффективность — протокол использует собственный, нестандартный формат передачи данных, что приводит к накладным расходам и снижению производительности, особенно при передаче больших объёмов данных.
  • Отсутствие гибкости — протокол плохо приспособлен для работы с современными веб-технологиями, такими как REST и JSON.
  • Сложность с масштабированием — поддержка большого количества одновременных соединений может быть проблематичной.
  • Проблемы с безопасностью — протокол не предусматривает встроенных механизмов шифрования или аутентификации, что делает его уязвимым для атак.

Современное состояние

В настоящее время Z39.50 постепенно вытесняется более современными протоколами, такими как SRU/SRW (Search/Retrieve via URL / Web Service) и OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting). SRU/SRW использует HTTP и XML, что делает его более простым и гибким. OAI-PMH предназначен для массового сбора метаданных из репозиториев. Тем не менее, Z39.50 остаётся важным стандартом для интеграции унаследованных библиотечных систем и продолжает использоваться в крупных библиотечных сетях.

Источники

  • Z39.50 Maintenance Agency (Library of Congress)
  • ISO 23950:1998 — Information and documentation — Information retrieval (Z39.50) — Application service definition and protocol specification
  • NISO Z39.50-2003 — Information Retrieval: Application Service Definition and Protocol Specification
  • YAZ Toolkit Documentation (Index Data)
  • Zebra Server Documentation (Index Data)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →