Logo    
Деловая газета CitCity.ru CITKIT.ru - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

18.01.2017

Google
WWW CITForum.ru
С Новым годом!
2002 г

Отличительные особенности СУБД Cache'.

Олег Сиротюк,
инженер по контролю качества
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'.

Рис.1. Архитектура системы Cache'.

Основными компонентами СУБД Cache' являются следующие:

  • TMDM. Многомерное ядро системы, ориентирование на работу с транзакциями.
  • Сервер Cache' Objects. Представление многомерных структур данных ядра системы в виде объектов, инкапсулирующих как данные так и методы их обработки.
  • Сервер Cache' SQL. Представление многомерных структур данных в виде реляционных таблиц.
  • Сервер прямого доступа. Предоставление прямого доступа к многомерным структурам данных ядра системы.

Рассмотрим подробнее назначение и функциональные возможности основных компонентов системы.

1.1. TMDM - многомерное ядро 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 объектов в базе данных.

1.2. Сервер Cache' Objects

Объектная модель 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' обеспечивает сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Разделяют интерфейсную часть класса и конкретную реализацию. Интерфейсная часть необходима для взаимодействия с любыми другими объектами. Реализация же скрывает особенности реализации класса, т.е. все, что не относиться к интерфейсной части.
  • Хранимость. Система Cache' поддерживает несколько видов хранения объектов: автоматическое хранение в многомерной базе данных Cache'; хранение в любых структурах, определенных пользователем; хранение в таблицах внешних реляционных баз данных, доступных через шлюз Cache' SQL Gateway.

Класс объектов в Cache' хранится в двух формах:

  • Описательная форма. Поддерживается развитый язык описания классов объектов - CDL (class definition language). В версии Cache' 4.2. планируется обеспечить поддержку языков UDL (unified definition language) и XML (extensible markup language).
  • Объектная run-time форма. Использование класса возможно только после его компиляции в объектный код.

1.3. Сервер Cache' SQL

СУБД 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 может быть использован для решения следующих задач:

  • Реализации сложных запросов к базам данных
  • Представления полученных результатов запросов в качестве значений переменных встроенного языка разработки приложений Cache' Object Script (COS).

Пример использования встроенного 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 курсор передвигается к следующей строке.

