Такая библиотека обеспечила бы реальную возможность унификации образования в высшей школе, также и в старших классах средней школы, создала бы информационную основу для введения единой системы тестирования выпускников средних школ. В конечном счете, это привело бы к заметному повышению не только уровня компьютеризации образования, но и качества среднего и высшего образования в целом. Возможно также, что на основе такой интегрированной электронной библиотеки удалось бы преодолеть некий барьер между системами общего среднего и специального образования, который создает выпускникам школ дополнительные трудности при поступлении в Университеты, Институты и Академии.
С чего же, по мнению автора, следует начать разработку такой системы? Видимо, с ее первого звена – электронной библиотеки отдельного вуза. Читальный зал такой библиотеки может представлять собой отдельный класс, компьютерные посадочные места в котором связаны с помощью локальной сети (рис. 10.6). К такой сети можно, строго говоря, подключить все или часть компьютерных классов, чтобы электронные пособия можно было использовать в процессе выполнения лабораторных работ, проведении лекционных и семинарских занятий. Уже сейчас в своей практике преподаватели СЗИП используют подобный порядок выполнения лабораторных работ. На файловом сервере устанавливается файл с подробным описанием лабораторной работы, которым могут пользоваться студенты, работающие за любым из 20 компьютеров, подключенных к этой локальной сети.
Рис. 10.6. Структура электронного читального зала на основе локальной сети
Второй этап создания электронной библиотеки отдельного вуза состоит в том, чтобы сделать ее доступной для студентов через глобальную сеть, т. е. организовать к ней удаленный доступ. Для этого организуется библиотечный Web-сервер, который взаимодействует с атрибутивной базой данных (см. также главу 7) электронных изданий на основе CGI-технологий [15, 20]. Вуз в данном случае может аккумулировать функции провайдера для предоставления возможности студентам работать с учебными изданиями в домашних условиях. Возможен вариант, когда на сайте ВУЗа специальный раздел предоставлен электронной библиотеке. Для работы с электронными учебниками может использоваться система паролей и взиматься небольшая абонементная плата (она может также включаться и в стоимость обучения).
Попытки электронной публикации баз данных часто терпят неудачу из-за столкновения с самыми разнообразными проблемами – техническими, организационными, финансовыми. Не последняя из них – задача создания надежного и эффективного интерфейса (front-end) для всех распространенных аппаратных и программных платформ и поддержание его совместимости с различными быстроразвивающимися операционными системами.
Наиболее эффективный способ использования баз данных в сети состоит в том, чтобы обеспечить для конечного пользователя возможность напрямую, в режиме реального времени выполнять запросы к базе данных через специальную "шлюзовую" программу. В настоящее время для этих целей используются, как правило, Web-сервер и SQL-сервер (сервер, использующий язык запросов SQL —Structured Query Language) баз данных, которые работают в высокопроизводительной среде UNIX. Web-сервер через браузер предоставляет конечному пользователю форму, считывает с нее заданные параметры поиска и передает их через стандартизированный интерфейс SQL-клиенту. Программа SQL-клиента преобразует полученные параметры в SQL-запрос, направляет этот запрос SQL-серверу, получает от него результаты, преобразует их в HTML-файл и передает обратно на Web-сервер. Затем Web-сервер пересылает HTML-файл с результатами выполненного запроса браузеру конечного пользователя (рис. 10.7).
Рис. 10.7. Структура взаимодействия пользователя (клиента) с удаленной базой банных
Таким образом, параметры поиска считываются из заполняемых пользователем HTML-форм; затем они преобразуются "шлюзовой" программой в SQL-запрос, направляемый SQL-серверу. Получив результаты произведенного поиска, SQL-сервер возвращает их обратно "шлюзовой" программе, которая формирует из них HTML-файл и передает его имя Web-серверу. Благодаря такой схеме программы просмотра могут служить независимыми от платформы внешними интерфейсами баз данных, предоставляя пользователям свежую информацию в виде динамически сгенерированной HTMLстраницы.
Главное в том, каким образом организовать стандартизованный интерфейс для взаимодействия между HTML-формой и SQL-клиентом. Существует несколько способов организации такого взаимодействия [32]:
✓ с применением технологии Java (применение Java-апплетов);
✓ на основе технологии IDC/HTX (Internet Database Connector/HTML Extension);
✓ на базе технологии ASP (Active Server Pages);
✓ с использованием интерфейса CGI (Common Gateway Interface) и CGIскриптов.
В узком смысле Java – это объектно-ориентированный язык, напоминающий C++, но более простой в изучении и приложении. В широком смысле Java – это технология программирования, ориентированная на интеграцию с Web-технологиями, т. е. на использование в сетевых средах. Поскольку для всех платформ существуют Web-навигаторы, Java-среда обязана быть в идеале полностью независимой от платформы. Для практического использования Java-технологий, помимо интеграции с Web-навигатором должна быть специфицирована виртуальная Java-машина (VJM), с помощью которой интерпретируется Java-апплет. В результате, при изменении аппаратной или программной платформы не потребуется вносить изменения в Java-апплеты. Апплеты (applets) представляют собой приложения на языке Java, включенные в текст HTML-документа с помощью тэга <APPLET>. Браузер, поддерживающий Java-апплеты, загружает с сервера HTML-документ и обнаруживает тэг <APPLET>. Далее браузер загружает с сервера так называемый файл класса, на который производится ссылка в тэге <APPLET>, и инициирует запуск самого апплета в Java-машине браузера. Затем апплет отображается в окне браузера или, при необходимости, создает свой собственный фрейм (см. также разд. 2.9). Каким образом с помощью Java-апплетов организовать доступ к базам данных? Для этой цели существует интерфейс JDBC (Java DataBase Connectivity) – связь Java-апплетов с базами данных. В свою очередь JDBC является составной частью Java API (Application Programming Interface) – интерфейса прикладного программирования, с помощью которого, используя готовые классы и приложения, можно написать мощный Java-апплет длиной всего в несколько строк. Интерфейс JDBC представляет собой набор объектов реляционного типа и методов взаимодействия с источниками данных. Java-апплеты используют объекты и методы из пакета java.sql.*, реализующего интерфейс JDBC. Однако для непосредственного доступа к источнику данных требуется специальный драйвер, ориентированный на конкретную систему управления базами данных (СУБД). Обычно это выполняется с помощью сопряжения JDBC – ODBC (Open DataBase Connectivity – связь с открытой базой данных). Программа сопряжения организует взаимодействие с любым ODBCдрайвером. Драйвер может общаться с сервером, на котором локализована удаленная база данных, используя протокол HTTP (HyperText Transfer Protocol) или RPC (Remote Procedure Call – удаленный вызов процедур). Интерфейс JDBC идентифицирует базу данных стандартным образом при помощи сетевого URL. Все сказанное иллюстрируется рис. 10.8.
Рис. 10.8. Структура взаимодействия HTML-документа, в составе которого имеется Java-апплет, с удаленной базой данных
При всех достоинствах рассмотренной схемы взаимодействия она характеризуется двумя существенными недостатками. Первый из них определяется ограничениями, связанными с использованием языков для реализации интерфейсов, представленных на рис. 10.8. Другое ограничение определяется необходимостью активизации виртуальных Java-машин, иначе VJM (Virtual Java Machine) для запуска каждого Java-апплета. Каждая такая VJM потребляет значительные вычислительные ресурсы, существенно снижая скорость интерактивного взаимодействия. Эти два фактора делают практически невозможной работу такой структуры в реальном масштабе времени.
Технология IDC/HTX позволяет пользователю передавать параметры запроса к базе данных как часть сообщения Web-серверу. Сама аббревиатура IDC/HTX означает Internet Database Connector (связь через Интернет с базой данных) и HTml eXtension (расширение HTML). Такое сочетание означает, что для генерации динамической HTML-страницы необходимы 2 файла. В одном из них размещается запрос к базе данных на стандартном языке SQL, а в другом – шаблон, в соответствии с которым будут форматироваться в виде таблицы результаты выполнения запроса, т. е. пересылаемая пользователю динамическая HTML-страница. Запрос представляет собой исполняемый файл, который содержит описание действий, подлежащих выполнению на серверной стороне. Обычно, все такие файлы размещаются на серверной стороне в специальной папке с именем Scripts (сценарии). В этом же файле содержится имя файла шаблона и сведения об имени и пароле пользователя.