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) — конкретное поле записи (например, автор, название, год издания).
Типичный сеанс работы
- Инициализация (Init) — клиент и сервер обмениваются параметрами, такими как версия протокола, размеры буферов, поддерживаемые сервисы.
- Поиск (Search) — клиент отправляет запрос, сформулированный на языке запросов, специфичном для протокола (например, Type-1 или CQL). Сервер выполняет поиск в указанной базе данных и возвращает количество найденных записей.
- Извлечение (Present) — клиент запрашивает конкретные записи из набора результатов, указывая диапазон (например, записи с 1 по 10). Сервер возвращает записи в заданном формате (например, MARC, Dublin Core, XML).
- Завершение (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 →