*Первую часть статьи см. Enterprise Partner № 24, 2001.

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

Прежде всего электронный бизнес — это электронная коммерция, основу которой составляют приложения для взаимодействия с внешними заказчиками, поставщиками и партнерами. Эта часть очевидна и понятна, но ею все не ограничивается — электронный бизнес охватывает также внутренние фоновые процессы, поддерживающие указанное взаимодействие, в частности, электронный обмен данными (electronic data interchange, EDI), планирование ресурсов предприятия (ERP), управление цепочками поставок (SCM), интеграцию приложений предприятия (EAI), управление отношениями с клиентами (CRM) и порталы.

В последнее время электронный бизнес все теснее интегрируется со средствами бизнес-аналитики (business intelligence, BI), например, при проведении исследований электронной коммерции. Оперативные данные и BI-данные зачастую оказывают друг на друга взаимное влияние; таким образом, целые области BI подпадают под влияние электронного бизнеса. Точнее, почти все критически важные данные располагаются под «крышей» электронного бизнеса и должны постоянно соответствовать предъявляемым к ним высоким требованиям.

Обратимся к характеристикам систем электронного бизнеса и посмотрим, как они реализованы в Oracle9i и IBM DB2 Universal Database (UDB). Перечень этих характеристик слишком обширен, и нам не удастся рассмотреть их все, поэтому мы остановимся лишь на наиболее важных. Кроме того, многие из них уже освещены в первой части этой статьи.

Производительность и масштабируемость: RAC против EEE

Масштабируемость — чрезвычайно популярная тема, что обусловлено исключительной ее важностью для электронного бизнеса. Невозможность наращивания информационной системы означает потерю клиентов. Для обеспечения максимальной производительности и масштабируемости Oracle предлагает систему Oracle9i Real Application Clusters (RAC), а IBM — UDB Enterprise Extended Edition (EEE).

В RAC предусмотрено «прозрачное» масштабирование приложений с помощью усовершенствованной архитектуры Cache Fusion, поддерживающей прямую передачу данных между кэшами. Благодаря этому число операций ввода-вывода сокращается, а изменение параметров системы при масштабировании ближе к линейному, чем в предыдущих решениях, обеспечивающих масштабируемость. Как следствие, можно ожидать, что популярность RAC на рынке OLTP-систем (online transaction processing) будет расти.

RAC базируется на архитектуре с совместно используемыми дисками и общим программным кэшем, связи в котором обеспечиваются средствами Cache Fusion. Масштабируемость, основанная на этой архитектуре, не является действительно линейной, хотя и близка к ней. Огромное преимущество заключается в «прозрачности» архитектуры с точки зрения приложений. Кроме того, рассматриваемая архитектура, похоже, устранит хорошо известную пользователям Oracle проблему с контрольными сигналами (ping), которые применяются в механизмах распределенной блокировки (улучшение в этой области заметно уже в Oracle8).

СУБД UDB EEE довольно долго демонстрировала замечательную линейную масштабируемость благодаря архитектуре shared-nothing (т. е. с отсутствием каких-либо общих ресурсов). EEE чаще всего используется в качестве BI-системы; кроме того, она обеспечивает высокую производительность в промышленных системах и в тестах TPC-C (моделирование OLTP) и TPC-W (моделирование Web и электронной коммерции). Высокая производительность и линейная масштабируемость этой системы неоднократно подтверждены, однако привязка к узлам с данными в UDB EEE выполняется на уровне приложения, что требует дополнительных усилий. Далее мы посмотрим, как аналогичная функциональность реализована в RAC.

Некоторые чрезвычайно полезные встроенные трассировочные утилиты, например, tkprof и Statspack, поставляются вместе с системой Oracle бесплатно. Усовершенствованные средства Parallel Query позволяют выполнять запросы между узлами в кластерах или на оборудовании с интенсивной параллельной обработкой на базе RAC. Oracle также улучшила свой оптимизатор нагрузки, который теперь учитывает не только информацию об операциях ввода-вывода, но и сведения о работе процессора и памяти. В UDB лучше реализована оптимизация, которая уже довольно давно охватывает указанные три параметра. Еще одна особенность, появившаяся в UDB 7.1, — Net Search Extender, средство оптимизации сетевого поиска, которое реализовано на основе технологии отображения в памяти (in-memory). Оно применяется для высокоскоростного поиска текстов в Интернете и способно одновременно обслуживать очень большое число пользователей.

