Технология Веб-ИРБИС — различия между версиями

Материал из Wikipedia
Перейти к: навигация, поиск
Строка 21: Строка 21:
 
Эти параметры доступны в контексте фреймов.
 
Эти параметры доступны в контексте фреймов.
  
Параметры используются, в том числе, для отслеживания состояния веб-страницы.
+
Параметры используются, в том числе, для отслеживания состояния веб-страницы. В ответ на HTTP-запрос клиента (обычно – в генерируемую html-страницу, передаваемую клиенту) может включить набор пользовательских параметров вместе с их значениями, полученными в запросе, для чего есть специальная команда.
 +
 
 +
Отслеживание состояния осуществляется с использованием следующих этапов: 1) данные передаются на веб-шлюз в виде параметров запроса; 2) веб-шлюз передаёт данные вместе со сформированной страницей в скрытых полях форм HTML.
  
 
====Выполнение команды====
 
====Выполнение команды====
Строка 45: Строка 47:
 
====Ответ веб-шлюза ИРБИС клиенту====
 
====Ответ веб-шлюза ИРБИС клиенту====
  
Ответом веб-шлюза ИРБИС клиенту может быть:
+
Порядок формирования ответа веб-шлюза ИРБИС клиенту зависит от команды.
* Динамически формируемая веб-страница (используется технология обработки ''фреймов'').
 
* Произвольный ресурс в виде файла, запрошенный клиентом.
 
 
 
====Система команд Веб-шлюза ИРБИС====
 
 
 
Система ''команд'' Веб-шлюза ИРБИС позволяет задать собственный набор фреймов и порядок их объединения для каждой задачи. Для разных задач предусмотрены разные команды, например: для страницы приглашения к поиску, результата поиска, отбора записей в корзину заказов и т.д.
 
  
Набор команд задаётся в [[Конфигурационный файл веб-шлюза ИРБИС irbis server.ini|файле irbis_server.ini]] в контексте базы данных.
+
=====Ответ с использованием фреймов=====
  
То есть, для разных баз данных могут быть настроены разные наборы команд и фреймы.
+
Для команд, представленных в таблице, осуществляется генерация ответа с использованием технологии выбора и обработки фреймов.
  
Имена фреймов веб-шлюз ИРБИС считывает из файла <tt>irbis_server.ini</tt>. Каждой команде веб-шлюза ИРБИС соответствует имя параметра в файле <tt>irbis_server.ini</tt> (см. таблицу ''Команды веб-шлюза ИРБИС'').
+
Обычно это динамически формируемая веб-страница.
  
 
'''Таблица.''' Команды веб-шлюза ИРБИС.
 
'''Таблица.''' Команды веб-шлюза ИРБИС.
Строка 74: Строка 70:
 
   |-
 
   |-
 
   |'''R'''||'''''запись''''' – команда редактуры записей||RecUpdateFrames
 
   |'''R'''||'''''запись''''' – команда редактуры записей||RecUpdateFrames
  |-
 
  |'''E'''||'''''экспорт''''' – команда выгрузки записей||
 
  |-
 
  |'''2'''||'''''файл''''' – команда чтения внешнего объекта||
 
  |-
 
  |'''4'''||'''''скачать''''' – команда заимствования записи||
 
 
  |}
 
  |}
 
|}
 
|}
  
При составлении ответа на команды '''E''', '''2''', '''4''' шлюз не использует фреймы. Поэтому в таблице ''Команды веб-шлюза ИРБИС'' отсутствует соответствующий параметр в <tt>irbis_server.ini</tt>. В случае этих команд ответ шлюза клиенту не является HTML-страницей.
+
Выбор набора фреймов зависит от: команды (параметр C21COM) и профиля (параметр I21DBN).
 +
 
 +
Возможные наборы фреймов предварительно сконфигурированы и указаны в конфигурационном файле <tt>irbis_server.ini</tt>.
 +
 
 +
Откуда шлюз и считывает нужный набор, в зависимости от параметров (C21COM и I21DBN).
 +
 
 +
