Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.cosmos.ru/da/preprint.doc
Дата изменения: Fri Jan 15 17:34:36 1999
Дата индексирования: Mon Oct 1 22:12:58 2012
Кодировка: koi8-r

Поисковые слова: п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п


РОССИЙСКАЯ АКАДЕМИЯ НАУК

ИНСТИТУТ КОСМИЧЕСКИХ ИССЛЕДОВАНИЙ








Пр-1971


М.Н.Боярский, П.В.Житников, М.И.Шевченко


ИНФОРМАЦИОННАЯ СИСТЕМА ДОСТУПА К АРХИВНЫМ ДАННЫМ НАУЧНОГО КОСМИЧЕСКОГО
ПРОЕКТА АРКАД


Москва
1997

УДК 519.7:651.5:629.78





М.Н.Боярский, П.В.Житников, М.И.Шевченко Информационная система
доступа к архивным данным научного космического проекта АРКАД.

M.N.Boyarsky, P.V.Zhitnikov, M.I.Shevchenko. Information System for
the Access to the Arcad Space Science Mission Data Archive.









В работе описывается информационная система (ИС) научного
космического проекта АРКАД. Рассматривается реализация информационной
модели системы с использованием СУБД POSTGRES95. Приводится описание
программного комплекса, реализующего функциональную модель ИС АРКАД и
руководство по использованию WWW-интерфейса пользователя архива данных.

The paper describes the Information System of the Arcad Space
Science Mission. Realization of the information model of the system using
DBMS POSTGRES95 is discussed. The paper also contains the description of
the software package created for the Arcad Information System and the
data archive WWW-interface user guide.



























ї Институт космических исследований (ИКИ) РАН, 1997

Введение


Научный космический проект АРКАД


Советско-французский космический проект АРКАД был осуществлен
проведенв период с 1981 по 1987 г. и имел целью проведение широких
комплексных исследований физических процессов в магнитосфере, в полярной
верхней атмосфере и ионосфере и изучение магнитосферно-ионосферных связей
[1].

Среди основных направлений научных исследований проекта АРКАД можно
назвать:

1. исследование дуг и лучей полярных сияний с высоким временным и
пространственным разрешением;

2. исследование тепловой и горячей плазмы магнитосферы и ионосферы и ее
взаимодействия с полярной верхней атмосферой;



3. исследования продольных движений частиц в полярной ионосфере и
выноса ионов в магнитосферу, то есть изучение явления "полярного
ветра" и сверх тепловых пучков ионов;

4. исследования взаимодействия магнитосферной плазмы с электромагнитным
излучением мощных передатчиков.

Передача информации со спутника осуществлялась по двум телеметрическим
системам: по штатной советской телеметрической системе служебного комплекса
(ТМС) и дополнительной французской широкополосной телеметрии (ТМФ),
входившей в состав научного комплекса [2].

Необходимость реорганизации информационной системы (ИС) проекта АРКАД


Вся информация, которая передавалась в реальном времени со спутника,
была сохранена в виде специальных файлов на 9 - дорожечных 12,7 мм
магнитных лентах формата ЕС ЭВМ. ЭтиСтарые магнитные ленты имеют
относительно небольшую емкость (досамые лучшие 170 Мбайт, а большинство 20
Мбайт), поэтому количество магнитных лент составило ~1,5 тысячибыло
огромным. Так как с начала проведения проекта прошло достаточно много
времени, то возникла необходимость переноса данных проекта со старых 9 -
дорожечных магнитных лент на новые современные носители для сохранения
информации, уменьшения физического объема, занимаемого архивом, и
обеспечения возможности ее будущего использования с применением современных
компьютеров и средств распределенного доступа. Было решено в процессе этого
переноса создать информационную систему (ИС) архива данных проекта. Рис. 1
наглядно демонстрирует изменения, произошедшие с архивом данных проекта
АРКАД в результате реорганизации.



|Компонент ИС |Прежнее решение |Новое решение |
|Архивный носитель |9 - дорожечные ленты |8мм и 4мм ленты |
|Емкость носителя |20,40,170 Мбайт |5Гбайт и 4Гбайт |
|Число файлов на |5-15 |400-500 |
|носителе | | |
|Архитектура ИС |Однозвенная (мэйнфрейм) |Трехзвенная |
| | |клиент-сервер |
|Рабочее место |Алфавитно-цифровой |ПК или рабочая |
|пользователя |терминал |станция |
|Интерфейс пользователя|Отсутствовал |Графический |
| | |(Web-броузер) |
|Поиск информации |Ручной по рукописному |Автоматический поиск|
| |журналу |в базе данных |
|Способ переноса данных|Ручной (пользователь |Автоматический |
|из архива на магнитный|просил оператора |(jukebox) или |
|диск |поставить ленту) |полуавтоматический |
|Внешний доступ к |Отсутствовал |Локальная сеть и |
|информации | |Интернет |


Рис.1. Реорганизация информационной системы проекта АРКАД

На данный момент существуют новые устройства записи данных на
магнитные ленты формата 4мм (DAT) и 8мм (Exabyte). Эти ленты, обладая
сравнительно невысокой стоимостью, позволяют хранить несколько гигабайт
информации (от 2 Гбайт без аппаратного сжатия). Именно они и были выбраны в
качестве основных носителей информации, полученной в ходе экспериментов
проекта с АРКАД.

При переносе файлов на магнитные ленты нового образца встал вопрос об
организации доступа к этим данным. Так как перенос осуществлялся
постепенно, то поначалу устраивала следующая схема функционирования.
Пользователь, которому в ходе своих исследований были необходимы данные,
присылал по электронной почте запрос, содержащий информацию об интересующих
его файлах. Этот запрос обрабатывался вручную, после чего стандартными
утилитами ОС UNIX (grep, awk, sort и shell-скрипты) осуществлялось
сканирование log-файлов, выбор и сортировка номеров лент и порядковых
номеров записей на этих лентах, определяющих физическое расположение
файлов. После этого нужные ленты устанавливались в считывающее устройство,
и осуществлялся перенос выбранных файлов в определенную область жесткого
диска.

Но очень скоро встал вопрос об улучшении интерфейса пользователя и
оптимизации процесса поиска для ускорения выбора файлов. Спроектированная
авторами ИС проекта АРКАД обеспечивает быстрый поиск необходимых файлов и
формирование заказа в интерактивном режиме, а также автоматическую
обработку заказов.

При разработке ИС проекта АРКАД учитывались следующие общие
соображения. Прежде всего, как и в большинстве современных ИС, была принята
трехзвенная архитектура клиент-сервер[2]:

5. графический интерфейс пользователя

6. сервер приложений

7. система управления базами данных [3,4] (СУБД), которая обеспечивает
оперативнвный поиск и доступ к информации.

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

Таким образом, основой ИС проекта АРКАД должна была стать СУБД,
предоставляющая возможность создания собственного WWW-интерфейса.

Технические аспекты реализации ИС проекта АРКАД


1 Обоснование использования трехзвенной архитектуры "клиент-сервер"


Для построения ИС проекта АРКАД была использована трехзвенная
архитектура "клиент-сервер" (рис.2). Процесс, выполняемый на компьютере-
клиенте ("Компонент представления"), отвечает за интерфейс с пользователем,
т.е. это графический интерфейс пользователя. Прикладной компонент
реализован как отдельный "сервер приложения". Доступ к ресурсам
осуществляет обычно сервер базы данных. В данной модели [1] прикладной
компонент слабо зависим от сервера базы данных. При большом числе
пользователей эта модель позволяет добиться существенной экономии ресурсов.
Дело в том, что стоимость программ серверов баз данных зависит от числа
поддерживаемых пользователей. В данном случае все пользователи подключены к
серверу приложения, который является единственным клиентом сервера базы
данных.

[pic]


Рис.2. Трехзвенная архитектура "клиент-сервер".


В ИС проекта АРКАД роль "Компонента представления" играет броузер
пользователя, роль "Прикладного компонента" - Web - сервер и CGI -
программы, а роль "Компонента доступа" - сервер базы данных.

2 Выбор Web - сервера


Web - сервер - это программное обеспечение, отвечающее за прием
запросов броузеров, поиск указанных файлов и возвращение их содержимого
(или выполнение указанных CGI - сценариев и возвращение результатов их
выполнения) [6]. Сейчас большинство Web - серверов в Internet работают на
UNIX - машинах.

Для использования в ИС проекта АРКАД был выбран Web - сервер Apache в
силу того, что Apache считается наиболее эффективным http-сервером из
свободно распространяемых.

3 Выбор СУБД


Как уже было отмечено, для оптимального функционирования ИС АРКАД
необходимо использовать систему управления базами данных [4]. Она должна
быть размещена на сетевом сервере для того, чтобы пользователи ИС могли
работать с общей БД.


Выбор СУБД для ИС проекта АРКАД изначально был ограничен. Желательно
было использовать свободно распространяемую в исходных кодах программу, к
которой предъявлялись следующие основные требования:


8. работа в архитектуре клиент/сервер [1];

9. языком запросов должен быть SQL для возможности в будущем перехода
на другую СУБД с сохранением разработанного кода.

По сути, выбор делался из двух свободно распространяемых СУБД -
miniSQL и POSTGRES95. В ИС проекта АРКАД была использована СУБД POSTGRES95.

