Реліз InterSystems IRIS 2020.1

Реліз InterSystems IRIS 2020.1

В кінці березня вийшла нова версія платформи даних InterSystems IRIS 2020.1 Навіть пандемія коронавірусу не запобігла релізу.

З важливого в новому релізі - підвищення швидкодії ядра, генерація REST-додатку за специфікацією OpenAPI 2.0, шардинг для об'єктів, новий вид Порталу Управління, підтримка MQTT, універсальний кеш запитів, новий фреймворк для створення елементів продукції на Java або .NET. Повний список змін та Upgrade Checklist англійською мовою можна знайти за за посиланням. Докладніше - під катом.

InterSystems IRIS 2020.1 – це реліз із розширеною підтримкою. InterSystems випускає два види релізів InterSystems IRIS:

  • Continuous delivery релізи. Виходять три-чотири рази на рік у вигляді образів Docker. Призначені для розробки програм та розгортання у хмарі або контейнерах Docker.
  • Релізи із розширеною підтримкою. Виходять рідше, але їм випускаються релізи з виправленнями. Випускаються на всіх платформах, що підтримуються InterSystems IRIS.

Між релізами з розширеною підтримкою 2019.1 та 2020.1 виходили релізи лише в образах Docker – 2019.2, 2019.3, 2019.4. Усі нові функції та виправлення з цих релізів увійшли до 2020.1. Деякі можливості з наведених нижче вперше з'явилися в одному релізі 2019.2, 2019.3, 2019.4.

Отже...

Розробка REST-додатків зі специфікації

На додаток до InterSystems API Manager, що підтримується з версії 2019.1.1, у релізі 2020.1 з'явилася можливість генерувати кістяк коду для REST-сервісу за специфікацією у форматі OpenAPI 2.0. Докладніше дивіться у розділі документації «Creating REST Services».

Конвертація інсталяції Caché або Ensemble

Цей реліз дозволяє конвертувати інсталяцію Caché або Ensemble в InterSystems IRIS. Сама конвертація може вимагати змін у програмному коді, налаштуваннях або інших скриптах, але в більшості випадків буде простою.

Перед конвертацією прочитайте InterSystems IRIS In-Place Conversion Guide та InterSystems IRIS Adoption Guide. Ці документи знаходяться на сайті Всесвітнього центру підтримки InterSystems у розділі «документи».

Клієнтські мови

InterSystems IRIS Native API для Python

Низькорівневий швидкий доступ із Python до багатовимірних масивів, у яких InterSystems IRIS зберігає дані. Детальніше - "Native API for Python».

InterSystems IRIS Native API для Node.js

Низькорівневий швидкий доступ із Node.js до багатовимірних масивів, у яких InterSystems IRIS зберігає дані. Детальніше - "Native API for Node.js».

Реляційний доступ для Node.js

Підтримка ODBC-доступу до InterSystems IRIS для розробників на Node.js

Двосторонній зв'язок у Java та .NET-шлюзах

З'єднання .NET та Java-шлюзів тепер двосторонні. Тобто, програма на .NET або Java, викликана з IRIS через шлюз, використовує це з'єднання для звернення до IRIS. Детальніше - "Java Gateway Reentrancy».

Поліпшення в Native API для Java та .NET

IRIS Native API для Java та .NET підтримує списки $LIST та передачу параметрів за посиланням.

Новий вид Порталу Управління

До цього релізу увійшли перші зміни в Порталі Управління. Вони поки що стосуються лише зовнішнього вигляду та не зачіпають функціонал.

SQL

  • Універсальний запит кеш. Починаючи з 2020.1 всі запити, включаючи вбудовані запити та запити класів, будуть зберігатися як кешовані запити. Раніше використання вбудованих запитів вимагало перекомпіляції програми для генерації нового коду запиту, наприклад, якщо з'явився новий індекс або змінилася статистика таблиці. Тепер усі плани запитів зберігаються в одному кеші та очищаються незалежно від програми, в якій використовується запит.

  • Більшість типів запитів тепер паралелізується, включаючи запити DML.

  • Запити до таблиці, розділеної по шардах, тепер можуть використовувати неявний join "->".

  • Запити з Порталу управління тепер виконуються у фоновому процесі. Довгі запити тепер не відвалюватимуться по таймууту веб-сторінки. Затягні запити тепер можна скасовувати.

Інтеграційні можливості

Новий фреймворк для створення елементів продукції на Java чи .NET

До цього релізу увійшов новий фреймворк PEX (Production EXtension), що дає додатковий вибір мови реалізації компонентів продукції. У цьому релізі PEX підтримує Java та .NET для розробки бізнес-служб, бізнес-процесів та бізнес-операцій, а також для вхідних та вихідних адаптерів. Раніше можна було створювати лише бізнес-служби та бізнес-операції і доводилося викликати кодогенератор у Порталі Управління. Фреймворк PEX надає більш гнучкі засоби включення коду Java і .NET в компоненти продукції, часто без програмування на ObjectScript. У пакет PEX входять такі класи:

Детальніше - "PEX: Developing Productions with Java and .NET».

Моніторинг використання портів у продукціях.

Утиліта Port Authority відстежує порти, які використовуються бізнес-службами та бізнес-операціями. З її допомогою можна визначити доступні порти та зарезервувати їх. Детальніше - "Managing Port Usage».

Адаптери для MQTT

Цей реліз включає адаптери, що підтримують протокол MQTT (Message Queuing Telemetry Transport), який часто використовується в додатках для Інтернету Речів (Internet of Things — IoT). Детальніше - "Using MQTT Adapters in Productions».

Шардинг

Спрощена архітектура

У цьому релізі з'явився простіший і зрозуміліший спосіб створення кластера — на базі окремих серверів (node ​​level), а не областей, як у попередніх версіях. Новий API - %SYSTEM.Cluster. Новий підхід сумісний зі старим кластер на базі областей (namespace level), і не вимагає змін в існуючих інсталяціях. Детальніше - "Elements of Sharding» та «Sharding APIs».

Інші покращення в шардингу:

  • Тепер можна кошардити (розподіляти по одним і тим же шардам часто з'єднуються частини двох таблиць) будь-які дві таблиці. Раніше так можна було робити тільки з таблицями, у яких був загальний шард-ключ. Починаючи з цього релізу, синтаксис COSHARD WITH застосовується і для таблиць з системним Id. Детальніше - "Create the Tables» та «Defining a Sharded Table».
  • Раніше відзначити таблицю як кластерну можна тільки через DDL, тепер це можна зробити і в описі класу - нове ключове слово Sharded. Детальніше - "Defining a Sharded Table by Creating a Persistent Class».
  • Об'єктна модель тепер підтримує шардинг. Методи %New(), %OpenId та %Save() працюють з об'єктами класу, дані якого розподілені по кількох шардах. Зверніть увагу, що код виконується на сервері, до якого підключений клієнт, а не на тому, де зберігається об'єкт.
  • Поліпшено алгоритм виконання кластерних запитів. Менеджер черги запитів (Unified Shard Queue Manager) ставить запити у чергу виконання пулу процесів, замість запуску нових процесів кожен запит. Число процесів у пулі визначається автоматично, виходячи з ресурсів сервера та навантаження.

Інфраструктура та розгортання у хмарі.

У цей реліз увійшли покращення в інфраструктурі та розгортанні у хмарі, включаючи:

  • Підтримка Tencent Cloud. InterSystems Cloud Manager (ICM) тепер підтримує створення інфраструктури та розгортання додатків на базі InterSystems IRIS у Tencent Cloud.
  • Підтримка іменованих томів (named volumes) у Docker, на додаток до монтування папок (bind mount).
  • ICM підтримує гнучке масштабування - конфігурації тепер можуть масштабуватися, тобто перестворюватися з більшою чи меншою кількістю вузлів. Детальніше - "Reprovisioning the Infrastructure» та «Redeploying Services».
  • Поліпшення у створенні власного контейнера.
  • ICM підтримує нову архітектуру шардингу.
  • За замовчуванням у контейнерах тепер не root.
  • ICM підтримує створення та розгортання приватних мереж, в яких вузол-бастіон з'єднує приватну мережу з публічною мережею та надає додатковий захист від Denial-of-Service атак.
  • Підтримка виявлення сервісів із захищеного RPC.
  • ICM підтримує розгортання у кількох регіонах. Так забезпечується висока доступність системи, навіть якщо весь регіон перестав працювати.
  • Можливість оновити ICM та зберегти інформацію про вже розгорнуті системи.
  • Безконтейнерний режим — ICM тепер може безпосередньо, не в контейнерах, розгортати кластерні конфігурації на Google Cloud Platform, а також встановлювати Web Gateway на Ubuntu чи SUSE.
  • Підтримка злиття iris.cpf із двох файлів. Це допомагає ICM запускати InterSystems IRIS з різними параметрами залежно від режиму, в якому інсталяція працює. Ця можливість спрощує автоматизацію та підтримку різних інструментів керування конфігураціями, таких як Kubernetes.

Аналітика

Вибіркова перебудова куба

Починаючи з цього релізу InterSystems IRIS Business Intelligence (передусім відомий як DeepSee) підтримує вибіркову побудову куба — лише одного показника чи виміру. Можна змінити опис куба та перебудувати лише те, що змінилося, зберігаючи доступність всього куба під час перебудови.

PowerBI конектор

Microsoft PowerBI тепер підтримує роботу з таблицями та кубами InterSystems IRIS. Конектор поставляється з PowerBI, починаючи з релізу квітня 2019 року. Детальніше - "InterSystems IRIS Connector for Power BI».

Перегляд результатів запиту

У цьому релізі з'явився новий режим попереднього перегляду при складанні зведених таблиць в Analyzer. Так можна швидко оцінити правильність запиту, не чекаючи на його повні результати.

Інші поліпшення

  • Обхід глобалу функцією $ORDER у зворотному порядку (direction = -1) тепер так само швидкий, як у прямому.
  • Поліпшено продуктивність журналування.
  • Додано підтримку Apache Spark 2.3, 2.4.
  • Додано підтримку клієнта WebSocket. Клас %Net.WebSocket.Client.
  • Клас контролю версій тепер обробляє події за змінами на сторінці продукції.
  • Білі списки для фільтрації допустимих запитів до CSP, ZEN та REST.
  • Підтримка. NET Core 2.1.
  • Поліпшено продуктивність ODBC.
  • Структурований лог для полегшення аналізу messages.log.
  • API для перевірки помилок та попередження. Клас %SYSTEM.Monitor.GetAlerts().
  • Компілятор класів тепер перевіряє, що ім'я глобалу в описі зберігання не перевищує максимальну довжину (31 символ) і повертає помилку, якщо це не так. Раніше ім'я глобалу без застереження обрізалося до 31 символу.

Де взяти

Якщо у вас є підтримка – скачайте дистрибутив з розділу Online Distributions сайту wrc.intersystems.com

Якщо ви тільки хочете спробувати InterSystems IRIS https://www.intersystems.com/ru/try-intersystems-iris-for-free/

Ще простіше через Docker:

docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0

Вебінар

7 квітня о 17:00 за київським часом пройде вебінар, присвячений новому релізу. Його проведуть Джефф Фрід (Director, Product Management) та Джо Ліхтенберг (Director of Product & Industry Marketing). Реєструйтеся! Вебінар буде англійською мовою.

Джерело: habr.com

Додати коментар або відгук