Дипломная работа: Использование Internet/intranet технологий для организации доступа к базам данных
Базы данных настолько тесно вошли в нашу жизнь, что без их помощи не мыслится деятельность ни одной организации. С появлением локальных сетей, подключением таких сетей к Internet, созданием внутрикорпоративных сетей на базе intranet, появляется возможность с любого рабочего места организации получить доступ к информационному ресурсу сети, такому как база данных. Однако, при попытке использовать существующие базы данных возникают проблемы связанные с требованием однородности рабочих мест (для запуска "родных" интерфейсов), большим трафиком в сети (доступ идет напрямую к файлам базы данных), загрузкой файлового сервера и невозможностью удаленной работы (например, командированных сотрудников). Так, для каждой используемой базы данных необходим свой специфический клиент, такой как модуль времени исполнения или исполняемый файл, реализующий функциональность клиента. Клиентский компьютер должен быть достаточно мощным, для того чтобы справиться с обработкой функциональности клиента. Решением проблемы является использование унифицированного интерфейса WWW для доступа к информационным ресурсам организации [4].
Среди преимуществ такого подхода возможность доступа к базе данных посредством так называемого ⌠тонкого клиента■ - компьютера с установленной на нем стандартной программой-обозревателем Internet (Netscape Communicator, Microsoft Internet Explorer, и т.п.) вместо использования специфических программ-клиентов;
прозрачность для пользователя работы с удаленными базами данных (сервер баз данных может находиться как в локальной сети, к которой подключен пользователь, так и на другой стороне земного шара);
мобильность клиента: в качестве клиента может использоваться любой компьютер, под управлением любой ОС, имеющий обозреватель Internet;
легкость доступа к базе данных (для доступа к базе данных необходимо лишь иметь компьютер, подключенный любым способом к сети Internet - вся маршрутизация осуществляется серверами сети автоматически). При этом обеспечивается нужный уровень защиты данных.
В данной дипломной работе делается попытка проанализировать существующие технологии организации Web-ориентированных интерфейсов к базам данных и разработать такого рода систему, взяв в качестве прототипа реально существующую базу данных ⌠Библиографический каталог■, функционирующую в среде Microsoft Access [2].
Постановка задачи. Провести анализ имеющихся технологий разработки Web-ориентированных интерфейсов к базам данных и разработать справочно-библиографическую систему с WWW-интерфейсом, реализующую алфавитный и систематический каталоги публикаций на базе СУБД Oracle [7].
Для этой цели решались следующие задачи:
разработать структуру базы данных;
реализовать два варианта архитектуры WWW-интерфейса к базе данных и провести их сравнение;
разработать технологию импорта данных из формата СУБД MS Access в формат СУБД Oracle.
2. Две архитектуры систем доступа к базам данных через Web
В традиционной архитектуре клиент/сервер [1] действует принцип разделения задач, когда используется более чем один компьютер, и каждый из них выполняет строго определенные ему задачи. Такой подход уменьшает загрузку каждого узла системы, позволяя ему сконцентрироваться на выполнении ⌠своих■ задач и, следовательно, увеличивает производительность и возможности системы в целом.
В СУБД Oracle система баз данных разделена на две части: клиентскую часть и серверную часть [7] (Рис. 1).
Клиентская часть реализует внешний интерфейс приложения базы данных и диалог с пользователем посредством клавиатуры, дисплея и навигационных устройств, таких как мышка. Клиентская часть не несет ответственность за оперирование данными, она сконцентрирована на запрашивании, обработке и представлении данных, управляемых серверной частью. Клиентская рабочая станция может быть оптимизирована для этой работы. Так, например, она не нуждается в большом объеме дисковой памяти, но может иметь хорошие графические возможности.
Серверная часть, работающая на программном обеспечении Oracle, обслуживает задачи, необходимые для параллельного общего доступа к данным. Серверная часть принимает и обрабатывает SQL и PL/SQL запросы, посылаемые клиентскими приложениями [13]. Компьютер, обслуживающий серверную часть, должен быть оптимизирован для решения своих специфических задач √ он должен иметь большую дисковую память и быстрый процессор [8].
Связь между сервером и клиентом осуществляется посредством SQL*Net √ сетевого интерфейса Oracle [9]. SQL*Net позволяет программам Oracle, запущенным на сетевых клиентских рабочих станциях и серверах, организовать доступ, модификацию, разделение и хранение данных на других серверах.
При построении Web-интерфейсов к базам данных различают два подхода: доступ к базе данных на стороне клиента, и доступ к базе данных на стороне сервера.
2.1 Доступ к базе данных на стороне клиента
Доступ к базе данных на стороне клиента обеспечивает язык Java [10]. Java - это объектно-ориентированный язык программирования, являющийся, по сути дела, "безопасным" подмножеством языка Си++. В частности, Java не содержит средств адресной арифметики, не поддерживает механизм множественного наследования и т. д. Для языка Java существуют компиляторы в так называемый "мобильный код" (машинно-независимый код, который может интерпретироваться или из которого могут генерироваться машинные коды на разных платформах).
Технология разработки HTML-документа позволяет написать произвольное количество Java-программ, откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документа. Такие дополнительные Java-программы называются апплетами (Java-applets). Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все мобильные коды. Коды могут начать выполняться сразу после размещения в компьютере клиента или быть активизированы с помощью специальных команд.
Поскольку апплет представляет собой произвольную Java-программу, то, в частности, он может быть специализирован для работы с внешними базами данных. Более того, система программирования Java включает развитый набор классов, предназначенных для поддержки графического пользовательского интерфейса. Опираясь на использование этих классов, апплет может получить от пользователя информацию, характеризующую его запрос к базе данных, в том же виде, как если бы использовался стандартный механизм форм языка HTML, а может применять какой-либо другой интерфейс.
Для взаимодействия Java-апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который, фактически, сочетает функции шлюзования между интерпретатором мобильных Java-кодов и ODBC, а также включает ODBC.
По сути дела, Web-интерфейс с доступом к базе данных на стороне клиента практически ничем не отличается от традиционной клиент/серверной архитектуры. Просто роль клиентского приложения здесь играет Java-апплет √ программа на псевдокоде, способная через Internet/intranet загрузиться и выполниться на вашем компьютере.
2.2 Доступ к базе данных на стороне сервера
Более интересной реализацией является механизм доступа к базе данных на стороне сервера. Существует два основных различия между работой приложения в клиент/серверной реализации Oracle и в Web реализации с доступом к базе данных на стороне сервера [6]:
Клиент/сервер (Рис. 1). Архитектура системы состоит из двух частей: Клиента и сервера баз данных. Модуль форм времени исполнения (и все прикладные функции) устанавливаются на настольные компьютеры пользователя. Хотя приложение теоретически может включать триггеры и прикладные функции на стороне сервера баз данных, на практике эта возможность используется редко, поэтому вся обработка интерфейса пользователя и триггеров, как правило, происходит на клиентских машинах [6].
Web (Рис. 2). Архитектура системы является трехзвенной и состоит из следующих частей: клиент(ы), сервер приложений, сервер баз данных. Все прикладные функции устанавливаются на сервере приложений, а не на клиентах. Вся обработка интерфейса пользователя выполняется клиентом, в то время как обработка триггеров происходит на сервере баз данных и сервере приложений.
2.2.1 Технология Oracle Web deployment
Модуль форм времени исполнения (Forms Runtime Engine) представляет собой программу, выполняющую формы приложения. В ее задачи входит запуск, отображение и обработка функциональности формы.
Сервер приложений (Application Server) представляет собой звено архитектуры, отвечающее за хранение и обработку прикладных функций приложения. Реализован в виде WWW-сервер. WWW сервер - это такая часть глобальной или внутрикорпоративной сети, которая дает возможность пользователям сети получать доступ к гипертекстовым документам, расположенным на данном сервере. Для взаимодействия с WWW сервером пользователь сети должен использовать специализированное программное обеспечение √ обозреватель Internet.
Клиент форм (Forms Client) реализован в виде Java-апплета, загружаемого в реальном времени в Web-обозреватель пользователя с сервера Приложений. Web-обозреватель, посредством экранных форм, отображает интерфейс пользователя и управляет взаимодействием конечного пользователя с сервером форм. Клиент форм принимает пакеты интерфейсных команд от сервера форм и транслирует их в интерфейсные объекты для конечного пользователя. Некоторые интерфейсные события (такие как ввод символов в текстовых полях или перемещение по элементам диалогового окна), которые в клиент/серверной реализации обрабатывались модулем времени исполнения сервера форм, в Web реализации обрабатываются клиентом форм без взаимодействия с сервером форм.
В числе достоинств клиента форм:
--> ЧИТАТЬ ПОЛНОСТЬЮ <--