Сайт Информационных Технологий

Андреев В.Н., Аристов М.В., Шилин В.Г.

К ВОПРОСУ ИСПОЛЬЗОВАНИЯ ТЕХНОЛОГИИ WWW ДЛЯ ОРГАНИЗАЦИИ ДОСТУПА К БАЗАМ ДАННЫХ ГИС.

Технология транспортировки мультимедийной гипертекстовой информации в сравнительно короткие сроки завоевала широкую популярность среди пользователей Internet, в мире бизнеса, науки, политики и т. д. Это связано с простотой опубликования информации в сети, удобством и сравнительной унифицированностью средств доступа к документам, наличием достаточно развитых средств поиска. В целом способы представления, хранения и поиска информации в WWW относятся к категории информационно-поисковых систем (ИПС). Хотя хранилища данных в узлах Web иногда и называют базами данных, этот термин в данном случае можно использовать только в самом широком смысле, в связи с тем что ИПС в наилучшей степени приспособлены для хранения слабоструктурированной и редко изменяемой информации, а классическая база данных в узком смысле - это хранилище структурированной, изменяемой информации, причем информация в базе данных должна всегда находиться в согласованном состоянии и быть доступна через интерфейс языка запросов. Географические информационные системы (ГИС) в этом смысле занимают промежуточное положение между ИПС и базами данных, т.к. с одной стороны являются типичными базами данных со специализированным интерфейсом доступа в виде географических карт, а с другой стороны информация в них изменяется сравнительно медленно.

 Развитие идей ИПС, базирующееся на развитых возможностях Internet, имеет для ГИС то преимущество, что обеспечивает унифицированный доступ удаленных пользователей к информации на основе интуитивно понятного простого интерфейса в сочетании с развитыми в технологии WWW методами разграничения доступа и защиты информации. Ситуация с базами данных кардинально отличается тем, что доступ к базам данных (даже к тем, которые содержат полностью открытую информацию) ограничен. Чтобы получить интересующую его информацию, пользователь должен иметь физический доступ к соответствующей системе управления базой данных (СУБД), обладать информацией о модели данных, знать схему базы данных и, наконец, уметь пользоваться соответствующим языком запросов. Что касается языка запросов, то проблему частично решает протокол взаимодействия открытых баз данных Open Data Base Connectivity (ODBC), позволяющий направлять ограниченный набор операторов структурированного языка запросов Structured Query Language (SQL) (с промежуточной обработкой соответствующим драйвером ODBC) к произвольному серверу баз данных. Это только частичное решение, поскольку оно никак не помогает пользователю понять схему базы данных (даже в терминах SQL) и, конечно, не способствует созданию унифицированного интерфейса конечного пользователя (нельзя же заставить всех работать в строчном режиме на языке SQL). В то же время пользователю ГИС, содержащей важную и разнообразную, например, геологическую информацию, может потребоваться не просто доступ к данным, а организация выборок по каким-либо критериям.

Таким образом, с одной стороны существуют удобные средства разработки распределенных в Internet гипермедийных документов и простые, удобные, развитые и унифицированные интерфейсы для доступа к информации WWW. С другой стороны, представляющая интерес информация, сосредоточена в виде баз данных, управляемых разнородными СУБД, и актуальной является задача сделать эти базы доступными всем пользователям (в случае публичных баз данных) или членам территориально-распределенной корпорации (в случае корпоративных баз данных). Поэтому представляется актуальным совмещение указанных технологий и обеспечение доступа к базам данных в интерфейсе Web. На сегодняшний день имеется несколько работающих механизмов, способствующих решению указанной задачи. Условно они могут быть разделены на два класса: обеспечивающие доступ к базе данных (по запросу клиента) на стороне Web-сервера и работающие непосредственно на стороне клиента.

1. Доступ к базе данных на стороне сервера

Механизм реализуется за счет наличия двух стандартизованных средств: возможности включения форм в документ, составленный с использованием языка гипермедийной разметки HTML и возможности использования внешних по отношению к серверу Web программ, взаимодействие которых происходит через специфицированный протокол CGI (Common Gateway Interface).

При реализации на основе CGI общая схема доступа к базе данных на стороне Web-сервера может выглядеть следующим образом:

при просмотре документа клиент встречает ссылку на страницу, содержащую одну или несколько форм, предназначенных для запроса данных из базы данных;

клиент запрашивает эту страницу; помимо незаполненных форм страница может содержать общую информацию о базе данных и о назначении предлагаемых форм;

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

получив заполненную форму, сервер запускает соответствующую внешнюю программу, передавая ей параметры и получая результаты на основе протокола CGI;

внешняя программа преобразует запрос, выраженный с помощью заполненной формы, в запрос на языке, понятном серверу баз данных (обычно это язык SQL);

внешняя программа взаимодействует с сервером баз данных, взаимодействие может быть прямым, если внешняя программа жестко привязана к конкретному SQL-серверу, или с использованием, например, протокола и соответствующего драйвера ODBC, если жесткая привязка отсутствует;

после получения результатов запроса внешняя программа формирует соответствующую виртуальную или реальную HTML-страницу, передает ее серверу и завершает свое выполнение;

сервер передает сформированную HTML-страницу клиенту, и на этом процедура доступа к базе данных завершается (как обычно, сервер разрывает транспортное соединение с клиентом).

В терминологии Web-технологии внешняя программа, запускаемая Web-сервером в соответствии со спецификациями CGI, называется CGI-скриптом, который может быть написан на языке программирования (Си, Си++, Паскаль и т. д.)или на командном языке (языки семейства shell, perl и т. д.). CGI-скрипт,выполняющий роль посредника между Web-сервером и другими видами серверов(например сервером баз данных), называется шлюзом (видимо, более правильно было бы использовать термин CGI-шлюз). Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения из клиента в сервер. CGI-шлюзы представляют собой средство для организации трехзвенной (в общем случае, многозвенной) архитектуры клиент-сервер.

К числу достоинств реализации доступа с помощью CGI относится наличие разнообразных механизмов взаимодействия Web-сервера и CGI-скрипта, включающее использование создаваемых сервером переменных окружения, через которые передается как общая информация, независящая от функциональных особенностей CGI-скрипта и специфические данные, определяющие поведение CGI-скрипта, например набор значений, введенных в форму на стороне клиента. Возможно также формирование параметров argc и argv, которые передаются функции main CGI-скрипта, как если бы CGI-скрипт вызывался командной строкой в интерактивном режиме, что удобно при реализации ограниченного класса запросов.

Таким образом, при использовании CGI вся интерпретация пользовательского запроса производится CGI-скриптом. Скрипт может быть предельно жестким, ориентированным на выполнение запроса к фиксированной таблице фиксированной базы данных, или относительно гибким, способным выполнить произвольный запрос к одной или нескольким таблицам базы данных, идентифицируемой в параметрах клиента.

2. Доступ к базе данных на стороне клиента

Видимо, наиболее мощные средства обеспечения доступа к базам данных на стороне Web-клиента обеспечивает язык Java.

Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ, откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документа.Такие дополнительные Java-программы (т.н. Java-applets). Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все мобильные коды. Коды могут начать выполняться сразу после размещения в компьютере клиента или быть активизированы с помощью специальных команд.

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

Для взаимодействия Java-апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который, фактически, сочетает функции шлюзования между интерпретатором мобильных Java-кодов и ODBC, а также включает ODBC.

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

Использование Java-апплетов обеспечивает более гибкое решение. Т.к. апплет является частью HTML-документа, то при включении нового апплета нужно перекомпоновать документ, при неизменности Web-cервера.

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


Site of Information Technologies
Designed by  inftech@webservis.ru.