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.
Вставка данных:УправлениеИспользование Cache' ScriptЗапросы к БДПривязка объекта к формеУправление параметрами класса
#(а)# | Вывод значения переменной/функции/метода |
##(a)## | тоже, но во время компиляции |
<CSP:IF CONDITION='a=1'> <b>Unautorized!!!</b> </CSP:IF> | Условие |
<CSP:WHILE …> <CSP:LOOP …> | Циклы |
<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: