Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Использование технологии JDBC в приложениях Java

Ахмед Абуалсемид

Программный пакет Java Database Connectivity (JDBC) был создан в компании Sun Microsystems для разработчиков Java-приложений как средство формирования и обработки SQL-запросов: с помощью программ из небольшой библиотеки JDBC подбирается необходимый драйвер для соединения с базой данных, при этом он в пакет не входит и поставляется, как правило, третьими фирмами. Таким образом, с помощью JDBC нельзя обеспечить само взаимодействие с базой данных, поскольку пакет включает в себя лишь прикладной программный интерфейс и систему управления драйверами (см. рисунок).

Казалось бы, чтобы ликвидировать этот недостаток достаточно дополнить пакет специальным JDBC-драйвером, разработанным для управления передачей данных. Однако имеющиеся на сегодняшний день JDBC-драйверы сильно различаются по своей архитектуре и принципу действия, потому возникает уместный вопрос: какой именно драйвер выбрать? В этой статье мы расскажем о представленных сейчас на рынке JDBC-драйверах и о проблемах, с которыми вы можете столкнуться в ходе их использования при разработке и поддержке Java-приложений с помощью пакета JDBC.

В настоящее время существует четыре типа JDBC-драйверов, все они появились недавно и еще будут дорабатываться. Для более детального рассмотрения работы драйверов различного типа программистам, возможно, придется ознакомиться с исходными программными кодами. Мы же приводим здесь их описание в расчете на то, что понимание принципов их работы будет полезно не только программистам, но и системным администраторам.

Мосты JDBC—ODBC

Драйверы первого типа представляют собой средство для обеспечения взаимодействия между пакетом JDBC и программным интерфейсом ODBC (Open Database Connectivity) фирмы Microsoft. Последний сегодня фактически является общепризнанным стандартом доступа к реляционным базам данных. Уступая по своим характеристикам лишь специально разработанным для конкретной базы данных протоколам доступа — сложным и дорогим в эксплуатации, — интерфейс ODBC получил широкое распространение. Именно поэтому самый простой способ сделать пакет JDBC совместимым с наиболее популярными СУБД — это создать программное средство взаимодействия между ним и ODBC. К сожалению, драйверы ODBC написаны не на языке Java, следовательно, значительная часть специфичного для аппаратной платформы двоичного кода, в том числе информация по установке и поддержке драйвера, должна содержаться на каждом клиентском компьютере. Разумеется, это далеко не идеальное решение с точки зрения концепции применения Java-приложений, предполагающей загрузку необходимых в данный момент для работы программ непосредственно из сети.

Обычно ODBC-драйвер загружается как динамическая библиотека (DLL) и не может использоваться для доступа к данным через сеть, в результате почти все средства взаимодействия JDBC—ODBC используются разработчиками лишь на определенном компьютере. Тем не менее вы можете использовать драйверы JDBC—ODBC в сетевой среде, с помощью программного интерфейса RMI (Remote Method Invocation), который эмулирует локальное подключение к удаленной базе данных. Модуль RMI осуществляет соединение с удаленной машиной, выполняет запросы и возвращает результаты их выполнения на локальный компьютер. Программисты, хорошо владеющие средствами удаленного вызова процедур (Remote Procedure Calls — RPC), быстро освоят RMI.