Каждой команде веб-шлюза ИРБИС соответствует имя параметра в файле <tt>irbis_server.ini</tt> (см. таблицу ''Команды веб-шлюза ИРБИС'').
  
 
'''Пример команды показа терминов словаря'''
 
'''Пример команды показа терминов словаря'''
Строка 103: Строка 99:
 
  AASLPUBSANDJOURNALS|2
 
  AASLPUBSANDJOURNALS|2
  
====Пользовательские параметры====
+
=====Отправка клиенту ресурсного файла=====
  
Пользовательские параметры отличаются тем, что веб-шлюз ИРБИС может выполнять с ними следующие действия:
+
Для команд, представленных в таблице, отправка клиенту ресурсного файла.
* при получении HTTP-запроса шлюз принимает данные, переданные ему с помощью пользовательских параметров;
 
* в свой ответ на HTTP-запрос клиента (обычно – в генерируемую html-страницу, передаваемую клиенту) может включить набор пользовательских параметров вместе с их значениями, полученными в запросе.
 
Количество пользовательских параметров и их назначение может определяться в процессе внедрения и конфигурирования ИРБИС 64.
 
  
=====Применение пользовательских параметров для передачи данных между веб-страницами=====
+
'''Таблица.''' Команды веб-шлюза ИРБИС.
 +
{|
 +
|
 +
{| class="standard"
 +
  !Значение параметра <tt>C21COM</tt>||Описание команды
 +
  |-
 +
  |'''E'''||'''''экспорт''''' – команда выгрузки записей
 +
  |-
 +
  |'''2'''||'''''файл''''' – команда чтения внешнего объекта
 +
  |-
 +
  |'''4'''||'''''скачать''''' – команда заимствования записи
 +
|}
 +
|}
  
Пользовательские параметры позволяют передавать данные при переходе между веб-страницами, сгенерированными Веб-шлюзом ИРБИС 64. Процесс передачи данных происходит в два этапа: 1) данные передаются на веб-шлюз в виде параметров запроса; 2) веб-шлюз передаёт данные вместе со сформированной страницей в скрытых полях форм HTML.
+
===Добавление пользовательского параметра===
 
 
=====Добавление пользовательского параметра=====
 
  
 
Добавление пользовательского параметра осуществляется в несколько шагов:
 
Добавление пользовательского параметра осуществляется в несколько шагов:
Строка 127: Строка 130:
 
  <input type="hidden" name="PARAM_NAME" value="PARAM_VALUE">
 
  <input type="hidden" name="PARAM_NAME" value="PARAM_VALUE">
 
: Команда <tt><!FORMAT=INSERT_ALL_PARAMETERS_IN_QUERY></tt> вставляет в код HTML-страницы гиперссылку, содержащую все переданные веб-шлюзу параметры.
 
: Команда <tt><!FORMAT=INSERT_ALL_PARAMETERS_IN_QUERY></tt> вставляет в код HTML-страницы гиперссылку, содержащую все переданные веб-шлюзу параметры.
 +
 +
===Система команд Веб-шлюза ИРБИС===
 +
 +
Система ''команд'' Веб-шлюза ИРБИС позволяет задать собственный набор фреймов и порядок их объединения для каждой задачи. Для разных задач предусмотрены разные команды, например: для страницы приглашения к поиску, результата поиска, отбора записей в корзину заказов и т.д.
  
 
==Обработка фреймов==
 
==Обработка фреймов==

Версия 19:45, 7 июля 2015

Технология Веб-ИРБИС служит для создания Веб-приложений для работы с базами данных ИРБИС.

Данная технология реализована в виде одноимённого программного продукта – Веб-ИРБИС.

Веб-шлюз ИРБИС

Программный модуль Веб-шлюз ИРБИС обеспечивает обработку клиентских запросов.

Веб-шлюз ИРБИС является шлюзом CGI.

Запрос может осуществляться по методу POST или GET.

Схема обработки клиентского запроса Веб-шлюзом ИРБИС

Инициализация параметров

После поступления клиентского запроса осуществляется инициализация параметров веб-шлюза на основе параметров CGI.

Обрабатываемый шлюзом набор параметров определяется конфигурационным файлом Веб-шлюза ИРБИС.

Эти параметры доступны в контексте фреймов.

Параметры используются, в том числе, для отслеживания состояния веб-страницы. В ответ на HTTP-запрос клиента (обычно – в генерируемую html-страницу, передаваемую клиенту) может включить набор пользовательских параметров вместе с их значениями, полученными в запросе, для чего есть специальная команда.

Отслеживание состояния осуществляется с использованием следующих этапов: 1) данные передаются на веб-шлюз в виде параметров запроса; 2) веб-шлюз передаёт данные вместе со сформированной страницей в скрытых полях форм HTML.

Выполнение команды

Затем шлюз переходит к выполнению команды. Команда соответствует переданному параметру C21COM.

В контексте выполнения команды используются полученные параметры.

Для каждой команды есть набор основных параметров, логика использования которых предопределена самим веб-шлюзом.

К основным параметрам шлюза относятся:

  • C21COM – команда, которую должен выполнить веб-шлюз.
  • I21DBN – имя профиля. Веб-шлюз ИРБИС в соответствии с именем профиля определяет набор фреймов, из которых составит ответ клиенту. Веб-шлюз ИРБИС ищет названия фреймов в файле irbis_server.ini в секции, название которой соответствует значению параметра I21DBN (подробнее в разделе Роль фреймов в работе веб-шлюза ИРБИС).
  • P21DBN – имя базы данных.
  • Z21ID – значение параметра авторизации.

Кроме основных, есть пользовательские параметры – все остальные параметры.

Особенность пользовательских параметров в том, что их набор и использование полностью могут быть определены (переопределены) пользователями системы ИРБИС:

  • Определение параметров даётся в конфигурационном файле Веб-шлюза ИРБИС.
  • Параметры доступны в виде виртуальных полей на языке форматирования в контексте фреймов.

Ответ веб-шлюза ИРБИС клиенту

Порядок формирования ответа веб-шлюза ИРБИС клиенту зависит от команды.

Ответ с использованием фреймов

Для команд, представленных в таблице, осуществляется генерация ответа с использованием технологии выбора и обработки фреймов.

Обычно это динамически формируемая веб-страница.

Таблица. Команды веб-шлюза ИРБИС.

Значение параметра C21COM Описание команды Соответствующий параметр в irbis_server.ini
F показ – команда показа страницы ShowFrames
S поиск – команда выполнения и показа результатов поиска SearchFrames
T словарь – команда показа терминов словаря DictionryFrames
Z заказ – команда отбора записей в корзину заказов ZakazFrames
R запись – команда редактуры записей RecUpdateFrames

Выбор набора фреймов зависит от: команды (параметр C21COM) и профиля (параметр I21DBN).

Возможные наборы фреймов предварительно сконфигурированы и указаны в конфигурационном файле irbis_server.ini.

Откуда шлюз и считывает нужный набор, в зависимости от параметров (C21COM и I21DBN).

Каждой команде веб-шлюза ИРБИС соответствует имя параметра в файле irbis_server.ini (см. таблицу Команды веб-шлюза ИРБИС).

Пример команды показа терминов словаря

http://localhost:8080/cgi-bin/irbis64r_15_plus/cgiirbis_64_ft.exe?Z21ID=1500323880383212&SEARCH_IN_FULL_TEXT=1&T21CNR=10&C21COM=T&T21PRF=KT=&I21DBN=IBIS&T21TRM=a&

где при помощи параметра T21TRM=a указывается требование терминов словаря, начинающихся на a.

Пример возврата:

A20040830ARUSY|1
A20041017ABELY|1
A20041118ARUSY|1
A2H|2
A540|9
A54001|7
A550UTILIZATION|1
AACDEMY|1
AASL|2
AASLPUBSANDJOURNALS|2
Отправка клиенту ресурсного файла

Для команд, представленных в таблице, отправка клиенту ресурсного файла.

Таблица. Команды веб-шлюза ИРБИС.

Значение параметра C21COM Описание команды
E экспорт – команда выгрузки записей
2 файл – команда чтения внешнего объекта
4 скачать – команда заимствования записи

Добавление пользовательского параметра

Добавление пользовательского параметра осуществляется в несколько шагов:

Необходимо добавить описание нового пользовательского параметра в настроечный файл irbis_server.ini, задав имя и метку параметра. Для этого в секции [PARAMETRS] используются параметры ini файла PARNAME_ и PARTAG_ (не стоит путать термины пользовательские параметры веб-шлюза и параметры ini файла), где вместо знака подчёркивания ставится номер пользовательского параметра по порядку, например:
PARNAME2=C21COM
PARTAG2=2222
В этом примере мы видим описание второго по порядку из определённых в секции [PARAMETRS] параметров: имя параметра C21COM, метка параметра 2222. Имя и метка параметров должны быть уникальными. После того как описание пользовательского параметра добавлено необходимо изменить значение параметра PARCOUNT в секции [PARAMETRS], его значение должно быть равно порядковому номеру последнего описания пользовательского параметра.
Примечание: обратите внимание, что в файле irbis_server.ini хранятся описания не только пользовательских параметров, а присутствует также описания предустановленных параметров.
  • использование в файлах .frm команд <!FORMAT=INSERT_ALL_PARAMETERS> и <!FORMAT=INSERT_ALL_PARAMETERS_IN_QUERY>
Команда <!FORMAT=INSERT_ALL_PARAMETERS> обеспечивает вставку в код HTML-страницы всех непустых переданных веб-шлюзу параметров в виде скрытых элементов формы, например:
<input type="hidden" name="PARAM_NAME" value="PARAM_VALUE">
Команда <!FORMAT=INSERT_ALL_PARAMETERS_IN_QUERY> вставляет в код HTML-страницы гиперссылку, содержащую все переданные веб-шлюзу параметры.

Система команд Веб-шлюза ИРБИС

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

Обработка фреймов

В общем случае, веб-страница формируется путём объединения (склеивания) следующих частей:

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

Фрейм как язык разметки

Фрейм представляет собой текстовый файл, содержимое которого передаётся клиенту (в веб браузер), который также может содержать вставки, которые будут обработаны определённым образом перед передачей клиенту.

Предусмотрены вставки следующих видов:

  • вставка на языке форматирования ИРБИС,
  • вложенный фрейм.

Вставка на языке форматирования обозначается следующим образом

<!FORMAT

Пример:

<!FORMAT=if v3409='' then 'value=""' else 'value=','"',v3409,'"',fi>

Если вставка на языке форматирования содержит символы, кодирующиеся в UTF-8 более чем одним байтом (например, кириллицу), то формат обязательно должен начинаться с восклицательного знака. Это связано с тем, что формат в кодировке UTF-8 должен предваряться восклицательным знаком, а все фреймы храняться именно в кодировке UTF-8.

Пример:

<!FORMAT=!if (v3400='') then if (val(v1001) > 1) then '<tr><td></td><td><input name="SEARCHIN" type="checkbox"><span style="padding-left : 10px;padding-right : 10px;vertical-align : 15%;font-size:13px;font-family:sans-serif;">в найденном</span></td></tr>' else '<input type="hidden" name="SEARCHIN" value="">' fi else '<input type="hidden" name="SEARCHIN" value="">' fi>

Пример вложенного фрейма:

<!FORMAT=if &uf('IMAIN,SHOW_DUBLIN_CORE,0') <> '0' then /'<!FILE=Dublin_Core.frm>' fi>

Пример последовательности действий Веб-шлюза ИРБИС при формировании веб-страницы в ответ на запрос

Веб-шлюз ИРБИС при получении команд F, S, T, Z, R выполняет следующую последовательность действий:

  • Веб-шлюз получил запрос. Запрос содержит параметры C21COM, I21DBN и другие.
  • В файле irbis_server.ini веб-шлюз находит секцию, имя которой соответствует значению параметра I21DBN. Иными словами: с одной стороны, в качестве значения параметра I21DBN указывается имя профиля, с другой стороны, для каждого профиля в файле irbis_server.ini должна содержаться секция, имя которой совпадает с именем профиля.
  • В указанной секции файла irbis_server.ini веб-шлюз находит значение параметра, соответствующего указанной в параметре C21COM команде (см. таблицу Команды веб-шлюза ИРБИС). Полученное значение должно представлять собой список фреймов.
  • Фреймы обрабатываются, и результат, представляющий собой HTML-страницу, отправляется клиенту в качестве ответа.

