У бета-версии объектной СУБД все на месте, вот только средство разработки Jade не слишком удалось

Тимоти Дик (PC Week Labs)

 

После выпуска в декабре системы Jasmine 1.1 (“жасмин”), разработанной специалистами фирмы Computer Associates International (Исландиа, шт. Нью-Йорк), жизнь администраторов баз данных, которые заставляют или пытаются заставить сосуществовать объектно-ориентированные приложения с реляционными СУБД, будет облегчена.    

 

Сотрудники Тестового центра PC Week Labs получили возможность оценить одну из последних бета-версий Jasmine  -  новой объектной СУБД производства CA  -  и обнаружили, что она удачно сочетает в себе такие достоинства реляционной модели, как изоляция транзакций, средство оптимизации на основе стоимости и широкая масштабируемость, с программируемостью и возможностями моделирования, характерными для чисто объектно-ориентированных СУБД.    

 

Не меньшее значение, чем технические усовершенствования Jasmine, имеет тот факт, что за этой объектной архитектурой СУБД стоит компания-мультимиллиардер, обладающая обширными ресурсами разработчиков и богатым опытом создания программ уровня предприятия. CA  -  первая организация, в которой несколько десятилетий опыта разработки СУБД сочетались с бездонными карманами, совершенно необходимыми для мощного старта на новом, не устоявшемся и во многом еще не изученном рынке объектных СУБД.    

 

Первоначально Jasmine будет выпущена в версиях для Solaris и Windows NT (мы тестировали вариант Windows NT), а в следующем году ожидаются редакции для HP-UX, AIX и Digital Unix. Цена будет зависеть от количества серверов и начинаться от $800 за многопользовательскую версию для Windows NT. Кроме того, CA намерена предложить и очень недорогую однопользовательскую версию, предназначенную как для индивидуального применения, так и для разработчиков.    

 

Чего-то  все  же  недостает

 

Для первой версии Jasmine впечатляет своей зрелостью, однако в наборе ее функциональных возможностей есть несколько зияющих пробелов. Особую озабоченность вызывает отсутствие встроенных средств обеспечения безопасности (разработчикам приходится писать для этой цели собственные подпрограммы и самостоятельно вести реестры подлежащих защите данных). А средства администрирования Jasmine выдержаны в истинно спартанском духе: нам не удалось найти никакого способа контроля текущей производительности СУБД или ведения наблюдений за деятельностью пользователей  -  а ведь это две важнейшие задачи администрирования.    

 

В довершение ко всему Jasmine поддерживает только TCP/IP в качестве коммуникационного протокола и не предоставляет никаких средств тиражирования, кластеризации и обеспечения отказоустойчивости серверов, которыми один из конкурирующих продуктов, объектная СУБД Objectivity/DB фирмы Objectivity, обладает в полной мере.

С помощью средств проектирования иерархии классов и объектных баз данных объектной СУБД Jasmine фирмы Computer Associates легко и удобно моделировать отношения, существующие в реальном мире

 

Учитывая узость рынка объектных СУБД, компания постаралась сделать Jasmine полным универсальным набором инструментов, включив в комплект не только собственно механизм управления БД, но и новое клиент-серверное визуальное средство разработки Jade, шлюзы для связи с реляционными СУБД и пять различных программных интерфейсов (два варианта для Java, HTML, Cи и ActiveX) для клиентов, предпочитающих при организации доступа к данным Jasmine использовать привычные средства разаботки.    

 

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

 

Помимо Java система Jasmine обеспечивает организацию связи с помощью языка HTML (для организации клиент-серверных систем с тонкими клиентами) и Cи (но, к сожалению, не Cи++, следовательно, Jasmine невозможно использовать для сохранения состояния объектов Cи++ между сеансами работы), а простой и ясный 32-разрядный ActiveX-интерфейс системы позволил нам построить тестовое клиентское приложение для Jasmine в среде разработки Visual Basic.    

 