Стоит обратить внимание на то, что не все Web-браузеры поддерживают RMI. Последние версии браузера Netscape Communications и HotJava компании Sun имеют встроенные элементы RMI, и потому с ними не возникнет никаких проблем. Однако в Internet Explorer (IE) поддержка RMI не обеспечивается. Но все же владельцы IE версии 4.71.1712.6 и более поздних имеют возможность устранить этот недостаток — путем загрузки небольшого архивного файла rmi.zip с ftp-сервера компании (ftp://ftp.microsoft.com/developr/ msdn/unsup-ed/rmi.zip) и разархивированные файлы поместить в каталог \windows\java\classes.

Драйверы для конкретных СУБД

Драйверы второго типа, известные также как собственные драйверы СУБД, работают по тому же принципу, что и мосты JDBC—ODBC. Но в отличие от драйверов первого типа они осуществляют связь с СУБД непосредственно.

Обеспечение этими драйверами СУБД и их программная поддержка реализуются производителями программного обеспечения по-разному. Только IBM и Oracle комплектуют такими драйверами все свои СУБД. Драйверы данного типа для целого ряда популярных СУБД, например Microsoft SQL, Oracle и Sybase, поставляет также компания WebLogic.

Важным преимуществом таких драйверов является обеспеченная ими высокая производительность работы, поскольку специально созданный протокол доступа использует возможности собственных библиотек СУБД. Другое преимущество драйверов второго типа — поддержка дополнительных возможностей данной СУБД. Однако при этом не следует забывать, что использование расширенных возможностей в вашей программе делает ее не совместимой с другими СУБД. Кроме того, такое решение, как и в случае с драйверами первого типа, не вполне отвечает концепции технологии Java, поскольку тоже требует специфических настроек на каждой аппаратной платформе. Словом, драйверы этого типа отличаются от мостов JDBC—ODBC лишь отсутствием интерфейса ODBC.

Драйверы сетевого протокола с полной Java-совместимостью

Драйверы третьего типа, или драйверы сетевого протокола с полной Java-совместимостью, наиболее универсальны в использовании и очень широко распространены. Среда разработки Visual Cafeў Database Development Edition фирмы Symantec укомплектована именно такой программой, которая называется dbAnywhere. Драйвер dbAnywhere — одна из первых разработок в области связующего ПО, которая делает возможным взаимодействие Java-приложений с базами данных. dbAnywhere поддерживает как собственный протокол Symantec для доступа к различным СУБД, так и стандартный JDBC. Драйвер третьего типа является промежуточным звеном между Java-клиентом и реляционной базой данных и обслуживает соединения для выполнения JDBC-запросов. Как только поступает такой запрос, драйвер преобразует его в форму, соответствующую протоколу конкретной СУБД, и пересылает непосредственно в базу данных.

Такие драйверы позволяют работать с различными видами Java-клиентов, обеспечивая их соединение с разными базами данных. Кроме того, поскольку они не должны соответствовать тем требованиям безопасности, какие предъявляются к изолированной программной Java-среде, то способны обслуживать соединения для различных IP-адресов и благоприятствуют, таким образом, развитию трехуровневых приложений клиент—сервер. Драйвер, или в данном случае элемент связующего ПО, запускается как служебный процесс на том же самом Web-сервере, который управляет Java-аплетами. Последние, в свою очередь, по протоколу TCP/IP устанавливают соединение со связующим ПО, соответствующим модели обеспечения безопасности соединений Java: аплеты могут устанавливать сетевое соединение только с теми сетевыми IP-адресами, с которых они появились в сети.

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

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

Список доступных и пригодных к использованию JDBC-драйверов часто обновляется. Текущий перечень таких драйверов с указанием их типа и Web-серверов, где их можно загрузить, содержится по адресу http://softwarema.usec.sun.com/ products/jdbc.drivers.html.

Последняя версия JDBC

Последняя версия пакета JDBC — 2.0, соответствующая JDK версии 1.2, появилась на рынке совсем недавно. Когда эта статья готовилась к печати, была доступна лишь бета-версия JDBC 2.0. Чем же она отличается от предыдущих? Прежде всего следует отметить, что прикладной программный интерфейс JDBC теперь разделен на две части: JDBC 2.0 Core API и JDBC 2.0 Standard Extension API (javax.sql).

Расширение возможностей прикладного программного интерфейса пакета открывает путь массовому созданию специализированных компонентов JavaBeans для работы с базами данных. Такие компоненты будут уже по умолчанию способны “понимать” базы данных, например автоматически загружать отдельные записи. С их помощью пользователь сможет реально “передвигаться” по базе данных. Следует признать, что преимущества новой версии JDBC разработчики почувствуют сильнее, чем пользователи, поскольку те же задачи можно решать и без использования JDBC 2.0, но в этом случае они потребуют значительно больших усилий программиста. Теперь же, если необходимые элементы доступны, разработчик получит возможность с их помощью легко манипулировать данными, уделяя больше внимания бизнес-логике и меньше — проблеме обеспечения доступа к базе данных.

Программная поддержка для работы со сложными типами данных представлена в новой версии JDBC специальным инструментарием для работы с данными типа BLOB (Binary Large Object). Программные средства для баз данных, способных хранить Java-объекты, включены в JDBC 2.0. Еще одно новое и удобное дополнение, появившееся в версии 2.0, — поддержка работы с таблицами, хранящимися вне базы данных в обычных файлах, что позволит программистам использовать в СУБД такие структуры, как .INI-файлы для задания конфигурации программ.

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

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





  
10 '1999
СОДЕРЖАНИЕ

колонка редактора

• Почем фунт пакетов?

локальные сети

• Возможности и проблемы внедрения тонких клиентов

• Продукты для Gigabit Ethernet

• Технология 1000Base-T и медная проводка

бизнес

• IP-бухгалтерия от Cabletron

интернет и интрасети

• Использование технологии JDBC в приложениях Java

• Подготовка сети к групповому IP-вещанию

корпоративные сети

• Лучшие продукты 1999 года

• Организация резервных каналов. Практические советы

услуги сетей связи

• Visual поможет котролировать качество услуг АТМ

• WAP расширяет возможности мобильной связи

• Ох уж эти мобильные телефоны!

• Интеллектуальные услуги для тех, кто еще не в курсе

защита данных

• RADWARE FireProof упрощает распределение нагрузки межсетевых экранов

новые продукты

• Самый мощный NetServer; Новые маршрутизаторы Prestige



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх