Технологию можно считать зрелой, если ее поддерживают основные разработчики СУБД. А ведь производители систем управления базами данных не просто поддерживают Java, но активно используют ее в различных типах своих продуктов: от инструментов до систем помощи. Например, компания Oracle задействует Java как в клиентских программах, которое могут работать на сетевых компьютерах, так и на сервере базы данных в качестве хранимых процедур. Кроме того, Oracle встроила Java в сервер приложений и даже в небольшую базу данных - Oracle Lite, которая также может быть загружена на сетевой компьютер. Естественно, что Oracle также поддерживает Java и в созданном ею средстве разработки приложений Valhalla. Таким образом Java фигурирует в следующих продуктах Oracle:
- набор приложений и компонентов на Java, которые ориентированы на сетевой компьютер;
- средство разработки и отладки Java приложений - проект Valhalla;
- два JDBC драйвера для связи с базами данных Oracle;
- небольшая база данных, рассчитанная на использование в тонких клиентах, - Oracle Lite 3.0;
- сервер приложений - Oracle Application Server 4.0.
Предполагается, что с помощью перечисленных продуктов можно построить на Java полную распределенную вычислительную систему - от клиентского ПО до сервера баз данных.
Тонкий клиент
Одно из ключевых звеньев концепции сетевых компьютеров - использование Java как универсальной среды исполнения программ. Характерной особенностью сетевых компьютеров можно считать то, что на них могут работать только Java-программы, которые позволяют получать доступ к вычислительным ресурсам компьютерных сетей. Кстати, термин "сетевые вычисления" означает, что все вычисления выполняются в основном на серверах, а не на компьютерах клиентов.
Поскольку связующим звеном для сетевых вычислений является Java, то разработчикам программного обеспечения приходится переносить на эту платформу стандартные технологии распределенных вычислений: мониторы транзакций, серверы приложений, механизмы удаленного исполнения процедур, поддержку различных сетевых протоколов и многие другие технологии, представляющие собой компоненты для построения распределенной вычислительной системы. В разрабатываемых системах допустимо использовать для доступа к базам данных и приложений JDBC-драйверы, а с помощью специальных мастеров создавать элементы Enterprise JavaBeans. Кроме того, и сами серверы имеют встроенную Java-среду, в которой можно исполнять части различных Java-приложений.
JDBC-драйверы
Первый шаг в обеспечении поддержки сетевых вычислений для СУБД состоит в разработке JDBC-драйверов к своей базе данных. У Oracle таких драйверов два: один "полноценный" - для сервера приложений, а другой, облегченный (thin), - для загрузки на клиента. Таким образом, у разработчиков Java-приложений на основе СУБД Oracle есть возможность выбрать наиболее подходящую для них архитектуру клиент-серверной системы - трехуровневую (многоуровневую), двухуровневую или даже одноуровневую (если использовать Oracle Lite).
Oracle разработала для своих СУБД интерфейс удаленного вызова процедур, который называется Oracle Call Interface (OCI), и протокол связи SQL*Net, позволяющий использовать несколько стандартных протоколов сетевого уровня (например, TCP/IP, Named Pipes, DECNet) для связи между клиентскими приложениями, промежуточным сервером приложений и сервером базы данных. Полноценный JDBC-драйвер представляет собой мост между вызовами методов JDBC и OCI и дает возможность пользователю Java-приложения задействовать протокол SQL*Net. Средствами OCI можно организовать поддержку специфических особенностей СУБД Oracle, например специфических типов данных (ROWID, REFCURSOR), а с помощью SQL*Net нетрудно добиться эффективной работы сети для приложений, взаимодействующих с базой данных. Полноценный JDBC-драйвер от Oracle поддерживает Oracle7 и 8.
Следует отметить, что мост JDBC/OCI не требует установки на клиентскую машину или сервер приложений дополнительных библиотек для поддержки OCI, SQL*Net или других технологий. Однако сам мост JDBC/OCI имеет слишком большой размер, чтобы его можно было загружать по сети на удаленную машину, например на сетевой компьютер. Чтобы дать пользователям сетевых компьютеров возможность получать доступ к базам данных Oracle, компания разработала урезанный вариант JDBC-драйвера, который занимает всего 150 Кбайт и может быть загружен по сети на тонкий клиент.
Thin JDBC Driver полностью написан на Java и может быть загружен на любой тонкий клиент и самостоятельно устанавливать связь с базой данных Oracle через OCI. Тонкий драйвер работает только с протоколом TCP/IP и поддерживает Oracle начиная с версии 7.2. В результате с помощью тонкого JDBC-драйвера можно превратить любой сетевой компьютер в полноценный клиент базы данных. Таким образом, наличие двух различных JDBC-драйверов позволяет выбрать подходящий вариант и с его помощью построить свое приложение.
Java на сервере
Современные технологии СУБД ориентированы на использование многоуровневой архитектуры клиент-сервер. Причем в качестве связующего звена между клиентом и сервером приложений, как правило, используется транспортный протокол HTTP. Поэтому разработчикам программного обеспечения для построения сложных вычислительных систем приходится создавать Web-серверы, которые одновременно выполняли бы функции и серверов приложений. Oracle не исключение - она разработала специализированный сервер Oracle Web Application Server.
В Web-сервере приложений производства Oracle использована концепция картриджей, которые являются модулями расширения сервера приложений. Совместная работа картриджей и связь их с сервером базы данных обеспечивается с помощью брокеров запросов, соответствующих архитектуре CORBA. Причем картриджи можно писать на различных языках, в том числе и на Java. Сервер приложений Oracle ориентирован на разработку Java-приложений, соответствует стандарту CORBA 2.0 и позволяет Java-картриджам взаимодействовать с любыми другими серверами, поддерживающими протокол IIOP.
Облегченную версию базы данных Oracle Lite отличает небольшой объем - от 350 до 700 Кбайт. Эта версия базы устанавливается по сети на любой сетевой компьютер и имеет встроенные механизмы для прямого вызова Java своих компонентов или доступа к ним через JDBC, сохранения Java-объектов на удаленном сервере и связи с другими базами данных Oracle. Кроме того, Oracle Lite содержит браузер Java-объектов, позволяющий находить их в обширном репозитарии. Таким образом, Oracle Lite обеспечивает пользователей Java не только базой данных, написанной на Java, но и средством интеграции ее с уже существующей вычислительной системой.
"300-процентная Java". Кто больше?
Компания Oracle обнародовала свой план поддержки Java в базе данных, серверах приложений и клиентских интерфейсах.
Oracle считает Java принципиально важным компонентом своей архитектуры NCA (Network Computing Architecture) для тонких клиентов. Правда представители компании все реже заговаривают о пресловутом сетевом компьютере, продажи которого, несмотря на активную рекламу, пока не оправдали ожиданий. Oracle и название придумала для своей стратегии - "300-процентная Java" - исходя из того, что технология Java, чистая на 100%, - это Java на клиенте, 200-процентная Java - на сервере приложений, а 300-процентная Java - на сервере баз данных Oracle8.
Компания Oracle к концу года собирается встроить виртуальную машину Java (JVM) собственной разработки в СУБД Oracle 8.1. Это позволит выполнять Java-приложения по обработке данных. "Для JVM, производимой Oracle, будет достаточно 35 Кбайт памяти у каждого пользователя, тогда как другим виртуальным машинам Java требуется от 3 до 5 Мбайт", - сказал Марк Джарвис, вице-президент Oracle по системным продуктам. - Впрочем, Oracle не собирается очертя голову бросаться переписывать на Java свою базу данных. - Наш козырь - двадцать лет опыта разработок баз данных, и мы вовсе не намерены рисковать производительностью".
Недавно Oracle объявила о выпуске комплекта Java Software Developer's Kit для разработчиков Java-приложений, ориентированных на базы данных Oracle.
Между тем компания отвела Oracle Cartridges (расширения к БД для работы со сложными типами данных) иную роль - теперь они станут опциями базы данных Oracle. В число таких опций могут также входить Enterprise Java Beans (EJB).
Кроме того, для взаимодействия компонентов друг с другом в версии Oracle 8.1 будет реализована поддержка брокера объектных запросов CORBA/IIOP (Internet Inter-ORB Protocol). Сервер приложений Oracle Application Server обогатится поддержкой CORBA/IIOP, что позволит разработчикам создавать приложения по обработке транзакций, которые будут выполняться и в базе данных, и на сервере приложений. Компания также работает над функциями, которые сформируют слой обработки сообщений с организацией очередей, но они будут реализованы в продуктах Oracle позднее.
Выпуск Oracle Application Server 4.0 for the Enterprise намечен на осень. Поначалу компания испытывала трудности с определением цены Application Server. Его продажей занимаются одновременно два подразделения, и ни одному из них не удалось наладить эффективный сбыт этого продукта. Однако эти проблемы все же удалось решить и схема ценообразования была переработана. Теперь цена устанавливается не на основе числа центральных процессоров, а в зависимости от количества рабочих мест.
Версии 3.0 и 4.0 продукта Oracle Application Server будут стоить по 195 долл. за рабочее место. Application Server 4.0 должен поддерживать Enterprise Java Beans (EJB). К концу года в базе данных появится возможность использования EJB и хранимых процедур Java. Поддержка SQLJ для интеграции команд Java и SQL уже реализована.
Действительно ли Oracle опережает своих конкурентов в продвижении Java? По утверждению представителей IBM, в базе данных IBM DB/2, в отличие от системы Oracle, поддержка API-интерфейсов Java Database Connectivity (JDBC) уже реализована. Компания Sybase также планирует встроить виртуальную машину Java в свою базу данных Adaptive Server Enterprise почти одновременно с Oracle.
Представители Oracle сообщили, что с помощью производимых ею инструментальных комплектов Designer/2000 и Developer/2000 можно будет создавать клиентские интерфейсы на базе Java. Сейчас Oracle предлагает AppBuilder for Java 1.0 в составе пакета Jdeveloper Suite. С его помощью разработчики могут создавать серверные решения, позволяющие "перенести" логику приложений с клиентов на серверы приложений. В комплект AppBuilder for Java входят среда разработчика Borland JBuilder Java и расширения для базы данных Oracle, такие как JSQL (язык запросов к базам данных "с элементами Java"). Oracle также планирует переписать свои приложения, превратив их в Java-компоненты.
InfoWorld Electric