
В края на март новата версия на платформата за данни InterSystems IRIS 2020.1. Дори пандемията от коронавирус не попречи на пускането.
Сред важните изменения в новия релиз са увеличаването на производителността на ядрото, генерирането на REST приложение по спецификация OpenAPI 2.0, шардирование за обекти, нов тип Управленски Портал, поддръжка на MQTT, универсален кеш на заявки, нов фреймуърк за създаване на продуктови елементи на Java или .NET. Пълен списък с измененията и Upgrade Checklist на английски език може да се намери на . Повече информация — под кат.
InterSystems IRIS 2020.1 е релиз с разширена поддръжка. InterSystems пуска два вида релизи на InterSystems IRIS:
- Релизи с непрекъснато предаване. Появяват се три-четири пъти годишно под формата на Docker изображения. Предназначени са за разработка на приложения и разгръщане в облака или контейнерите Docker.
- Релизи с разширена поддръжка. Излизат по-рядко, но за тях се пускат исправителни релизи. Излизат на всички платформи, поддържани от InterSystems IRIS.
Между релизите с разширена поддръжка 2019.1 и 2020.1 излязоха само релизи в изображения Docker — 2019.2, 2019.3, 2019.4. Всички нови функции и корекции от тези релизи влязоха в 2020.1. Някои възможности от изброените по-долу за първи път се появиха в един от релизите 2019.2, 2019.3, 2019.4.
И така.
Разработка на REST приложения по спецификация
В допълнение към , поддържан от версия 2019.1.1, в релиз 2020.1 се появи възможност за генериране на остов на код за REST услуга по спецификация във формат OpenAPI 2.0. Повече информация вижте в раздела за документация «».
Конвертиране на инсталация на 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 съхранява данни. Повече информация — «».
InterSystems IRIS Native API для Node.js
Нискоуровнев достъп от Node.js до многомерни масиви, в които InterSystems IRIS съхранява данни. Повече информация — «».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Двунаправена връзка в Java и .NET шлюзовете
Свързването между .NET и Java шлюзите сега е двустранно. Тоест програма на .NET или Java, повикана от IRIS чрез шлюза, използва същото свързване за обращение към IRIS. Повече информация — «».
Подобрения в 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 включва следните класове:
Повече информация — «».
Мониторинг на използването на портовете в продуктите.
Утилитата Port Authority следи за портовете, използвани от бизнес услуги и операции. С нея можете да определите наличните портове и да ги резервирате. Повече информация — «».
Адаптери за MQTT
В този релиз са включени адаптери, които поддържат протокола MQTT (Message Queuing Telemetry Transport), често използван в приложения за Интернет на нещата (Internet of Things — IoT). Повече информация — «».
Шардинг
Оптимизирана архитектура
В този релиз се появи по-прост и интуитивен начин за създаване на кластер — на база на отделни сървъри (node level), а не области, както в предишните версии. Новото API — . Новият подход е съвместим със стария — клъстер на база области (namespace level) — и не изисква промени в съществуващите инсталации. Повече информация — «» и «».
Други подобрения в шардинга:
- Сега можете да ко-шардирате (разпределяте по едни и същи шардове често свързващи се части на две таблици) каквито и да е две таблици. Преди това можеше да се прави само с таблици, които имат общ шард-ключ. Започвайки от този релиз, синтаксисът COSHARD WITH се прилага и за таблици със системен Id. Повече информация — «» и «».
- Преди, таблица можеше да се отбележи като клъстерна само чрез DDL, сега това може да се направи и в описанието на класа — новото ключово слово Sharded. Повече информация — «».
- Обектният модел вече поддържа шардинг. Методите %New(), %OpenId и %Save() работят с обекти на клас, данните на който са разпределени по няколко шарда. Обърнете внимание, че кодът се изпълнява на сървъра, към който е свързан клиентът, а не на този, където се съхранява обектът.
- Подобрен алгоритъм за изпълнение на клъстерни заявки. Мениджърът на опашката за заявки (Unified Shard Queue Manager) поставя заявките в опашка за изпълнение на процесен пул, вместо да стартира нови процеси за всяка заявка. Броят на процесите в пула се определя автоматично, в зависимост от ресурсите на сървъра и натоварването.
Инфраструктура и разгръщане в облака.
В този релиз са включени подобрения в инфраструктурата и разгръщането в облака, включително:
- Подкрепа за Tencent Cloud. InterSystems Cloud Manager (ICM) вече поддържа създаването на инфраструктура и разгръщане на приложения въз основа на InterSystems IRIS в Tencent Cloud.
- Подкрепа за именувани томове (named volumes) в Docker, в допълнение към монтирането на папки (bind mount).
- ICM поддържа гъвкаво мащабиране — конфигурациите вече могат да се мащабират, т.е. да се пресъздават с повече или по-малко възли. Повече информация — «» и «».
- Подобрения в създаването на персонализиран контейнер.
- ICM поддържа нова архитектура на шардове.
- Потребителят по подразбиране в контейнерите вече не е root.
- ICM поддържа създаването и разгръщането на частни мрежи, в които свързващият възел свързва частната мрежа с публичната мрежа и предоставя допълнителна защита от атаки с отказ на услуга.
- Поддръжка за откриване на услуги чрез защитен 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 г. Повече информация — «».
Предварителен преглед на резултатите от заявката
В този релиз се появи нов режим на предварителен преглед при съставяне на сводни таблици в 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 символ.
Къде да намеря
Ако имате поддръжка — изтеглете дистрибутива от раздела на сайта wrc.intersystems.com
Ако просто искате да пробвате InterSystems IRIS —
Още по-лесно през 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 ч. московско време ще се проведе уебинар, посветен на новия релийз. Той ще бъде воден от Джеф Фрид (Директор, управление на продукта) и Джо Лихтенберг (Директор маркетинг на продукти и индустрия). Уебинарът ще бъде на английски език.
Източник: habr.com
