Всем привет! Рады представить вам новую версию Caché 2016.1, релиз которой состоялся во второй половине марта. Важных и интересных изменений действительно много, поэтому предлагаю сразу перейти к ним.
Полный и подробный список изменений доступен здесь: Caché 2016.1 Release Notes
Улучшенная поддержка JSON
Первое и долгожданное нововведение — улучшенная производительность и новые механизмы для работы с JSON в Caché.
Разбор JSON теперь реализован в Caché на уровне ядра, что позволило существенно улучшить производительность при работе с JSON большого объема. А на замену %ZEN.ProxyObject, который ранее использовался для работы с JSON, пришли новые динамические объекты %Object и %Array, которые отличаются большей эффективностью и удобством при написании кода.
Пример:
set object = { "firstName": "Sergey", "lastName": "Sarkisyan", "age": 22 }
set array = [ 1, 2, "string", true ]
do array.$push("InterSystems").$push("Caché").$push("2016.1")
write array.$toJSON()
=> [ 1, 2, "string", true, "InterSystems", "Caché", "2016.1" ]
Более подробную информацию вы можете найти в статье Эдуарда Лебедюка на Хабре и в статье Штефана Виттманна на нашем Developer Community.
Улучшения в SQL
Идём дальше. Следующее важное изменение в Caché 2016.1 — улучшенная производительность исполнения SQL. InterSystems постоянно работает над совершенствованием SQL-доступа в Caché, и этот релиз не стал исключением:
- Оптимизация производительности для серверного кода xDBC.
- Улучшения производительности исполнения SQL-запросов. В этом выпуске обработчик SQL-запросов генерирует более эффективный код для большинства распространенных SQL-операций.
- Улучшены возможности по отмене операций.
DeepSee REST
Дальше по списку идет Business Intelligence. В Caché 2016.1 представлены новые REST-сервисы для доступа к движку DeepSee. Cервисы предназначены для получения данных сводных таблиц и исполнения MDX-запросов с возвратом результата в виде JSON. Так же доступны различные информационные сервисы для получения списков кубов DeepSee, сводных таблиц, и различной информации о кубах (Измерений (Dimensions), членов кубов (Members), Показателей (Measures) и т.д.).
Для JavaScript-разработчиков хорошей новостью будет то, что в этот релиз также включена JavaScript-библиотека, предоставляющая доступ к REST-сервисам DeepSee.
Более подробную информацию можно найти в документации к Caché 2016.1 в разделе "Tools for Creating DeepSee Web Clients".
На этом изменения в DeepSee не заканчиваются! Список наиболее важных из них:
- Параллельная синхронизация кубов DeepSee — %SynchronizeCube теперь может использовать несколько агентов DeepSee для параллельного обновления кубов.
- Общие вычисляемые члены кубов — вычисляемые члены, определенные в Analyzer теперь могут быть доступны для других сводных таблиц из того же куба. Подробности можно найти в главе "Defining Calculated Elements" раздела "Using the DeepSee Analyzer" документации.
- Подробные списки, зависящие от показателей — теперь для Показателя можно указать подробный список (Listing), который будет отображаться при получении детальной информации о ячейке, содержащей данные этого Показателя.
- Analyzer и Architect теперь позволяют изменять размер панелей интерфейса.
- Новые системные методы для получения и исполнения MDX-запросов сводных таблиц (Подробности можно найти в документации класса %DeepSee.Utils):
- %GetMDXFromPivot() — возвращает текст MDX-запроса сводной таблицы. Опционально выполняет запрос.
- %ExecutePivot() — выполняет запрос сводной таблицы. Опционально возвращает ассоциированный с таблицей %DeepSee.ResultSet
- %GetResultSetFromPivot() — возвращает %DeepSee.ResultSet для сводной таблицы. Опционально выполняет запрос.
- Возможность указывать дополнительные параметры фильтрации подробных списков при использовании плагинов — плагины предоставляют возможность определять собственные Показатели в DeepSee. В предыдущих версиях подробные списки из плагина всегда показывали все строки, которые использовались для вычисления Показателя. В этом выпуске добавлена возможность ограничивать такие подробные списки определенным подмножеством строк.
- Новый метод %OnAfterBuildCube — в дополнение к существующей возможности определять логику перед построением куба, добавлена аналогичная возможность для определения собственной логики после построения.
- Новый токен $$$VARIABLES — в DeepSee появился новый токен $$$VARIABLES, который можно использовать при получении доступа к дашбордам по URL. Этот токен будет заменен на значение соответствующей переменной сводной таблицы. Пример: someURL&someVARIABLE=$$$VARIABLES заменит $$$VARIABLES на значение переменной someVARIABLE. Больше информации в главе "Accessing Dashboards from Your Application" раздела "DeepSee Implementation Guide" документации.
- Фильтр по дате и первый день недели — теперь при использовании фильтра по дате учитываются системные настройки первого дня недели.
InterSystems iKnow
Технология для работы с текстом на естественном языке iKnow тоже получила обновления: в Портал Управления Системой добавлен iKnow Architect, созданный для предоставления пользователя удобного способа управления iKnow-доменами; кроме того, добавилась поддержка шведского и японского языков.
ZEN Mojo
Web-фреймворк ZEN Mojo получил поддержку и довольно тесную интеграцию с Twitter Bootstrap. Больше информации можно найти в документации, в главе "Helper Plugin for Bootstrap" раздела "Using Zen Mojo Plugins".
.NET Entity Framework
Также в Caché добавлена поддержка .NET Entity Framefork (версий 5 и 6), что должно обрадовать .NET разработчиков, работающих с Caché. Как всегда, все подробности можно найти в документации, в главе "Using the Caché Entity Framework Provider" раздела "Using .NET and the ADO.NET Managed Provider with Caché".
Остальные изменения
Из остальных важных изменений:
- Улучшена производительность и уменьшена нагрузка на сеть при использовании зеркалирования.
- Добавлена поддержка TCP окна большего размера, что должно улучшить пропускную способность между узлами зеркала с большой задержкой.
- Выпуск включает библиотеку Open SSL версии 1.0.1p.
- Улучшена надежность аудита (с помощью добавления обязательного журналирования базы аудита).
- Добавлена поддержка Windows x64 для Apache 2.4.
- Серверы приложений ECP стали кешировать длинные строки. Различные улучшения производительности, масштабируемости и безопасности.
Это далеко не все изменения в Caché 2016.1. Напоминаю, что полный список изменений можно найти по ссылке.
Спасибо за внимание и до новых релизов!
Автор: InterSystems