Исходный код, руководство по применению и описание POSTGRES95 доступны
по следующим Internet адресам:

ftp://ftp.vnet.net:/pub/postgres95/

http://www.eol.ists.ca:80/~dunlop/postgres95-manual/

http://epoch.CS.Berkeley.EDU:8000/postgres95/index.html

4 Основные концепции архитектуры POSTGRES95


POSTGRES95 использует так называемую "process-per-user" модель
клиент/сервер. Сеанс работы POSTGRES95 состоит из следующих UNIX процессов:


10. Управляющий демон postmaster. Он управляет связью между frontend и
backend процессами, а также использованием буфера в разделяемой
памяти и выполнением других инициализаций в момент запуска.

11. Пользовательское frontend приложение (например, psql). Запрашивает
через postmaster соединение с postgres backend сервером. Может
работать на другом компьютере (клиентской рабочей станции).

12. Один или больше postgres backend серверов базы данных. Этот процесс
и выполняет реальную работу (т.е. обрабатывает запросы). Postmaster
запускает новый backend процесс для каждого frontend подсоединения.
(postgres backend всегда выполняется на сервере).

[pic]

Postmaster управляет существующим набором баз данных на одном
компьютере. Такой набор баз данных называется "установкой". Frontend
приложение, желающее получить доступ к базе данных, входящей в "установку",
обращается к LIBPQ-библиотеке, LIBPQ посылает по сети запрос на соединение
демону postmaster (рис.3а), который в свою очередь запускает новый backend
сервер (рис.3б) и устанавливает соединение между вновь созданным backend
сервером и frontend процессом (рис.3в). С этого момента frontend процесс и
backend сервер взаимодействуют без участия postmaster. Таким образом,
posmaster постоянно выполняется, ожидая запросов на соединение, в то время
как frontend и backend процессы запускаются и завершаются. LIBPQ-
библиотека позволяет одному frontend процессу устанавливать множественные
соединения с backend процессами (рис.3г). Однако frontend приложение может
быть только однопотоковым процессом. Многопотоковые frontend/backend
соединения не поддерживаются LIBPQ. Одной из особенностей этой архитектуры
является то, что postmaster и backend процессы всегда выполняются на одной
машине, в то время как frontend приложение может выполняться где угодно.

Рис.3. Установление соединения с сервером POSTGRES95.

5 Программные интерфейсы POSTGRES95


1 Perl API-интерфейс (pg95perl)


Pg95perl является интерфейсом между языком perl версии 5 и СУБД
POSTGRES95 (текущая версия pg95perl5.1.2.0 доступна по
http://www.eol.ists.ca/~dunlop/wdb-p95/). Все функции pg95perl5
соответствуют функциям LIBPQ-интерфейса к Postgres95.


2 WWW-интерфейс Postregs95 wdb-p95


Для работы с wdb-p95 (http://www.eol.ists.ca/~dunlop/wdb-p95/)
необходимо следующее программное обеспечение:


4. Perl (версия не ниже 5.0.0.1);


5. pgperl5 v1.2.0;


6. HTTP сервер.


При установке WDB-P95 нужно учитывать, что Postgres95 сервер, pgperl и
httpd совсем не обязательно должны быть установлены на одной машине. Так
как WDB-P95 вызывается http демоном, они должны быть на одном хосте. Кроме
того, так как WDB-P95 использует в своей работе Pg.pm - pgperl, то этот
программный пакет должен быть на том же хосте. Pgperl в своей работе
использует LIBPQ-библиотеку, для того чтобы иметь доступ к любому
Postgres95-серверу где угодно в сети, как любой другой Postgres95-клиент.
Архитектура иллюстрирована следующим рисунком (рис.4).


[pic]

Рис.4. Схема взаимодействия Wdb-p95, броузера и сервера POSTGRES95.


Реализация информационной модели системы с использованием СУБД POSTGRES95


1 Структура таблиц, используемых в системе


Для реализации этого проекта, описанного моделью "сущность-связь" [5],
в СУБД POSTGRES95 был предложен следующий набор таблиц:

13. Таблица "Паспорт файла" (рис.5). По ней пользователь будет
производить поиск необходимых файлов.

14. Таблица "Архивный файл" (рис.6). Из нее программа управления
переносом файлов с магнитных лент в FTP-доступную область берет
данные о физическом расположении на магнитной ленте файла,
идентификационный номер которого определяется с помощью таблицы
"Паспорт файла".

15. Таблица "Доступный файл" (рис.7). В ней фиксируется заказ
пользователя, а также содержится информация о файлах, уже
находящихся в FTP-доступной области.

16. Таблица "Пользователь" (рис.8). Содержит информацию о пользователе:
имя пользователя, адрес его электронной почты и время посещения
основной WWW - страницы проекта АРКАД.


| |Alias |Тип данных|Ключ |Комментарии |
| | | | | |
|Атрибуты | | | | |
|ID паспорта |oid |oid |PK |Идентификатор |
|ID файла |File_ID|oid |FK |Ссылка на oid таблицы "Архивный|
| | | | |файл" |
|? сеанса |Nsess |int |AK |Номер сеанса |
|Версия |Vers |char |AK |Версия записи |
|Формат |Form |char4 |AK |Формат данных |
|Размер |Size |int |-- |Размер файла в байтах |
|Дата начала сеанса |BegDate|date |-- |Дата начала сеанса связи |
|Время начала сеанса|BegTime|time |-- |Время начала сеанса связи |
|Момент начала |Begmsec|int |-- |Момент начала сеанса в |
|сеанса | | | |микросекундах |
|Дата окончания |EndDate|date |-- |Дата окончания сеанса связи |
|сеанса | | | | |
|Время окончания |EndTime|time |-- |Время окончания сеанса связи |
|сеанса | | | | |
|Момент окончания |Endmsec|int |-- |Момент окончания сеанса в |
|сеанса | | | |микросекундах |


Рис.5. Таблица "Паспорт файла".
|Атрибуты |Alias |Тип данных|Ключ |Комментарии |
|ID файла |oid |oid |PK |Идентификатор |
|? сеанса |Nsess |int |AK |Номер сеанса |
|Версия |Vers |char |AK |Версия записи |
|Формат |Form |char4 |AK |Формат данных |
|Размер |Size |int |-- |Размер файла в байтах |
|Номер ленты в |DatLent|int |-- |Номер ленты в DAT формате, на |
|формате DAT | | | |которой записан файл |
|Номер записи на DAT|DatFile|int |-- |Порядковый номер метки на DAT |
|ленте | | | |ленте, после которой записан |
| | | | |файл |
|Номер ленты в |ExaLent|int |-- |Номер ленты в EXABYTE формате, |
|формате EXABYTE | | | |на которой записан файл |
|Номер записи на |ExaFile|int |-- |Порядковый номер метки на |
|EXABYTE ленте | | | |EXABYTE ленте, после которой |
| | | | |записан файл |
|Время создания |CreDate|date |-- |Время записи файла на ленту |
|файла | | | | |


Рис.6. Таблица "Архивный файл".


|Атрибуты |Alias |Тип данных|Ключ |Комментарии |
|ID записи |oid |oid |PK |Идентификатор |
|ID файла |File_ID |oid |FK |Ссылка на oid таблицы "Архивный |
| | | | |файл" |
|? сеанса |Nsess |int |AK |Номер сеанса |
|Версия |Vers |char |AK |Версия записи |
|Формат |Form |char4 |AK |Формат данных |
|Размер |Size |int |-- |Размер файла в байтах |
|Дата переноса |CreDate |date |-- |Дата переноса файла в FTP- |
| | | | |доступную область |
|Флаг выбора |flag_sel|boolean |-- |Устанавливается в true, если файл |
| | | | |заказывается |
|Флаг |flag_ftp|boolean |-- |Устанавливается в true, если файл |
|доступности | | | |доступен |
|ID |User_ID |oid |FK |Ссылка на oid таблицы |
|пользователя | | | |"Пользователь" |
|Имя файла |FileName|text |-- |Имя файла в FTP- доступной области |


Рис.7. Таблица "Доступный файл".


|Атрибуты |Alias |Тип данных |Ключ |Комментарии |
|ID пользователя |oid |oid |PK |Идентификатор |
|Имя пользователя |Name |text |AK |Для составления письма |
|E-mail |Emailto|text |-- |Для отправки письма |
|пользователя | | | | |
|Дата посещения |Date |date |-- |Для статистики |
| | | | |посещений |
|Время посещения |Time |time |-- |Для статистики |
| | | | |посещений |


Рис.8. Таблица "Пользователь".

2 Заполнение таблиц, используемых в системе


Процессу заполнения базы данных проекта АРКАД предшествовала работа по
проверке соответствия между паспортами файлов и их названиями. Для этого
были написаны несколько программ на языке Си для считывания паспортов
файлов во всех форматах. В одном из форматов данные содержались в форме
чисел с плавающей точкой для IBM 360, так что необходимо было написать
программу, переводящую числа с плавающей точкой из стандарта IBM 360 в
современный стандарт. Кроме того, была проведена работа по переносу файлов
с переполненного к тому времени жесткого диска на магнитные ленты.

После всех этих предварительных процедур началась работа по
непосредственному заполнению базы данных данными из паспортов файлов, log-
файлов, содержащих информацию о номерах магнитных лент и порядковых номерах
файлов на этих лентах, и из других источников. Для этого были написаны
многочисленные короткие сценарии на C-Shell и Perl.

Порядок заполнения был установлен следующий:

17. сначала заполняется таблица "Архивный файл";

18. после этого таблицы "Паспорт файла" и "Доступный файл", причем
значение атрибута "File_ID" устанавливается в соответствии с
таблицей "Архивный файл", а флаги в таблице "Доступный файл"
устанавливаются в FALSE.

Таким образом, была создана связанная система таблиц, две из которых
имеют внешний ключ на третью таблицу.



Программный комплекс, реализующий функциональную модель ИС проекта АРКАД


1 Состав комплекса


Программный комплекс, реализующий функциональную модель ИС проекта
АРКАД, состоит из двух программ, использующих для взаимодействия с
пользователем и оператором системы WWW - интерфейс и реализующих,
соответственно, "ПРОЦЕСС ЗАКАЗА" и "ПРОЦЕСС ОБРАБОТКИ ЗАКАЗА"
функциональной модели ИС проекта АРКАД.

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

WWW - интерфейс пользователя рассчитан на широкий круг пользователей,
а, значит, должен быть неприхотлив к программному обеспечению пользователя,
поэтому этот программный продукт разрабатывался в расчете на любой броузер,
поддерживающий HTML 2.0.

Что касается WWW - интерфейса оператора, то он рассчитан на конкретное
программное обеспечение, установленное на компьютерах сотрудников Архива
данных ИКИ. Для удобства оператора и для обеспечения интерактивного
взаимодействия с базой данных помимо обычного программирования с
использованием CGI - интерфейса [8] использовался язык программирования
JavaScript, что позволило уменьшить сетевой трафик между сервером и
клиентом и ускорить работу с интерфейсом.

2 Программа, реализующая "ПРОЦЕСС ЗАКАЗА" функциональной модели ИС проекта
АРКАД и использующая для взаимодействия с пользователем системы WWW -
интерфейс


1 Общие сведения и функциональное назначение


Данная программа представляет собой CGI- сценарий, написанный на языке
Perl 5.0 с использованием pgperl для взаимодействия с базой данных. За его
основу был взят Web - интерфейс к базам данных POSTGRES95, wdb-p95, который
позволяет только осуществлять выбор необходимых элементов базы данных по
запросу, составленному пользователем. Созданная программа позволяет после
выбора необходимых элементов базы данных формировать в интерактивном режиме
и отправлять заказы серверу базы данных, который в свою очередь фиксирует
эти заказы в специально созданной для этого таблице. Программа wdb_p95
универсальна в том смысле, что она позволяет организовать доступ к данным
любой таблицы и фиксировать заказы в другой специализированной таблице. Вся
необходимая информация об определенных таблицах содержится в
конфигурационном файле p95-dbi.conf и в так называемых Form Definition
Files (файлы с расширением .fdf), имена которых передаются программе через
URL.

2 Описание логической структуры


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

Подпрограмма ParseFile(). Считывает содержимое FDF файла,
интерпретирует данные, в нем содержащиеся. Переводит эти данные в форму,
удобную для дальнейшего использования в программе (в ассоциативный массив
%FORM).

Подпрограмма PrepareParams(). Считывает данные из CGI-переменной
QUERY_STRING и из стандартного входа STDIN. Интерпретирует данные и
переводит их в форму, удобную для дальнейшего использования в программе (в
ассоциативный массив %IN).

Подпрограмма PrintForm(). В соответствии с FDF файлом генерирует HTML
форму для составления запроса к базе данных.

Подпрограмма DoQuery(). Преобразовывает данные, полученные из формы в
SQL-запрос к базе данных. Устанавливает соединение с сервером Postgres95 с
помощью вызова процедуры dbi_connect(). Посылает SQL-запрос по
установленному соединению (dbi_dosql()). Возвращает результат запроса
построчно посредством процедуры dbi_nextrow(). Если ACTION=select, вызывает
подпрограмму DoSelection(). Для вывода результатов запроса в окно броузера
вызывает процедуру PrintTabHead(), а затем последовательно для каждой
строки, возвращенной в виде ассоциативного массива, вызывает процедуру
PrintTabVars(). Закрывает соединение с сервером Postgres95 вызовом
процедуры dbi_disconnect().

Подпрограмма DoSelection(). По состоянию CheckButtons, сообщенному из
формы, определяет выбранные файлы, и фиксирует заказ в специальной таблице,
имя которой находится в переменной $FORM{STATUS}. Фиксация заказа
заключается в установлении в TRUE значения атрибута "флаг выбора" и в
присваивании значению атрибута "User_ID" идентификатора пользователя,
осуществившего заказ. Причем если заказываемый файл уже доступен, то "флаг
выбора" не устанавливается в TRUE, а только "User_ID" присваивается
значение идентификатора пользователя, и дата и время переноса файла
устанавливаются в текущие значения. Изменение таблицы производится вызовом
процедуры dbi_update().

Подпрограмма DoSummary(). Устанавливает соединение с сервером
Postgres95 с помощью вызова процедуры dbi_connect(). Выбирает посредством
вызова процедуры dbi_dosql() из таблицы, имя которой в переменной
$FORM{STATUS}, файлы со статусом "доступен" среди файлов, заказанных
пользователем в текущем сеансе. Завершает текущий сеанс работы с базой
данных. Закрывает соединение с сервером Postgres95 вызовом процедуры
dbi_disconnect().

Подпрограмма PrintTabHead(). Выводит на экран HTML заголовок страницы
для результатов запроса. Генерирует в соответствии с FDF файлом заголовок
таблицы для вывода данных, являющихся результатами запроса.

Подпрограмма PrintTabVars(). Выводит на экран строку HTML-таблицы,
являющуюся результатом запроса, причем в первой ячейке строки выводится
элемент формы CheckButton.

3 Структура программы с описанием функций составных частей и связи между
ними


[pic]

Структуру программы наглядно демонстрирует блок-схема на рис.9:



Рис.9. Блок-схема программы Wdb-p95.



4 Связи программы с другими программами


В своей работе программа wdb-p95 использует Perl интерфейс к
Postgres95, так называемый pg95perl5, для этого в начале программы
подгружается Pg.pm. Основные процедуры для взаимодействия с Postgres95
находятся в файле pg95_dbi.pl, поэтому он тоже подгружается к основной
программе. Кроме того, для упрощения выполнения базовых задач CGI
программирования используется модуль для языка Perl5 CGI.pm [11].

5 Вызов и загрузка


Для вызова программы необходимо из любого броузера, поддерживающего
HTML 2.0 вызвать URL http://arc.iki.rssi.ru:8001/arcad.html и выбрать
ссылку на интересующий проект.

6 Входные данные


Основная часть информации, необходимой программам CGI, передается им
через переменные среды ОС UNIX. Программы могут обрабатывать эту информацию
так же, как и значение любой переменной среды (например, посредством
ассоциативного массива %ENV в Perl).

Так, для данной программы посредством переменной PATH_TRANSLATED
(соответствует URL) передается имя FDF файла, содержащего всю необходимую
информацию о таблице, к которой предоставляется доступ. Формат URL:

http://arc.iki.rssi.ru:8001/cgi-bin/wdb-p95/DBname/TABLEname/ACTION

Переменная QUERY_STRING служит для передачи данных, внесенных в форму,
методом GET. Переменная CONTENT_LENGTH содержит число байтов, которое
необходимо считать из стандартного входа программы STDIN, для того чтобы
считать данные переданные CGI-сценарию, методом POST.

Содержащиеся в FDF файле данные являются входными данными программы,
так что опишем формат Form Definition File. FDF файл является текстовым
файлом со следующими полями:


NAME = tms # Имя формы для использования в URL
HOST = stda.iki.rssi.ru # Хост, на котором установлена Postgres95
PORT = 5432 # Номер порта, на котором выполняется postgres
DATABASE = arcad # Имя базы данных для запросов
TABLE = tms # Имя таблицы для запросов
TITLE = TMS # HTML Title для формы и результатов
Q_HEADER = TMS Query Form # Query FORM

tag
R_HEADER = TMS Query Result # Results output

tag
Q_HTML = # Дополнительный текст для вывода формы
R_HTML = # Дополнительный текст для вывода результатов
SQL = on # Включает вывод SQL запроса на экран
STATUS = tms_ftp # Имя таблицы для фиксации заказа
DOWNLOAD = # Имя директории, в которую переносятся файлы
#--------------------------------------------------------------
# FIELD (R) Название атрибута
# label Название для HTML форм и таблиц
# column Колонка базы данных
# type (R) Тип данных этого поля
# unitlabel Пометка для поля для вывода результатов
# help (E) url для вывода подсказки по этому полю
# length (R) Длина поля для форматирования
# sortkey Делает поле сортируемым
# selection Вводит атрибут в состав альтернативного ключа для
# таблицы, имя которой в переменной STATUS, для режима select
# byorder Устанавливает ORDER BY для этого атрибута
# url (E) URL link для использования в выводе результатов
# from_db (E) Форматирующая функция для перевода данных из
# формата базы данных
# to_db (E) Форматирующая функция для перевода данных в
# формат базы данных
# no_query Запрещает поле от вывода в форме для запроса
# no_tab Запрещает поле от вывода в результирующей таблице
# tablen Поле будет дополнено до этой длины в выходной таблице
# forcetab Поле будет всегда присутствовать в результирующей
# таблице
#

FIELD = oid # Имя атрибута таблицы
label = Select # Название поля для формы
column = oid # Название поля для вывода результатов
type = oid # Тип данных
length = 14
forcetab
no_query

FIELD = Nsess
label = Session's number
formlabel = Session's number
column = Nsess
type = int
unitlabel = number
length = 10
tablen = 10
#no_query
forcetab
selection
byorder



И так далее для каждого атрибута таблицы.

Нужно отметить, что wdb-p95 будет составлять запросы и выводить
результаты только для полей, определенных в FDF-файле.

7 Выходные данные


Выходными данными CGI- сценария являются сгенерированные HTML -
документы, содержащие элементы формы. Выходные данные wdb-p95 зависят в
первую очередь от переменной ACTION. Так, если ACTION=form , то в окно
броузера пользователя выводится форма, позволяющая составить запрос к базе
данных. Если ACTION=query или ACTION=select , то выводятся результаты
запроса в виде таблицы, причем с элементами формы CheckButton напротив
каждой строки. Если ACTION=end , то выводятся доступные файлы в виде
таблицы, причем напротив каждой строки находится ссылка, активизирующая при
нажатии получение файла с сервера ИС АРКАД на компьютер пользователя.

3 Руководство по использованию WWW - интерфейса пользователя архива данных
проекта АРКАД


Для того чтобы воспользоваться этим интерфейсом архива данных проекта
АРКАД, пользователь должен прежде всего вызвать URL основной Web - страницы
проекта АРКАД (http://www.iki.rssi.ru/arcad.html).

На этой странице необходимо перейти по ссылке на интересующую базу
данных.

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

На следующей Web - странице следует нажать кнопку "Search" для того,
чтобы начать процесс поиска и заказа файлов, или кнопку "Download" для
того, чтобы попасть на страницу, с которой можно получить доступные на
данный момент файлы.



[pic]

Рис.10. Форма для составления запроса



После нажатия кнопки "Search" на экран выведется форма (рис.10),
содержащая:

19. текстовое поле "номер сеанса",

20. меню выбора формата файлов,

21. текстовое поле "дата начала сеанса"

22. текстовое поле "время начала сеанса".

Эту форму необходимо заполнить всеми данными, которые известны
пользователю об интересующих его файлах. При этом нужно учитывать, что:

23. в поле "номер сеанса" можно вводить как точный номер, так и
интервал номеров, отделяя начало интервала от конца двумя точками;

24. в поле "дата начала сеанса" нужно вводить дату в формате
день/месяц/год, а также интервал дат, отделяя начало интервала от
конца двумя точками;

25. в поле "время начала сеанса" можно вводить как точное время, так и
интервал времени в формате часы:минуты:секунды.

После заполнения формы необходимо нажать на экране кнопку "Search".
Кнопки "ARCAD" и "Help" (рис.10) служат, соответственно, для перехода на
домашнюю страницу проекта АРКАД и для получения вспомогательной информации
по заполнению формы. Кнопка "Clear" служит для очистки формы.



[pic]

Рис.11. Таблица с результатами запроса.

После нажатия кнопки "Search" на экране появится таблица (рис.11) со
строками, удовлетворяющими запросу пользователя. Если число этих строк
больше 10, на экран выводятся только первые 10 строк. Чтобы увидеть
следующие или предыдущие 10 строк, необходимо нажать кнопку со знаком
"Вниз" или "Вверх" соответственно.

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

Через некоторое время на экране появится надпись "You have selected
files" и такая же таблица. Теперь можно продолжить поиск требуемых файлов.

Для того чтобы изменить запрос к базе данных, нужно нажать кнопку
"Query". Нажатие кнопки "Help" выведет на экран вспомогательную информацию.
Кнопка "ARCAD" служит для перехода на основную страницу проекта АРКАД.

Для того чтобы закончить сеанс работы с ИС проекта АРКАД, необходимо
нажать кнопку "End". При этом на экран будут выведены доступные файлы,
среди заказанных в данном сеансе. Эти файлы можно получить, нажав
"download" напротив нужного файла. Остальные файлы можно будет получить
через некоторое время в FTP- доступной области.



Список литературы


1. Гальперин Ю.И., Гладышев В.А., Козлов А.И. и др. "Электромагнитная
совместимость научного космического комплекса АРКАД-3". М.: Наука, 1984.

1. Васкевич Д. Стратегии клиент/сервер. Киев: Изд. "Диалектика". 1996.

1. Кузнецов С.Д.. Введение в СУБД. //Системы управления базами данных.
1995г. ?1-4.

1. Ладыженский Г.М.. Система управления базами данных - коротко о
главном.//Системы управления базами данных. 1995г. ?1-4.

1. Спейнаур С., Куэрсиа В. Справочник Web - мастера. Изд. Группа BHV. 1997.

1. Пин-Шен Чен П. Модель сущность/связь - шаг к единому представлению
данных. //Системы управления базами данных. 1995г. ?4.

1. Quigley E. PERL by Example. Prentice-Hall, Inc. 1995.

1. Loren Buhle E., Acosfa N., Fair Weather R., Ritchey T., Morgan L.
Webmaster's professional reference. New Riders Publishing, Indianopolis,
IN.1996.

Содержание



Введение 2

1. рЕУМХџЕЯЙХЕ ЮЯОЕЙРШ ПЕЮКХГЮЖХХ хя ОПНЕЙРЮ юпйюд 5

1.1 нАНЯМНБЮМХЕ ХЯОНКЭГНБЮМХЪ РПЕУГБЕММНИ ЮПУХРЕЙРСПШ "ЙКХЕМР-ЯЕПБЕП" 5

1.2 бШАНП Web - ЯЕПБЕПЮ 5

1.3 бШАНП ясад 5

1.4 нЯМНБМШЕ ЙНМЖЕОЖХХ ЮПУХРЕЙРСПШ POSTGRES95 6

1.5 оПНЦПЮЛЛМШЕ ХМРЕПТЕИЯШ POSTGRES95 8

1.5.1 Perl API-ХМРЕПТЕИЯ (pg95perl) 8

1.5.2 WWW-ХМРЕПТЕИЯ Postregs95 wdb-p95 8

2. пЕЮКХГЮЖХЪ ХМТНПЛЮЖХНММНИ ЛНДЕКХ ЯХЯРЕЛШ Я ХЯОНКЭГНБЮМХЕЛ ясад
POSTGRES95 9

2.1 яРПСЙРСПЮ РЮАКХЖ, ХЯОНКЭГСЕЛШУ Б ЯХЯРЕЛЕ 9

2.2 гЮОНКМЕМХЕ РЮАКХЖ, ХЯОНКЭГСЕЛШУ Б ЯХЯРЕЛЕ 11

3. оПНЦПЮЛЛМШИ ЙНЛОКЕЙЯ, ПЕЮКХГСЧЫХИ ТСМЙЖХНМЮКЭМСЧ ЛНДЕКЭ хя ОПНЕЙРЮ юпйюд
11

3.1 яНЯРЮБ ЙНЛОКЕЙЯЮ 11

3.2 оПНЦПЮЛЛЮ, ПЕЮКХГСЧЫЮЪ "опнжеяя гюйюгю" ТСМЙЖХНМЮКЭМНИ ЛНДЕКХ хя
ОПНЕЙРЮ юпйюд Х ХЯОНКЭГСЧЫЮЪ ДКЪ БГЮХЛНДЕИЯРБХЪ Я ОНКЭГНБЮРЕКЕЛ
ЯХЯРЕЛШ WWW - ХМРЕПТЕИЯ 12

3.2.1 нАЫХЕ ЯБЕДЕМХЪ Х ТСМЙЖХНМЮКЭМНЕ МЮГМЮџЕМХЕ 12

3.2.2 нОХЯЮМХЕ КНЦХџЕЯЙНИ ЯРПСЙРСПШ 12

3.2.3 яРПСЙРСПЮ ОПНЦПЮЛЛШ Я НОХЯЮМХЕЛ ТСМЙЖХИ ЯНЯРЮБМШУ џЮЯРЕИ Х ЯБЪГХ
ЛЕФДС МХЛХ 14

3.2.4 яБЪГХ ОПНЦПЮЛЛШ Я ДПСЦХЛХ ОПНЦПЮЛЛЮЛХ 15

3.2.5 бШГНБ Х ГЮЦПСГЙЮ 15

3.2.6 бУНДМШЕ ДЮММШЕ 15

3.2.7 бШУНДМШЕ ДЮММШЕ 16

3.3 пСЙНБНДЯРБН ОН ХЯОНКЭГНБЮМХЧ WWW - ХМРЕПТЕИЯЮ ОНКЭГНБЮРЕКЪ ЮПУХБЮ
ДЮММШУ ОПНЕЙРЮ юпйюд 17

Список литературы 19

Ротапринт ИКИ РАН

055(02)2 Москва, 117810, Профсоюзная, 84/32

Подписано к печати 24.06.97

Заказ Формат 70(108/32 Тираж 75 1 уч.-изд. л.