Caché

High performance
multi-model database

Часть 4: Быстрое создание богатых веб-приложений с помощью технологии InterSystems Zen

Многие из современных приложений предоставляют пользовательский интерфейс в веб-браузере. И многие из этих интерфейсов так же «богаты» (насыщены), как и пользовательские интерфейсы настольных компьютеров. Включенная в Caché технология InterSystems Zen™ позволяет создавать веб-приложения в рекордно короткие сроки.

Технология CSP

Основой InterSystems Zen и технологией, предоставляющей механизмы для работы веб-приложений, является технология Caché Server Pages (CSP). Некоторые из ее свойств и возможностей перечислены ниже.

  • Динамические серверные страницы. В отличие от традиционных веб-серверов, просто возвращающих на браузер статические HTML-страницы, технология CSP предполагает динамическое создание страниц на сервере с помощью прикладного кода. При этом приложения могут значительно быстрее реагировать на множество различных запросов и объединять соответствующие результирующие страницы для их возврата на браузер.
  • Модель сессии. Все процессы обработки, связанные со страницами конкретного браузера, трактуются как часть единой сессии: от первого запроса браузера и до завершения работы приложения или превышения таймаута в обмене сообщениями.
  • Сохранение состояния на сервере. В течение сессии данные приложения на сервере и даже весь контекст приложения могут автоматически удерживаться в памяти в промежутках между запросами браузера. Это значительно упрощает разработку и эксплуатацию сложных приложений.
  • Аутентификация пользователей. Для аутентификации пользователей могут применяться любые из используемых в Caché аутентификационных механизмов.
  • Шифрование. Caché автоматически кодирует информацию в URL, для того чтобы обеспечить аутентификацию пользователей и предотвратить несанкционированный доступ. Ключ шифрования хранится только на сервере и действует только во время одной сессии.

Архитектура классов для веб-страниц

Архитектура классов для веб-страницВ системе Caché каждая веб-страница является объектом – экземпляром класса страницы, который содержит методы для генерирования содержимого страницы. Обычно классы страниц – потомки стандартного класса веб-страницы %CSP.Page, который обеспечивает все страницы различными функциональными возможностями, в частности – возможностями генерации заголовков и шифрования. Такая основанная на классах архитектура упрощает внесение изменений и обеспечение единства стиля всего приложения. Кроме того, эта архитектура предоставляет все преимущества объектного программирования при создании веб-приложений.

Как правило, мы рекомендуем создавать классы страниц, содержащие только описание интерфейса пользователя. Бизнес-логика и логика работы базы данных должны содержаться в других классах, чтобы обеспечить четкое разделение между кодом пользовательского интерфейса и кодами по работе с БД и бизнес-логики. Такое разделение упростит добавление в дальнейшем дополнительных пользовательских интерфейсов.

Технология Zen и веб-страницы на основе компонентов

Технология InterSystems Zen предоставляет простой способ быстрого создания сложных насыщенных данными веб-приложений с визуально привлекательным высокоинтерактивным интерфейсом пользователя. Zen не является языком программирования четвертого поколения. Zen – это богатая библиотека предварительно построенных объектных компонентов и средств разработки на основе созданной корпорацией InterSystems технологии CSP и объектной технологии. Zen особенно подходит для разработки веб-ориентированных версий клиент-серверных приложений, которые были первоначально созданы с использованием таких средств разработки приложений в среде клиент/сервер, как Visual Basic или PowerBuilder.

Компоненты Zen позволяют выполнять намного больше динамических взаимодействий: вы не ограничены лишь возможностью передачи значений на сервер с использованием механизма “Submit”. К примеру, используя компонент формы в Zen (Zen form component), вы можете задать вашу собственную процедуру валидации, включая немедленные вызовы сервера без необходимости направления запроса страницы и ее последующей перерисовки. Для пользователей такой процесс ввода данных выглядит более естественным.

В Zen применяется CSP-механизм управления сеансом, обеспечивающий аутентификацию пользователя, шифрование данных и сохранение неизменяемых данных сеанса по запросам страниц. Всё сообщение между браузером и сервером происходит посредством передачи объектов между ними с использованием более передовой версии метода, часто называемого AJAX (Asynchronous JavaScript and XML).

Страницы на базе Zen могут быть легко скомбинированы со страницами, разработанными с помощью других методов веб-разработки на основе CSP.

Что такое «компонент Zen»

Компонент Zen представляет собой описание класса, которое специфицирует внешний вид и поведение компонента на странице. Определение класса в Zen содержит (в составе единого документа) полное описание компонента, включая стили, код на стороне сервера и код на стороне клиента.

Во время выполнения Zen создает два объекта для каждого компонента, используемого на странице: объект на клиентской стороне, который автоматически создается Zen как объект JavaScript в браузере, и объект на серверной стороне. Zen в автоматическом режиме управляет состоянием обоих объектов и потоком информации между ними.

Типы компонентов Zen

Библиотека Zen включает в себя компоненты, реализующие все стандартные типы HTML-контроля: поля ввода, текстовые поля, кнопки, поля метки и т.д. Эти компоненты имеют дополнительные типы поведения, унаследованные из класса контроля, используемого в Zen.

Zen также включает в себя набор более сложных насыщенных данными компонентов, которые автоматически отображают данные из БД и «знают», как динамически обновлять эти данные в ответ на определенные пользовательские события. Например, используемый в Zen мощный табличный компонент автоматически отображает данные внутри таблицы с использованием запроса к базе данных. Табличный компонент поддерживает разбиение текста на страницы, прокрутку текста, сортировку по столбцам, фильтрацию и разные стили. Содержимое таблицы может быть обновлено с сервера без перерисовки всей страницы.

В число других компонентов Zen входят:

  • Menu – поддерживаются различные типы меню;
  • Grid – для добавления поведения стилей электронных таблиц к веб-странице;
  • Tree – для отображения иерархических данных с элементом управления деревьями);
  • Tab – компонент-вкладка содержит набор вкладок, каждая из которых содержит набор других компонентов;
  • Chart – реализуется широкий комплекс компонентов-диаграмм с использованием формата SVG, включая линейные диаграммы (line charts), диаграммы с областями (area charts), круговые диаграммы (pie charts), а также диаграммы, показывающие верхние и нижние значения данных (hie-low charts), и точечные диаграммы (XY charts);
  • Graphical Meter – спидометры, датчики и т.п. позволяют отображать данные как динамические визуальные компоненты.

Изменение внешнего вида компонентов библиотеки Zen

Все компоненты Zen поддерживают набор свойств, которые управляют внешним видом приложения. Приложения могут настраивать эти свойства во время выполнения для изменения значений, внешнего вида и поведения компонентов.

Внешний вид также управляется описаниями стилей CSS (Вы можете переопределить эти стили,чтобы изменить шрифты, цвета, размер и т.д.) применительно ко всему приложению, отдельной странице или отдельному компоненту.

Вы можете создавать подклассы компонентов, содержащихся в библиотеке Zen, для дальнейшего переопределения внешнего вида и поведения.

Создание новых компонентов Zen

Одно из главных выигрышных свойств Zen – возможность легко создавать новые компоненты.

Каждый компонент Zen реализуется как класс. Для создания нового компонента нужно:

  1. создать новый класс компонента, который может быть подклассом существующего компонента;
  2. реализовать метод, исполняющий HTML-контент данного компонента;
  3. описать методы на серверной и клиентской сторонах для реализации поведения компонента во время выполнения;
  4. убедиться в том, что заданный класс включает в себя описания каскадного листа стилей, необходимые для спецификации внешнего вида компонента.

Как осуществить локализацию приложения на базе Zen для разных языков

При необходимости технология Zen автоматически поддерживает набор всех текстовых значений (названий, заголовков и т.д.), отображаемых включенными в решение компонентами приложения в специальной таблице локализации. Вы можете экспортировать таблицу локализации приложения в виде XML-документа, транслировать значения в другие языки и импортировать новые таблицы.

Во время выполнения Zen использует текстовые значения на основе выбранного на данный момент языка пользовательского браузера.

Поддержка формата SVG

SVG обеспечивает применение эффективного стандартного способа полноценного отображения графических данных на веб-странице. Zen, помимо прочего, дает возможность создавать графические компоненты, выполняющиеся с использованием SVG, и поддерживать широкий набор предварительно созданных на основе SVG компонентов.

Браузеры, поддерживаемые технологией Zen

Zen работает с браузерами Firefox, Chrome, Safari и Internet Explorer (версия 7.0 и выше). Для Internet Explorer нужен подключаемый модуль Adobe SVG, если вы желаете использовать SVG-компоненты Zen.

Отчеты Zen

гамакZen поставляется вместе с широким набором средств для определения и генерирования задаваемых пользователем отчетов. Zen Report является особым типом класса Zen, который позволяет указать отчеты в формате XHTML или PDF. Встроенный в систему графический редактор визуального расположения содержимого дает возможность полностью контролировать компоновку и внешний вид отчетов и включать в них диаграммы, используемые в Zen. Отчеты могут выводиться в браузере или распечатываться либо на стороне сервера, либо на локальном принтере. Благодаря поддержке функции формирования отчетности в Zen ваше насыщенное данными интернет-приложение может точно воспроизводить отчеты, которые привыкли видеть пользователи, или легко генерировать новые требующиеся вам отчеты.

Преимущества Caché

«Богатые» пользовательские веб-интерфейсы: Визуально привлекательные высокоинтерактивные страницы могут генерироваться в форме, более схожей с тем, что мы видим в GUI клиент-серверных приложений, чем в простом традиционном браузере с кнопкой SUBMIT. Для пользователей интерактивный формат выглядит более естественным, и в применении он более прост.

Быстрая объектная разработка: Использование предварительно созданных компонентов ускоряет процесс разработки и облегчает последующее внесение изменений.

Унифицированные пользовательские интерфейсы: Компонентная архитектура упрощает определение и поддержание единого стиля приложения и правил поведения.

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