
Alla fine di marzo la nuova versione della piattaforma dati InterSystems IRIS 2020.1. Anche la pandemia di coronavirus non ha impedito il rilascio.
Tra le novità di questo rilascio ci sono l’aumento delle prestazioni del core, la generazione di applicazioni REST secondo la specifica OpenAPI 2.0, lo sharding per oggetti, un nuovo tipo di Portale di Gestione, supporto per MQTT, una cache universale per le richieste, un nuovo framework per la creazione di elementi di prodotto in Java o .NET. L'elenco completo delle modifiche e la Checklist di Upgrade in inglese sono disponibili al . Maggiori dettagli — sotto.
InterSystems IRIS 2020.1 è un rilascio con supporto esteso. InterSystems rilascia due tipi di versioni di InterSystems IRIS:
- Rilasci di Continuous delivery. Vengono rilasciati tre o quattro volte all'anno sotto forma di immagini Docker. Destinati allo sviluppo di applicazioni e distribuzione nel cloud o in contenitori Docker.
- Rilasci con supporto esteso. Vengono rilasciati meno frequentemente, ma includono aggiornamenti con correzioni. Sono rilasciati su tutte le piattaforme supportate da InterSystems IRIS.
Tra le versioni con supporto esteso 2019.1 e 2020.1 sono state rilasciate solo versioni in immagini Docker: 2019.2, 2019.3, 2019.4. Tutte le nuove funzionalità e correzioni di questi rilasci sono state incluse in 2020.1. Alcune possibilità elencate di seguito sono apparse per la prima volta in uno dei rilasci 2019.2, 2019.3, 2019.4.
Quindi.
Sviluppo di applicazioni REST secondo la specifica
In aggiunta a , supportato dalla versione 2019.1.1, nella versione 2020.1 è stata introdotta la possibilità di generare uno scheletro di codice per un servizio REST secondo la specifica in formato OpenAPI 2.0. Maggiori dettagli possono essere trovati nella sezione della documentazione "».
Conversione dell'installazione di Caché o Ensemble
Questa versione consente di convertire durante l'installazione un'installazione di Caché o Ensemble in InterSystems IRIS. La conversione potrebbe richiedere modifiche al codice sorgente, alla configurazione o ad altri script, ma nella maggior parte dei casi sarà semplice.
Prima di procedere con la conversione, leggi la Guida alla Conversione In-Place di InterSystems IRIS e la Guida all'adozione di InterSystems IRIS. Questi documenti sono disponibili sul sito del Centro di Supporto Globale di InterSystems nella sezione "».
Linguaggi client
InterSystems IRIS Native API per Python
Accesso rapido a basso livello da Python a array multidimensionali in cui InterSystems IRIS memorizza i dati. Maggiori dettagli – «».
InterSystems IRIS Native API для Node.js
Accesso rapido a basso livello da Node.js a array multidimensionali in cui InterSystems IRIS memorizza i dati. Maggiori dettagli – «».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Comunicazione bidirezionale nei gateway Java e .NET
Le connessioni nei gateway .NET e Java sono ora bidirezionali. Ciò significa che un programma in .NET o Java, chiamato da IRIS attraverso il gateway, utilizza la stessa connessione per accedere a IRIS. Maggiori dettagli – «».
Miglioramenti nell'API nativa per Java e .NET
L'API nativa di IRIS per Java e .NET supporta liste $LIST e passaggio di parametri per riferimento.
Nuova versione del Portale di Gestione
Questa versione include i primi cambiamenti nel Portale di Gestione. Al momento riguardano solo l'aspetto visivo e non influenzano le funzionalità.
SQL
Caching universale delle query. A partire dalla versione 2020.1, tutte le query, comprese quelle integrate e quelle delle classi, saranno memorizzate come query cache. In precedenza, l'uso delle query integrate richiedeva la ricompilazione del programma per generare nuovo codice di query, ad esempio se veniva creato un nuovo indice o se le statistiche della tabella cambiavano. Ora tutti i piani delle query sono memorizzati in una singola cache e vengono cancellati indipendentemente dal programma in cui viene utilizzata la query.
Un numero maggiore di tipi di query è ora parallelizzabile, comprese le query DML.
Le query a una tabella suddivisa per shard possono ora utilizzare il join implicito "->".
Le query avviate dal Portale di gestione vengono ora eseguite in un processo in background. Le query lunghe non verranno più interrotte a causa del timeout della pagina web. Le query prolungate possono ora essere annullate.
Capacità di integrazione
Nuovo framework per la creazione di elementi di prodotto in Java o .NET
In questa versione è stato introdotto un nuovo framework PEX (Production EXtension), che offre una maggiore libertà nella scelta del linguaggio per la realizzazione dei componenti di prodotto. In questa release, PEX supporta Java e .NET per lo sviluppo di servizi aziendali, processi aziendali e operazioni aziendali, oltre che per adattatori in entrata e in uscita. In precedenza era possibile creare solo servizi e operazioni aziendali e si doveva invocare il generatore di codice nel Portale di gestione. Il framework PEX fornisce strumenti più flessibili per integrare codice Java e .NET nei componenti di prodotto, spesso senza richiedere programmazione in ObjectScript. Il pacchetto PEX include le seguenti classi:
Per ulteriori informazioni — «».
Monitoraggio dell'uso delle porte nei prodotti.
L'utilità Port Authority tiene traccia delle porte utilizzate dai servizi aziendali e dalle operazioni aziendali. Consente di identificare le porte disponibili e di prenotarle. Per ulteriori informazioni — «».
Adattatori per MQTT
Questa versione include gli adattatori che supportano il protocollo MQTT (Message Queuing Telemetry Transport), spesso utilizzato nelle applicazioni per l'Internet delle Cose (Internet of Things - IoT). Maggiori dettagli — «».
Sharding
Architettura semplificata
In questa versione è stato introdotto un modo più semplice e comprensibile per creare un cluster — basato su singoli server (node level), invece che su aree, come nelle versioni precedenti. La nuova API — . Il nuovo approccio è compatibile con il vecchio — cluster basato su aree (namespace level) — e non richiede modifiche alle installazioni esistenti. Maggiori dettagli — «» e «».
Altri miglioramenti nello sharding:
- Ora è possibile co-shardare (distribuire sugli stessi shard parti frequentemente collegate di due tabelle) qualsiasi coppia di tabelle. In precedenza, ciò era possibile solo con tabelle che avevano una chiave shard comune. A partire da questa versione, la sintassi COSHARD WITH è applicabile anche a tabelle con Id di sistema. Maggiori dettagli — «» e «».
- Un tempo, per contrassegnare una tabella come cluster, era necessario utilizzare DDL, ora è possibile farlo anche nella descrizione della classe — nuova parola chiave Sharded. Maggiori dettagli — «».
- Il modello ad oggetti ora supporta lo sharding. I metodi %New(), %OpenId e %Save() funzionano con oggetti di classe i cui dati sono distribuiti su più shard. Si noti che il codice viene eseguito sul server a cui è connesso il client e non su quello in cui è memorizzato l'oggetto.
- È stato migliorato l'algoritmo di esecuzione delle query in cluster. Il gestore della coda delle richieste (Unified Shard Queue Manager) mette in coda le richieste da eseguire in un pool di processi, invece di avviare nuovi processi per ogni richiesta. Il numero di processi nel pool viene determinato automaticamente in base alle risorse del server e al carico.
Infrastruttura e distribuzione nel cloud.
In questa versione sono stati inclusi miglioramenti nell'infrastruttura e nella distribuzione nel cloud, tra cui:
- Supporto per Tencent Cloud. InterSystems Cloud Manager (ICM) ora supporta la creazione di infrastrutture e la distribuzione di applicazioni basate su InterSystems IRIS in Tencent Cloud.
- Supporto per volumi nominati (named volumes) in Docker, oltre al montaggio di cartelle (bind mount).
- ICM supporta la scalabilità flessibile: le configurazioni possono ora essere scalate, cioè ricreate con un numero maggiore o minore di nodi. Maggiori dettagli — "» e «».
- Miglioramenti nella creazione di contenitori personalizzati.
- ICM supporta una nuova architettura di sharding.
- L'utente predefinito nei contenitori ora non è root.
- ICM supporta la creazione e il dispiegamento di reti private, in cui un nodo bastione collega la rete privata a quella pubblica e fornisce protezione aggiuntiva dagli attacchi Denial-of-Service.
- Supporto per la scoperta dei servizi tramite RPC protetto.
- ICM supporta il dispiegamento in più regioni, garantendo così un'alta disponibilità del sistema anche in caso di malfunzionamento di un'intera regione.
- Possibilità di aggiornare ICM mantenendo le informazioni sui sistemi già dispiegati.
- Modalità senza contenitori: ICM può ora dispiegare direttamente configurazioni cluster su Google Cloud Platform, senza utilizzare contenitori, e installare Web Gateway su Ubuntu o SUSE.
- Supporto per la fusione di iris.cpf da due file. Questo aiuta ICM a eseguire InterSystems IRIS con diverse configurazioni a seconda della modalità in cui l'installazione viene eseguita. Questa funzionalità semplifica l'automazione e la gestione di diversi strumenti di gestione della configurazione, come Kubernetes.
Analisi
Ricostruzione selettiva del cubo
A partire da questa versione, InterSystems IRIS Business Intelligence (precedentemente noto come DeepSee) supporta la costruzione selettiva del cubo — di un solo indicatore o dimensione. È possibile modificare la descrizione del cubo e ricostruire solo ciò che è cambiato, mantenendo la disponibilità dell'intero cubo durante la ricostruzione.
Collegamento PowerBI
Microsoft PowerBI ora supporta il lavoro con tabelle e cubi di InterSystems IRIS. Il connettore è fornito con PowerBI a partire dalla versione di aprile 2019. Maggiori informazioni — «».
Anteprima dei risultati della query
In questa versione è stata introdotta una nuova modalità anteprima nella creazione di tabelle pivot in Analyzer. Questo consente di valutare rapidamente la correttezza della query senza attendere i risultati completi.
Altri miglioramenti
- L'attraversamento globale con la funzione $ORDER in ordine inverso (direction = -1) è ora veloce quanto in avanti.
- Migliorata la performance del logging.
- Aggiunto supporto per Apache Spark 2.3, 2.4.
- Aggiunto supporto per il cliente WebSocket. Classe %Net.WebSocket.Client.
- La classe di controllo delle versioni ora gestisce eventi in caso di modifiche sulla pagina dei prodotti.
- Liste bianche per filtrare le richieste consentite a CSP, ZEN e REST.
- Supporto per .NET Core 2.1.
- Le prestazioni di ODBC sono state migliorate.
- Log strutturato per facilitare l'analisi di messages.log.
- API per il controllo degli errori e degli avvisi. Classe %SYSTEM.Monitor.GetAlerts().
- Il compilatore delle classi ora verifica che il nome globale nella descrizione dello storage non superi la lunghezza massima (31 carattere) e restituisce un errore se ciò non avviene. In precedenza, il nome globale veniva troncato a 31 caratteri senza avviso.
Dove ottenere
Se hai il supporto, scarica il pacchetto dalla sezione del sito wrc.intersystems.com
Se vuoi semplicemente provare InterSystems IRIS —
Ancora più facile tramite Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
Il 7 aprile alle 17:00 ora di Mosca si terrà un webinar dedicato al nuovo rilascio. Sarà condotto da Jeff Fried (Director, Product Management) e Joe Lichtenberg (Director of Product & Industry Marketing). Il webinar sarà in inglese.
Fonte: habr.com
