
Ende März wurde die neue Version der Datenplattform InterSystems IRIS 2020.1 veröffentlicht. Selbst die Coronavirus-Pandemie konnte die Veröffentlichung nicht verhindern.
Wichtige Neuerungen in diesem Release sind die verbesserte Kernel-Performance, die Generierung von REST-Anwendungen gemäß der OpenAPI 2.0-Spezifikation, Sharding für Objekte, eine neue Art des Management-Portals, Unterstützung für MQTT, ein universeller Cache für Abfragen und ein neues Framework zur Erstellung von Produktelementen in Java oder .NET. Die vollständige Liste der Änderungen und das Upgrade-Checklist finden Sie auf Englisch unter . Weitere Informationen finden Sie unten.
InterSystems IRIS 2020.1 ist eine Version mit erweiterter Unterstützung. InterSystems veröffentlicht zwei Arten von InterSystems IRIS-Versionen:
- Continuous Delivery-Versionen. Erscheinen drei bis vier Mal im Jahr in Form von Docker-Images. Sie sind für die Anwendungsentwicklung und das Deployment in der Cloud oder in Docker-Containern vorgesehen.
- Versionen mit erweiterter Unterstützung. Erscheinen seltener, für sie werden jedoch Korrekturversionen veröffentlicht. Sie werden auf allen von InterSystems IRIS unterstützten Plattformen bereitgestellt.
Zwischen den Versionen mit erweitertem Support 2019.1 und 2020.1 wurden nur Docker-Images veröffentlicht — 2019.2, 2019.3, 2019.4. Alle neuen Funktionen und Verbesserungen aus diesen Versionen sind in 2020.1 enthalten. Einige der nachfolgend aufgeführten Funktionen wurden erstmals in einer der Versionen 2019.2, 2019.3, 2019.4 eingeführt.
Also.
Entwicklung von REST-Anwendungen gemäß der Spezifikation
Zusätzlich zu , der seit Version 2019.1.1 unterstützt wird, wurde in der Version 2020.1 die Möglichkeit eingeführt, einen Code-Rahmen für einen REST-Service gemäß der Spezifikation im OpenAPI 2.0-Format zu generieren. Weitere Informationen finden Sie im Abschnitt der Dokumentation „».
Umwandlung von Caché- oder Ensemble-Installationen
Diese Version ermöglicht es, bei der Installation eine Caché- oder Ensemble-Installation in InterSystems IRIS umzuwandeln. Die eigentliche Umwandlung kann Änderungen am Programmcode, an Konfigurationen oder an anderen Skripten erfordern, wird in den meisten Fällen jedoch einfach sein.
Lesen Sie vor der Umwandlung den InterSystems IRIS In-Place Conversion Guide und den InterSystems IRIS Adoption Guide. Diese Dokumente finden Sie auf der Website des InterSystems Global Support Centers im Abschnitt „».
Klientsprachen
InterSystems IRIS Native API für Python
Niedrigschwelliger, schneller Zugriff aus Python auf mehrdimensionale Arrays, in denen InterSystems IRIS Daten speichert. Weitere Informationen — „».
InterSystems IRIS Native API для Node.js
Niedrigleveliger, schneller Zugriff aus Node.js auf mehrdimensionale Arrays, in denen InterSystems IRIS Daten speichert. Mehr dazu — «».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Zweiseitige Kommunikation in Java- und .NET-Gateways
Verbindungen der .NET- und Java-Gateways sind nun zweiseitig. Das bedeutet, dass ein .NET- oder Java-Programm, das über das Gateway aus IRIS aufgerufen wird, dasselbe Verbindung nutzt, um auf IRIS zuzugreifen. Mehr dazu — «».
Verbesserungen der Native API für Java und .NET
IRIS Native API für Java und .NET unterstützt $LIST-Listen und Parameterübergabe durch Referenz.
Neues Design des Management Portals
Dieses Release enthält die ersten Änderungen im Management Portal. Diese betreffen bisher nur das Aussehen und haben keinen Einfluss auf die Funktionalität.
SQL
Universeller Anfrage-Cache. Ab Version 2020.1 werden alle Anfragen, einschließlich eingebetteter Anfragen und Klassenanfragen, als zwischengespeicherte Anfragen gespeichert. Früher erforderte die Verwendung eingebetteter Anfragen eine Neukompilierung des Programms zur Generierung neuer Anfragecodes, z. B. wenn ein neuer Index erstellt wurde oder sich die Tabellenstatistik geändert hat. Jetzt werden alle Anfragepläne in einem einzigen Cache gespeichert und unabhängig von dem Programm, in dem die Anfrage verwendet wird, gelöscht.
Eine größere Anzahl von Abfragetypen kann nun parallel verarbeitet werden, einschließlich DML-Abfragen.
Abfragen an shard-geteilte Tabellen können jetzt den impliziten Join "->" verwenden.
Abfragen, die über das Management-Portal gestartet werden, werden jetzt im Hintergrund ausgeführt. Lange Abfragen werden nicht mehr durch Timeout der Webseite abgebrochen. Verzögerte Abfragen können jetzt abgebrochen werden.
Integrationsmöglichkeiten
Ein neues Framework zur Erstellung von Produkteelementen in Java oder .NET.
Dieses Release enthält das neue PEX (Production EXtension) Framework, das eine zusätzliche Sprachwahl für die Implementierung von Produktelementen bietet. In diesem Release unterstützt PEX die Entwicklung von Geschäftsdiensten, Geschäftsprozessen und Geschäftsoperationen in Java und .NET sowie für eingehende und ausgehende Adapter. Zuvor konnten nur Geschäftsdienste und Geschäftsoperationen erstellt werden, und es war erforderlich, den Codegenerator im Management-Portal aufzurufen. Das PEX-Framework bietet flexiblere Möglichkeiten zur Integration von Java- und .NET-Code in Produktelemente, oft ohne Programmierung in ObjectScript. Das PEX-Paket umfasst folgende Klassen:
Mehr erfahren — «».
Überwachung der Portnutzung in Produktionen.
Das Tool Port Authority überwacht die von Geschäftsdiensten und -operationen verwendeten Ports. Damit können verfügbare Ports identifiziert und reserviert werden. Weitere Informationen – „».
Adapter für MQTT
Dieses Release umfasst Adapter, die das MQTT-Protokoll (Message Queuing Telemetry Transport) unterstützen, das häufig in Anwendungen für das Internet der Dinge (Internet of Things – IoT) verwendet wird. Weitere Informationen – „».
Sharding
Vereinfachte Architektur
In diesem Release gibt es einen einfacheren und verständlicheren Weg zur Erstellung eines Clusters – basierend auf einzelnen Servern (Node-Level) anstelle von Namespaces wie in früheren Versionen. Neue API – . Der neue Ansatz ist mit dem alten – einem Cluster basierend auf Namespaces (Namespace-Level) – kompatibel und erfordert keine Änderungen an bestehenden Installationen. Weitere Informationen – „» und «».
Weitere Verbesserungen im Sharding:
- Jetzt können beliebige zwei Tabellen gemeinsam shardiert (auf dieselben Shards verteilt) werden. Zuvor war dies nur für Tabellen möglich, die einen gemeinsamen Shard-Schlüssel hatten. Ab dieser Version wird die Syntax COSHARD WITH auch für Tabellen mit einem systeminternen Id verwendet. Weitere Informationen — «» und «».
- Zuvor konnte eine Tabelle nur über DDL als Cluster markiert werden, jetzt kann dies auch in der Klassendefinition mit dem neuen Schlüsselwort Sharded erfolgen. Weitere Informationen — «».
- Das Objektmodell unterstützt jetzt Sharding. Die Methoden %New(), %OpenId und %Save() funktionieren mit Objekten der Klasse, deren Daten über mehrere Shards verteilt sind. Bitte beachten Sie, dass der Code auf dem Server ausgeführt wird, mit dem der Client verbunden ist, und nicht auf dem, auf dem das Objekt gespeichert ist.
- Der Algorithmus zur Ausführung von Clusteranforderungen wurde verbessert. Der Anforderungsqueue-Manager (Unified Shard Queue Manager) stellt Anfragen in eine Warteschlange zur Ausführung durch einen Prozesspool, anstatt für jede Anfrage neue Prozesse zu starten. Die Anzahl der Prozesse im Pool wird automatisch basierend auf den Serverressourcen und der Auslastung bestimmt.
Infrastruktur und Bereitstellung in der Cloud.
Dieses Release beinhaltet Verbesserungen in der Infrastruktur und Bereitstellung in der Cloud, einschließlich:
- Unterstützung von Tencent Cloud. Der InterSystems Cloud Manager (ICM) unterstützt jetzt die Erstellung von Infrastruktur und die Bereitstellung von Anwendungen basierend auf InterSystems IRIS in Tencent Cloud.
- Unterstützung von benannten Volumes in Docker, zusätzlich zur Einbindung von Ordnern.
- ICM unterstützt skalierbare Konfigurationen — diese können jetzt mit mehr oder weniger Knoten neu erstellt werden. Weitere Informationen — „» und «».
- Verbesserungen bei der Erstellung eigener Container.
- ICM unterstützt eine neue Sharding-Architektur.
- Standardbenutzer in Containern ist jetzt nicht mehr root.
- ICM unterstützt die Erstellung und Bereitstellung von privaten Netzwerken, in denen ein Bastion-Node das private Netzwerk mit dem öffentlichen Netzwerk verbindet und zusätzlichen Schutz vor Denial-of-Service-Angriffen bietet.
- Unterstützung von Serviceerkennung über geschützte RPC.
- ICM unterstützt die Bereitstellung in mehreren Regionen. Dies gewährleistet eine hohe Verfügbarkeit des Systems, selbst wenn die gesamte Region ausfällt.
- Die Möglichkeit, ICM zu aktualisieren und Informationen über bereits bereitgestellte Systeme zu speichern.
- Der Containerlose Modus – ICM kann jetzt Clusterkonfigurationen direkt und ohne Container auf der Google Cloud Platform bereitstellen sowie den Web Gateway auf Ubuntu oder SUSE installieren.
- Unterstützung für das Merging von iris.cpf aus zwei Dateien. Dies ermöglicht es ICM, InterSystems IRIS mit unterschiedlichen Einstellungen je nach Betriebsmodus zu starten. Diese Funktion vereinfacht die Automatisierung und Unterstützung verschiedener Konfigurationsmanagement-Tools wie Kubernetes.
Analyse
Selektives Neubauen des Würfels
Mit diesem Release unterstützt InterSystems IRIS Business Intelligence (ehemals bekannt als DeepSee) den selektiven Aufbau eines Würfels – nur eines Maßes oder einer Dimension. Die Würfelbeschreibung kann geändert werden und nur das, was sich geändert hat, wird neu aufgebaut, während die Verfügbarkeit des gesamten Würfels während des Neubaus erhalten bleibt.
PowerBI Connector
Microsoft PowerBI unterstützt jetzt die Arbeit mit Tabellen und Würfeln von InterSystems IRIS. Der Connector kommt mit PowerBI ab der April 2019-Version. Weitere Informationen – «».
Vorschau der Abfrageergebnisse
In dieser Version gibt es jetzt einen neuen Vorschau-Modus beim Erstellen von Pivot-Tabellen im Analyzer. So können Sie schnell die Richtigkeit der Abfrage bewerten, ohne auf die vollständigen Ergebnisse zu warten.
Weitere Verbesserungen
- Das Durchlaufen des Globals mit der Funktion $ORDER in umgekehrter Reihenfolge (direction = -1) ist jetzt ebenso schnell wie in gerader Richtung.
- Die Protokollierungsleistung wurde verbessert.
- Unterstützung für Apache Spark 2.3, 2.4 hinzugefügt.
- Unterstützung für WebSocket-Clients. Klasse %Net.WebSocket.Client.
- Die Versionskontrollklasse verarbeitet jetzt Ereignisse bei Änderungen auf der Produktseite.
- Whitelist zur Filterung von zulässigen Anfragen an CSP, ZEN und REST.
- Unterstützung für .NET Core 2.1.
- Die ODBC-Leistung wurde verbessert.
- Strukturiertes Protokoll zur Erleichterung der Analyse von messages.log.
- API zur Überprüfung von Fehlern und Warnungen. Klasse %SYSTEM.Monitor.GetAlerts().
- Der Klassenkompiler überprüft nun, dass der Name des Globals in der Speicherdokumentation die maximale Länge (31 Zeichen) nicht überschreitet, und gibt einen Fehler aus, wenn dies der Fall ist. Zuvor wurde der Name ohne Warnung auf 31 Zeichen gekürzt.
Woher beziehen
Wenn Sie Support haben, laden Sie das Distribution-Paket im Abschnitt der Website wrc.intersystems.com herunter
Wenn Sie lediglich InterSystems IRIS ausprobieren möchten —
Noch einfacher mit Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
Am 7. April um 17:00 Uhr Moskauer Zeit findet ein Webinar zum neuen Release statt. Es wird von Jeff Fried (Director, Product Management) und Joe Lichtenberg (Director of Product & Industry Marketing) geleitet. Das Webinar wird in englischer Sprache gehalten.
Quelle: habr.com