Благодаря распространенности языков Java и HTML, а также учитывая, что практически все средства разработки приложений для Windows поддерживают ActiveX, почти полное отсутствие в Jasmine собственных средств программирования для объектных СУБД представляется не столь уж существенным.    

 

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

 

Столкнулись мы и с некоторыми ошибками бета-версии в интерфейсе и среде разработки: представители CA обещали устранить их к моменту выпуска окончательной версии.    

 

Больше  никаких  строк и  никаких  столбцов

 

Хотя такие фирмы, как Objectivity и Object Design, предлагают свои объектные СУБД еще с начала 1990-х, широкое применение объектная технология БД нашла только сейчас.    

 

Благодаря (в основном) усилиям фирмы Informix Software и корпораций Oracle и IBM, которые в прошлом году дополнили свои ведущие реляционные СУБД несколькими объектными элементами, практические преимущества объектного построения БД подверглись самому прилежному исследованию.    

 

Основным мотивом применения объектных СУБД служит то обстоятельство, что в мире существует много типов информации (особенно это справедливо в отношении тех из них, что не могут быть отнесены к алфавитно-цифровым), не слишком хорошо поддающихся представлению в виде наборов строк и столбцов. Это же можно отнести, скажем, к сложным отношениям в БД полученных от клиентов заказов или БД комплектующих, которые могут быть наилучшим образом представлены с применением иерархии взаимосвязанных объектов.    

 

Объектные концепции пронизывают все элементы Jasmine. Средство просмотра иерархии классов позволяет просматривать и редактировать централизованное представление схемы БД и пользовательских данных.    

 

Польза от объектной модели Jasmine становится очевидной хотя бы на таком простом примере, как создание несложной БД, содержащей данные о сотрудниках и подразделениях компании. Определив основные атрибуты, присущие любому сотруднику или подразделению, мы могли создавать на основе этого базового определения производные классы, описывающие различные категории сотрудников, не определяя заново (и вообще больше не рассматривая) эти базовые атрибуты.    

 

Jasmine автоматически соблюдает заданные отношения между классами и благодаря применению ссылок на объекты (помимо объектно-реляционных СУБД эта возможность присутствует только в системе Oracle8) обеспечивает практически мгновенный переход от текущего класса к следующему, связанному с ним.    

 

Копирование  данных  методом “перетащи  и  оставь”

 

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

 

Вместо хранимых процедур в Jasmine используются методы серверного базирования, разрабатываемые с помощью внутреннего языка системы ODQL (Object Database Query Language  -  язык описания запросов к объектной БД).    

 

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

 

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

 

Подобно Cи++ (и в отличие от любых существующих объектно-реляционных СУБД), Jasmine поддерживает множественное наследование, что позволяет выстраивать очень сложные иерархические структуры классов.    

 

Резюме для руководителей

Бета-версия Jasmine 1.1

 

СУБД Jasmine фирмы Computer Associates дарит своим пользователям всю элегантность чисто объектной системы, не требуя при этом отказа от тех возможностей, которые сделали столь популярными реляционные СУБД. Разработчикам, проектирующим новые приложения для работы с БД, в особенности клиентские приложения на базе HTML или Java, Jasmine принесет долгожданное избавление от всех головных болей, связанных с использованием реляционной СУБД.

 

Все лучшее из объектного и реляционного миров; версии для NT и Unix; интерфейсы программирования для Java, Cи, ActiveX и HTML; методы серверного базирования; шлюзы к реляционным СУБД; клиент-серверные средства разработки, включенные в комплект поставки.    

 

Отсутствуют встроенные средства обеспечения безопасности и администрирования; нет встроенной поддержки SQL или ODBC; из сетевых протоколов поддерживается только TCP/IP; средство разработки Jade подойдет только начинающим. Большие размеры исполняемых модулей затрудняют развертывание Jade-приложений в Web.

Computer Associates International: (516) 342-5224, www.cai.com.

Методика оценки: www.pcweek.com/reviews/meth.html.