Примеры перехода пользователя по страницам Веб-ИРБИС

Пример запроса начальной страницы:

http://localhost:8080/cgi-bin/irbis64r_15_plus/cgiirbis_64_ft.exe?C21COM=F&I21DBN=IBIS_FULLTEXT&P21DBN=IBIS&Z21ID=&S21CNR=5

где указаны:

  • команда шлюза F (показ страницы)
  • имя профиля IBIS_FULLTEXT
  • база данных IBIS
  • авторизация не осуществлялась

Параметр S21CNR не обязателен.

При авторизации запрос приобретает следующий вид

http://localhost:8080/cgi-bin/irbis64r_15_plus/cgiirbis_64_ft.exe?I21DBN=AUTHOR&C21COM=F&P21DBN=IBIS&Z21FLAGID=1&Z21FAMILY=%D0%B1%D1%80%D0%BE%D0%B4%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&Z21ID=111

где указаны:

  • команда шлюза F (показ страницы)
  • имя профиля AUTHOR
  • база данных IBIS
  • параметры авторизации: Z21FLAGID, фамилия читателя Z21FAMILY и идентификатор читателя Z21ID

При поиске по слову "библиотека" запрос приобретает следующий вид

http://localhost:8080/cgi-bin/irbis64r_15_plus/cgiirbis_64_ft.exe?Z21ID=1704320195313012&I21DBN=IBIS_fulltext&SEARCH_STRING=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0&FT_REQUEST=&FT_S21STR=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0&SEARCHIN=&USES21ALL=1&FT_PARAMS=&FT_DISTANCE=&S21CNR=5&C21COM1=%D0%98%D1%81%D0%BA%D0%B0%D1%82%D1%8C&FT_RESTRICT=&AVT_S21STR=&AVT_S21P03=A%3D&AVT_S21P02=1&AVT_S21LOG=1&NAME_S21STR=&NAME_S21P03=T%3D&NAME_S21P02=1&NAME_S21LOG=1&UDC_S21STR=&UDC_S21P03=U%3D&UDC_S21P02=0&UDC_S21LOG=1&IZD_S21STR=&IZD_S21P03=M%3D&IZD_S21P02=1&IZD_S21LOG=1&DAT_S21P06=&DAT_S21P07=&DAT_S21P03=G%3D&DAT_S21P02=1&DAT_S21LOG=5&P21DBN=IBIS&FT_S21LOG=4&FT_S21P03=K%3D&FT_S21P01=3&S21STN=1&S21REF=10&S21FMT=briefHTML_ft&C21COM=S&S21COLORTERMS=1&FT_PREFIX=KT%3D

где указаны:

  • команда шлюза S (поиск)
  • имя профиля IBIS_FULLTEXT
  • база данных IBIS
  • параметры авторизации: Z21ID
  • текущий запрос SEARCH_STRING и предыдущий запрос FT_S21STR (одинаковые)
  • USES21ALL=1 (использовать параметр S21ALL, применяется в поиске связных)
  • S21CNR=5 (порция при показе найденных)
  • S21REF=10 (для правильного формирования ссылок на страницы с результатами поиска)
  • C21COM1
  • FT_PREFIX
  • S21FMT=briefHTML_ft
  • AVT_S21P03=A%3D
  • AVT_S21P02=1
  • AVT_S21LOG=1
  • NAME_S21P03=T%3D
  • NAME_S21P02=1
  • NAME_S21LOG=1
  • UDC_S21P03=U%3D
  • UDC_S21P02=0
  • UDC_S21LOG=1
  • IZD_S21P03=M%3D
  • IZD_S21P02=1
  • IZD_S21LOG=1
  • DAT_S21P03=G%3D
  • DAT_S21P02=1
  • DAT_S21LOG=5
  • P21DBN=IBIS
  • FT_S21LOG=4
  • FT_S21P03=K%3D
  • FT_S21P01=3
  • S21STN=1
  • S21COLORTERMS=1

Ссылки

См. также: