Антон Умников
InterSystems
Cache - постреляционная СУБД
О компании InterSystems
InterSystems -поставщик высокопроизводительной постреляционной СУБД, ориентированной на обработку транзакций. Компания основана в 1978 году. Штаб квартира компании находится в г. Кэмбридж, штат Массачусетс, США. Региональные офисы компании расположены в 12 странах. Российский офис действует с февраля 1997 года.
По данным независимого исследования, проведенного компанией IDC, InterSystems входит в десятку ведущих поставщиков СУБД и в сотню ведущих независимых разработчиков ПО.
В числе клиентов компании - крупнейшие финансовые компании, такие как Chase Manhattan, Lloyd Bank, большинство крупнейших госпиталей Америки, телекоммуникационные и промышленные компании. В России наибольшее распространение продукты InterSystems получили в телекоммуникационной и банковской сферах.
Изменения на рынке СУБД
В начале восьмидесятых годов реляционные СУБД сменили базы данных, построенные на иерархических и сетевых моделях и, до недавнего времени, безраздельно царствовали на рынке. Однако, в последние несколько лет аналитики и специалисты компьютерного рынка все чаще говорят о необходимости коренного пересмотра базовых концепций, лежащих в основе современных баз данных и связанных с ними технологий построения приложений.
Основные причины аналитики видят в возрастающей роли сетевых вычислений и объектного подхода к построению приложений, а также в новых требованиях к производительности и масштабируемости приложений. Однако, какие бы причины не ставились во главу угла, факты говорят сами за себя. В минувшем году рост доходов ведущих поставщиков реляционных СУБД оказался ниже ожидаемых, в то время как аналогичные показатели поставщиков СУБД нового поколения более чем впечатляющи. Да и сами поставщики реляционных баз постепенно смещают акценты с производства баз данных на другие сферы деятельности.
Cache - постреляционная СУБД (основано на статье "Иерархический... Реляционный? Постреляционный!" Антон Умников, Банки и Технологии 4'98)
Термин "постреляционный" (post-relational) был впервые введен в мае 1992 года в журнале BYTE одним из аналитиков - Дэвидом Васкевичем. Изучая проблемы и тенденции развития современных СУБД, он пришел к следующему выводу: "Реляционные СУБД все еще можно использовать для многих приложений, но когда речь идет о разработке сложных современных систем, необходимо переходить на постреляционные СУБД."[1].
Постреляционная СУБД Cache была анонсирована в сентябре 1997 года.
Ядро Cache - это многомерная модель данных, ориентированная на обработку транзакций. Именно в ней хранятся данные, и именно в ней кроется, пожалуй, главный секрет высокой производительности системы, построенной на Cache. Данные хранятся в многомерных разреженных массивах, а не в двумерных таблицах, как это делается в реляционных базах. Подобный подход позволяет хранить данные произвольной сложности и увеличить производительность за счет произвольной многомерной индексации, не ограниченной конкретной моделью данных.
Отдельно следует отметить концепцию разреженных массивов. Ячейки многомерного массива, не содержащие данных, не занимают места на диске. Это позволяет уменьшить объем, физически занимаемый базой, и уменьшить время на поиск и считывание данных в оперативную память.
В Cache реализованы три способа доступа к данным: Прямой, Объектный и Реляционный. Прямой доступ позволяет программисту обращаться к данным на уровне узлов многомерных массивов. Именно таким путем можно достигнуть наиболее высокой скорости обработки данных.
Объектный доступ позволяет хранить и использовать в базе данных интеллектуальные объекты. Объектная технология InterSystems базируется на стандарте объектно-ориентированных баз данных - ODMG [2]. Через стандартизированные интерфейсы к объектам, хранящимся в базе Cache, можно обращаться из Visual Basic, C++, Delphi, Java и других средств разработки графического интерфейса пользователя, точно так же, как и к "родным" для соответствующих языков объектам. С точки зрения объектной архитектуры, Cache относится к классу активных объектных баз данных, то есть объекты не просто хранятся в базе, но и могут активировать свои методы непосредственно на сервере, что позволяет строить сложные интеллектуальные приложения.
Реляционный доступ позволяет использовать традиционный подход к проектированию баз данных и использовать Cache в качестве реляционного сервера. Cache поддерживает SQL и предоставляет стандартизированные интерфейсы доступа к реляционным данным, такие как ODBC и OCI. Однако, реально данные, представленные через реляционный интерфейс Cache, хранятся не в реляционных таблицах, а в многомерных разреженных массивах, что позволяет значительно увеличить производительность системы по сравнению с традиционными реляционными СУБД.
Недавний опыт по переносу системы с платформы Sybase на Cache позволил увеличить производительность приложения в 20 раз [3]. Речь идет о департаменте юстиции города Берн, Швейцария, где система Tribuna 2000, обслуживающая различные аспекты деятельности департамента и объединяющая, в общей сложности, более 1400 рабочих станций, была перенесена с системы Sybase на Cache без изменения кода приложения, написанного с использованием стандартного SQL.
Внутренняя логика приложения Cache может быть описана на интегрированном в ядро системы языке Cache ObjectScript. В случае реализации схемы прямого доступа к базе, программы, написанные на Cache ObjectScript, оперируют узлами многомерных массивов точно так же, как собственными переменными, а в случае объектной реализации, на языке Cache ObjectScript описываются методы объектов. Особенностью Cache ObjectScript является возможность исполнения данных как кода, что делает Cache интересным с точки зрения построения экспертных и аналитических систем.
Для всех трех способов доступа к данным, а также для доступа через Web, Cache предоставляет оптимизированные методы доступа к базе данных. Visual Cache для прямого доступа, ODBC и OCI для реляционного, ActiveX, COM, С++ и Java для объектного и Cache WebLink для Web доступа (реализованы интерфейсы ISAPI и NSAPI для Web серверов Microsoft и Netscape соответственно, а также интерфейс к UNIX серверам Apache.)
InterSystems сознательно не создает собственных средств разработки клиентской части и CASE средств, концентрируя все свое внимание на разработке высокопроизводительной базы данных. Практически для всех современных средств разработки клиентской части, InterSystems создает соответствующие интерфейсы. Такая же ситуация и с CASE средствами. Cache может работать в связке со средством объектного моделирования Rational Rose и, через интерфейс DDL, со средствами моделирования реляционных БД.
Отдельно необходимо сказать о концепции единой архитектуры данных, реализованной в Cache. Вкратце, смысл единой архитектуры данных состоит в одновременной генерации реляционного и объектного представления данных, хранящихся в многомерном транзакционном ядре, в отличие от Объектно - Реляционных СУБД, в которых объекты фактически хранятся в реляционных таблицах, образуя трехуровневую архитектуру. В Cache объектное и реляционное представления равноправны, а данные хранятся в оптимизированной для обработки транзакций форме, что позволяет строить высокопроизводительные приложения.
Одним из ключевых моментов в обеспечении масштабируемости решений на базе Cache является протокол Distributed Cache Protocol (DCP) - оригинальная разработка InterSystems. DCP обеспечивает значительное снижение сетевого трафика за счет применения интеллектуальных алгоритмов кэширования данных в распределенных системах и, как следствие - уменьшает время одной транзакции и увеличивает количество одновременно выполняемых транзакций.
С точки зрения масштабирования систем на базе технологий InterSystems, показательным является пример бостонского госпиталя Partners Healthcare/Brigham & Women's Hospital - самая крупная подобного рода инсталляция системы клиент/сервер в мире. 100 PC серверов обеспечивают 10.000 пользователям доступ к базе критических данных объемом более 150 Гигабайт, а в 2000 году планируется увеличить количество рабочих мест до 50.000.
Говоря о платформе баз данных, нельзя не упомянуть об аппаратных платформах, на которых может работать система. Cache доступна в версиях для Windows 95, Windows NT (Intel/Alpha), практически для всех коммерческих реализаций Unix и OpenVMS. Стараясь обеспечить максимальную производительность комплексных решений платформа + СУБД, InterSystems сотрудничает с ведущими производителями аппаратного и программного обеспечения, такими как IBM, SUN, Digital. На выставке CeBIT 99 впервые была показана версия Cache для набирающей популярность платформы LINUX.
Литература:
- BYTE. Девид Васкевич. Май 1992.
- The Object Database Standard ODMG 2.0. 1997
- Замена базы данных со швейцарской точностью. ComputerWorld Россия 35'98