DB2 содержит много других усовершенствований, в том числе функции параллельного архивирования и восстановления, а также контроля нагрузки, дискового ввода-вывода, ссылочной целостности и индексов. Кроме того, можно упомянуть утилиты для создания разделов и управления приоритетами задач, диспетчер производительности, асинхронную запись, последовательное упреждающее чтение, улучшенную структуру индексов, поддержку пулов буферов и многое другое. Большинство этих функций реализовано и у Oracle. Обе компании повысили производительность практически всех компонентов БД, включая Java, XML и работу в сети.

Несмотря на все эти усовершенствования, Oracle придется еще доказать на деле, что по производительности Oracle9i сравнялась с UDB или превзошла ее.

Высокая доступность

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

IBM наконец обеспечила поддержку двойной регистрации отдельных каталогов в журнале. UDB поддерживает восстановление при сбое в кластерах серверов под управлением таких операционных систем, как AIX HACMP, Sun Solstice и Microsoft Cluster Server. Теперь UDB очищает файлы журналов после онлайнового архивирования, а также поддерживает восстановление на определенный фиксированный момент времени, динамическое выделение дискового пространства и параллельное восстановление. Кроме того, поддерживаются аппаратные архитектуры высокой доступности.

Oracle поддерживает полные и разностные архивы, а также резервные базы данных (начиная с версии Oracle8i). Средство защиты данных Oracle Data Guard поддерживает управление резервными базами данных, в том числе перенос файлов журналов из основной в резервную БД и внесение данных в резервную БД немедленно или с предопределенной задержкой. Data Guard часто применяется для перехода на резервную базу данных после сбоя основной. Кроме того, Data Guard обеспечивает прямое и обратное переключение между базами данных при обслуживании. RAC с механизмом Cache Fusion применяется не только для повышения производительности, но и для поддержки кластерных архитектур и быстрого восстановления при сбое в системах под управлением UNIX, а также в отказоустойчивых Oracle-кластерах из четырех узлов под управлением Windows 2000 и Windows NT. Администраторы баз данных получают возможность реализовать процедуры восстановления с быстрым запуском и через заданное время. В этом случае после аварийного сбоя база данных перезапускается через определенное администратором время. Средство быстрого создания моментального снимка БД и восстановления работы позволяет администраторам быстро выполнить диагностику при возникновении неполадки и восстановить работоспособность системы.

В Oracle9i практикуется политика сохранения информации о предыдущих состояниях (retention) в файлах журналов, применяются архивы с функцией автоописания. Ретроспективные (flashback) запросы дают пользователям возможность получать данные на момент, предшествующий пользовательской ошибке, а средство Logminer — анализировать файлы журнала и определять историю изменения строк на основании журнала повторных операций. Возобновляемые инструкции позволяют приостановить вызывающие ошибки операции, выявить и устранить неполадки и возобновить работу.

Разработчики затратили значительные усилия, чтобы достичь высокой доступности. Oracle представила резервные базы данных на UNIX и Intel-платформах, но следует помнить, что IBM еще с начала 90-х поддерживает подобные технологии в своей системе OS/390 Remote Recovery Data Facility, в которой данные журналов непрерывно переносятся в ресурс, используемый в случае неполадки. Вот пример того, как конкуренты IBM используют представленное корпорацией новшество раньше, чем она реализует его сама.

Безопасность

В обеих базах данных предусмотрены надежные средства безопасности, в частности, шифрование и расшифровка строковых данных, что особенно важно при работе с такими конфиденциальными данными, как номера кредитных карточек. В числе интересных особенностей продукта Oracle — подсистема Virtual Private Database and Label, которая обеспечивает BI и Web-системам более высокую степень безопасности на уровне данных с помощью меток в отдельных приложениях. Но даже без учета этой возможности обе базы данных обеспечивают устойчивую защиту как во внутренних сетях, так и при работе с Интернетом.

Microsoft SQL Server и электронный бизнес

В мире UNIX-систем и мэйнфреймов пакеты UDB и Oracle — явные фавориты. Чтобы обеспечить своему продукту такое же положение на рынке серверов БД, Microsoft должна доказать, что SQL Server может конкурировать с лидерами по производительности, масштабируемости и степени доступности. Каковы же нынешние показатели Microsoft SQL Server?

Для обеспечения высокой производительности и масштабируемости в SQL Server 2000 предусмотрена поддержка до 32 процессоров в SMP-среде, а также объединение в кластеры с архитектурой shared-nothing (с отсутствием общих ресурсов). На момент написания этой статьи SQL Server 2000 продемонстрировал наилучшие показатели в обычной и кластерной конфигурации в тестах TPC-C, ориентированных на OLTP. Для оценки систем электронного бизнеса, возможно, лучше подходит тест TPC-W (электронная коммерция в Web), в котором SQL Server показывает себя с наилучшей стороны, не опускаясь ниже пятого места при обработке 10 тыс. объектов и не ниже четвертого места — при обработке 100 тыс. объектов. В обеих указанных категориях SQL Server имеет наилучшее соотношение цена/производительность. Тесты TPC отличаются от реальной практики, но они тем не менее позволяют дать определенную оценку производительности базы данных, и Microsoft использует их для подтверждения высокой производительности SQL Server 2000.

В SQL Server высокая доступность обеспечивается теми же средствами, что и в UDB и Oracle9i. Непрерывность бизнес-процессов достигается благодаря кластеризации с перераспределением нагрузки при сбое (нет необходимости восстановления после сбоя). Версия SQL Server Enterprise Edition позволяет применять кластеры с двумя узлами при работе под управлением Windows 2000 Advanced Server и с четырьмя узлами — под управлением Windows 2000 Datacenter Server. Поддерживаются оба режима кластеров с передачей процесса при сбое: active-passive, в котором пассивный узел ожидает команду на передачу, и active-active, в котором оба сервера активны и могут при сбое "перехватывать" задачи друг у друга. В механизме восстановления после сбоя поддерживается доставка файлов журналов, что позволяет пересылать их на удаленные узлы и использовать для восстановления. Microsoft утверждает, что готовность критически важных сайтов, обслуживаемых ее системами, составляет 99,99%. Готовность, конечно же, во многом определяется стабильностью базовой ОС Windows.

Microsoft решает вопросы производительности, масштабируемости и высокой готовности так же, как IBM и Oracle. Однако есть ряд отличий, на которых следует остановиться. В SQL Server доступ к внешним данным предоставляется не через шлюзы, а средствами компонентов Microsoft Data Access Components, которые поставляются в составе многих продуктов Microsoft. В реализации Java-технологий в базе данных Microsoft отстала от IBM и Oracle. Теперь ей приходится уступать требованиям рынка и обеспечивать доступ к данным SQL Server из Java. В настоящее время SQL Server поддерживает ANSI SQL-92. Следует надеяться, что в следующих версиях SQL Server будет предусмотрена поддержка SQL-99.

Нельзя не отметить у SQL Server замечательные показатели цена/производительность и TCO. Теперь требуется время, чтобы доказать клиентам, что преимущества этого продукта ориентированы на долгосрочную перспективу. Кстати, следующая этапная версия SQL Server получила кодовое название Yukon. По словам Джефа Ресслера, ведущего менеджера по продукту SQL Server, Microsoft планирует выпустить ее к 2003 году.

Управление системой

В UDB имеется модуль Control Center, в котором предусмотрено множество средств управления базой данных. Назначение многих средств вполне стандартно. К примеру, Command Center позволяет строить SQL-инструкции и отображать результаты их выполнения, а также изменять объекты базы данных. Script Center применяется для создания, планирования и управления сценариями. Средство ведения журналов служит для наблюдения за выполнением сценариев, отслеживает информацию о заданиях, ошибках и предупреждающих сообщениях, а также извещает администраторов БД, помогая управлять заданиями. Помимо этого имеется центр оповещения для просмотра уведомлений о превышении системных порогов. Система включает и построитель хранимых процедур. Среди других заслуживающих внимания утилит — средство «визуальных подсказок» Visual Explain и монитор производительности Performance Monitor. В целом это вполне достойный набор функций.

В Oracle имеется центр управления Oracle Enterprise Manager (OEM), который также применяется для управления производительностью, диагностики, настройки и управления изменениями. Просмотр и изменения объектов базы (схем), отображение оповещений и планирование сценариев обеспечиваются другими механизмами. Появилось новое средство графических пояснений к SQL-инструкциям, напоминающее Visual Explain.

