Олег Сиротюк,
инженер по контролю качества
InterSystems corporation.
Объектно-ориентированные базы данных (ООБД) по сравнению с традиционными (например, реляционными) БД обеспечивают следующие преимущества: во-первых, в таких БД хранятся не только данные, но и методы их обработки, инкапсулированные в одном объекте; во-вторых, ООБД позволяют обрабатывать мультимедийные данные; в-третьих, ООБД допускают работу на высоком уровне абстракции; в-четвертых, ООБД позволяют пользователям создавать структуры данных любой сложности.
При всех достоинствах современной объектной технологии разработки баз данных имеется несколько препятствий, которые удерживают разработчиков от принятия решения о переходе с реляционной технологии на объектную. Основным препятствием является значительный объем разработок, опирающихся на реляционные СУБД. Ведь при переходе на объектную технологию необходимо многое начинать "с нуля", и поэтому возникает вопрос целесообразности такого перехода. Кроме того, объектная технология, поддерживаемая в ряде постреляционных СУБД, не имеет развитого и стандартизированного языка генерации отчетов и анализа данных, каким является структурированный язык запросов SQL. Данные проблемы были решены при создании постреляционной СУБД Cache' от InterSystems (www.intersystems.ru). СУБД Cache' обеспечивает не только реализацию основных возможностей объектно-ориентированной технологии, но и позволяет во многом облегчить переход с реляционной технологии на объектную, а также может выступать в роле шлюза к реляционным базам данных.
Отличительной особенностью СУБД Cache' является независимость хранения данных от способа их представления, что реализуется с помощью, так называемой, единой архитектуры данных Cache'. В рамках данной архитектуры существует единое описание объектов и таблиц, отображаемых непосредственно в многомерные структуры ядра базы данных, ориентированных на обработку транзакций [1]. Как только определяется класс объектов, Cache' автоматически генерирует реляционное описание данных этого класса в формате SQL. Подобным же образом, как только в Словарь данных поступает DDL-описание в формате реляционной базы данных, Cache' автоматически генерирует реляционное и объектное описание данных, устанавливая тем самым доступ в формате объектов. При этом все описания ведутся согласованно, все операции по редактированию проводятся только с одним описанием данных. Это позволяет сократить время разработки, сэкономить вычислительные ресурсы и приложения будут работать значительно быстрее.
БД Cache' была первой базой данной, предназначенной для работы в сети Internet/Intranet. В версии Cache' 4.0. реализована технология создания динамических web-приложений Cache' Server Pages (CSP), которая пришла на смену технологии Weblink предыдущих версий Cache'. Кроме этого, системная библиотека %Net предоставляет классы, реализующие протоколы SMTP, POP3, HTTP, FTP и др.
В статье рассмотрены основные компоненты, функциональные возможности и характеристики СУБД Cache'.
На рис. 1. представлена архитектура Cache'.
Рис.1. Архитектура системы Cache'.
Основными компонентами СУБД Cache' являются следующие:
Рассмотрим подробнее назначение и функциональные возможности основных компонентов системы.
Данные в Cache' хранятся в виде разреженных массивов, носящих название глобалей. Количество индексов массива может быть произвольным, что позволяет описывать и хранить структуры данных произвольного уровня сложности. Индексы глобалей не типизированы, т.е. они могут быть любого литерального типа данных. Например, с помощью следующей глобали можно описать количество машин Mercedes SL600 черного цвета на складе:
^car("Mercedes","SL600","black")=10
Немного усложняя приведенную структуру описания данных, можно определить все доступные цвета для Mercedes SL600:
^car("Mercedes","SL600","colors")=3 ^car("Mercedes","SL600" ,"colors",1)="black" ^car("Mercedes","SL600" ,"colors",2)="blue" ^car("Mercedes","SL600" ,"colors",3)="white"
Применение разреженных массивов позволяет оптимизировать использование объема жесткого диска и сократить время, требуемое на выполнение I/O операций и извлечение данных.
В СУБД Cache' реализована развитая технология обработки транзакций и разрешения конфликтов. Блокировка данных производится на логическом уровне. Это позволяет учитывать особенность многих транзакций, производящих изменения небольшого объема информации. Кроме этого, в Cache' реализованы атомарные операции добавления и удаления без проведения блокировки, в частности, это применяется для счетчика ID объектов в базе данных.
Объектная модель Cache' соответствует объектной модели стандарта ODMG (Object Data Management Group). В соответствии с ODMG каждый объект Cache' имеет определенный, единственный тип. Поведение объекта определяется операциями (методами), а состояние объекта - значениями его свойств. Свойства и операции составляют характеристики типа. Тип определяется одним интерфейсом, которому может соответствовать одна или большее число реализаций [2]. Объектная модель Cache' представлена на рис. 2.
В соответствии со стандартом в Cache' реализовано два типа классов:
Классы типов данных определяют допустимые значения констант (литералов) и позволяют их контролировать. Литерал не может существовать независимо от своего значения, в то время как объекты имеют уникальную идентификацию.
Классы типов данных подразделяется на два подкласса типов:
Атомарными литеральными типами в Cache' являются традиционные скалярные типы данных (%String, %Integer, %Float, %Date и др.). В Cache' реализованы две структуры классов типов данных - список и массив. Каждый литерал уникально идентифицируется индексом в массиве и порядковым номером в списке.
Рис.2. Объектная модель Cache'
Различают два подтипа классов объектов - зарегистрированные и незарегистрированные. Зарегистрированные классы обладают предопределенным поведением, т.е. набором методов, наследуемых из системного класса %RegisteredObject и отвечающих за создание новых объектов и за управление размещением объектов в памяти. Незарегистрированные классы не обладают предопределенным поведением, разработка функций (методов) класса целиком и полностью возлагается на разработчика.
Зарегистрированные классы могут быть двух типов - встраиваемые и хранимые. Встраиваемые классы наследуют свое поведение от системного класса %SerialObject. Основной особенностью хранения встраиваемого класса является то, что объекты встраиваемых классов существуют в памяти как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроены в другой класс.
Основным преимуществом использования встроенных классов является минимум издержек, связанных с возможным в будущем изменением набора одинаковых свойств классов, представленных в виде встраиваемого объекта.
Хранимые классы наследуют свое поведение от системного класса %Persistent. %Persistent предоставляет обширный набор функций своим наследникам, включающий: создание объекта, подкачку объекта из БД в память, удаление объекта и т.п. Каждый экземпляр хранимого класса имеет 2 уникальных идентификатора - OID и OREF. OID (object ID) характеризует объект, записанный в БД, т.е. на физическом носителе, а OREF (object reference) характеризует объект, который был подкачен из БД и находится в памяти.
Объектная модель Cache' в полном объеме поддерживает все основные концепции объектной технологии:
Класс объектов в Cache' хранится в двух формах:
СУБД Cache' является уникальной системой. Наряду с реализацией в полном объеме основных принципов объектной технологии в СУБД Cache' поддерживается также структурированный язык запросов SQL для обеспечения выполнения запросов по стандарту, поддерживаемому многими инструментальными средствами. Кроме этого, с помощью единой архитектуры данных Cache' возможно автоматическое преобразование реляционных таблиц в классы объектов. При этом, при поступлении на сервер Cache' SQL DDL-описания реляционной таблицы Cache' автоматически преобразует DDL-описание во внутреннюю структуру хранения данных и сохраняет полученную структуру в словаре данных. Затем с помощью поставляемых в стандартной комплектации Java- или ODBC- драйверов производится импорт данных из реляционных таблиц в многомерные структуры ядра Cache'. После чего Cache' предоставляет возможность работы с данными, как в виде реляционных таблиц, так и в виде классов объектов. Таким образом, при переходе с реляционной технологии на объектную технологию разработка не начинается с "нуля" - многое уже сделано Cache' автоматически.
Классы Cache' также могут быть представлены в виде реляционных таблиц, причем соотношение между разнообразными понятиями объектного и реляционного подходов представлены ниже:
Объектное понятие | Реляционное понятие |
---|---|
Класс | Таблица |
Экземпляр | Строка |
Идентификатор объекта (OID) | ID-столбец в виде первичного ключа |
Свойство-константа | Столбец |
Ссылка на хранимый объект | Внешний ключ |
Встраиваемый объект | Индивидуальные столбцы |
Коллекция-список | Столбец с полем-списком |
Коллекция-массив | Подтаблица |
Поток данных | BLOB |
Индекс | Индекс |
Запрос | Хранимая процедура или представление |
Метод класса | Хранимая процедура |
Отметим, что в таблице не обозначены понятия параметров класса, многомерных свойств и методов объекта, так как в реляционной технологии им нет аналогов. Дополнительно к объектным понятиям в Cache' поддерживаются еще и триггеры, присутствующие в реляционном представлении.
Доступ к данным с использованием языка SQL продолжает играть важную роль, т.к. многие существующие приложения и инструменты используют SQL в качестве языка запросов. СУБД Cache' поддерживает все элементы ANSI-стандартов, реализованных для SQL и SQL-92.
Для облегчения разработки прикладных систем баз данных, Cache' поддерживает встраивание SQL в методы и программы. Встроенный SQL может быть использован для решения следующих задач:
Пример использования встроенного SQL запроса:
new id, Surname set Surname="Ivanov" &sql(SELECT Id into :id FROM Person where Surname=:Surname)
Приведенный код ищет по полю Surname таблицы Person поле со значением Ivanov и сохраняет найденный OID объекта в локальной переменной id. Пример демонстрирует случай использования встроенного SQL-запроса, не основанного на курсоре. В данном случае запрос всегда возвращает только одну строку.
Если же необходимо получить несколько строк из результирующей выборки запроса необходимо использовать SQL, основанный на курсоре. Курсор в данном случае является указателем на одну строку и при проведении операции FETCH курсор передвигается к следующей строке.
Использование курсора предполагает выполнение следующей последовательности операций:
Пример использование курсора в SQL-запросах:
&sql(DECLARE PersCur CURSOR FOR SELECT Surname, DateOfBirth FROM Person, WHERE Surname="Ivanov") &sql(OPEN PersCur) &sql(FETCH PersCur INTO :surname, :DateOB) &sql(CLOSE PersCur)
В приведенном примере создается курсор PersCur на SQL-запрос SELECT, после чего определенный курсор открывается, а затем с помощью команды FETCH производится последовательное сканирование результатов выборки и в локальных переменных surname и DateOB сохраняются соответствующие значения полей Surname и DateOfBirth таблицы Person. После этого курсор закрывается.
С помощью сервера Cache' Direct разработчик получает доступ к многомерным структурам ядра системы. Встроенный в СУБД Cache' язык программирования COS предоставляет ряд функций для работы с массивами данных или глобалями, составляющими ядро системы. Использование прямого доступа к данным позволяет оптимизировать время доступа к данным. Для прямого доступа и работы с многомерными структурами ядра системы можно воспользоваться утилитой эмуляции ASCII-терминала Cache' Terminal, которая обычно используется для целей обучения языку COS и тестирования работы терминального приложения (рис.3).
Рис.3. Cache' Terminal
В стандартной поставке системы разработчику предлагается два средства администрирования Cache':
С помощью Configuration Manager можно выполнить следующие функции администрирования:
Утилита Control Panel предоставляет схожий набор функций администрирования и добавляет следующие новые:
В СУБД Cache' реализован собственный язык программирования Cache' Object Script (COS). COS - это расширенная и переработанная версия языка программирования M (ANSI MUMPS).
В первую очередь, COS предназначен для написания исходного кода методов класса. Кроме этого, в Cache' вводится понятие Cache'-программы. Cache'-программа не является составной частью классов и предназначена для написания прикладного программного обеспечения для текстовых терминальных систем.
Для создания Cache'-программ и классов Cache' предназначены утилиты Cache' Studio и Cache' Architect.
Рис.4. Cache' Studio.
С помощью утилиты Cache' Studio можно создавать Cache'-программы. Внешний вид утилиты приведен на рис.4. Для удобства пользователя в Cache' Studio реализована контекстная подцветка команд, функций и операторов COS.
Рис.5. Cache' Architect.
Утилита Cache' Architect предназначена для работы с классами Cache'. Разработчику предоставляется ряд мастеров (wizard), для создания новых и редактирования параметров существующих классов, методов, свойств и др. компонент классов Cache'. Внешний вид утилиты Cache' Architect приведен на рис.5.
Для доступа к многомерным структурам ядра СУБД Cache' можно воспользоваться утилитой Cache' Explorer. Утилита Cache' Explorer предоставляет ряд интерфейсов для просмотра, импорта/экспорта, печати на принтер и др. глобалей, классов Cache', программ Cache'. Внешний вид утилиты приведен на рис. 6.
Рис.6. Cache' Explorer.
Основой концепции серверных страниц Cache' является автоматическое создание по запросу пользователя web-страниц, содержащих требуемую информацию из БД Cache'. Как видно из рис. 7., вся бизнес-логика CSP-приложений выполняется в непосредственной близости к хранилищу данных Cache', таким образом сокращается объем данных, которыми обмениваются web-сервер и сервер БД Cache', что приводит к выигрышу в производительности по сравнению с другими технологиями создания web-приложений. Для еще большего увеличения производительности CSP приложений при обмене данными между сервером Cache' и web-сервером используются высокоскоростные интерфейсы API.
Рис.7. Сравнение web-технологий.
Серверные страницы Cache' представляют собой текстовые HTML-файлы, расширяемые тегами приложений Cache' (Cache' Application Tags или CATs). Для создания CSP приложений можно воспользоваться стандартными средствами разработки HTML страниц (Cache' предоставляет add-in модуль для полной интеграции с Macromedia DreamWeaver) или, на крайний случай, обыкновенным текстовым редактором.
В Листинге 1 приведен пример небольшого CSP-приложения, которое выводит значения свойств объекта, хранящегося в БД Cache'.
Листинг 1.
<html> <head></head> <body> <script language="Cache'" runat="Server"> set obj=##class(Sample.Person).%OpenId(1) write obj.Name,"<br>" write obj.Age,"<br>" do obj.%Close() </script> </body> </html>
Стандартные теги приложений Cache' приведены в Таблице 1. Однако пользователь не ограничен только стандартными тегами. Cache' предоставляет также интерфейсы для создания пользовательских тегов приложений.
Таблица 1. Стандартные теги CSP.
Вставка данных: | |
---|---|
#(а)# | Вывод значения переменной/функции/метода |
##(a)## | тоже, но во время компиляции |
Управление | |
<CSP:IF CONDITION='a=1'> <b>Unautorized!!!</b> </CSP:IF> | Условие |
<CSP:WHILE …> <CSP:LOOP …> | Циклы |
Использование Cache' Script | |
<SCRIPT Language="Cache'" RUNAT="Server/Compiler"> …. </SCRIPT> | Скрипт внутри страницы |
<SCRIPT Method=methodName Arguments=spec [ReturnType=dataType]>Inner Text</SCRIPT> | Метод CSP класса |
Запросы к БД | |
<CSP:QUERY …> <CSP:SEARCH …> <SCRIPT LANGUAGE="SQL" …> | Запрос класса Поисковая форма SQL-запрос |
Привязка объекта к форме | |
<CSP:OBJECT …> <FORM CspBind="obj" …> <INPUT CspBind="obj.Name" …> | Открытие объекта Привязка объекта к форме Привязка свойства к полю |
Управление параметрами класса | |
<CSP:CLASS [Encoded=encodedType] [Private=accessType] [Super=classList] …> | Определение родительских классов, режима шифрования и пр. |
При открытии CSP-страницы в браузере Cache' автоматически преобразует CSP-страницу в класс Cache' (по умолчанию классом-предком для CSP-классов является системный класс %CSP.Page). CSP-класс - это не просто способ представления кода. Это отражение полноценной объектной модели CSP-приложения. Т.е. можно использовать все преимущества объектного подхода к разработке при работе с CSP, такие как наследование и полиморфизм.
После преобразования CSP-страницы в класс Cache' класс можно редактировать, используя возможности Object Architect, например, возможность контекстной подцветки кода методов.
Для изучения CSP можно воспользоваться примерами, поставляемыми в стандартной комплектации Cache'. Для этого необходимо установить Cache' и в браузере обратиться по адресу http://127.0.0.1:1972/csp/samples/menu.csp:
С помощью классов %Net.SMTP и %Net.POP3 системной библиотеки %Net, поставляемой в стандартной конфигурации, можно реализовать функции отправки и приема электронных писем на базе СУБД Cache'.
В Листинге 2 приведена Cache'-программа, с помощью которой реализуется отправка электронного письма с прикрепленным графическим файлом (test.jpg) по протоколу SMTP.
Листинг 2.
set s=##class(%Net.SMTP).%New() set s.smtpserver="SMTP.mail.ru" set s.timezone="-0400" set m=##class(%Net.MailMessage).%New() set m.From="test@company.com" do m.To.Insert("receiver@another.com") set m.Subject="Sent by Cache'' mail" set m.Charset="iso-8859-1" do m.TextData.Write("This is the main body.") do m.TextData.Write($char(13,10)) do m.TextData.Write("This is the second line.") do m.TextData.Write($char(13,10)) set status=m.AttachFile("c:\winnt","test.jpg") set status=s.Send(m) do m.%Close() do s.%Close() quit
Класс %Net.SMTP поддерживает также отправку сборных (multi-part) электронных писем.
Для реализации функции приема электронных писем можно воспользоваться системным классом %Net.POP3. В листинге 3 приведен пример использования класса %Net.POP3.
Листинг 3.
new mailserver,status,from,to,date,subject,messagesize,m,hdrs,key,mailMsg set mailserver=##class(%Net.POP3).%New() set mailserver.AttachDir="d:\attach\" ; need terminating \ set mailserver.Debug=0 set mailserver.StoreAttachToFile=1 write !,"Calling Connect" set status=mailserver.Connect("moon.kinich.com","testjsl","jsltest") write !,"Calling FetchMessage" set status=mailserver.FetchMessage(13,.from,.to,.date, .subject,.messagesize,.hdrs,.mailMsg,0) write !,"from="_from write !,"to="_to write !,"date="_date write !,"subject="_subject write !,"messagesize="_messagesize write !,"Closing mailserver="_mailserver.%Close() write !,"Closing mailMsg="_mailMsg.%Close() quit
Последними версиями СУБД Cache' являются версии 4.0 и 4.1.1. На рынке высокопроизводительных СУБД Cache' позиционируется как eDBMS, т.е. как СУБД, ориентированная на работу в сетях Internet/Intranet. Разработчику предоставляется обширный набор функций, реализующих большинство стандартных протоколов Internet, таких как SMTP, HTTP, POP3 и др. Кроме этого, разработчику предоставляется развитая технология разработки динамических web-приложений CSP. Поэтому при установке проверяется наличие web-сервера и производится автоматическое конфигурирование подсистемы.
Утилиты администрирования и инструментарий разработки приложений в версиях 4.0. и 4.1.1. не отличаются, однако имеются существенные различия в формате хранения данных на диске и использовании ОЗУ компьютера временными библиотеками. Так, к примеру, в версии 4.1.1 блок данных, который считывается с диска, может быть равным 8 КБ, в то время, как в версии 4.0. максимальный размер блока равен 2КБ. Разумеется, при считывании блоков данных большего размера с жесткого диска сокращается количество I/O операций, что приводит к повышению производительности системы. Кроме этого, в версии 4.1.1. произведена оптимизация функций журналирования, использования блокировок и других функций.
Описание поддерживаемых СУБД Cache' платформ, языков, web-серверов и браузеров для Cache' версии 4.1.1. приводится в последующих таблицах.
Таблица 2. Поддерживаемые платформы.
Платформа | Операционная система | Unicode | ODBC | SQL Шлюз | Notes |
---|---|---|---|---|---|
Alpha | OpenVMS 7.2, 7.3 | + | |||
Alpha | Tru64 UNIX 5.1 | + | |||
HP | HP/UX 11i | ||||
IBM P Series | AIX 4.3.3, 5.1 | + | |||
Red Hat Linux (Intel) | 7.1 | + | + | ||
Sun Solaris (SPARC) | 2.8 | + | 64-bit only | ||
SuSE Linux (Intel) | 7.1 | + | + | ||
Windows 95, 98, ME, NT 4 (SP4, SP5, SP6), 2000 | + | + | + |
СУБД Cache' поддерживает множество национальных языков (Таблица 3.). Кроме поддержки языков, специальная утилита CNLS позволяет создавать собственные таблицы трансляции из одного набора символов в другой, задавать различные способы вывода непечатных символов и предоставляет ряд других возможностей. При инсталляции под ОС Windows Cache' автоматически определяет региональные настройки операционной системы и устанавливает соответствующую схему локализации. Также предоставляется возможность установки Unicode (16bit) версии Cache'.
Таблица 3. Поддерживаемые национальные языки.
Язык | 8-Bit набор символов | Локализация утилит |
---|---|---|
Чешский | Latin 2 | - |
Голландский | Latin 1 | + |
Английский | Latin 1 | + |
Французский | Latin 1 | + |
Немецкий | Latin 1 | + |
Греческий | Latin G | - |
Иврит | Latin H | - |
Итальянский | Latin 1 | + |
Японский | N/A | + |
Корейский | N/A | + |
Польский | Latin 2 | - |
Португальский | Latin 1 | + |
Русский | Latin C | + |
Испанский | Latin 1 | + |
Для русского языка поддерживаются обе таблицы кодировок: Windows-1251 и ISO 8859-5.
СУБД Cache' поддерживает архитектуру, в которой web-сервер и сервер БД могут находиться на разных компьютерах.
Таблица 4. Поддерживаемые Web-серверы
Web-сервер | Платформа |
---|---|
Microsoft IIS / PWS | Windows 95, 98, NT, 2000 |
Apache 1.3.12 | Alpha Tru64 UNIX FreeBSD (Intel) HP HP/UX IBM PowerPC AIX Red Hat Linux (Intel) Sun Solaris (SPARC) SuSE Linux (Intel) TurboLinux (Intel) Windows |
Netscape / Sun iPlanet 4.0 | Alpha Tru64 UNIX HP HP/UX IBM PowerPC AIX Red Hat Linux (Intel) Sun Solaris (SPARC) |
Compaq Secure Web Server 1.0 | Alpha OpenVMS 7.3 |
CSP поддерживает следующие браузеры:
Таблица 5. Поддерживаемые браузеры.
Web браузер | Версия |
---|---|
Netscape | 3.0 4.0 4.7 |
Internet Explorer | 4.0 5.0 5.5 6.0 |
Как было сказано ранее, Cache' может выступать в роли шлюза к реляционным базам данных (РБД). Официально поддерживаются следующие РБД:
Таблица 6. Поддерживаемые РБД.
РБД | Версия |
---|---|
Microsoft SQL Server | 7.0 2000 |
Oracle | 8 9i |
При инсталляции Cache' происходит автоматическая проверка настроек операционной системы и производится необходимое конфигурирование ресурсов. Так, к примеру, производится автоматическое определение web-сервера, конфигурирование CSP-компонентов и создание необходимых виртуальных директорий.
Минимальные требования к аппаратному обеспечению для работы под ОС Windows:
Наличие Web-сервера не обязательно. Для тестирования CSP-приложений можно воспользоваться встроенным в СУБД Cache' web-сервером (по умолчанию порт 1972). Однако использование встроенного web-сервера для реальной работы не рекомендуется.
При установке Cache' под Windows-платформами предоставляется возможность выбора одного из следующих вариантов установки:
После выбора варианта установки программа инсталляции Cache' запрашивает информацию о размерности кодировки - 8-битовая или Unicode (16 бит). Выбор кодировки целиком и полностью зависит от требований разработчика, однако следует помнить, что Cache' автоматически произведет конвертацию из 8-битовой БД в Unicode БД, однако обратную конвертацию придется производить вручную.
После успешной установки Cache' на панели задач MS Windows появится иконка Cache'-куба . С помощью меню, раскрываемого нажатием правой кнопки мыши на Cache'-кубе, можно получить доступ ко всем утилитам СУБД Cache':
Рис.8. Меню Cache'-куба
В статье описана лишь малая часть того, что реализовано в Cache'. Кроме описанных интерфейсов, Cache' предоставляет ODBC- и JDBC-драйверы для представления данных из СУБД Cache' в виде реляционных таблиц и работы с ними.
СУБД Cache' предоставляет стандартные ActiveX-компоненты, которыми можно воспользоваться при создании пользовательского приложения в среде Visual Basic. Кроме этого, предоставляется мастер создания форм Cache' Form Wizard для облегчения разработки пользовательских форм в среде Visual Basic.
В Cache' реализованы интерфейсы CALLIN/CALLOUT, предназначенные для прямого вызова функций СУБД Cache' из С-программ и вызова функций операционной системы из Cache', Также предоставляется интерфейс для работы с функциями DLL- библиотек.
Cache' предоставляет модуль интеграции со средой проектирования информационных систем Rational Rose. При этом UML-диаграмму классов можно экспортировать напрямую в БД Cache', причем классы, а также типы данных свойств на диаграмме будут полностью соответствовать созданным классам и свойствам классов Cache'.
Разработчику предоставляется также возможность создания описаний классов Cache' на языках Java или С++ и дальнейшей работы с методами и свойствами классов Cache' так, как если бы эти классы были реализованы на Java или С++.
Кроме всего перечисленного, в следующей версии Cache' планируется обеспечить поддержку XML - общепринятого стандарта для обмена данными между различными платформами и SOAP-протокола для удаленного вызова функций.
1. В.Кирстен, М.Ирингер и др. "СУБД Cache'. Объектно-ориентированная разработка приложений", Питер, 2001.
2. Л.А.Калиниченко "Стандарт систем управления объектными базами данных ODMG-93", СУБД №01/1996.
3. Материалы сайта www.InterSystems.com