В конце 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-приложений, позволяет быстро создавать надежные высокопроизводительные решения.