И Oracle, и UDB поддерживают "интернациональные" настройки, в том числе Unicode и глобализацию. Обе СУБД позволяют выполнять в онлайновом режиме такие операции, как изменение схемы, реорганизация и выделение памяти. UDB поддерживает больше параметров, чем Oracle, но Oracle существенно опережает UDB по числу разработок независимых поставщиков для платформ Wintel и UNIX.

Управление приложениями и данными

Обе базы данных поддерживают основные стандарты Интернета, в частности, Java 2 Enterprise Edition, XML, SOAP (Simple Object Access Protocol), UDDI (Universal Description, Discovery, and Integration) и UML (Unified Modeling Language). Кроме того, они обеспечивают превосходную интеграцию приложений на базе таких стандартов и платформ, как Java Messaging System, ORB-брокеры, включая CORBA и Enterprise JavaBeans (EJB), EDI и IBM MQSeries. Обе СУБД поддерживают Java, JDBC и SQLJ.

В DB2 поддержка EJB и Java-сервлетов осуществляется за счет интеграции с WebSphere; в Oracle они реализованы в самой базе данных. Это очень характерный пример различия подходов двух компаний — IBM ориентирована на совместную работу первоклассных компонентов, а Oracle предлагает решение типа «все в одной СУБД». Другое интересное различие — способ реализации виртуальных Java-машин (Java virtual machine, JVM). В Oracle они встроены, а в системе IBM используются платформонезависимые JVM. Преимущество Oracle в том, что при внедрении решений этой компании вы гарантированно получите встроенные виртуальные Java-машины, а недостаток — не факт, что это лучшая JVM для вашей платформы.

В прошлом году поставщики приложений неоднократно демонстрировали свою точку зрения на данный вопрос. В частности, Siebel Systems, SAP и PeopleSoft активно поддерживают DB2. Некоторые крупные разработчики (например, Siebel) используют ее в качестве внутрикорпоративной базы данных. Это большой успех для IBM, но его значение существенно умаляется тем фактом, что на большинстве сайтов в качестве платформы уже функционирует СУБД Oracle.

XML-документы — новый тип данных, реализованный в обоих конкурирующих продуктах. XML в них можно разбить на разделы и хранить в реляционных таблицах или реализовать в виде больших двоичных объектов (BLOB). Поддерживается и текстовый поиск с учетом особенностей XML. Oracle позаботилась о средствах расширения своей СУБД и возможностях ее универсального использования в качестве ORDBMS (object/relational DBMS). Предусмотрено также хранение мультимедиа-объектов и таких данных, как текст, звук и видео.

IBM предлагает универсальные ORDBMS с 1995 года и сейчас лидирует в данной области. Универсальность реализована на базе средств расширения Relational Extenders. Подход IBM свидетельствует о наличии у корпорации четкого видения перспектив отрасли, он максимально соответствовал стандартам того времени (до появления спецификации SQL-99). Relational Extenders позволяет работать со многими типами данных мультимедиа.

Модуль Net.Data, используемый для управления подключениями в продуктах IBM, обеспечивает постоянные подключения Web-серверов к базе данных и позволяет сократить количество прямых подключений к БД. Другая утилита, Web Application Builder, предназначена для доступа приложений к UDB. Она также обеспечивает вывод данных в формате XML, совместимость с XHTML и вложение SQL-инструкций.

Особо следует обратить внимание на уникальную особенность и интересную технологию Oracle — ее файловую систему для Интернета, iFS. Эта система позволяет использовать базу данных Oracle как обыкновенный диск в Windows Explorer, копируя на него файлы, которые реально будут храниться в базе данных в виде объектов BLOB. Кроме того, iFS предусматривает доступ к документам из браузера, имеет собственную подсистему безопасности и механизм управления версиями.

В общем пакете программ Oracle также предоставляет набор Internet Developer Suite, в который входят многочисленные средства для создания интеллектуальных Web-приложений и BI-инструментов — XML Developer's Kit, Portlet Developer Kit, Jdeveloper, Forms Developer, Designer, Reports Developer, Discoverer, Repository и Oracle Warehouse Builder.

До настоящего времени в DB2 недоставало определенных функциональных возможностей в области создания приложений. К той же категории функций, которыми IBM пора было бы уже обзавестись, следует отнести хранимые процедуры на процедурном SQL, доступные из любого модуля DB2, а также триггеры, основанные на процедурах. Процедурный SQL в DB2 базируется на стандартах SQL-99. Язык PL/SQL компании Oracle — это фирменная разработка, однако он отличается большей зрелостью, чем имеющийся в DB2 процедурный SQL. PL/SQL обеспечивает хорошую производительность, удобен в работе, проверен практикой — для разработчиков приложений на платформе Oracle это очень ценное средство.

Итак, победителем объявляется...

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

Кроме того, следует оценить совокупную стоимость владения (total cost of ownership, TCO). Компании, изучающие возможность внедрения базы данных, обычно понимают, что принимать решение лишь на основании ценовых показателей недальновидно и неразумно. В определенной степени они правы, хотя цена все же очень важна. Но главное — определить совокупную стоимость владения в масштабах предприятия. В расчетах следует учесть компоненты, которые придется приобретать за дополнительную плату. Также желательно оценить, как изменится цена выбранных систем через год или два.

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

Сравниваем две системы

Перечислим основные соображения, которые следует учесть, сравнивая Oracle9i и UDB 7.2.

  • В пакете Oracle Real Application Clusters (RAC) устранены недостатки, имевшиеся в Oracle Parallel Server (OPS). Линейная масштабируемость UDB EEE проверена практикой, однако для полной ее реализации необходимо глубокое и детальное проектирование.
  • IBM — безусловный лидер в области обслуживания и поддержки, однако в последнее время и Oracle существенно продвинулась в этой области.
  • Поддерживаемый Oracle язык PL/SQL — гибкое, простое в изучении, многофункциональное и высокопроизводительное средство.
  • В Oracle все функции встраиваются в базу данных, тогда как разработчики UDB ориентируются на совместную работу разнородных высококачественных функциональных модулей.
  • Обе базы данных поддерживают широкий спектр стандартов, однако UDB в меньшей степени ориентирована на фирменные, "патентованные" решения.
  • Свойства, обеспечивающие высокую доступность, практически одинаковы, но в отдельных аспектах Oracle продвинулась дальше, чем IBM, если говорить о платформах Intel и UNIX.
  • IBM лидирует в плане производительности. Продукт Oracle пока не участвует в тесте TPC-W (поддержка операций электронной коммерции) и показывает неудовлетворительные результаты в тесте TPC-C (OLTP). В этом отношении Oracle придется существенно поработать над RAC. Согласно последним данным по измерению производительности в эталонном тесте TPC-W, UDB продемонстрировала устойчивую круглосуточную работу, обрабатывая свыше 6 млрд транзакций в день.
  • На рынке систем на базе Intel и UNIX Oracle занимает значительно большую долю, чем IBM.
  • UDB дешевле, чем продукт Oracle, однако здесь есть свои подводные камни — многие модули не поставляются в составе основной системы и их приходится приобретать за дополнительную плату. Таким образом, конечная стоимость может оказаться существенно выше, чем предполагалось.
  • Платформа Oracle пользуется более широкой поддержкой со стороны независимых разработчиков инструментальных средств. Однако компании Precise Software Solutions и Quest Software не так давно добавили в свои продукты поддержку UDB, так что отставание IBM может со временем и сойти на нет.
  • Существуют различия между версиями UDB для платформ OS/390, AS/400, Wintel и UNIX. Версии совместимы на уровне API, тем не менее такое деление может существенно затруднить работу администраторов базы данных.
  • Некоторые независимые поставщики ПО (ISV), скажем, Siebel и SAP, отдают предпочтение UDB, но в целом Oracle все еще пользуется более широкой поддержкой ISV.

Однако принятие решения может оказаться не таким уж трудным, каким кажется на первый взгляд. И тщательное сравнение функций может оказаться ненужным. Зачастую оно так и не позволяет определить явного победителя. А реальным победителем должны стать вы, клиент. IBM вынудила Oracle больше заботиться о заказчиках и привлекательных ценах, а Oracle заставила IBM разработать более полное решение и проводить более агрессивную маркетинговую политику. Конкуренция — замечательная вещь! Давайте надеяться, что она будет всегда присутствовать на рынке ИТ.

Автор благодарит за помощь в подготовке статьи Билла Вонга и Дэна Гибсона (IBM), Грэга Мартелла (Oracle), Джеффа Ресслера (Microsoft) и Гранта Золкавича (North Technology Partners).

Тим Куинлан (Tim Quinlan) — консультант по СУБД. Живет и работает в Торонто. Обладает 20-летним опытом проектирования и реализации систем OLTP и информационных хранилищ. С ним можно связаться по e-mail: tquinlan@tlqconsulting.com.