- Аналитические и
технологические обзоры - Возможности и преимущества
- Демонстрации
- Документация и техническое описание
- Лицензии и сертификаты
- Примеры внедрения
- Технологический справочник
- Уголок разработчика
- Caché Newsgroup
- Free Caché e-Learning
- Скачать Caché
Технологический справочник
Часть 4:
Быстрая разработка быстрых WEB-приложений
В названии четвертой части Технологического справочника
по Caché "Быстрая разработка быстрых Web-приложений"
слово "быстрый" используется два раза. Тому есть две причины:
- первая: CSP позволяет создавать сложные, ориентированные на использование баз данных Web-приложения значительно быстрее, чем традиционные технологии,
- вторая: в эти приложения встроена Caché — самая быстрая в мире СУБД, способная обслуживать десятки тысяч пользователей одновременно.
Существует множество способов создания Web-приложений с помощью Caché,
в том числе и традиционные, использующие SQL для работы с базой данных.
CSP или Caché Server Pages (серверные страницы Caché)
- иной, более естественный подход.
Он и обсуждается в этой части Справочника.
Технология CSP является частью сервера приложений Caché. Из этого напрямую следует, что приложения, созданные в Caché , готовы для работы в среде Web. На них распространяются два основных преимущества Caché:
- развитая объектно-ориентированная среда разработки приложений баз данных,
- ультравысокие производительность и масштабируемость разработанных и эксплуатируемых систем.
CSP работает с HTML, XML, WML и другими Web-ориентированными языками разметки (mark-up languages).
CSP не является инструментом проектирования Web-сайтов, хотя она и может использоваться совместно с такими инструментами. В то время как большинство инструментов проектирования Web-сайтов концентрируется только на создании статических страниц HTML, технология CSP идет дальше - она участвует в разработке логики приложений. Кроме того, технология CSP включает в себя среду для исполнения приложений, обеспечивающую быстрое выполнение программ совместно с прикладным сервером Caché.
CSP предоставляет разработчикам мощную среду процедурного программирования. В ней могут создаваться приложения такого уровня сложности и точности, который превосходит возможности, предоставляемые обычными технологиями генерации приложений. Тем не менее, CSP также обеспечивает и быструю разработку с помощью следующих двух своих особенностей: архитектуры классов, в которой создаются "строительные блоки" программного кода для их последующего объединения в приложение, и набора так называемых Мастеров (wizards), которые могут быстро производить простые версии программного кода для их точной последующей настройки. Результат — возможность быстро создавать очень сложные приложения, работающие с базами данных.
Преимущества CachéОбъектно-ориентированное программирование плюс Мастера Caché позволяют быстро создать сложные приложения для работы с базами данных. |
Некоторые характеристики технологии Caché Server Pages:
- Динамические серверные страницы – В отличие от традиционных Web-серверов, просто возвращающих на браузер статические HTML-страницы, технология CSP предполагает динамическое создание страниц на сервере с помощью прикладного кода. При этом приложения могут значительно быстрее реагировать на множество различных запросов и объединять соответствующие результирующие страницы для их возврата на браузер.
- Модель сессии – Все процессы обработки, связанные со страницами конкретного браузера, трактуются как часть единой сессии: от первого запроса браузера и до завершения работы приложения или превышения таймаута в обмене сообщениями.
- Сохранение состояния на сервере – В течение сессии данные приложения на сервере и даже весь контекст приложения может автоматически удерживаться в памяти в промежутках между запросами браузера. Это значительно упрощает разработку и эксплуатацию сложных приложений.
- Объектная архитектура – Так как каждая страница соответствует классу, код и другие параметры, общие для нескольких страниц, могут быть легко объединены с помощью механизма наследования. Данные также хранятся в объектах, что позволяет воспользоваться всеми преимуществами объектно-ориентированного подхода.
- XML – Caché полностью поддерживает XML - и как альтернативу HTML для построения Web-страниц, и как универсальный формат для обмена данными между приложениями и системами. Программист вместо выдачи контента HTML в методе onPage(), обеспечивает вывод XML.
- Теги приложений Caché (Caché Application Tags) для автоматической генерации серверного кода. Расширения HTML-тегов так же легко использовать, как и традиционные HTML-теги. Эти теги добавляются к стандартным тегам HTML, и они генерируют сложный код приложений, обеспечивая самую разную функциональность, такую как открытие объектов, выполнение запросов, контроль ветвления программы. Набор этих тегов расширяемый - разработчики могут создавать собственные теги для своих нужд.
- Интеграция с популярными инструментами Web-дизайна – CSP работает с различными инструментами, которые позволяют форматировать Web-страницы. Интеграция с Dreamweaver более тесная: появляется возможность добавлять теги приложений Caché простым нажатием клавиши мыши. CSP также содержит Мастер (Wizard), который позволяет легко создавать формы для отображения и редактирования данных в базе данных Caché.
- Вызов серверных методов из браузера. Для того чтобы облегчить создание динамических приложений, CSP обеспечивает запуск методов на сервере. Когда в браузере происходит событие (обычно, когда пользователь выполняет какое-либо действие) запускается код приложения на сервере, и генерируется ответ на это событие, причем нет необходимости перезагружать новую страницу целиком.
- Шифрование. Caché автоматически кодирует информацию в URL, для того чтобы обеспечить аутентификацию пользователей и предотвратить несанкционированный доступ. Ключ шифрования хранится только на сервере и действует только во время одной сессии.
Технология обладает огромными возможностями, но это не значит, что ее сложно использовать. Наша цель - сделать технологию простой в использовании, а большинство возможностей прозрачно для Вас. Наша философия - "Сила в простоте"; сложность должна заключаться в нашей системе, а не в Ваших разработках.
МОДЕЛЬ CSP
Традиционные Web-технологии
В традиционных Web-технологиях запрос посылается на Web-сервер, и Web-сервер извлекает соответствующий HTML-файл, который посылается обратно в браузер. Когда приложение должно передавать данные, разработка усложняется: программисты обычно используют CGI (с такими языками как Perl или tcl) на сервере и посылают SQL-запросы или запускают хранимые процедуры на сервере базы данных. Среда разработки оставляет желать лучшего, да и производительность, особенно систем, обслуживающих большое количество пользователей, крайне низкая из-за большой нагрузки на Web-сервер.
При использовании CGI-сценариев каждый запрос браузера обычно порождает новый процесс. Для того чтобы этого избежать, программисты иногда размещают код приложения непосредственно на Web-сервере. При этом возникает опасность того, что ошибка в таком приложении может привести к остановке всего Web-сервера.
Динамические серверные страницы
В основе CSP лежит другой подход: динамические серверные страницы. Содержание (HTML, XML, таблицы стилей, изображения и т.д.) генерируется во время исполнения на сервере приложений, а не извлекается из файлов. Такой подход позволяет обеспечить высокую производительность и гибкость в ответах на запросы.
Большая часть кода приложений выполняется на сервере приложений, который может располагаться либо на одном компьютере с Web-сервером, либо на разных. Часть кода - обычно это Java Script - может выполняться в браузере; как правило, это касается таких операций как проверка данных, форматирование, вызов кода, выполняемого на сервере.
При таком подходе процессы не должны создаваться для каждого запроса браузера (как это происходит при использовании CGI-сценариев), что положительно сказывается на производительности. Так как код приложения размещается не на Web-сервере, ошибка приложения не может привести к остановке Web-сервера.
Сессия. Модель обработки страниц
Обработка всех страниц из одного браузера рассматривается как часть сессии от первого запроса браузера до окончания приложения или до программируемого таймаута. Когда Web-сервер получает запрос страницы (URL) с расширением ".csp", этот запрос пересылается (специальной маленькой программой Caché на Web-сервере) соответствующему серверу приложений Caché, который может располагаться на другом компьютере.
Когда сервер приложений Caché получает запрос, он определяет, есть ли уже открытая сессия для этого браузера. Если её нет, то автоматически создается новая сессия. Затем Caché исполняет код приложения, связанный с соответствующей страницей, выполняя действия, инициированные пользователем, и программно генерирует HTML-, XML- изображения или другое содержание страницы, которое пересылается обратно в браузер.
Сессия завершается с установкой соответствующего свойства у объекта %session. Приложения, работающие без сохранения своего состояния, могут завершать сессию по окончании обработки каждой страницы.
Сохранение состояния
При традиционном подходе к разработке Web-приложений, когда приложение выполняется в браузере, нет эффективного пути (без большого количества системного программирования) сохранять на сервере информацию от одного запроса к другому. Наоборот, приложения, как правило, посылают в браузер всю информацию о состоянии, которую они хотят сохранить, либо в URL, либо в скрытые поля формы. Этот подход крайне неэффективен для сложных приложений, в которых часто возникает необходимость сохранять временную информацию в файлах или базе данных. К сожалению, необходимость сохранять и хранить окружение сессии для каждого запроса при таком подходе приводит к большой нагрузке на сервер и усложняет разработку.
Одно из преимуществ модели управления сессией, которая реализована в Caché - возможность автоматически и крайне эффективно сохранять информацию между запросами браузера. В CSP для управления сессией предусмотрен специальный объект %session, который сохраняет общую информацию о сессии и содержит ряд свойств, которые позволяют программисту управлять различными характеристиками сессии. Приложение может также хранить собственные данные в объекте, который автоматически сохраняется от запроса к запросу.
Вы можете управлять хранением состояния сессии с помощью свойства "Preserve" объекта-сессии, присваивая ему значение "0" или "1" (По умолчанию присваивается значение "0", но оно может меняться во время выполнения приложения).
- 0 - данные сохраняются в объекте сессии (данные записываются в многомерное свойство, в которое можно записывать любые типы данных, в том числе индексы, имеющие строковые значения, без всякой объявления).
- 1 - Caché использует один и тот же процесс для всей сессии, таким образом, все состояние сервера сохраняется, включая все переменные (не только в объекте Session), открытые устройства, блокировки и т.д.
Значение "0" позволяет логически разделить всю сохраняемую информацию и разрешает нескольким сессиям использовать один и тот же процесс, экономя ресурсы компьютера, но сохраняя меньше информации о состоянии. Значение "1" более удобно программисту и предоставляет ему больше возможностей за счет более интенсивного использования ресурсов сервера.
Объект %request
CSP автоматически предоставляет несколько объектов в дополение к объекту %session в помощь программисту для обработки страницы. Один из них - объект %request. Когда приходит запрос для получения страницы, происходит разбор параметров URL и его компоненты помещаются в объект %request. В объекте %request содержатся пары "имя-значение" из запроса, данные формы, а также другая полезная информация. Например, значение параметра с именем "FilmID" может быть получено следующим образом:
|
|
|
|
|
|
Преимущества CachéАвтоматическое хранение информации о состоянии сессии на сервере уменьшает сетевой трафик и, как следствие, нагрузку на сервер, так что приложению не требуется выгружать данные сессии на страницу и получать эти данные обратно в следующем запросе. При этом программирование приложения значительно упрощается. Использование динамических серверных страниц и сервера приложений Caché позволят добиться большей гибкости при обработке запросов и большей производительности приложения и увеличения скорости разработки. При этом нет риска, что ошибки в приложении приведут к остановке Web-сервера. |
АРХИТЕКТУРА КЛАССОВ ДЛЯ WEB-СТРАНИЦ
Каждой странице соответствует класс, содержащий методы (код) для генерации содержимого страницы. При получении запроса к некоторой странице ее URL используется для идентификации соответствующего класса, далее вызывается метод Page() этого класса. Обычно страницы являются потомками стандартного класса Web-страницы %CSP.Page, который обеспечивает страницам базовую встроенную функциональность, такую как генерация заголовков и шифрование. Эти базовые возможности для конкретной страницы могут быть переопределены различными способами: наследование страницы от другого базового класса, использование множественного наследования, переопределение отдельных методов.
Такая архитектура, основанная на классах, облегчает разработку и внесение изменений в приложение, обеспечивает единство стиля для всего приложения, а также позволяет использовать все преимущества объектного программирования для Web-приложений.
Класс Web-страницы содержит код, который выполняет запрошенные действия и посылает ответ браузеру. Однако не весь выполняемый код обязан находиться в этом классе страницы. На самом деле, большая часть выполняемого кода находится в методах классов базы данных и, возможно, в дополнительных классах, описывающих бизнес-логику приложения. Таким образом, разработка Web-приложения состоит из создания классов базы данных и классов, соответствующих Web-страницам (плюс, возможно, дополнительных классов бизнес-логики).
В целом мы рекомендуем создавать классы страниц, которые содержат только описание пользовательского интерфейса. Бизнес-логика и логика работы с данными должны содержаться в других классах так, чтобы существовало четкое разделение между кодом интерфейса, кодом по работе с базой данных и кодом бизнес-логики. Это упростит дальнейшее развитие программы и добавление к ней новых интерфейсов пользователя.
РАЗЛИЧНЫЕ СТРАТЕГИИ РАЗРАБОТКИ
Класс страницы создается для каждой web-страницы и содержит код для исполнения на этой странице. Существуют разные способы для создания классов страниц и большинство приложений используют сразу несколько:
- Файл CSP – файл с HTML разметкой и дополнительными тегами, обрабатываемыми сервером приложений. Такой файл может быть создан в простом текстовом редакторе или мощной среде для верстки web-страниц. Этот файл не передается в браузер клиента, а компилируется для генерации класса страницы.
- Программный способ – программист создает класс страницы со всеми необходимыми методами.
CSP ФАЙЛЫ
CSP файлы - это файлы с HTML-тегами и тегами приложений Cache которые компилируются в классы страниц - такие же классы страниц может непосредственно создавать программист. Эти классы страниц компилируются для создания кода, который выполняется на сервере приложений Caché в ответ на запросы браузера.
В среде разработки Cache Studio есть инструмент Мастер Форм, который автоматически создает файл CSP для просмотра или редактирования класса базы данных. Разработчик просто указывает на класс базы данных, и выбирает свойства этого класса, которые надо показать на странице. Мастер Форм делает остальное - создает файл с HTML разметкой и тегами приложения. Если результат работы мастера чем-то не устраивает, созданную страницу очень просто отредактировать.
Подход с созданием CSP файлов обладает рядом преимуществ:
- Дизайнер может создать макет или шаблон, в то время как программист может сосредоточиться на программном коде
- Большая часть интерфейса пользователя может быть создана не вручную, а с помощью какого-либо визуального средства разработки. Таким образом, обеспечивается разделение бизнес-логики и кода пользовательского интерфейса
- В большинстве случаев гораздо легче настроить приложение для конкретного пользователя, если предоставить возможность обычным пользователям, а не программистам, изменять внешний вид приложения и добавлять простую функциональность.
Поскольку описание визуального представления приложения отделено от программной логики, задача изменения внешнего вида приложения без программирования сильно упрощается. Достаточно отредактировать файл HTML или XML и перекомпилировать страницу.
Хотя простое приложение может быть целиком создано таким способом, для более сложных приложений программисты обычно пишут дополнительный код. Он помещается в теги приложения, которые также содержат процедурный код или код, вызываемый из других классов. В то же время сложные страницы с большим объемом процедурного кода проще писать, используя программный способ вместо работы с CSP файлами.
Некоторые средства Web-дизайна, такие как Dreamweaver, более глубоко интегрированы с Caché. Так, Dreamweaver предоставляет возможность выбора тегов приложений Caché из меню в визуальной среде разработки, код тегов вставляется в файл автоматически. Поддерживается также Мастер Форм Caché (Caché Form Wizard), который автоматически генерирует код для просмотра и обновления объектов в базе данных.
Теги приложений Caché
Теги приложений Caché могут быть добавлены в CSP-файл. Хотя используются они точно также как и обычные HTML-теги, на самом деле они являются инструкциями Web-компилятору Caché для генерации кода приложений, который обеспечивает такие возможности, как открытие объектов, выполнение запросов, управление ходом выполнения программ, непосредственное выполнение инструкций на сервере приложений Caché. Набор тегов приложений Caché может быть расширен. Разработчики могут создавать свои собственные теги для реализации специфических задач.
Теги приложений Caché не встраиваются в HTML-страницу, которая возвращается браузеру, они содержатся только в CSP-файлах, обрабатываемых компилятором Web-страниц Caché. Компилятор автоматически преобразует их в стандартный HTML-формат, который может быть обработан любым браузером.
ГИПЕР-СОБЫТИЯ
Гипер-события Caché позволяют обрабатывать события в браузере (такие как щелчок мышкой, изменения значений полей и таймауты) напрямую вызывать методы на сервере Caché и изменять содержимое страницы без перерисовки ее целиком. После выполнения необходимых действий метод на сервере может вернуть код для выполнения в браузере, обычно JavaScript, для выполнения в браузере. С использованием гипер-событий web-приложения становятся более интерактивными.
Вызов серверного метода на CSP странице выполняется при вставке инструкции "#server(…)#". Например, предположим, что когда в браузере пользователь кликает на изображение тележки для покупок, необходимо вызвать метод AddToCart(). Тогда HTML-определение для этого изображения может включать следующее предложение:
onClick=”#server(..AddToCart())#”
Компилятор Web-страниц Caché заменяет этот синтаксис кодом на JavaScript, который при обработке в браузере вызовет метод на стороне Caché.

InterSystems
Corporation
World
Headquarters
One Memorial Drive
Cambridge, MA 02142-1356
Tel: +1.617.621.0600
Fax: +1.617.494.1631
InterSystems Caché is a registered trademark of InterSystems Corporation. Other product names are trademarks of their respective vendors.
Copyright © 2006 InterSystems Corporation. All rights reserved. 07-06
Технологический справочник
Следующая страница |
