Продолжается подписка на наши издания! Вы не забыли подписаться?

Компания InterSystems Corp.

Постреляционная СУБД Cache

В конце 1997 года компания InterSystems Corp. выпустила постреляционную СУБД Cache. Компания и раньше занималась системами управления базами данных, в России активно использовались и продолжают использоваться предшественники Cache: MSM, DTM, ISM. За 4 года вышло несколько версий СУБД Cache, в настоящий момент компания предлагает Cache 4.1.

Cache 4.1. — высокопроизводительная промышленная СУБД, интегрированная с технологией разработки Web-приложений — Cache Server Pages.

СУБД Cache относится к постреляционным СУБД. Термин «постреляционная СУБД» обозначает принадлежность Cache к СУБД нового поколения. Имеется в виду не столько аспект времени (Cache появилась после своих основных реляционных конкурентов), сколько ряд технологических преимуществ: единая архитектура данных и полная поддержка Cache объектно-ориентированных технологий, о которых будет подробно рассказано ниже.

На рисунке 1 изображены основные элементы архитектуры СУБД Cache: платформы, на которых работает Cache, Сервер многомерных данных, три способа доступа к данным, язык описания бизнес-логики Cache ObjectScript, интерфейсы к средствам проектирования и разработки приложений и Web-технология Cache Server Pages. Далее мы подробно остановимся на всех основных элементах архитектуры постреляционной СУБД Cache.

Cache — кроссплатформенная система. Cache поддерживает следующие операционные системы: всю линейку Windows, Linux, основные реализации Unix и Open VMS. Планируется поддержка новых реализаций Unix. Большое внимание уделяется новой платформе Itanium.

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

В отличие от ранних многомерных СУБД, которые были оптимизированы для создания аналитических систем, Cache ориентирована на системы обработки транзакций (Online Transaction Processing). Сервер многомерных данных Cache предназначен для обработки транзакций в системах с большими и сверхбольшими БД (сотни гигабайт, терабайты) и большим количеством одновременно работающих пользователей. Сервер многомерных данных Cache позволяет разработчикам получить великолепную производительность, отказавшись от хранения избыточных данных и таблиц. Реляционная модель не всегда подходит для описания сложных предметных областей. Транзакционная модель данных Cache позволяет оптимизировать данные на уровне хранения, поддерживать объектную модель и сложные типы данных. Все эти возможности значительно упрощают создание сложных систем.

Рисунок 1. Архитектура постреляционной СУБД Cache

В Cache реализована концепция Единой архитектуры данных. К одним и тем же данным, хранящимся под управлением Сервера многомерных данных Cache есть три способа доступа: прямой, объектный и реляционный:

Как уже отмечалось, разработчик имеет три способа доступа к одним и тем же данным. Как только определяется класс объектов, Cache автоматически генерирует реляционное описание этих данных так, что к ним можно обращаться, используя SQL. Подобным же образом, при импорте в словарь данных DDL-описания реляционной базы данных, Cache автоматически генерирует реляционное и объектное описание данных, открывая тем самым доступ к данным как к объектам. При этом все описания данных ведутся согласованно, все операции по редактированию проводятся только над одним экземпляром данных. Кроме этого программист может обратиться к тем же данным с помощью прямого доступа.

Рисунок 2. Концепция Единой архитектуры данных Cache

Cache позволяет комбинировать три типа доступа, оставляя разработчику свободу выбора. Например, при реализации промышленной информационной системы объектный доступ может использоваться при описании бизнес-логики приложения и создания пользовательского интерфейса с помощью объектно-ориентированных средств разработки (VB, Delphi, C++), реляционный доступ — для совместимости с другими системами и интеграции с инструментами построения отчетов и аналитической обработки данных (Seagate Info, Cognos, Business Objects). Прямой доступ обеспечивает максимальную производительность и может быть использован для реализации таких операций, в которых применение обычных хранимых процедур, основанных на SQL, не может обеспечить необходимую производительность. Использование прямого доступа для реализации подобных операций позволяет увеличить производительность на 1-2 порядка.

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

Кроме этого, можно провести реинжениринг системы. Существует возможность значительно увеличить производительность системы, используя полную поддержку Cache объектно-ориентированных технологий. При этом можно изменять и структуру базы, и способ работы с Cache из клиентской части приложения.

Для реализации бизнес-логики БД в СУБД Cache используется Cache Object Script. COS — полнофункциональный язык, который имеет все необходимые механизмы для работы с данными с помощью любого способа доступа. С помощью COS разработчик создает методы классов, триггеры, хранимые процедуры, различные служебные программы. В настоящее время ведется работа над созданием еще одного языка описания бизнес-логики — Бейсика. Использование Бейсика позволит облегчить изучение Cache большому количеству программистов, владеющих этим широко распространенным языком.

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

Во-первых, стоит отметить интерфейсы со средствами проектирования и разработки приложений. Специальные компоненты Cache позволяют проектировать приложения в Rational Rose при объектном подходе, и в ErWin — при реляционном.

Разработчик может реализовывать приложения клиент-сервер, используя практически все средства разработки. При этом он может использовать специальные интерфейсы для прямого и объектного доступа, а стандартные (ODBC, JDBC) — для реляционного. Особый интерес представляет работа с помощью объектного способа доступа в объектно-ориентированных средствах разработки: разработчик работает с классами объектов Cache, обращаясь к их свойствам и выполняя методы классов, так же как и с собственными объектами языка программирования.

Кроме этого, поддерживаются следующие интерфейсы: Native C++, Java, EJB, ActiveX, XML, интерфейсы CallIn и CallOut .

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

В Cache реализована полноценная поддержка XML. Cache не хранит XML-документы в текстовых файлах, Memo-полях или реляционных таблицах. Полная поддержка Cache объектной модели позволяет автоматически трансформировать сложные XML-документы в классы объектов Cache. Из описания классов объектов Cache можно получить DTD, а сами объекты Cache проецируются в XML-документы. Для создания собственного импорта XML можно воспользоваться SAX-парсером. С помощью Cache Server Pages, Web-технологии компании InterSystems, можно генерировать не только HTML страницы, но и страницы с XML-содержанием.

Таким образом, появляется возможность использовать XML с Cache как для обмена информацией между различными информационными системами, так и для реализаций приложений электронной и мобильной коммерции (WAP).

Хотелось бы также подробнее остановится на возможностях разработки Web-приложений в Cache. Cache Server Pages — объектная Web-технология Cache, позволяющая использовать производительность и масштабируемость СУБД Cache для быстрого создания сложных Intranet- и Internet-приложений, взаимодействующих с БД. При разработке Web-приложений, Cache является не только СУБД, но и Сервером Приложений. В Cache хранятся классы, соответствующие CSP-страницам, и при обращении к CSP-странице выполняются методы, генерирующие HTML или XML. Технология Cache Server Pages — обеспечивает обмен данными между постреляционной СУБД Cache и Web-сервером, используя стандартные интерфейсы. Такая архитектура позволяет создавать высокопроизводительные, масштабируемые Internet- или Intranet-приложения, так как, во-первых, данные хранятся очень близко к Web-приложению (данные из БД передаются в приложение через высокопроизводительные внутренние интерфейсы, а не через ODBC или JDBC), и, во-вторых, относительно небольшая нагрузка на Web-сервер (Web-сервер только перенаправляет запросы пользователей на Сервер приложений Cache) и высокая производительность СУБД Cache позволяет обрабатывать запросы большого количества пользователей.

Процесс разработки выглядит следующим образом, дизайнеры занимаются внешним видом Web-приложения, а разработчики с помощью готовых инструментов разработки Web-страниц (например, Macromedia Dreamweaver) или любого текстового редактора дополняют Web-страницы необходимой функциональностью. Для разработки CSP-страниц используются стандартные таги HTML, а также набор дополнительных CSP-тагов и атрибутов для реализации циклов, условий, связывания объектов Cache и формы CSP-страницы, управления данными и т.д. Существует возможность разрабатывать собственные таги приложений (Cache Application Tags). Cache Server Pages позволяет разработчику использовать для создания методов Cache Object Script, Java и VB script. Механизмы наследования CSP-страниц (CSP — объектно-ориентированная технология, где все CSP-страницы — классы) и собственные таги Cache обеспечивают возможность повторного использования кода и совместной разработки: например, часть разработчиков будут создавать таги приложений, а другие — использовать созданные таги для конструирования сложных Web-приложений. Такие возможности как поддержка сессии, Гипер-события (изменение содержимого Web-страницы без её перезагрузки), собственные таги позволяют быстро разрабатывать Web-приложения, которые по функциональности ничем не уступают традиционным приложениям «клиент-сервер».

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

Разработчики крупных приложений (банковские системы, автоматизированные системы расчетов, системы управления предприятием) предпочитают использовать промышленные СУБД. Cache обладает всеми характеристиками промышленной системы: высокой производительностью, надежностью, масштабируемостью, открытостью и переносимостью. Ядро Cache — высокопроизводительный Сервер многомерных данных, ориентированный на обработку транзакций. Для обеспечения надежности в Cache предусмотрены такие механизмы как журнал до и после записи, теневой сервер, репликация, «горячее» резервное копирование и т.д. Протокол Распределенного Кэша — позволяет строить действительно масштабируемые решения на базе Cache. Протокол Распределенного Кэша (Cache Distibuted Cache Protocol) — уникальная сетевая технологи фирмы InterSystems, которая распределяет базу данных по сети в зависимости от работы приложений, оптимизируя производительность и пропускную способность сети. Cache — «открытая» система, поддерживается множество интерфейсов к средствам проектирования и разработки приложений. Cache работает практически на всех популярных платформах с наиболее распространенными Web-серверами. При этом обеспечивается полная переносимость приложений с платформы на платформу.

Еще один важный показатель как для производителя, так и для потребителя системы на базе СУБД — стоимость решения. Этот показатель складывается из стоимости разработанной системы, стоимости аппаратного обеспечения, на котором будет работать система, СУБД, стоимости внедрения и сопровождения. Решения на базе постреляционной СУБД Cache выигрывают по стоимости у конкурентов по всем показателям. Разработчик может быстро и качественно создать систему на базе Cache за счет поддержки объектно-ориентированного подхода и интеграции со средствами проектирования и разработки, СУБД менее требовательна к аппаратному обеспечению: нужной производительности можно добиться на более дешевом сервере, гибкая лицензионная политика позволит снизить стоимость самой СУБД. Решения на базе СУБД легче сопровождать — система очень надежна и не требует сложного администрирования, кроме этого прекрасно работают и мировой, и российский центр технической поддержки.

Один из партнеров InterSystems — разработчик АСР для операторов сотовой связи выиграл тендер у конкурентов, которые предлагали решение на Oracle, после того как был выполнен пилотный проект. В этом проекте в Cache и Oracle были загружены данные о звонках, и измерялась скорость закрытия периода для загруженных тестовых данных. Хранимая процедура на Cache работала 40 минут, на Oracle — 2 часа. При этом Cache работала на сервере стоимостью 5 тысяч $, а Oracle на сервере Sun за 50 тысяч $.

Таким образом, решения на базе Cache позволяют разработчикам ПО получить дополнительную прибыль от разработки, а потребителям — получить высокопроизводительные решения, сэкономив на приобретении и эксплуатации приложения.

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

Литература

  1. Материалы сайта InterSystems Corporation www.intersystems.ru.

  2. Кирстен В., Ирингер И., Рёриг Б., Шульте П. СУБД Cache: объектно-ориентированная разработка приложений. — СПб, «Питер», 2001.

  3. Кречетов Н., Петухова Е., Скворцов В., Умников А., Щукин Б. Постреляционная технология Cache для реализации объектных приложений. –М, МИФИ, 2001

  4. Материалы Конференция разработчиков “Cache — Промышленные информационные технологии“ www.itfond.ru .

В.А. Федоров,
консультант по продуктам,
InterSystems Corp.



Copyright © 1994-2016 ООО "К-Пресс"