Рефлексия в Caché

image

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

Прямой доступ к классам Caché через REST, на примере DHTMLX Grid

С выходом новой версии InterSystems Caché появилась возможность использовать технологию REST и строить приложения, с помощью различных Javascript UI библиотек, в то время как сервер Caché выступает в роли сервера данных. В данной статье будет рассмотрен очень простой пример доступа к хранимым классам Caché с помощью технологии REST.
Читать далее

Настройка Apache для работы с СУБД Caché на Linux

Вообще говоря, в поставку InterSystems Caché входит встроенный веб-сервер Apache. Встроенный сервер предназначен для разработки и администрирования инстанса Caché и собран с некоторыми ограничениями. Существуют рецепты по устранению этих ограничений, но более общий подход – использовать для продакшена полноценный веб-сервер. В статье рассмотрена настройка Apache для работы с Caché и организация https доступа. Все действия выполнялись на Ubuntu, но настройка на других Linux дистрибутивах ничем принципиально не отличается.
Читать далее

Социальные кнопки в проекте на Caché

Одной из задач в проекте Вакансии по технологиям InterSystems, было создание кнопок “поделиться” для основных, на наш взгляд, социальных сетей. А конкретно для каждой вакансии необходимо:

  • внесение её логотипа;
  • название вакансии;
  • краткое описание;
  • знать из какой соц. сети пришел пользователь.

Как ни странно, это оказалось не такой уж и простой задачей при реализации на AngularJS по следующим причинам:

Новое в СУБД Caché 2013.1: встроенная поддержка WebSockets

В одной из предыдущих статей уже рассматривалась работа с WebSocket на примере собственной серверной реализации этого протокола поверх обычных сокетов.

В СУБД Caché 2013.1 CSP-Шлюз теперь включает поддержку спецификации HTML 5 для WebSocket-соединений между веб-сервером и HTML 5 совместимым браузером. Эта функция доступна для Apache 2.2 и выше, и для IIS 8.0, который является частью Windows Server 2012.

Поскольку в Caché 2013.1 уже встроен Apache 2.4, мы будем наши примеры запускать именно на нём.
Для реализации клиентской части использовался фреймворк ZEN, но вы можете переделать примеры и на технологию CSP или любую другую.

Итак, приступим…

Пример работы с getUserMedia и <canvas> в Zen Framework по мотивам «HTML5 Exploding Camera Demo»

Начиная с версии 2012.1, в СУБД Caché появился встроенный ZEN-компонент <canvas>.

Примечание: скачать бесплатную однопользовательскую версию СУБД Caché можно здесь.

А в последнем релизе Opera 12 появилась встроенная поддержка функции getUserMedia (WebRTC 1.0: Real-time Communication Between Browsers), которая даёт возможность обращаться к устройствам, генерирующим медиапоток, например к веб-камере.

Примечание: Сводная таблица поддержки getUserMedia/Stream API в настольных и мобильных браузерах.

Для демонстрации обеих этих возможностей, используя встроенный в СУБД Caché фреймворк ZEN, за основу было выбрано демо: HTML5 Exploding Camera Demo.
Читать далее

Каша быстрого приготовления — делаем CRUD в Caché с помощью jqGrid

Речь пойдет о создании веб-приложения на Intersystems Caché с использованием javascript плагина для отображения табличных данных – jqGrid. Плагин часто упоминается на Хабре, поэтому основное внимание будет уделено особенностям его использования со стороны Caché
Преимущества использования jqGrid:

  • разгрузка сервера от клиентской логики
  • возможность использования различных форматов обмена данными (xml, json)
  • различные способы отображения данных (таблица, дерево, вложенные таблицы)
  • готовый функционал по изменению данных – редактирование в строках, редактирование в формах, проверка данных
  • большое количество настроек, опций и событий с документацией, примерами и исходным кодом
  • богатый пользовательский функционал – сортировка, группировка, фильтрация, поиск, итоги, настройка отображения столбцов (видимость, порядок, размеры), поддержка множества тем визуального оформления от jqueryui

Состав блюда: хранимый класс с данными, класс-страница, класс-сервис данных. Необходимые библиотеки и стили подключаются из сетей доставки данных (CDN) и с сайтов разработчиков, поэтому, для работы примера в локальной сети, их необходимо будет скачать из этих источников.

Предупреждение: пример максимально упрощен, рассматривается только малая часть возможностей плагина, но кода все равно много, хотя он и тщательно задокументирован.
Заварим кашу?

Работа с сокетами в СУБД Caché. Пример реализации серверной части протокола WebSocket

СУБД Caché для взаимодействия через TCP/IP с удалёнными процессами посредством сокетов предоставляет низкоуровневые команды, что может представлять собой сложность для новичков.

А есть ли возможность использовать сокеты “по-другому”, не теряя при этом в гибкости, скорости и удобстве разработки?

Читать далее

Авторизация на proxy-серверах при исходящих http-запросах

Если при использовании %NET.HttpRequest вам необходимо пройти авторизацию на прокси-сервере, вам потребуется выставить значение свойства ProxyAuthorization самого HttpRequest.

Примеры допустимых значений описаны в соответствующем RFC 2617.

Нагрузочное тестирование веб-приложений

Если в процессе разработки вам требуется проверить, как построенная система выдержит большое количество пользователей, вы можете воспользоваться специальными инструментами для организации нагрузочного тестирования, например, Apache JMeter. Это бесплатное кроссплатформенное приложение, написанное на Java, которое позволяет очень просто создавать тестовые последовательности действий, соответствующие сценариям работы пользователей, и масштабировать создаваемую нагрузку.

Также в JMeter входят средства для анализа полученных результатов – построения сводных отчетов, графиков и прочего.

При использовании JMeter вам могут быть полезными следующие ссылки:

Для поиска точек возможной оптимизации можно использовать стандартный профилировщик ^%SYS.MONLBL:

Если вы проводите тестирование при помощи других средств, и расскажете нам об этом, мы опубликуем эту информацию.