|
2002 г
Отличительные особенности СУБД Cache'.
Олег Сиротюк,
инженер по контролю качества
InterSystems corporation.
Введение
Объектно-ориентированные базы данных (ООБД) по сравнению с традиционными (например, реляционными) БД обеспечивают следующие преимущества: во-первых, в таких БД хранятся не только данные, но и методы их обработки, инкапсулированные в одном объекте; во-вторых, ООБД позволяют обрабатывать мультимедийные данные Данные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе.; в-третьих, ООБД допускают работу на высоком уровне абстракции; в-четвертых, ООБД позволяют пользователям создавать структуры данных любой сложности.
При всех достоинствах современной объектной технологии разработки баз данных имеется несколько препятствий, которые удерживают разработчиков от принятия решения о переходе с реляционной технологии на объектную. Основным препятствием является значительный объем разработок, опирающихся на реляционные СУБД. Ведь при переходе на объектную технологию необходимо многое начинать "с нуля", и поэтому возникает вопрос целесообразности такого перехода. Кроме того, объектная технология, поддерживаемая в ряде постреляционных СУБД, не имеет развитого и стандартизированного языка генерации отчетов и анализа данных, каким является структурированный язык запросов SQL. Данные проблемы были решены при создании постреляционной СУБД Cache' от InterSystems (www.intersystems.ru). СУБД Cache' обеспечивает не только реализацию основных возможностей объектно-ориентированной технологии, но и позволяет во многом облегчить переход с реляционной технологии на объектную, а также может выступать в роле шлюза к реляционным базам данных.
Отличительной особенностью СУБД Cache' является независимость хранения данных от способа их представления, что реализуется с помощью, так называемой, единой архитектуры данных Cache'. В рамках данной архитектуры существует единое описание объектов и таблиц, отображаемых непосредственно в многомерные структуры ядра базы данных, ориентированных на обработку транзакций [1]. Как только определяется класс объектов, Cache' автоматически генерирует реляционное описание данных этого класса в формате SQL. Подобным же образом, как только в Словарь Словарь— книга, информация в которой упорядочена c помощью разбивки на небольшие статьи, отсортированные по названию или тематике. Различают энциклопедические и лингвистические словари. данных поступает DDL-описание в формате реляционной базы данных, Cache' автоматически генерирует реляционное и объектное описание данных, устанавливая тем самым доступ в формате объектов. При этом все описания ведутся согласованно, все операции по редактированию проводятся только с одним описанием данных. Это позволяет сократить время разработки, сэкономить вычислительные ресурсы Ресурсы— всё, что необходимо человеку (физическому лицу) и организации (в том числе юридическому лицу) для достижения цели, для удовлетворения собственных потребностей и потребностей субъектов или объектов внешней среды. Ресурсы могут быть трудовые, информационные, материальные, финансовые. и приложения будут работать значительно быстрее.
БД Cache' была первой базой данной, предназначенной для работы в сети Internet Интернет (произносится [интэрнэт]; англ.Internet)— всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных. Часто упоминается как «Всемирная сеть» и «Глобальная сеть». В обиходе иногда говорят «Инет»./Intranet. В версии Cache' 4.0. реализована технология создания динамических web-приложений Cache' Server Pages (CSP), которая пришла на смену технологии Weblink предыдущих версий Cache'. Кроме этого, системная библиотека %Net предоставляет классы, реализующие протоколы SMTP, POP3, HTTP, FTP и др.
В статье рассмотрены основные компоненты, функциональные возможности и характеристики СУБД Cache'.
1. Основные компоненты СУБД Cache'
На рис. 1. представлена архитектура Архитектура (лат.architectura от др.-греч. — старший, главный и др.-греч. — строитель, плотник) — искусство проектировать и строить здания и другие сооружения (также их комплексы), создающие материально организованную среду, необходимую людям для их жизни и деятельности, в соответствии с назначением, современными техническими возможностями и эстетическими воззрениями общества. Cache'.
Рис.1. Архитектура Архитектура (лат.architectura от др.-греч. — старший, главный и — строитель, плотник) — искусство проектировать и строить здания и другие сооружения (также их комплексы), создающие материально организованную среду, необходимую людям для их жизни и деятельности, в соответствии с назначением, современными техническими возможностями и эстетическими воззрениями общества. Сами здания и сооружения также называют архитектурой. системы 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' в полном объеме поддерживает все основные концепции Концепция, или концепт, (от лат.conceptio— понимание, система)— определённый способ понимания (трактовки, восприятия) какого-либо предмета, явления или процесса; основная точка зрения на предмет; руководящая идея для их систематического освещения. объектной технологии:
- Наследование. Объектная модель 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' предоставляет возможность работы с данными, как в виде реляционных таблиц Богуслав Таблиц (словацк. Bohuslav Tablic (Tablicz); 6 сентября 1769, Ческе Брезово, Словакия — 21 января 1832, Костолне Моравце, Словакия) — чешско-словацкий писатель, священник, деятель возрождения словаков-лютеран, подобно тому как Бернолак является деятелем возрождения словаков-католиков. Таблиц учредил в Пресбурге «Общество чешско-словацкой литературы и языка» с целью издавать на понятном народу чешском языке простонародные и школьные книги. Учреждение этого общества было причиной если не процветания словацкой литературы, то появления в пресбургском лицее кафедры словацкого языка, для чего общество собрало большой капитал. Занять кафедру приглашен был Юрай Палкович. Общество скоро распалось, но кафедра продолжала существовать. Молодёжь имела возможность слушать историю своего народа на родном языке. В 1812 г. Таблиц был одним из основателей нового «Литературного общества Горных Городов» (Bergstdte), задававшегося прежней целью; результатом было открытие кафедры словацкого языка и в Банской Штьявнице. Это общество также скоро распалось. Таблиц писал очень много и по различным специальностям. Первое место занимают его «Poesie» (Вацов, 1806-1812). К ним приложены биографии известных словацких деятелей. Его «Sloventi verovci» (Вацов, 1805-1809) — отрывки из произведений древних словацких писателей, в то время почти уже позабытых. Перу Таблица принадлежит также много книг для народа, изданных двумя упомянутыми обществами., так и в виде классов объектов. Таким образом, при переходе с реляционной технологии на объектную технологию разработка не начинается с "нуля" - многое уже сделано 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
Пространство имён (англ.namespace)— некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же значение, как и такой же идентификатор, определённый в другом пространстве. Языки с поддержкой пространств имён определяют правила, указывающие, к какому пространству имён принадлежит идентификатор (то есть его определение).) для существующей БД, под которой в Cache' понимается логическая карта, на которой указаны имена многомерных массивов - глобалей и программ файла Cache'.DAT, включая имена каталога-директории и сервера данных для этого файла. При обращении к глобалям используется имя области.
- Определить CSP-приложение. Для использования CSP-приложений необходимо определить виртуальную директорию на web-сервере, физическую директорию хранения CSP-приложений, а также несколько специфических для CSP настроек, таких как, к примеру, класс-предок для CSP приложений (по умолчанию принимается системный класс %CSP.Page).
- Определить сетевое окружение
Окружение— изоляция определённой группировки противника от остальных его войск в целях уничтожения или пленения. Cache'. В Cache' реализован собственный протокол работы с сетью распределенного окружения БД, носящий название DCP (Distributed Cache' Protocol). С помощью интерфейсов Configuration Manager можно определить источники данных в сети, а также определить связи между различными компонентами сети.
- Настройка системы Cache'. Разработчику предоставляется возможность конфигурирования различных компонент Cache', таких как параметры журналирования, настройки теневых серверов, параметры сервера лицензий, параметры Cache'-процессов и другие.
Утилита Control Ctrl (сокращение от Control, произносится /kntrl/)— системная кнопка (клавиша) на компьютерной клавиатуре. 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 Architect— маткор группа из Нью-Йорка, состоящая из бывших членов Found Dead Hanging и Word As A Virus. Результатом объединения сил стало жестокое и агрессивное звучание..
Утилита Cache' Architect предназначена для работы с классами Cache'. Разработчику предоставляется ряд мастеров (wizard Wizard — пауэр-метал группа из Германии, сформированная в 1989 году. Группу часто называют «немецким ответом Manowar». Темы текстов песен очень похожи: обе группы поют о битвах, метале, войне и скандинавской мифологии. Тем не менее, Wizard играют намного быстрее Manowar, и их вокалист обладает высоким голосом.), для создания новых и редактирования параметров существующих классов, методов, свойств и др. компонент классов 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-сервер Веб-сервер— это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-серверы— основа Всемирной паутины. и сервер БД Cache', что приводит к выигрышу в производительности по сравнению с другими технологиями создания web-приложений. Для еще большего увеличения производительности CSP приложений при обмене данными между сервером Cache' и web-сервером используются высокоскоростные интерфейсы API.
Рис.7. Сравнение web-технологий.
Серверные страницы Cache' представляют собой текстовые HTML-файлы, расширяемые тегами приложений Cache' (Cache' Application Tags или CATs). Для создания CSP приложений можно воспользоваться стандартными средствами разработки HTML страниц (Cache' предоставляет add-in модуль Модуль (от лат.modulus— «маленькая мера»)— составная часть, отделимая или хотя бы мысленно выделяемая из общего. Модульной обычно называют вещь, состоящую из чётко выраженных частей, которые нередко можно убирать или добавлять, не разрушая вещь в целом. для полной интеграции с 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 «The Script» — ирландская поп-рок группа, образованная Danny O’Donoghue (лид-вокал и клавишные) и Mark Sheehan (гитара и вокал), ранее выступавшими в составе группы "My Town". Дебютный альбом "My Town" был провальным, и после распада группы Дэнни и Марк переехали в США, где занимались продюсерской деятельностью с такими исполнителями как The Neptunes, Rodney Jerkins, Teddy Riley и Dallas Austin, а спустя несколько лет, решив создать новую группу, вернулись на родину, в Дублин, где к ним присоединился барабанщик Glen Power, и они стали называться "The Script". Весной 2007 г. ими был подписан контракт с лейблом Phonogenic. Их дебютный сингл "We Cry", вышедший только через год (25 апреля 2008 г.), попал в ротацию на все самые популярные радиостанции Великобритании, принеся группе долгожданную известность. А следующий сингл "The Man Who Can't Be Moved" был еще более успешным, заняв 2-е и 3-е места в британском и ирландском чартах соответственно, тем самым позволив группе громко заявить о себе, как об очень перспективных новичках на британской поп-рок сцене. В августе 2008 г. вышел их дебютный (в новом составе) альбом "The 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. Поддерживаемые платформы.
| Платформа | Операционная система | 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' поддерживает множество национальных языков (Таблица Таблица (из лат.tabula «доска»)— способ передачи содержания, заключающийся в организации структуры данных, в которой отдельные элементы помещены в ячейки, каждой из которых сопоставлена пара значений— номер строки и номер колонки. Таким образом, устанавливается смысловая связь между элементами, принадлежащими одному столбцу или одной строке. 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 OpenVMS (англ.Open Virtual Memory System, или просто VMS)— проприетарная 64-разрядная серверная операционная система, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation для серии компьютеров VAX. Позже портирована на платформы DEC Alpha и Intel Itanium. Сейчас принадлежит Hewlett-Packard. Применяется для построения отказоустойчивых систем высокой готовности и mission-critical применений. Среди российских заказчиков 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 |
5. Простота инсталляции.
При инсталляции Cache' происходит автоматическая проверка настроек операционной системы и производится необходимое конфигурирование ресурсов. Так, к пример Пример рассматривается в риторике чаще всего в контексте доказательств и аргументов. Для Квинтилиана пример является одним из дополняющих, наглядных доводов к высказыванию, либо упоминанием полезного, настоящего или якобы существующего образца убеждения того, что определено тобой одним. Правда, в отличие от доказательств, связь с предметом обсуждения должна быть установлена прежде автором или оратором.у, производится автоматическое определение web-сервера, конфигурирование CSP-компонентов и создание необходимых виртуальных директорий.
Минимальные требования к аппаратному обеспечению для работы под ОС Windows Microsoft Windows (/wndoz/) (англ.windows— окна)— семейство проприетарных операционных систем корпорации Майкрософт (Microsoft), ориентированных на применение графического интерфейса при управлении. Изначально были представлены многофункциональными надстройками для MS-DOS.:
- Процессор
Центральный процессор (ЦП, или центральное процессорное устройство— ЦПУ; англ.central processing unit, сокращенно— CPU, дословно— центральное обрабатывающее устройство)— электронный блок либо микросхема — исполнитель машинных инструкций (кода программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором. Изначально термин центральное процессорное устройство описывал специализированный класс логических машин, предназначенных для выполнения сложных компьютерных программ. Вследствие довольно точного соответствия этого назначения функциям существовавших в то время компьютерных процессоров, он естественным образом был перенесён на сами компьютеры. Начало применения термина и его аббревиатуры по отношению к компьютерным системам было положено в 1960-е годы. Устройство, архитектура и реализация процессоров с тех пор неоднократно менялись, однако их основные исполняемые функции остались теми же, что и прежде. 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 Юникод или Уникод (англ.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
|