Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
18.06.2017
Размер:
882.7 Кб
Скачать

класса Caché, т.е. имена XML тэгов должны соответствовать именам свойств класса.

2.Использование COS-интерфейса к SAX парсеру для ручного заполнения структур данных Caché данными из XML документов.

Рассмотрим оба способа импорта на примерах:

1.Для импорта данных непосредственно в класс Caché необходимо воспользоваться методами системного класса %XML.Reader. Импорт осуществляется в несколько этапов. На первом этапе проводится проверка XML документа на удовлетворение структурным правилам XML. Далее создается экземпляр класса в памяти и соответствующим свойствам класса присваиваются значения XML элементов. Пользователю возвращается OREF созданного экземпляра. Для непосредственной записи экземпляра в БД необходимо вызвать соответствующие методы класса (%Save(), если класс наследует свое поведение от %Persistent). Далее процесс повторяется пока не достигнут закрывающий корневой тэг. Пример:

Set reader = ##class(%XML.Reader).%New() do reader.Correlate(xmlElem,OclassName) set ex=reader.Start(fileName)

While (reader.Next(.object)) { set ex=object.%Save()

}

Correlate() – установить отношение между XML тегом и классом Caché. Start() – начать парсинг XML документа.

Next() –обработать следующий тэг.

2.SAX парсер – это событийный парсер. Происходит последовательное сканирование XML документа и при обнаружении структурного элемента XML(открывающий тег, закрывающий тег, инструкция обработки, корневой тег и т.д.) создается соответствующие событие, которое обрабатывается методом пользователя. Системный класс %XML.SAX.ContentHandler предоставляет методы всех возможных событий SAX парсера. Наследуя свой класс от XML.SAX.ContentHandler и переопределяя методы событий можно определить собственный способ обработки событий и сохранения данных из XML документов в структуры данных Caché. Пример такого класса:

Class User.MyParser Extends (%Persistent, %XML.SAX.ContentHandler)

{

Method characters(chars As %Library.String, length As %Library.Integer)

{

w !,"Символы - ", chars Quit

}

Method endElement(uri As %Library.String, localname As %Library.String, qname As %Library.String)

{

w !,"Element with name "_localname_" finished" Quit

}

Method startElement(uri As %Library.String, localname As %Library.String, qname As %Library.String, attrs As %Library.List)

{

w !,"Element with name "_localname_" started"

Quit 31

}

}

Использование отладчика программ.

Одним из новшеств Caché 5. является наличие развитого отладчика программ, встроенного в Caché Studio. С помощью отладчика программ можно локализовать ошибку путем анализа состояния данных во время пошагового выполнения кода программы.

Отладке подлежат INT-программы, т.е. программы, которые не содержат макровызовов. Как было сказано выше, методы класса при компиляции преобразуются в INT-код, поэтому отладку можно применять и к методам класса. Кроме этого существует возможность отладки CSP страницы.

Функции, предоставляемые отладчиком Caché, аналогичны функциям, предоставляемым другими средами разработки, таким как Borland Delphi, MS Visual Studio и др. Отладчик Caché предоставляет следующие функциональные возможности: обозначение точек останова (breakpoints), возможность отладки вызываемых из кода программ (Step Into), а также выхода из вызываемых программ (Step Out) и др.

Рассмотрим работу отладчика программ на примере отладки следующей Caché программы:

Divide()

N Div

W !,”Введите делитель и делимое, разделенные запятыми: ” R Div

If $Length(Div,”,”)’=1 w !,”Неправильно введены данные” quit 0

If $Piece(Div,”,”,1)=0 w !,”Делитель не может быть равным 0” quit 0 W “Результат деления = ”,$Piece(Div,”,”,2)/ $Piece(Div,”,”,1)

Q 1

Сохраняем программу под именем Divide и компилируем.

Далее необходимо определить имя Caché программы, подлежащей отладке. Для этого необходимо вызвать настройки проекта путем выбора пункта меню Project->Settings . Затем на вкладыше Debugging Target в поле Caché Routine указать имя программы (^Divide()).

Точку останова (breakpoint) можно выставить либо путем нажатия клавиши F9, либо выбором пункта меню Debug->Breakpoints->Toggle Breakpoint. Снять точку останова можно повторным нажатием на клавишу F9. Для просмотра установленных точек останова необходимо выбрать пункт меню

Debug->Breakpoints->View Breakpoints.

Для запуска отладчика необходимо нажать клавишу F5 или выбрать пункт меню Debug->Start. Для остановки отладчика необходимо нажать на комбинацию клавиш Shift-F5 либо выбрать пункт меню Debug->Stop.

Во время отладки можно просматривать текущее состояние как локальных переменных, так и глобальных. Для этого необходимо выставить watch на переменную, путем указания имени переменной в окне Watch.

Администрирование Caché.

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

32

Configuration Manager

Control Panel.

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

Создать новую БД, удалить или изменить настройки существующей БД. С точки зрения физического хранения, БД Caché – это бинарный файл CACHE.DAT. Для каждой БД создается свой файл CACHE.DAT в отдельной директории.

Определить область (Namespace) для существующей БД, под которой в Caché понимается логическая карта, на которой указаны имена многомерных массивов - глобалей и программ файла CACHE.DAT, включая имена каталога-директории и сервера данных для этого файла. При обращении к глобалям используется имя области.

Определить CSP-приложение. Для использования CSP-приложений необходимо определить виртуальную директорию на web-сервере, физическую директорию хранения CSP-приложений, а также несколько специфических для CSP настроек, таких как, к примеру, класс-предок для CSP приложений (по умолчанию принимается системный класс %CSP.Page).

Определить сетевое окружение Caché. В Caché реализован собственный протокол работы с сетью распределенного окружения БД, носящий название

DCP (Distributed Cache Protocol). С помощью интерфейсов Configuration Manager можно определить источники данных в сети, а также определить связи между различными компонентами сети.

Настройка системы Caché. Разработчику предоставляется возможность конфигурирования различных компонент Caché, таких как параметры журналирования, настройки теневых серверов, параметры сервера лицензий,

параметры Caché-процессов и другие.

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

Управление процессами Caché.

Настройка параметров защиты глобалей, таких как разрешение на редактирование/создание/чтение глобалей различными группами пользователей.

Определение пользователей системы с присваиванием им имени пользователя, пароля и определение параметров доступа.

Просмотр файлов журнала. Журналирование в Caché выполняется на уровне глобалей.

Определение теневых серверов системы.

Создание резервных копий баз данных.

33

Рис.8.Configuration manager.

Рассмотрим создание базы данных, а также соответствующей области с помощью мастеров, включенных в Configuration manager.

Для работы с данными из БД, каждой создаваемой базе данных должна соответствовать область, имеющая, как и база данных уникальное имя. Для создания области необходимо перейти во вкладку Namespaces и нажать кнопку Add для вызова мастера области.

На первом шаге мастера области необходимо указать имя создаваемой области, а также выставить флажок, для автоматического создания виртуальной директории CSP-приложений. Вводим название области FAMILY и разрешаем создание виртуальной директории.

Доступ к одной и той же базе данных можно получить через разные области. Следующий шаг мастера областей служит для определения базы данных. Создадим новую БД для этого необходимо нажать на кнопку Define a New Database для вызова мастера баз данных.

Первый шаг мастера баз данных служит для определения имени базы данных, а также флажка для определения месторасположения БД (локальная или удаленная). Вводим имя БД FAMILY и не выставляем флажок.

На следующем шаге определяется физическая директория местонахождения файлов БД. Вводим имя директории c:\cachesys\family. Если директория не существует, она будет создана автоматически.

На следующем шаге необходимо определить размер блока БД, а также начальный размер БД (далее он будет увеличиваться автоматически). Во всех создаваемых проектах рекомендуется использовать блок размером 8кб.

Выбираем 8кб и завершаем работу мастера баз данных кнопкой Finish. Завершаем работу мастера областей нажатием кнопки Finish.

34

Иконка для созданной области и базы данных серого цвета, это означает, что БД и область не инициализированы. Для инициализации и начала работы с созданной БД необходимо закрыть Configuration manager и если требуется перезагрузить Caché.

Рассмотрим параметры созданных базы данных, области и CSP приложения.

Каждая область содержит следующие параметры: 1. Default database. Параметры базы данных.

1.1.Globals, System Globals. Определение базы данных –источника глобалов для области.

1.2.Routines, System Routines. Определение базы данных –источника программ Caché для области.

1.3.Caché Library . Определение базы данных –библиотеки системных классов и программ Caché.

1.4.Temporary Storage. Определение базы данных для хранения временных данных Caché.

2.Global Mapping. Отображение глобалей из других БД.

3.Routine Mapping. Отображение программ Caché из других БД.

База данных имеет следующие параметры, выставить которые можно вызвав окно Caché Database Edit:

Read Only. БД только для чтения.

Mount Required on Startup. Монтирование БД при запуске.

Рассмотрим параметры CSP приложения :

Namespace. Область, определяющая БД, где хранятся классы CSP.

Caché Physical Path. Физический путь к CSP документам. По умолчанию это директория к папке /cachesys/CSP/Namespace.

Recurse. Разрешение на использование файлов из вложенных папок.

Auto Compile. Автоматическая компиляция документов CSP в классы Caché, если дата изменения документа CSP отличается от даты компиляции класса Caché.

Event Class. Класс, методы которого будут вызваны при появлении CSP событий, таких как TimeOut.

Default Timeout. Количество секунд времени простоя сессии.

Default Super Class. Класс-предок для CSP приложений, по умолчанию %CSP.Page.

Use Cookies for session. Параметр позволяющий запретить или разрешить использование cookies. Если запрещено, то через URL посылается зашифрованная строка символов CSPCHD, уникально идентифицирующая сессию.

Serve files. Параметр, разрешающий встроенному web-серверу обслуживать внешние файлы, находящиеся в той же директории такие как html и jpg.

Default Page. Страница, которая будет вызвана при обращению к

URL.

Custom Error Page. CSP или CLS страница, которая будет вызвана в случае ошибки генерации страницы.

Package name. Имя пакета, в котором будут создаваться классы CSP приложений.

Use Per Request Licensing. Использовать лицензирование по запросу, а не сессионное.

35

Заключение.

В учебном курсе описана лишь малая часть того, что реализовано в Caché. Кроме описанных интерфейсов, Caché предоставляет ODBC- и JDBC-драйверы для представления данных из СУБД Caché в виде реляционных таблиц и работы с ними.

СУБД Caché предоставляет стандартные ActiveX-компоненты, которыми можно воспользоваться при создании пользовательского приложения в среде Visual Basic. Кроме этого, предоставляется мастер создания форм Caché Form Wizard для облегчения разработки пользовательских форм в среде Visual Basic. В Caché реализованы интерфейсы CALLIN/CALLOUT, предназначенные для прямого вызова функций СУБД Caché из С-программ и вызова функций операционной системы из Caché, Также предоставляется интерфейс для работы с функциями DLLбиблиотек.

Caché предоставляет модуль интеграции со средой проектирования информационных систем Rational Rose. При этом UML-диаграмму классов можно экспортировать напрямую в БД Caché, причем классы, а также типы данных свойств на диаграмме будут полностью соответствовать созданным классам и свойствам классов Caché.

Разработчику предоставляется также возможность создания описаний классов Caché на языках Java или С++ и дальнейшей работы с методами и свойствами классов Caché так, как если бы эти классы были реализованы на

Java или С++.

За дополнительной информацией обращайтесь к следующим источникам:

1.Документация, поставляемая с Caché.

2.СУБД Caché Объектно-ориентированная разработка приложений. Учебный курс. В.Кирстен и др. СПб: Питер, 2001г.

3.Постреляционная технология Caché для реализации объектных приложений. Н.Е. Кречетов и др. М: МИФИ, 2001г.

4.Материалы сайта www.intersystems.ru .

5.sirotyuk@intersystems.ru.

36

Приложение 1.

Мастер классов - Шаг1. Общие сведения о классе.

Мастер классов – Шаг 2.Вид класса.

37

Мастер классов – Шаг 3. Выбор дополнительных возможностей класса.

Мастер свойств – Шаг 1. Общие сведения о свойстве.

38

Мастер свойств – Шаг 2. Определение вида свойства.

Мастер свойств – Шаг 3. Характеристики свойства.

39

Мастер свойств – Шаг 4. Параметры свойства.

Мастер методовШаг 1. Общие сведения о методе

40

Соседние файлы в папке Инфа