Использование курсора предполагает выполнение следующей последовательности операций:

  • Объявление курсора;
  • Открытие курсора;
  • Проведение серий операций чтения (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. После этого курсор закрывается.

1.4. Сервер прямого доступа к данным Cache' Direct.

С помощью сервера Cache' Direct разработчик получает доступ к многомерным структурам ядра системы. Встроенный в СУБД Cache' язык программирования COS предоставляет ряд функций для работы с массивами данных или глобалями, составляющими ядро системы. Использование прямого доступа к данным позволяет оптимизировать время доступа к данным. Для прямого доступа и работы с многомерными структурами ядра системы можно воспользоваться утилитой эмуляции ASCII-терминала Cache' Terminal, которая обычно используется для целей обучения языку COS и тестирования работы терминального приложения (рис.3).

Рис.3. Cache' Terminal

2. Средства администрирования Cache'.

В стандартной поставке системы разработчику предлагается два средства администрирования Cache':

  • Configuration Manager
  • Control Panel.

С помощью Configuration Manager можно выполнить следующие функции администрирования:

  • Создать новую БД, удалить или изменить настройки существующей БД. С точки зрения физического хранения, БД Cache' - это бинарный файл Cache'.DAT. Для каждой БД создается свой файл Cache'.DAT в отдельной директории.
  • Определить область (Namespace) для существующей БД, под которой в Cache' понимается логическая карта, на которой указаны имена многомерных массивов - глобалей и программ файла Cache'.DAT, включая имена каталога-директории и сервера данных для этого файла. При обращении к глобалям используется имя области.
  • Определить CSP-приложение. Для использования CSP-приложений необходимо определить виртуальную директорию на web-сервере, физическую директорию хранения CSP-приложений, а также несколько специфических для CSP настроек, таких как, к примеру, класс-предок для CSP приложений (по умолчанию принимается системный класс %CSP.Page).
  • Определить сетевое окружение Cache'. В Cache' реализован собственный протокол работы с сетью распределенного окружения БД, носящий название DCP (Distributed Cache' Protocol). С помощью интерфейсов Configuration Manager можно определить источники данных в сети, а также определить связи между различными компонентами сети.
  • Настройка системы Cache'. Разработчику предоставляется возможность конфигурирования различных компонент Cache', таких как параметры журналирования, настройки теневых серверов, параметры сервера лицензий, параметры Cache'-процессов и другие.

Утилита Control Panel предоставляет схожий набор функций администрирования и добавляет следующие новые:

  • Управление процессами Cache'.
  • Настройка параметров защиты глобалей, таких как разрешение на редактирование/создание/чтение глобалей различными группами пользователей.
  • Определение пользователей системы с присваиванием им имени пользователя, пароля и определение параметров доступа.
  • Просмотр файлов журнала. Журналирование в Cache' выполняется на уровне глобалей.
  • Определение теневых серверов системы.
  • Создание резервных копий баз данных.

3. Инструментальные средства разработки приложений в СУБД Cache'.

В СУБД 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' Server Pages (CSP).

Основой концепции серверных страниц 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.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

4. Версии системы и поддерживаемые платформы.

Последними версиями СУБД 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. Поддерживаемые платформы.
ПлатформаОперационная системаUnicodeODBCSQL ШлюзNotes
AlphaOpenVMS 7.2, 7.3+   
AlphaTru64 UNIX 5.1+   
HPHP/UX 11i    
IBM P SeriesAIX 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 / PWSWindows 95, 98, NT, 2000
Apache 1.3.12Alpha 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.0Alpha Tru64 UNIX
HP HP/UX
IBM PowerPC AIX
Red Hat Linux (Intel)
Sun Solaris (SPARC)
Compaq Secure Web Server 1.0Alpha OpenVMS 7.3

CSP поддерживает следующие браузеры:

Таблица 5. Поддерживаемые браузеры.
Web браузерВерсия
Netscape3.0
4.0
4.7
Internet Explorer4.0
5.0
5.5
6.0

Как было сказано ранее, Cache' может выступать в роли шлюза к реляционным базам данных (РБД). Официально поддерживаются следующие РБД:

Таблица 6. Поддерживаемые РБД.
РБДВерсия
Microsoft SQL Server7.0
2000
Oracle8
9i

5. Простота инсталляции.

При инсталляции Cache' происходит автоматическая проверка настроек операционной системы и производится необходимое конфигурирование ресурсов. Так, к примеру, производится автоматическое определение web-сервера, конфигурирование CSP-компонентов и создание необходимых виртуальных директорий.

Минимальные требования к аппаратному обеспечению для работы под ОС Windows:

  • Процессор Intel Pentium.
  • ОЗУ - 64 Мбайт (минимум).
  • 100 Мбайт свободного места на диске.
  • Сконфигурированный протокол TCP/IP с фиксированным IP-адресом.

Наличие Web-сервера не обязательно. Для тестирования CSP-приложений можно воспользоваться встроенным в СУБД Cache' web-сервером (по умолчанию порт 1972). Однако использование встроенного web-сервера для реальной работы не рекомендуется.

При установке Cache' под Windows-платформами предоставляется возможность выбора одного из следующих вариантов установки:

  • Standard. Устанавливаются сам сервер БД Cache', ActiveX-компоненты, CSP-компоненты, инструментарий разработки и администрирования СУБД, документация.
  • Client. Устанавливаются клиентские компоненты администрирования и разработки приложений Cache'.
  • Custom. Выборочная установка компонентов СУБД Cache'.

После выбора варианта установки программа инсталляции 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

 

Размещение рекламы — тел. +7 495 4119920, ICQ 232284597

Подписка на новости IT-портала CITForum.ru
(библиотека, CITKIT.ru, CitCity)

Новые публикации:

24 декабря

CITKIT.ru:

  • Новогодние поздравления
  • Сергей Кузнецов. Цикл Операционные системы: Ностальгия по будущему:

  • Алексей Федорчук. OpenSolaris 2008.11 Release

  • Сергей Голубев:

  • Евгений Чайкин aka StraNNik (Блогометки):

    17 декабря

  • С.Д.Кузнецов. Базы данных. Вводный курс

    10 декабря

    CITKIT.ru:

  • OpenSolaris 2008.11 Release

  • Альтернативные ОС: две грустные истории (С.Кузнецов)
  • Nokia N810 — доведение до ума
  • CitCity:

  • Платформа 2009: заоблачные перспективы Microsoft

    4 декабря

  • Лекция С.Д.Кузнецова Понятие модели данных. Обзор разновидностей моделей данных

    CITKIT.ru:

  • OpenSolaris 2008.11 Release. Первые впечатления

  • Linux vs FreeBSD: продолжим "Священные войны"?

  • Nokia N810 as is

  • Индульгенция для FOSS

  • Друзья СПО'2008

    26 ноября

  • Нечеткое сравнение коллекций: семантический и алгоритмический аспекты

    CitCity:

    CITKIT.ru:

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • 19 ноября

  • Проблемы экономики производства крупных программных продуктов

  • Язык модификации данных формата XML функциональными методами

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Заметки к книге:

  • FreeBSD: монтирование сменных устройств и механизм HAL
  • Текстовый редактор ee

    12 ноября

  • Правило пяти минут двадцать лет спустя, и как флэш-память изменяет правила (Гоц Грейф, перевод: Сергей Кузнецов)

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:
  • OSS в России: взгляд правоведа (В.Житомирский)

  • Новая статья из цикла С.Голубева "Железный марш":

    29 октября

  • О некоторых задачах обратной инженерии

  • Веб-сервисы и Ruby

  • Тестирование web-приложений с помощью Ruby

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

  • PuppyRus Linux - беседа с разработчиком (С.Голубев)

  • Сергей Кузнецов. Заметка не про Linux

    22 октября

  • Обзор методов описания встраиваемой аппаратуры и построения инструментария кросс-разработки

    CITKIT.ru:

  • Сергей Кузнецов. Почему я равнодушен к Linux

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • Что надо иметь
    3. Базовые познания

    CitCity:

  • Управление IT-инфраструктурой на основе продуктов Microsoft

    15 октября

  • Методы бикластеризации для анализа интернет-данных

    CitCity:

  • Разъемы на ноутбуках: что они дают и зачем их так много?
  • AMD Puma и Intel Centrino 2: кто лучше?

    CITKIT.ru:

  • Новый цикл статей С.Голубева
    Железный марш:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    8 октября

  • Автоматизация тестирования web-приложений, основанных на скриптовых языках
  • Опыт применения технологии Azov для тестирования библиотеки Qt3

    Обзоры журнала Computer:

  • SOA с гарантией качества
  • Пикоджоуль ватт бережет
  • ICT и всемирное развитие

    CitCity:

  • Пиррова победа корпорации Microsoft

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Статья из архива:

  • Я живу в FreeBSD (Вадим Колонцов)

    Новые Блогометки:

  • Перекройка шаблона Blogger или N шагов к настоящему
  • Blogger. Comment style
  • Screenie или глянцевый снимок экрана

    2 октября

    CITKIT.ru:

  • Сага о FreeBSD (А. Федорчук)

    Zenwalk: пакет недели

  • Банинг — интеллектуальное развлечение (С.Голубев)

    CitCity:

    25 сентября

  • Клермонтский отчет об исследованиях в области баз данных

    CITKIT.ru:

  • Пользователям просьба не беспокоиться... (В.Попов)

  • Снова про ZFS: диск хорошо, а два лучше
  • Командная оболочка tcsh (А.Федорчук)

    Zenwalk: пакет недели

    17 сентября

  • T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов
  • Технология Azov автоматизации массового создания тестов работоспособности

    CITKIT.ru:

  • FreeBSD: ZFS vs UFS, и обе-две — против всех (А.Федорчук)

    Zenwalk: пакет недели

  • Дачнет — практика без теории (С.Голубев)

    10 сентября

  • За чем следить и чем управлять при работе приложений с Oracle
  • Планировщик заданий в Oracle
    (В.Пржиялковский)

    CITKIT.ru:

  • Microsoft: ответный "боян" (С.Голубев)

  • Причуды симбиоза, или снова "сделай сам" (В.Попов)

  • Файловые системы современного Linux'а: последнее тестирование
  • Zsh. Введение и обзор возможностей
    (А.Федорчук)

    Описания пакетов Zenwalk: Zsh, Thunar, Thunar-bulk-rename, Xfce4-places-plugin, Xfce4-fsguard-plugin

    Блогометки:

  • Google Chrome
  • Лончер для ASUS Eee PC 701

    3 сентября

    CITKIT.ru:

  • Заметки о ядре (А.Федорчук):

    Добавлены описания пакетов Zenwalk: Galculator, Screenshot, Gnumeric, Pidgin

    В дискуссинном клубе:

  • И еще о Википедии и Google Knol

  • Лекция для начинающего линуксоида (С.Голубев)

    26 августа

  • Транзакционная память (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Открыт новый проект Zenwalk: пакет недели

  • Статья Текстовые процессоры и их быстродействие: конец еще одной легенды?

    21 августа

    CITKIT.ru:

  • Почему школам следует использовать только свободные программы (Ричард Столлман)
  • Беседа Сергея Голубева с учителем В.В.Михайловым

  • Википедия или Гуглезнание? Приглашение к обсуждению (Алексей Федорчук)
  • Народная энциклопедия от Google (StraNNik)

  • Обзор Mandriva 2009.0 Beta 1 Thornicrofti
  • Новичок в Линукс: Оптимизируем Mandriva 2008.1

  • Книга Zenwalk. Приобщение к Linux:

    13 августа

    CitCity:

  • Мирный Atom на службе человеку. Обзор платы Intel D945GCLF с интегрированным процессором
  • Обзор процессоров Intel Atom 230 на ядре Diamondville

  • iPhone - год спустя. Скоро и в России?

    CITKIT.ru:

  • Интермедия 3.4. GRUB: установка и настройка (из книги Zenwalk. Приобщение к Linux)

    6 августа

  • СУБД с хранением данных по столбцами и по строкам: насколько они отличаются в действительности? (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Интермедия 2.2. Что неплохо знать для начала (из книги Zenwalk. Приобщение к Linux)

  • И снова про шрифты в Иксах (А.Федорчук)

  • 20 самых быстрых и простых оконных менеджеров для Linux

  • Дело о трех миллиардах (С.Голубев)

    30 июля

  • OLTP в Зазеркалье (Пересказ: С. Кузнецов)

    CitCity:

  • Будущее BI в облаках?
  • Тиражные приложения и заказная разработка. Преимущества для заказчика
  • Дискуссия со сторонниками заказной разработки

    CITKIT.ru:

  • Новые главы книги Zenwalk. Приобщение к Linux:
  • Глава 8. Пакеты: средства установки, системы управления, системы построения
  • Глава 9. Zenwalk: репозитории, пакеты, методы установки

    23 июля

    CITKIT.ru:

  • Все против всех. 64 vs 32, Intel vs AMD, tmpfs vs ext3
  • Две головы от Intel

  • Zenwalk: обзор штатных приложений (глава из книги "Zenwalk. Приобщение к Linux")

  • Нормально, Григорий...

    16 июля

    Обзоры журнала Computer:

  • Перспективы и проблемы программной инженерии в XXI веке
  • Большие хлопоты с большими объемами данных
  • Перспективы наноэлектроники

    CITKIT.ru:

  • Интермедия о лицензиях (А.Федорчук. "Zenwalk. Приобщение к Linux")

  • Есть ли будущее у KDE?

  • Linux в школе: альтернативный вариант в задачах

  • Шифр (приключения агента Никодима)

    10 июля

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия вступительная. Linux или GNU/Linux? Как вас теперь называть?
  • Глава 5. Среда Xfce
  • Глава 6. Xfce: приложения и плагины

  • ZUR (Zenwalk User Repository) FAQ

    2 июля

  • Персистентность данных в объектно-ориентированных приложениях (С. Кузнецов)

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия 1.2. Дорога к Zenwalk'у. Период бури и натиска
  • Интермедия 3.3. Немного о Linux'е и "железе"
  • Глава 4. Настройка: инструментами и руками
  • Интермедия 4.1. Zenpanel и конфиги: поиски корреляции

  • Интервью с Жан-Филиппом Гийоменом, создателем дистрибутива Zenwalk

  • Linux в школе: первые итоги (С. Голубев)

    25 июня

    CITKIT.ru:

  • Zenwalk. Приобщение к Linux (А. Федорчук)

  • Логика и риторика (С.Голубев)

  • Технология Tru64 AdvFS

  • Ханс Райзер предлагает отвести полицейских к телу Нины

    18 июня

  • Проекты по управлению данными в Google (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • ОС и поддержка "железа": мифы и реальность (А. Федорчук)

  • Linux в школе: другие дистрибутивы

  • Пинок (С. Голубев)

    4 июня

  • Ландшафт области управления данными: аналитический обзор (С. Кузнецов)

    CITKIT.ru:

  • Linux в школе: слово заинтересованным лицам

  • SlackBuild: пакеты своими руками

  • Linux от компании Novell. Установка и обзор openSUSE Linux

    Все публикации >>>




  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 4119920, ICQ 232284597 Пресс-релизы — pr@citcity.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...