В конце 1997 года компания InterSystems Corp.
выпустила постреляционную СУБД Cache'. Компания и раньше занималась
системами управления базами данных, в России активно использовались и
продолжают использоваться предшественники Cache': MSM, DTM, ISM. За 6
лет вышло несколько версий СУБД Cache', в настоящий момент компания
предлагает Cache' 5.0.
Cache' 5.0 – высокопроизводительная промышленная СУБД,
интегрированная с технологией разработки Web-приложений - Cache' Server
Pages.
СУБД Cache' относится к постреляционным СУБД. Термин
“постреляционная СУБД” обозначает принадлежность Cache' к СУБД нового
поколения. Имеется в виду не столько аспект времени (Cache' появилась
после своих основных реляционных конкурентов), сколько ряд
технологических преимуществ: единая архитектура данных и полная
поддержка Cache' объектно-ориентированных технологий, о которых будет
подробно рассказано ниже.
На рисунке 1 изображено взаимодействие основных элементов
архитектуры СУБД Cache': платформы, на которых работает Cache', Сервер
многомерных данных, три способа доступа к данным, языки реализации
бизнес-логики Cache' ObjectScript и Cache' Basic, интерфейсы к
средствам проектирования и разработки приложений и технология
разработки 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' позволяет оптимизировать
данные на уровне хранения, поддерживать объектную модель и сложные типы
данных. Все эти возможности значительно упрощают создание сложных
систем.
В Cache' реализована концепция Единой архитектуры данных. К
одним и тем же данным, хранящимся под управлением Сервера многомерных
данных Cache' есть три способа доступа: прямой, объектный и реляционный:
- Cache' Direct Access - прямой доступ к
данным, обеспечивает максимальную производительность и полный контроль
со стороны программиста. Разработчики приложений получают возможность
работать напрямую со структурами хранения. Использование этого типа
доступа накладывает определенные требования на квалификацию
разработчиков, но понимание структуры хранения данных в Cache'
позволяет оптимизировать хранение данных приложения и создавать
сверхбыстрые алгоритмы обработки данных.
- Cache' SQL - реляционный доступ,
обеспечивающий максимальную производительность реляционных приложений с
использованием встроенного SQL. Cache' SQL соответствует стандарту SQL
92. Кроме этого, разработчик может использовать разные типы триггеров и
хранимых процедур. Все это позволяет Cache' успешно конкурировать с
реляционными СУБД. Даже без использования прямого и объектного доступа
приложения на Cache' работают быстрее за счет высокой
производительности Сервера многомерных данных.
- Cache' Objects - объектный доступ, для
максимальной продуктивности разработки при использовании Java, EJB,
C++, а также VB и других ActiveX-совместимых средств разработки, таких
как PowerBuilder и Delphi. В Cache' реализована объектная модель в
соответствии с рекомендациями ODMG (Группа управления объектными базами
данных – Object Database Management Group). В Cache' полностью
поддерживаются наследование (в том числе и множественное), инкапсуляция
и полиморфизм. При создании информационной системы разработчик получает
возможность использовать объектно-ориентированный подход к разработке,
моделируя предметную область в виде совокупности классов объектов, в
которых хранятся данные (свойства классов) и поведение классов (методы
классов). Cache', поддерживая объектную модель данных, позволяет
естественным образом использовать объектно-ориентированный подход как
при проектировании (в Rational Rose) предметной области, так и при
реализации приложений в ОО-средствах разработки (Java, C++, Delphi,
VB). Постреляционная СУБД Cache' конкурирует с объектными СУБД,
значительно превосходя их по таким показателям как надежность,
производительность и удобство разработки.
Как уже отмечалось, разработчик имеет три способа доступа к одним и
тем же данным. Как только определяется класс объектов, Cache'
автоматически генерирует реляционное описание этих данных так, что к
ним можно обращаться, используя SQL. Подобным же образом, при импорте в
словарь данных DDL-описания реляционной базы данных, 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' Object
Script есть еще один язык реализации бизнес-логики – Cache' Basic.
Использование Cache' Basic позволит облегчить изучение 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' предусмотрены такие механизмы как журнал до и после записи,
теневой сервер, репликация, “горячее” резервное копирование и т.д.
Enterprise Cache Protocol (ECP) – позволяет строить действительно
масштабируемые решения на базе Cache'. Enterprise 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-приложений, позволяет быстро создавать надежные
высокопроизводительные решения.