Обзор статьи "Universal Servers: The Players, Part 2"
DBMS, vol.10, N 7, July 1997, www.dbmsmag.com
Judith R. Davis, principal with InfoIT Inc., jdavis@dbaint.com
Обзор подготовлен С. Кузнецовым, Центр Информационных Технологий
В первой части статьи (DBMS, vol.10, N 6, June 1997, см. Также наш обзор) были сформулированы требования приложений, стимулирующие усилия по расширению функциональных возможностей реляционных СУБД (РСУБД) для управления сложными данными. Отмечалось, что универсальный сервер часто является лишь одним из компонентов расширяемой среды управления данными. Были также обсуждены базовые свойства, которыми должен обладать сервер баз данных для достижения расширяемости.
Во второй части рассматривается, каким образом пять ведущих компаний-поставщиков РСУБД - Informix Software Inc., IBM Corp., Microsoft Corp., Oracle Corp. и Sybase Inc. - реально поддерживают расширяемость.
Компания Informix Software оказалась на переднем фронте объектно-реляционных систем после приобретения компании Illustra в начале 1996 г. Решение компании произвести слияние продуктов Informix-OnLine 7.2 и Illustra Server к концу того же года оценивалось в индустрии довольно скептически. Однако компания смогла выполнить свое обещание, выпустив в конце декабря устойчивую версию Informix-Universal Server (IUS) для трех платформ. В настоящее время IUS доступен на 10 платформах.
Компания сконцентрировалась прежде всего на компоненте универсального сервера общей архитектуры. Пока не слишком большое внимание обращается на другие звенья архитектуры, кроме области Internet/Web (с применением продукта WebConnect). В большей степени затрагиваются вопросы поддержки сложных данных в средствах разработки и приложениях с использованием недавно объявленного продукта Data Director (приобретенного вместе с компанией CenterView Software в начале этого года). Этот продукт обеспечивает возможность использования передовых сред разработки (Java, PowerBuilder, VisualBasic и др.), доступ к расширениям в духе SQL-3 и, кроме того, доступ к новым типам данных и функций IUS.
В своем первом выпуске IUS объединяет OnLine 7.2 с DataBlade API сервера Illustra и языковыми расширениями, основанными на идеях SQL-3, для поддержки широкого набора объектных средств. Расширения включают следующее:
- Расширяемая система типов для интеграции определяемых пользователями типов данных (UDT - User Defined Types) - уточненных типов, абстрактных типов данных (ADT - Abstract Data Types), строчных типов и типов коллекций, включая возможность неограниченной вложенности таблиц. IUS поддерживает простое наследование в иерархии именованных строчных типов. Каждая таблица, основанная на строчном типе, становится типизированной таблицей и может использоваться в этой иерархии. В будущем ожидается появление ссылочных типов и ADT в духе SQL-3, а также средств репликации данных определяемых пользователями типов.
- Определяемые пользователями функции (UDF - User Defined Functions) - полный диапазон типов UDF с поддержкой перегрузки, распознавания нужного тела функции на основе типов параметров и параллельного выполнения функций, когда это оправданно. (Параллельные возможности IUS применимы на платформах SMP; при использовании Informix-OnLine XPS эти возможности распространяются на кластерные архитектуры; на платформах MPP объектные расширения пока недоступны.)
- Расширяемая система индексирования - R-деревья, применение B-деревьев к UDT, определяемые пользователями индексные структуры.
- Расширяемый оптимизатор - таблично-управляемый оптимизатор, позволяющий интегрировать UDT, новые индексные структуры и новые методы доступа. Разработчик может указать стоимость выполнения функций UDT и зарегистрировать новый тип индекса, что включает определение функций, которые используют индекс, интерфейсных подпрограмм для доступа к индексу и стоимости использования индекса. Индексы хранятся под управлением СУБД с соответствующим транзакционным контролем; сторонние поставщики должны сами следить за целостностью внешних индексов. Кроме того, оптимизатор применяет параллельные операции к разделенным определенным пользователями данным и индексам.
- Большие объекты (LOB - Large Objects) и внешние данные - LOB'ы могут храниться внутри базы данных (в BLOB'ах) или во внешних файлах. IUS не гарантирует целостность данных, хранимых во внешних файлах, но имеет на этот счет планы. Интерфейс виртуальной таблицы позволяет регистрировать внешние данные в каталогах базы данных и обращаться к ним таким же образом как если бы они были таблицами IUS.
- Предопределенные расширения - Informix подрядил много сторонних поставщиков для написания DataBlades - упакованных наборов расширений, представляющих некоторую прикладную область (текстовый поиск, управление графической информацией, финансовый анализ и т.д.). DataBlade интегрируется с ядром IUS на основе специального интерфейса уровня вызовов (DataBlade API). К июню 1997 г. планировалось иметь в поставке 20 DataBlade, еще 10
находятся в стадии бета-тестирования, к концу года ожидается иметь около 50 готовых к поставке DataBlade. В настоящее время имеется два режима выполнения DataBlade - в адресном пространстве ядра (это дает наибольшую эффективность) и в отдельном виртуальном процессоре (более безопасный режим). Планируется обеспечить выполнение компонентов DataBlade в других звеньях расширяемой среды.
- Расширения языков приложений - в дополнение к поддержке разработки UDT на основе собственной среды NewEra Informix теперь обеспечивает новое средство разработки клиентских приложений Data Director, которое дает возможность связи между данными, контролируемыми приложением, и данными, хранимыми в среде IUS. В этом средстве используются собственные интерфейсы с IUS (Java API и Си++ API), а не ODBC 4. Кроме того, Data Director поддерживает
4языковые расширения в духе SQL-3.
4В своем стремлении первой обеспечить доступность 4объектно-реляционных средств компания Informix 0не лучшим образом балансирует между новой технологий и сохранением той позиции на бизнес-рынке, которую удалось занять на основе Informix-OnLine 7.x. До слияния с Illustra основное внимание уделялось производительности и масштабируемости на основе разных видов параллелизма. С появлением IUS эти важные качества продуктов отошли на второй план. Кроме того, компания должна принимать во внимание наличие трех разных серверов баз данных - IUS, OnLine и XPS.
Однако компании удалось продемонстрировать возможность эволюционного перехода к объектно-реляционной технологии с сохранением надежного и высокоэффективного управления базами данных. IUS является развитием OnLine, и именно так следует представлять его на рынке. Можно ожидать, что IUS будет использоваться не только как универсальный сервер, а превратится в полную расширяемую платформу управления данными.
Компания IBM ведет исследования в области инфраструктуры расширяемых реляционных баз данных в течение более чем десяти лет. Компания была первой из основных поставщиков, выпустившим на рынок реляционный сервер баз данных с объектными расширениями: DB2 Common Server 2 (в июле 1995 г.). Теперь IBM готова начать поставки обновленного продукта с новым названием - DB2 Universal Server, представляющего собой слияние начальных объектно-реляционных свойств DB2 Common Server 2.1 с возможностями параллельной обработки DB2 Parallel Edition 1.2 и доступного на разнообразных мультипроцессорных платформах - SMP, кластеры и MPP. Ключевым моментом является то, что IBM обеспечивает полную функциональность на основе единого исходного текста сервера. Это обеспечивает основу новых разработок, тем более что расширения с самого начала базируются на полностью параллельных средах.
Стратегия IBM в области объектно-реляционных баз данных включает четыре основных компонента. Во-первых, универсальная база данных DB2 (UDB - Universal DataBase) находится в стадии бета-тестирования и должна начать поставляться в третьем квартале 1997 г. Во-вторых, разновидность UDT - сильные связи с файлами (robust file links) позволяет DB2 UDB активно управлять внешне хранимыми данными с соблюдением требований безопасности и целостности. (Реализация этой возможности ожидается к концу 1997 г.) Третий компонент стратегии компании - DataJoiner - промежуточное программное обеспечение для доступа к неоднородным базам данных. Этот компонент включает все функциональные возможности сервера DB2, глобальный оптимизатор с расширяемыми знаниями о поддерживаемых источниках данных, возможность компенсировать функциональные различия между этими источниками. В планах компании позволить DataJoiner использовать объектно-реляционные расширения UDB при работе с поддерживаемыми менеджерами данных. Наконец, IBM разрабатывает компонент объектного слоя, называемый Client Object Support, который обеспечит единое логическое представление всех доступных данных, а также их транзакционную согласованность, управление кэшами клиентов и интеграцию с объектно-ориентированными языками.
Вот сводка расширенных возможностей DB2 Universal Server и средств, которые планируется включить в будущие выпуски.
- Расширяемая система типов - уточненные типы, ADT и объекты OLE с поддержкой в будущем ADT в стиле SQL-3, строчных типов, типов коллекций, ссылок, множественного наследования и репликации данных UDT.
- Определяемые пользователями типы (UDF) - скалярные UDF с поддержкой перегрузки функций и нахождения нужного тела функции на основе типов параметров, параллельное выполнение UDF. Ожидается появление табличных функций. UDF могут выполняться внутри адресного пространства сервера для повышения производительности или вне него для обеспечения безопасности.
- Расширяемая система индексации - IBM обеспечивает свои собственные индексы специального назначения для типов данных, поддерживаемых расширителями DB2 (DB2 Relational Extenders). В будущем выпуске будут поддерживаться определяемые пользователями индексные структуры, навигационный доступ через ссылки и возможность строить индексы на выражениях, на результатах вызовов функций и на атрибутах ADT.
- Расширяемый оптимизатор - DB2 уже включает основанный на правилах оптимизатор с возможностью выполнять глобальную оптимизацию и преобразования запросов. Планируется расширить интерфейс оптимизатора с тем, чтобы можно было добавлять новые правила. Разработчик может указать стоимость UDF, включая информацию о том, производит ли функция внешние действия. При интеграции с DB2 Parallel Edition оптимизатор также применяет параллельные операции для разделенных определенных пользователями данных и индексов.
- Большие объекты и внешние данные - LOB может храниться внутри базы данных или во внешних файлах. На сегодняшний день DB2 обеспечивает доступ к данным, хранимым вне сервера; в будущих выпусках (к концу 1997 г.) будет гарантироваться и целостность на основе механизма сильных связей с файлами.
- Расширяемая языковая поддержка - UDF могут быть написаны на языках Си, Си++, Visual Basic или Java; хранимые процедуры могут писаться на языках третьего и четвертого поколения и Java. Ожидается появление языковых расширений в стиле SQL-3 для обеих целей.
- Предопределенные расширения - IBM обеспечивает реляционные расширители для текста, графической информации, видео, аудио и т.д. Компания образует партнерские отношения со сторонними поставщиками для разработки пакетов расширений. Имеется соответствующий набор инструментальных средств.
Текущее состояние продуктов и стратегические планы IBM могут позволить ей занять лидирующие позиции на рынке объектно-реляционных систем. Для этого прежде всего требуется добиться признания и высокого уровня продаж в секторе платформ других компаний.
Компания Microsoft для достижения расширяемости данных выбрала подход, менее ориентированный на базы данных, чем подходы Informix, IBM или Oracle. Microsoft все еще работает над преодолением унаследованного от Sybase SQL Server отсутствия блокировок на уровне строк и поддержки параллелизма. Компания старается продемонстрировать возможность Windows NT быть платформой баз данных переднего края. В отношение расширяемости, подобно Sybase, Microsoft в большей степени опирается на компонентный подход.
Компания прежде всего основывается на компонентах промежуточного программного обеспечения, обеспечивая универсальный доступ к данным через OLE DB, и хотела бы, чтобы все ведущие производители РСУБД реализовали такой интерфейс к своим серверам. Никто из них публично не обещал сделать этого, а компания Microsoft, в свою очередь, заняла выжидательную позицию относительно SQL-3.
OLE DB - это промежуточное программное обеспечение, предоставляющее согласованный уровень абстракции по отношению к разнообразным типам и источникам данных. Обеспечивается единый интерфейс объектного уровня, позволяющий пользователям производить выборки из разнородных наборов данных, а поставщикам данных - делать их доступными. Кроме того, Microsoft преобразует SQL Server в СУБД, которая может обращаться к другим источникам данных, за счет отделения процессора запросов от компонента хранения данных. Теперь эти компоненты сами взаимодействуют через OLE DB. Если поставщики других хранилищ данных будут поддерживать OLE DB, Microsoft сможет интегрировать их в среду SQL Server для обработки запросов. SQL Server будет развит для обработки распределенных запросов, стоимостная информация будет пересылаться между источниками данных. Кроме того, каждый источник данных будет демонстрировать свою каталожную информацию через интерфейсы OLE DB.
Microsoft не говорит о том, какие объектные расширения появятся в следующем выпуске SQL Server, и появятся ли они вообще (бета-версия ожидается в этом году). Больше внимание уделяется увеличению производительности, масштабируемости, полезности и т.д. Видимо, движение к объектам будет постепенным.
Компания объявила, что Oracle 8 будет уметь делать с объектами все, что умеет делать Informix-Universal Server, и даже больше. Однако это не так в первом выпуске Oracle 8 (этот выпуск был официально объявлен 24 июня 1997 г., см. сервер компании Oracle). В фокусе Oracle 8 находятся расширенная система типов и поддержка бизнес-объектов; появление других возможностей расширяемости ожидается в версии 8.1. Oracle концентрируется на реализации своей сетевой вычислительной архитектуры (NCA - Network Computing Architecture), и в Oracle 8 вносятся улучшенные возможности производительности, масштабируемости, доступности, репликации, разделения данных и т.д.
NCA - это трехзвенная архитектурная структура, основанная на CORBA (Common Object Request Broker Architecture). В NCA используются расширяющие компоненты, называемые "картриджами", которые могут разрабатываться Oracle или сторонними поставщиками. Впервые использование картриджей приложений и картриджей баз данных
потребовалось в Oracle Web Application Server для организации связи на основе CORBA. В контексте расширяемой среды данных Oracle будет обеспечивать компоненты на уровне промежуточного программного обеспечения приложений (например, компонент управления транзакциями в Web Application Server) и на уровне универсального сервера (Oracle 8). На объектном уровне Oracle 8 поддерживает объектные представления данных с использованием новых объектных типов и существующих реляционных данных. Кроме того, Oracle 8 поддерживает объектный кэш клиентов и навигацию между объектами по ссылкам. Транслятор объектных типов отображает объекты базы данных в соответствующие конструкции языка Си.
Далее приводится сводка свойств, имеющихся в Oracle 8 и ожидаемых в версии 8.1.
- Расширяемая система типов - поддерживаются объектные типы, типы коллекций (массивы переменного размера и вложенные таблицы) и ссылочные типы. Объектный тип может применяться либо к столбцу, либо к строке и может быть семантически эквивалентен именованному строчному типу SQL-3. Кроме того, Oracle 8 явно связывает с объектными типами методы. Пока поддерживается только один уровень вложенности таблиц (в 8.0), не поддерживаются полностью инкапсулированные ADT. Будет поддерживаться одиночное наследование. Отсутствует возможность репликации расширенных данных.
- Определяемые пользователями функции - скалярные UDF, перегрузка и разрешение имени на основе типов параметров, параллельное выполнение UDF с определенными пользователями агрегатами (функции столбцов) находятся в стадии обсуждения.
- Расширяемая система индексации - поддержка определяемых пользователями индексных структур и индексов на выражениях появится вместе с компонентом Database Extesibility Services.
- Расширяемый оптимизатор - возможность указывать стоимость UDF и обеспечивать статистику об использовании определенных пользователями данных ожидается с появлением Database Extesibility Services. К расширенным типам пока не применяются параллельные операции.
- Большие объекты и внешние данные - LOB могут храниться внутри базы данных или во внешних файлах. Oracle 8 не поддерживает доступа по чтению к внешним данным и не гарантирует их целостность. Большие объекты могут быть реплицированы, но таблицы с LOB реплицировать нельзя.
- Расширяемая языковая поддержка - UDF и хранимые процедуры пишутся на PL/SQL или Си/Си++, причем подпрограммы на Си/Си++ выполняются вне адресного пространства сервера. Поддержка Java в сервере будет обеспечиваться в Database Extesibility Services (версия 8.1).
- Предопределенные расширения - сервер Oracle 8 поддерживает хранение текстовых, пространственных и видео- данных; ожидается появление нового типа данных для хранения графической информации. Компания работает также с несколькими партнерами для тестирования и формализации API для Database Extesibility Services и разработки картриджей данных.
Компания Sybase начала связывать свою стратегию со средой расширяемого управления данными после объявления адаптивной серверной архитектуры (Adaptive Server Architecture). Упор делается на компонентную разработку приложений, и Sybase планирует обеспечить поддержку объектных компонентов Java, ActiveX и CORBA на всех трех звеньях вычислительной среды.
В следующих выпусках своих продуктов, появление которых ожидается во второй половине 1997 г., компания обеспечит программное обеспечение приложений промежуточного уровня (Jaguar Component Transaction Server), которое можно было бы назвать промежуточным программным обеспечением баз данных для интегрированного доступа к сложным данным и для поддержки объектного уровня через инструментальные средства типа PowerBuilder.
На стороне сервера баз данных Sybase переносит в сервер сервисы распределенных запросов OmniConnect. Со временем эти компоненты будут реализованы для всех серверов Sybase и будут включать общий языковой процессор, общие сервисы (безопасность, передачу сообщений, репликацию, администрирования и т.д.) и общий интеграционный компонент. Последний из перечисленных компонентов позволит интегрировать в среду Adaptive Server хранилища данных сторонних поставщиков (SDT - Specialty DataTypes). SDT будут разрабатываться с использованием DirectConnect API, с помощью которого в прошлом обеспечивался доступ к неоднородным источникам данных. Хранилища данных останутся физически раздельными, но пользователи смогут выполнять запросы по отношению ко всем поддерживаемым типам данных. Со временем Sybase сможет обеспечить расширяемость на более нижних уровнях серверной архитектуры (например, на уровне оптимизатора).
Sybase не особенно распространяется о своих планах, но известны некоторые общие направления:
- Расширяемая система типов - Sybase будет поддерживать сначала ADT языка Java, а в следующих версиях Adaptive Server - типы данных SQL-3.
- Определяемые пользователями функции - сегодня скалярные UDF поддерживаются в SQL Anywhere. В будущих выпусках Adaptive Server будут поддерживаться Java-UDF, возвращающие скалярные значения или ссылки на Java-объекты.
- Расширяемый оптимизатор - Sybase будет обеспечивать глобальную оптимизацию для всех поддерживаемых SDT.
- Большие объекты и внешние данные - Adaptive Server будет поддерживать доступ к внешним данным на основе уровня компонента интеграции. Некоторые партнеры хранят данные и индексы в базах данных Sybase, другие - нет. Планируется поддержка больших объектов в духе SQL-3.
- Расширяемая языковая поддержка - хранимые процедуры все еще пишутся на Transact SQL, но ожидается поддержка Java с возможностью выполнения кода на сервере.
- Предопределенные расширения - у компании имеется несколько партнеров, которые обеспечивают доступ к отдельным хранилищам текстовых, гео-пространственных, мультимедиа и других типов данных.
Матрица объектно-реляционных свойств
Свойство Server | Informix-Universal Database | IBM DB2 - Universal | Oracle8
|
---|
Расширяемая система типов | Да | Да | Да
Поддержка строгой типизации | Да | Да | Да
Поддержка иерархии типов и расследования | Да; простое наследование для именованных строчных типов и таблиц | Нет; ожидается поддержка множественного наследования | Нет; в 8.1 будет простое наследование
Репликация данных | Нет; планируется | Нет; планируется | -
Определяемые пользователями функции | Да | Да | Да
Перегрузка функций | Да | Да | Да
Разрешение имени функции на основе типов параметров | Да | Да | Да
Расширяемая система индексирования | Да | Нет; планируется | Нет; планируется в Database Extesibility Services
Расширяемый оптимизатор запросов | Да; таблично-управляемый | Да; управляемый правилами, но интерфейс не открыт; планируется | Нет; планируется в Database Extesibility Services
Поддержка больших объектов | Да; SQL-3 LOBs | Да; SQL-3 LOBs | Да; SQL-3 LOBs
Поддержка внешних данных | Да; только доступ; имеются планы обеспечить управление | Да; только доступ; полное управление будет обеспечено | Да; только доступ
Расширяемая языковая поддержка
| 3GL | Да; Си/Си++ | Да; Си/Си++ и любой язык с поддержкой Си-соглашений | Да; Си/Си++
4GL | Нет | Да | PL/SQL
Объектно-ориентированные языки | Да - Java; ожидается Си++ | Да - Java; другие - после появления Client Object Support | Нет; Java планируется в Database Extesibility Services
Доступные предопределенные расширения | Да - Datablades | Да; текст, видео, аудио от IBM, пространственные данные от ESRI | Да; текст, видео, графика и т.д.
Средства для добавления расширений (API, инструментальные наборы) | Да | Да | Нет; SDK для расширяемости баз данных
| | | | | | | | | | | | | | | |