Web-server Apache

Печать

14.3. Обмен данными, выбранными из базы данных

Предположим, что этап выбора базы данных успешно преодолен. Теперь перед нами стоит проблема иного порядка. Это проблема доставки содержимого базы данных через Internet. В этом разделе мы рассмотрим три различных подхода:CGI-приложения, модуль Apache и использование оболочек сторонних разработчиков.

14.3.1. CGI-решения с использованием модуля

mod_perl и интерфейса Perl DBI

CGI-сценарии или программы, осуществляющие доступ к вашей базе данных, создавать очень просто и удобно. Каждая из вышеперечисленных платформ предоставляет в распоряжение программиста интерфейс разработки приложений на языке программирования С, позволяющий создавать программы с возможностью обмена данными с базами данных. Модуль mod_perl сочетает в себе почти все возможности программного интерфейса на языке С, реализованные в качестве объектов и методов. Их перечень приведен в главе 12, "Состав модуля".

14.3.2. Интерфейс PerlDBI

Основным недостатком прямых CGI-соединений с базами данных является их неустойчивость. При запросе к базе данных создается новое соединение с базой данных. Как только запрос клиента обслужен, соединение прерывается. Как нетрудно догадаться — это мощный удар по производительности системы.

Apache::DBI из модуля mod_perl является решением проблемы устойчивых соединений. Очевидно, что при этом требуется, чтобы модуль mod_perl был установлен вместе с Perl DBI и любым требующимся драйвером базы данных, необходимым для данной системы. Документацию и дистрибутивы можно получить по адресу http://www.perl.com.

Для этого в конфигурационном файле httpd.conf задайте следующую строку Apache::DBI

PerlModule ::DBI или строку

use Apache::D ВI ();

в стартовом файле Perl. При таких установках все соединения, создаваемые с помощью mod_perl, будут устойчивыми.

Интерфейс Perl DBI действует как посредник между приложением и драйвером, необходимым для подключения к определшной базе данных. Основной смысл заключается в том, что появилась возможность создавать переносимые между различными платформами баз данных приложения. Основным препятствием в обеспечении полной переносимости является изменчивость синтаксиса языка SQL (например, операторы COMMIT и ROLLBACK работают на Oracle и не работают на MySQL).

14.3.3. Дескриптор

Дескриптор базы данных в Perl DBI является соединением к конкретной базе данных. Создать дескриптор базы данных и получить доступ к локальной базе данных с помощью Perl DBI относительно несложно. Можно с помощью метода DBl->connect создать соединение, которое будет существовать на протяжении всего существования процесса httpd,

$dbh = DBI->CONNECT($datasource, $username, $password),

<